コンベアを流れる食品上の虫や髪の毛などを人が目視で確認する場面は多くあると思いますが、そこにAIの眼を入れてより確実に異物を発見する仕組みです。
リレーに100V電源のON/OFFを行わせることにより 異物を検出した時にコンベアの電源自体をOFFにしてコンベアを止めます。同時にブザーを鳴らして異物発見を知らせます。この仕組みにはDeepSky, Intelligent I/Oを使い、Intelligent I/OのNG出力にリレーを接続しています。非常にシンプルかつ実用的な仕組みなのでぜひお試し下さい。
製作期間:1日
材料費:2万円
材料・部品
- リレー [HF18FF 024-2Z1DJ] ※
- リレー端子台 [18FF-2Z-C1]
- DC24Vアダプタ [秋月電子 / GF18-US24075T]
- コンセント [パナソニック / WH2163KWP]
- 木板 300 x 200 x 12
- ブザー[秋月電子 / PB10-Z338R]
- 木ビス 3.5 x 12:10本程度
- 木ビス 2.6 x 12:2本
- 丸型圧着端子 R1.25-3:2個
- 圧着端子用絶縁キャップ:2個
※この大きなメカニカルリレーで100VのON/OFFを行うとかなり大きな電磁ノイズが発生することが分かりました。カメラなどの機器が電磁ノイズの影響を受けると画像が乱れたり、場合によってはUSBの通信不良が起こります。そのため後日「DeepSkyから100V電源のON/OFFを行う」のタイトルでソリッドステートリレーを使った電源のON/OFFを行う方法について書きたいと思います。
工具・備品
- PC[マウスコンピューター/G-Tune, Corei9, 16GB RAM, RTX 2070 SUPER]
- 画像処理ソフト[スカイロジック/DeepSky DS100K]
- IOユニット[スカイロジック/EI-ITIO-T01]
- 130万画素カメラ[Daheng/MER-133-54u3c]
- 8mm レンズ[M0814-MP2]
- カメラスタンド(アルミフレーム)
工具・備品計:90万円程度
作り方
木板にリレーなどを取り付ける
まず 200mm角、厚み10mm程度の木板を用意し、そこにコンセント、リレー、ブザー、Intelligent I/Oをビスで取り付けます。
ベタータップは表面中央のネジを外すと裏面の吊り金具が外れます。まず吊り金具を 木ビス 2.6 x 12を2本使って固定し、その後中央のネジを取り付けることでタップを固定できます。リレー、ブザー、Intelligent I/Oは 木ビス 3.5 x 12 で固定します。
配線
下図のように配線します。Intelligent I/OからのNG出力がONになるとブザーが鳴り、リレーが駆動される仕組みです。リレーは常時閉状態で、NG出力がONになった時に開となる b接点動作にしてあります。ACアダプタの +24V が一旦 K 端子に入っていますが、これはリレーで発生する逆起電力からIntelligent I/Oのトランジスタを保護するための処置です。今回使用したリレーはリレーそのものにトランジスタ保護用のダイオードが入っているため必ずしも必要な処置ではありませんが、念のためK端子を経由した配線を行うことをお勧めします。
ここで使用したリレーとリレー端子台の仕様は下記のようになっています。リレーの端子番号と端子台の端子番号が異なる端子には()を付けて端子台の端子番号を記載しています。今回は常時閉となっている1と7(端子台番号 1と9)を使っています。
配線が完了した状態は下図のようになります。
カメラ位置とピント、絞りの調節
コンベア上のキャベツを撮影するため、真上にカメラを設置します。今回は社内のアルミフレームで組んだカメラスタンドを使用しました。アルミフレームとブラケットを組み合わせた非常にシンプルなものです。絞りやピントについては記事「絞りの役割」を参考にして下さい。
- アルミフレーム:ミスミ5シリーズ、40mm角
- 直角ブラケット:5シリーズ(溝幅6mm)押出厚型ブラケット
- 六角穴付ボルト:M5, 10mm
- フレームナット:5シリーズアルミフレーム用後入れバネナット
撮影・アノテーション・学習
DeepSkyの動画マニュアルに従って虫を10~100ヶ所程度位置を変えながら撮影します。その後アノテーション(虫を囲んで検出対象をソフトに教える作業)を行い、学習を実行します。アノテーションの際にはアノテーション忘れ(虫を囲い忘れる)に注意して下さい。検出率が下がってしまう場合があります。撮影とアノテーションについては記事「プラキャップ黒ブツの検出とコンベアからの排出」も参考にして下さい。
学習は教師画像10~100枚程度で行います。今回は学習回数(ステップ)を1,000回で学習させました。Lossの値が 0.1未満で安定するまで学習を続けて下さい。今回使用したPCでは1,000回学習するのに5分程度かかっています。
撮り溜めた画像でテスト
学習が終わったら教師画像を含む、撮り溜めた画像を読み込んでブツが認識されるかどうか確認します(「設定」→「ファイルから」ボタンで画像を読み込み、「<<」「>>」ボタンで前/次の画像の検出を確認していくことができます。)。認識率が低ければ認識点数を調節したり、再学習を実行したりして虫が確実に検出できるようにしてください。問題なければ実際にコンベアを流してテストします。
I/Oユニットを制御するための設定
DeepSkyのマニュアルに従い、I/Oユニットを制御するためのCOMポート設定を行って下さい。また、「撮影形式」を「連続撮影」にします。「インターバル」は0に設定します。
コンベアを流してテスト
「検査/監視開始(F5)」をクリックします。
先ほど「連続撮影」モードに設定したので、DeepSkyはブツを検出するための画像処理を繰り返し行います。IOユニットのBUSYが点滅、OK/NGどちらかが点灯することを確認して下さい。
まず、虫がない状態でコンベアが動き、ブザーが鳴らないことを確認します。
次に虫を置いてみて、ブザーが鳴るとともにコンベアが停止することを確認します。
追学習と調整
実際に運用している中で見逃す虫があったり、虫ではないものを誤検出したりすることがあるかもしれません。その場合、追学習によって見逃した虫を覚えさせます。また、異なる形の虫や髪の毛などを学習させることにより、検出対象を増やすこともできます。
まとめ
定点カメラで連続的にコンベア上を検査することで「NG品をその先に流さない」シンプルは仕組みを作りました。今回は虫の検出を行いましたが、これを応用すれば「手で組み立てた端子台のネジ取付け忘れ」など、工業製品の検査にも応用することができます。
メカニカルリレーは思った以上に電磁ノイズが出ました。そのため後日「DeepSkyから100V電源のON/OFFを行う」のタイトルでソリッドステートリレーを使った電源のON/OFFを行う方法について書きたいと思います。