あやねこの 画像処理検査のてびき
Blog立ち上げました。こちらもどうぞ。

相当、主観が入ってます・・・

「その通り」と思う人も、
「そんなことは無い」と思う人も、
反響はこちら

ちなみに私は、
画像処理検査装置専業の
ソフト屋です。

メーカーでもあり、
ユーザーでもあり・・・



その画像処理検査装置に満足していますか?

いろいろ話を聞いていると、「動いていない」画像処理検査装置は多いようですね。性能的に満足がいかなかったり、設定が面倒だったり。また、やりたいことの9割ができても1割が残るため、目視検査が必要となり、結果的に「目視でやれば全て出来る」となって、自動機は使わなくなったとか。
「画像処理に多くを期待しないというのが、画像処理検査装置導入成功のポイント」とは、某エンドユーザーの弁。

画像処理検査装置の本来の目的

画像処理検査装置を販売しているメーカーのホームページなどを見て思うことがあります。多くのメーカーが小型化だとかネットワーク対応だとかの付加機能、また「目視を超える」検出能力だとか謳っています。
ここで考えたいのは画像処理検査装置の本来の目的です。多くの場合は「目視検査の代替」であるはずです。よって、まず検出能力と操作性において「目視と並ぶ」必要があると思います。そこが基本になっての付加機能であり、「目視を超える」ではないでしょうか。

投資対効果から考える画像処理検査に求められる要件

画像処理検査導入の目的の多くは、「目視検査を代替」し、人件費削減と検査の安定を求めることだと思います。
画像処理検査を導入した場合を考えます。「目視検査員が二人減りました。しかし、画像処理検査装置が使える作業者が必要になりました。検査安定のための調整も目視検査員ではできません。」というパターンが一般的です。ここで問題は「画像処理検査装置が使える作業者」が確保できるかです。目視検査員を確保する方がはるかに簡単です。
そう考えると、目視検査員が自在に使いこなせる画像処理検査装置でない限り、思うような投資対効果が得られないのではないかと思います。個人的には、五十歩百歩の検出能力を比べて選定するより、目視検査員で操作できそうかどうかで選定した方が投資対効果は得やすいと考えます。

どうして画像処理検査装置の選定の際、「サポート」が重視されるのでしょうか?

「サポート」は確かに重要です。でも、「サポート」にお世話にならなくても済むのが一番いいですね。
結局のところ、難し過ぎるは、トラブルは多いは、手間がかかるはで、まともに動くことが少ないから、「サポート」が重視されることになっているのではないでしょうか。

高解像度への過剰な期待はしない

30万画素クラスの標準的なカメラを用いた画像処理装置に対し、高解像度カメラを用いる利点は何でしょう。
「精度が上がる」といっても、たかだか一辺2倍程度。これで新たなものが見えるようになるか、新たなことができるようになるかと言えばかなり怪しい。ただ標準的なカメラ4分割で検査していた(できていたことが肝心)ものを、一気に一回で検査を行うという用途で考えれば、確実な効果が見込めます。
結局のところ、標準的なカメラでできないことは、高解像度カメラを用いても難しいのではないかと思います。特に、高解像度カメラは「撮像(正確に言えば転送)時間」がかなり長いものが多いことも念頭に置く必要があります。

カラーカメラという選択肢

白黒で画像処理をするより、カラーでやればもっと良くなるのではと考えるのももっともです。
が、カラーCCDカメラの構造を調べてみてください。光量に反応する「素子」と特定の波長(要は「色」)を透過するフィルタの組み合わせ。これを、赤緑青の3つを装備しているのがカラーカメラ。色が絡む話なら「即、カラー」でなくても、「白黒+フィルタ」でいけるシーンが相当あると思います。(詳細はこちら
さらに、3CCDでないカラーカメラのCCD素子の仕様を見てください。これで「サブピクセル精度」という話になったら・・・。ちょっと怖いですね。

カラーカメラのCCD素子に関してわかりやすく説明しているページを見つけました。シグマのデジタルカメラSD10に用いられているFaveon素子の説明です。画像処理用途にはもってこいのような気がしますが、どこかのCCDカメラメーカーさん、出してくれないでしょうかね。

照明のテクニック、こだわりすぎると・・・

「画像処理は照明がすべて」とも言われます。一般的に、検査したい対象のコントラストを上げる(要は、見たいものと見たくないものを明確に分離する)ために、いろいろ工夫するわけです。
これも善し悪しで、照明の工夫により「見たいもの」はよく見えるようになると思いますが、「見たくないもの」は見えなくなります。「見たくないもの」の中には、何が起こっても問題ないのでしょうか。そのあたりもよく考えて「工夫」すべきではないでしょうか。

キャプチャーボードの選択基準

「パソコンとの相性問題で動かないことがよくある」ことを考えておく必要があります。また、しばらくは問題なく動いていても、いきなりロックすることもあります。少なくとも「動作保証パソコン」が提示できないメーカーは避けた方が無難です。
あともう一点、最終的なシステムの出来はソフトウェアで決まります。ボードと取込み関数だけを提供されても、そこからプログラムを組み上げるのは至難の業です。相当、画像処理に造詣が深くないと無理だと思います。結局は、そのボードに対応している画像処理ライブラリが決め手になるのではないかと考えます。

二値化の呪縛

画像処理検査の黎明期、処理能力やメモリの制限があり、二値化処理でした。そのためかどうかはわかりませんが、今でも画像処理では二値化が基本とされています。確かに画像理解(たとえば文字読取り)の分野では、画像から文字を切り出すために二値化は必須です。
しかし、こと検査に限って言えば、良品と不良品をわけることが目的であるため、二値化が必須かどうかはあやしいと思います。知っている限り「明るいところと暗いところを切り分ける二値化」の概念を用いる画像処理検査は、どうしても照明への依存度が高くなり、難しいものになっているような気がします。私にとって、使いたくない画像処理検査技術の筆頭です。

画像処理検査 測るか測らないかそこが問題

一般的な画像処理検査では、1)測定箇所を決め、2)測定方法を設定し、3)測定値の公差を設定します。これを検査すべき箇所すべてに設定します。
しかし一般的な目視検査では、1)良品はこういうものだと覚え、2)良品でなければNG、3)覚えていた良品とちょっと違うけれどこの程度はOKであればまた覚えの繰り返し。「測定」していないですね。
ここの違いが画像処理検査を難しくしているような気がします。

