Arduinoは非常に初歩的なように見えるかもしれませんが、かなり高度なプロジェクトを作成するには十分すぎるほどです。 カメラモジュールなど、市場に出回っている既存のモジュールの助けを借りて、またいくつかのライブラリやAPIの助けを借りて、プロジェクトにインテリジェンスを提供したり、 人工視覚。 これにより、基本的なプロジェクトを超えた新しいアプリケーションと新しい視野が得られます。
マシンビジョンは、コンピュータビジョンの一種です。 それは単にデジタルカメラを通して画像をキャプチャするだけではなく、さらに進んでいます。 に使用できます 環境データを取得する、画像の処理、分析、実世界の画像の理解など。 たとえば、カメラを介して数値情報を取得したり、人間を認識したりするために使用できます。 これでできることすべてを想像してみてください...
コンピュータビジョンは何に使用されますか?
POR ejemplo、現在の多くのビジョンシステムは、このタイプのビジョンに基づいています。たとえば、自動駐車、環境のマッピング、道路の交通管制システムを許可したり、歩行者を認識して車両を停止し、乗り越えたり、顔を認識したり、一部のセキュリティシステムなどのデータベースに登録されている人々のデータ、ビデオの分析など。
このマシンビジョンの可能性は非常に極端であるため 政府や大企業 彼らは、合法であるかどうかにかかわらず、さまざまな目的でそれを使用します。 あなたが確かに知っているいくつかの実用的な応用分野は次のとおりです。
- Facebook:ソーシャルネットワークにアップロードされた写真にこのタイプの人工視覚を使用します。このようにして、複雑なアルゴリズムを使用して顔を認識できます。 そうすれば、AIにフィードして、AIをより強力にし、他の将来のアプリケーションのために改善することができます。
- Flickrの-このマシンビジョンを使用して、このプラットフォームの画像リポジトリを使用して3Dシーンを再構築できます。
- 業界:人工視覚システムを使用すると、組立ラインの欠陥を検出したり、欠陥のあるオブジェクトをすばやく破棄したりできます。 たとえば、農業部門で収集された果物が人工視覚センサーによってコンベヤーベルトを通過する場合、壊れた、損傷した、腐った果物、または果物以外の物体を検出して、エアジェットによってそれらを取り除くことができます。または他のメカニズム。
- ビデオ監視:多くの保護されたセンターで使用して、特定の車両や人を捕まえ、彼らが誰であるかを調べ、その情報をシステムに送信したり、後で分析するために記録したりできます。 多くの企業は、人々がどのように服を着ているか(ファッション部門)、デモに参加した可能性のある人を見つけるための特定のエンティティ、公共または忙しいセンターでの不審な人員の存在を検出するためにそれを使用しています。
現在、企業、銀行、DGTなどを監視するために、通りの周りにはあらゆる種類の監視カメラが多数散在していることに注意してください。 私たち全員からたくさんの情報が集められています...
必要な資料
プログラム可能でライブラリを利用するマイクロコントローラーを搭載したArduinoボードに加えて、 あなたがする必要があります プロジェクトの他の基本要素もあります。 その中にはもちろん、画像処理が可能なカメラ付きのモジュールがあります。 この例は、Pixy CMUCam5または 同様の。 このモジュールには、シリアルポートUART、SPI、I2C、デジタル出力、またはアナログ信号を介してセンサーによってキャプチャされた情報を送信するようにプログラムできる強力なプロセッサが搭載されています。
Pixy CMUCam 5を使用すると、最大50フレーム/秒(50 FPS)を処理できます。 これらの機能を使用すると、キャプチャしたすべてのビデオを常に記録するのではなく、必要な画像または検索した画像のみを送信するようにプログラムできます。 取り扱いを簡単にするために、 無料のオープンソースアプリケーション コール ピクシーモン あなたのコントロールのために。
このPixyCMUcam5カメラを購入する場合は、6ピンから10ピンのIDCケーブルと取り付け金具が付属します。 加えて、 技術的特徴 モジュールの内容は次のとおりです。
- NXP LPC4330 204 MhzDualCoreプロセッサ。
- 254 Kb RAMメモリ、
- 140mAの消費。
- Omnivision OV9715 1×4解像度の1280/800インチイメージセンサー。
- 水平75度、垂直47度の視野角。
- オブジェクトを見つけるためのシンプルな画像認識。
- Arduinoボード(特定のライブラリを使用)、Raspberry Pi、BeagleBone Black、およびその他の同様のボードで使用できます。
- 通信ポート:SPI、I2C、UART、USB、またはアナログ/デジタル出力。
- Windows、macOS、GNU / Linuxと互換性のあるPixyMonソフトウェア。
- 小さいサイズ。
- プロジェクトWikiで利用可能なドキュメント。
- Arduino用のライブラリを備えたGithubリポジトリ。
- ファームウェア
- チュートリアル
それに加えて、あなたはあなたがあなたの処分で別のタイプを持っていることを心に留めておかなければなりません API、ライブラリ、その他の資料 これらのカメラと人工視覚の助けを借りて、あらゆる種類のプロジェクトを作成するのに役立ちます。 たとえば、次の点に注意してください。
- OpenCV:は、最初にIntelによって開発された無料のマシンビジョンライブラリです。 現在、BSDライセンスの下でリリースされており、誰でも動きの検出、オブジェクトの認識、ロボットビジョン、顔認識などに使用できます。 クロスプラットフォームなので、GNU / Linux、macOS、Windows、Androidで使用できます。
- などの他のプロジェクト 車両検出.
Hwlibreから、始めることをお勧めします この分野について実験し、学ぶ...
Pixy 2CMUcam5をArduinoと統合する簡単な例
これを使用するには Arduinoボードを搭載したPixy2CMUcam5モジュール、いくつかの追加要素を使用する必要があります。 たとえば、次のことができます サーボモーターを使用する S06NF、または 同様の、プログラムしたオブジェクトをカメラが検出したときに動作します。 もちろん、上記のPixyMonソフトウェアとArduino用のGitHubライブラリをダウンロードする必要があります。
Arduinoプログラミングの詳細については、次のことができます。 PDFをダウンロード 無料コースで。
あなたが持ったら インストールされたPixyMon ご使用のオペレーティングシステムでは、次の手順に従います。
- PixyをUSBケーブルで接続します モジュールのRGBLEDが点灯しているかどうかを確認します。これは、モジュールが正常に機能していることを示します。
- PixyMonアプリを開きます すべてが正しければ、現時点でカメラが何をキャプチャしているかがわかります。
- サブメニューに移動 アクションまたはアクション、[署名の設定]または[署名の設定]をクリックします。 これでビデオがフリーズし、センサーの前にある限り、カメラで検出する色またはオブジェクトを選択できます。 たとえば、ボールを使用できます。 したがって、ボールがセンサーの前を通過するたびに、ボールが検出されます。
- ご覧のとおり、 最大7セットの署名、したがって、カメラが検出できる最大7つの異なるオブジェクトを構成できます。
- XNUMXつだけを選択した場合は、次のステップに進むことができます。 または、リストからオブジェクトを削除する場合は、[アクション]または[アクション]メニューに移動して、[すべて削除]をクリックします。 署名 または、[特定の署名を削除]を選択します。 [構成]または[構成]に移動してから、変更する特定の署名に移動して変更することもできます…。
これで、ボードの構成に進むことができます Arduinoの、 お望みならば。 これを行うには、Arduino用のPixyライブラリを使用する必要があることをすでに知っています。 このライブラリには、コードを最初から作成せずに実験を開始できる簡単な例も含まれています。 それらを開いてこれらのスケッチを実行するか、それらに変更を加えて、それらがどのように動作するかを確認するだけです。 このライブラリを使用するには、次の手順に従います。
- 放電 Arduinoのライブラリ。
- 開く Arduino IDE.
- スケッチに移動し、 ライブラリを含める 次に、.zipライブラリを追加し、ダウンロードしたライブラリを選択します。
- 今それは統合されます、あなたはすることができます いくつかの例のテストを開始します カメラをArduinoボードに正しく接続します。 これを行うには、[例]または[例]メニューに移動し、次に[Pixy]に移動して、そのうちのXNUMXつを選択します。 私はあなたがから始めることをお勧めします こんにちは世界.
- Arduinoボードを接続して USBからPCに、スケッチをアップロードします ボードに移動し、[ツール]、[シリアルモニター]の順に選択します。
- これで、ウィンドウに情報が表示され始めます。
もちろん すべての電子部品を接続することを忘れないでください カメラ自体を含め、Arduinoボードを使用する必要があります。 画像に見られるように、これらのモジュール宛てのArduinoISCPピンに接続することはすでにご存知でしょう...