光を意識して異常を捕捉しよう 第2話
こんにちは!アダコテックの井上です。
弊社では、製造業向けの異常検知AIソフトウェアを提供しています。
今回は、前職ニコン時代に初めて外観検査装置の設計開発に携わったお話をします!
はじめまして、外観検査!
上司「次は〇〇(製品)の外観検査装置の設計開発プロジェクトだよ」
井上「はい!!(がいかんけんさ・・・?)」
こんな感じで、人生初の外観検査装置開発がスタートしました。
詳細は伏せておきますが、以下のような特徴を持つ製品が対象でした。
・円筒形
・色は黒
・キズが目立ちにくい塗装がされている
3つ目の「キズが目立ちにくい塗装」、これが非常に厄介でした。お客様がこの製品を使用している中で、よく手が触れる部分でもあるので、キズや汚れが目立ちにくい革のような塗装が施されていました。以降、このキズや汚れが目立ちにくい塗装を「L塗装」と表現します。
さっそく撮像してみる!
社内工場から良品・不良品サンプルを預かっていたので、さっそくオフィスにあるバー照明とカメラで撮影してみました。配置は以下のような正反射でした。(うろ覚え)
一発で上手くいくはずもなく、以下のような結果に。
・円筒の頂点は明るく、外側は暗くなるような画像(輝度ムラ)
・欠陥らしきものは辛うじて見えている(低コントラスト)
・というか、L塗装の方がめちゃくちゃ目立ってる
輝度ムラについてはエリアカメラを利用していたことが敗因でした。
どこからか「そりゃそうじゃ」なんて声が聞こえてきそうですよね。
円筒・円柱品のような対象品にはエリアセンサではなくラインセンサのカメラを利用するのが正解なんです。(といってケースバイケースですが)
エリアセンサカメラ
・撮像素子が面状(二次元)に並んでいる
・一般的なフレームレートは30~60fps
・対象製品は固定で良い
・通信規格はUSB, CameraLink, GigEなど
ラインセンサカメラ
・撮像素子が線状(一次元)に並んでいる
・一般的なラインレートは30~80kHz ⇒ 超高速な撮像ができる
・対象製品を動かす必要がある ⇒ 最終的に1次元の画像をつなぎ合わせる
・通信規格はCameraLink, GigE, CoaXPress (USBは無い)
対象製品を回転させながら1ライン分の撮像を連続して行うことで、輝度ムラのない画像を取得することができました。
・・・
ラインセンサカメラは、エリアセンサカメラと違って「撮影ぽちーっ」で簡単に1枚の画像は撮れません。1次元のデータが取れるだけなので、何のこっちゃわかりません。対象製品をモータで回転させながら、そのときの信号をトリガーとして連続撮影を行うような制御プログラムを作る必要があります。モータの回転速度やカメラのラインレート、露光時間の関係をしっかり考えないと、伸びた画像や縮んだ画像となってしまいます。
以下ページにラインセンサカメラの選定方法が書かれているので、これからラインセンサ使うぜ!って方は見てみてください。
https://imagingsolution.net/imaging/machinevision/select-line-sensor-camera/
長い旅の始まり・・・
「よーしあとは電気とメカの設計をして、メインソフト作って完成だー!」なんてことはありませんでした。ラインセンサカメラで輝度ムラのない画像が取得できるようになったものの、以下のような課題が残っていました。
・画像の輝度が全体的に暗い
・捕捉できていない欠陥がある
・L塗装は相変わらず目立っている
1つ目の輝度が暗いことについては、ラインセンサカメラ向けの高輝度ライン照明なるものがあるので、それを使うことで大体解決できます。
2つ目のL塗装の影響と、3つ目の捕捉できていない欠陥というのが非常に厄介さんでした。これらを解決するのに1年弱くらいかかりました。が、我が外観検査人生(なんじゃそりゃ)において非常に濃密だった期間かもしれません・・・。
最適な撮像照明条件を見つけるぞい
欠陥種類は複数あり、それぞれが画像上で捕捉できるような撮像照明条件を探すことを始めました。
「そもそもで検査員はどうやって欠陥を見つけているんだろう」
この疑問を早い段階で持てていたら、もう少し設計開発の期間は短縮できたかもしれません。今更ですが。
そんな意識を持たなかった当時の私は、ガムシャラに様々な条件で撮影と欠陥輝度確認の作業を繰り返そうとしていました。
調整が必要な条件を書き出してみると
・カメラの露光時間
・レンズのF値
・照明光の強度
・照明光の拡散度(平行度)
・被写体とカメラレンズまでの距離 (Working Distance)
・被写体と照明までの距離 (Light Working Distance)
・照明の配置角度
などなど
これらの数値組み合わせを考えた段階で途方に暮れていました。所属していた部署では「タスクが多くても分身すれば何とかなる」という冗談なのか何なのかわからない言葉も飛び交っていた記憶もあります。
こんな状況を設備開発のベテランの方に相談したところ、「直交配列表つかってみればいいじゃん」とアドバイスを頂きました。
直交配列表実験
項目数(因子)や設定値(水準)がたくさんある場合において、少ない実験回数で多くの要因効果を評価することができる実験方法。
例えば、7つの因子それぞれが2つの水準を持つ場合は、組み合わせ数が2の7乗=128通りとなります。一方で、直交配列表を利用すると以下表のように16通りのみの実験で、7つの因子と、任意の因子間における交互作用を評価することができます。詳細はGoogle先生でオネガイシマス!
これをもとに実験を進め、各欠陥の検出に最適となるような条件の探索を行いました。各条件で撮影した画像中にある欠陥領域と背景領域の輝度差を評価対象としました。つまり、輝度差が大きいほど欠陥領域が目立つ最適な条件、という感じで。
そんなこんなで、各欠陥に適した条件を見つけることができたですが、評価に利用した欠陥がすべてではないため、もちろん捕捉しづらい欠陥もありました。・・・それに対して、井上はどうしたのでしょうか!?
アダコテックでは、メンバーを募集しています。
製造業が抱える課題を一緒に解決していきましょう!
この記事が気に入ったらサポートをしてみませんか?