「測定箇所の設定」は、「その測定箇所以外には何があっても関知しない」ということ

あらゆる画像処理装置/センサで「測定箇所の設定」を行います。ここで注意が必要なのは、上記の「裏」の意味です。
測定箇所以外に何が起こっても問題ないならいいのですが、実際はそういうことは少なく、結局、検査員による目視検査を無くすことができないということになっていないでしょうか。

「測定方法の設定」が諸悪の根元?

実世界においても、「これを測定してください」と渡されても、どう測定していいかわからない対象物は多いですね。まして写真を一枚見せられて、「これを測定してください」と言われたら・・・。
結局のところ「測定」を行おうとするから、検査対象ごとに特殊なアルゴリズムが必要となり、予期せぬ事に対応できないという問題を発生します。特にアルゴリズムに関しては相当の知識が必要になりますから、使いこなせる人が少ない、稼働率が上がらないという問題を引き起こしているような気がします。
たぶん「二値化の呪縛」を引きずっているのでしょうね。まず「二値化」であると、その面積測定などしか手がなくなりますから。

「公差」は何で決まるか

私は機械設計もやってましたが公差は「はめあい公差」を除けば、「生産能力上この程度はいけるからこの公差」という決め方が少なくありませんでした。おそらく、目視検査の検査基準(公差)の大部分も「後付」で決まることが多いのではないでしょうか。
画像処理検査の公差もいい加減なもので、歩留まりと検出限界のせめぎ合い。試行錯誤しかありません。だいたい測定方法自体が怪しい測定値で判定するわけですからしれています。

そもそも画像処理で測定できるのでしょうか

最近になってようやくレンズ歪みを補正する機能をもった画像処理装置が出てきています。しかしまだ少数派です。もっとも補正させるためには、かなり面倒な準備が必要です。このような状況で、画像処理による測定値に対して、実測値との相関を求めることは可能でしょうか。結局、画像処理による測定値は「目安」にしかならない点に留意する必要があります。すなわち、目視の検査基準をそのまま用いるわけにはいきません。
そういえば「画像処理による計測器」ってあまりきいたことがありませんね。投影機とステージによる計測は画面の中心しか使ってません。

エンドユーザーで画像処理プログラムが書けるか?

スキルだけを考えれば、エンドユーザーでプログラムを書ける人は多いと思います。しかし、実際のところ「専業」の部署がなければ、別の業務に多忙でプログラムを書く時間を確保することは難しいのではないでしょうか。「プログラミング不要」とうたって「ブロックを並べて・・・」というのも、結局は複雑な設定を要するという点で似たようなもののような気がします。
そう考えると、機能に割り切りが必要な「ローエンド」、複雑なプログラミング(=設定)が必要な「ハイエンド」という状況が続く以上、この業界の発展に一抹の不安が・・・

「難しいアルゴリズム」の弊害

こと「自動目視検査」に限って言えば、「どうして欠陥と判定されたのか」が明確に説明できないアルゴリズムは、画像処理装置を提供する側、される側、双方にとって問題です。提供する側は、される側に説明する必要がありますし、さらに、される側は検査品の納入先に説明する必要があります。
自戒を込めて、「凝ったアルゴリズムは百害あって一利なし」です。

すみません。宣伝です。
〜そしてFlexInspectorに行き着きました〜

ここまで、一般的な画像処理検査に対し問題点ばかり挙げてしまい、混乱を招いていてしまったかもしれません。また、そこまで言うなら具体的な解を示せとお叱りを受けるかもしれません。

私にとっての一つの解はFlexInspectorです。
本当のところ、ここまでの内容はFlexInspectorありきで書いています。もし上記に当てはまるのであれば、FlexInsepctorが一つの解を示してくれると思います。

(6/1)Web上を検索していたら、FlexInspectorに類似したアルゴリズムを使っている装置を東レエンジニアリング株式会社さまがすでに販売しておられるようです。細かい仕様まではわかりませんが、同種のもののようです。