OpenMVカメラは、小型で低消費電力のマイクロコントローラーボードであり、現実世界で機械視覚を活用したアプリケーションを容易に実装できます。C/C++ではなく、高水準のPythonスクリプト(MicroPythonオペレーティングシステムによる)でOpenMVカメラをプログラミングします。これにより、機械視覚アルゴリズムの複雑な出力処理や高水準データ構造の操作が容易になります。しかし、Pythonを使用してOpenMVカメラとそのI/Oピンを完全に制御できます。外部イベントに応じて写真や動画の撮影を簡単にトリガーしたり、機械視覚アルゴリズムを実行してI/Oピンの制御方法を判断したりすることが可能です。
OpenMVカメラの特徴:
- STM32H743VIARM Cortex M7プロセッサーは480 MHzで動作し、1MBのSRAMと2MBのフラッシュメモリを搭載しています。すべてのI/Oピンは3.3Vを出力し、5V耐性があります。このプロセッサーは以下のI/Oインターフェースを備えています:
- コンピュータへのフルスピードUSB(12Mbps)インターフェース。OpenMVカメラを接続すると、仮想COMポートおよびUSBフラッシュドライブとして認識されます。
- 100Mbpsの読み書きが可能なμSDカードソケットにより、OpenMVカメラは写真を撮影し、μSDカードから機械視覚アセットを容易に取り出すことができます。
- 最大80Mbpsで動作可能なSPIバスにより、LCDシールド、WiFiシールド、または他のマイクロコントローラへシステムから画像データを容易にストリーミングできます。
- I2Cバス(最大1Mb/s)、CANバス(最大1Mb/s)、および他のマイクロコントローラやセンサとのインターフェース用の非同期シリアルバス(TX/RX、最大7.5Mb/s)を備えています。
- 12ビットADCと12ビットDAC。
- サーボ制御用の3つのI/Oピン。
- すべてのI/Oピン(ボード上には10本のI/Oピンがあります)で割り込みとPWMをサポートします。
- また、RGB LEDと2つの高電力850nm赤外線LEDを搭載しています。
- 取り外し可能なカメラモジュールシステム、8ビットパラレルをサポートし、OpenMV Cam H7が異なるセンサーとインターフェースできるようにします:
- OpenMV Cam H7にはMT9M114イメージセンサーは、解像度が320x240を超える場合に640x480 8ビットグレースケール画像または640x480 8ビットBAYER画像を40 FPSで、解像度がそれ以下の場合に80 FPSで撮影することが可能です。ほとんどのシンプルなアルゴリズムは、QVGA(320x240)解像度以下で40-80 FPSで動作します。SingTownのイメージセンサーには、標準的なM12レンズマウントに2.1mmレンズが付属しています。より特殊なレンズをSingTownのイメージセンサーで使用したい場合は、簡単に購入して取り付けることができます。
- プロフェッショナルなマシンビジョンアプリケーション向けに、当社の製品を購入できます。グローバルシャッターカメラモジュールMT9V034SingTown
- 赤外線熱画像マシンビジョン用途には、当社のSingTownをご購入いただけます。FLIR Lepton熱画像モジュールSingTown
- 3.7Vリチウムイオンバッテリーインターフェース、当社のSingTownを購入できます3.7V-1000MAHリチウムイオン電池
OpenMV Camに関する詳細情報については、以下をご覧ください:https://singtown.com/openmv/
アプリケーション
現在、OpenMVカメラは以下の用途に使用できます(今後さらに追加予定):
- ニューラルネットワーク物体検出
- OpenMVを使用してニューラルネットワークをトレーニングし、任意の検出対象を認識させることができます。例えば、異なる数字、異なる果物、異なるマーカー、異なる部品、または任意の特定の不規則なターゲットをトレーニングし、特定のターゲットの番号、座標、およびオブジェクトタイプ名を識別することが可能です。
- 当社のビデオチュートリアルに基づいて、実際の道路で交通標識を検出できます。例えば、クラクション禁止、駐車禁止、制限速度80などです。/learn/50918
- ニューラルネットワーク分類
- OpenMVを使用してニューラルネットワークをトレーニングし、物体検出を行うことができます。検出したい任意のターゲットをトレーニングできます。例えば、異なる数字、異なる果物、異なるマーカー、異なる部品、または任意の特定の不規則なターゲットをトレーニングして、特定のターゲットの番号、座標、およびオブジェクトタイプ名を識別することができます。
- 当社のビデオチュートリアルに基づき、人物がマスクを着用しているかどうかを分類することができます。/learn/50872
- TensorFlow Lite for Microcontrollers
- TensorFlow Liteサポートにより、OpenMVカメラ上でカスタム画像分類およびセグメンテーションモデルを実行できます。TensorFlow Liteを使用すると、画像内の複雑な領域を容易に分類し、認識した内容に基づいて1/0ピンを制御することが可能です。
- フレーム差分
- OpenMV Camでフレーム差分アルゴリズムを使用して、シーン内の動きを検出できます。フレーム差分はセキュリティアプリケーションに利用可能です。
- カラートラッキング
- OpenMVを使用すると、画像内で最大16色を同時に検出できます(ただし、4色以上を見つける必要はほとんどありません)。各色は任意の数の異なるブロブを持つことができます。OpenMVは各ブロブの位置、サイズ、中心、および向きを通知します。色追跡を使用することで、OpenMV Camは太陽を追跡したり、ラインを追従したり、ターゲットを追跡したりするようにプログラムできます。ビデオデモ:/learn/49993
- マーカートラッキング
- OpenMVカメラを使用して、個々の色ではなく色グループを検出することができます。これにより、オブジェクトにカラータグ(2色以上のラベル)を配置し、OpenMVがタグ付けされたオブジェクトの内容をキャプチャすることが可能になります。
- 顔検出
- OpenMVカメラを使用して、顔(または任意の一般的な物体)を検出することができます。OpenMVカメラは一般的な物体検出のためのHaarテンプレートを処理でき、顔と目の検出用に内蔵の正面顔および目Haarテンプレートを備えています。/learn/50013
- アイトラッキング
- アイトラッキングを使用して、人の視線の方向を検出できます。ロボットの制御に利用することも可能です。アイトラッキングは、画像内に目が存在するかどうかを検出しながら瞳孔の位置を特定します。
- 人物検知
- 組み込みの人物検出器(TensorFlow Liteモデル)を使用して、視野内に人物がいるかどうかを検出できます。
- オプティカルフロー
- オプティカルフローを使用して、OpenMVカメラの前の動きを検出できます。例えば、クアッドコプターにオプティカルフローを適用して、空中での安定性を制御することが可能です。
- QRコード検出/デコード
- OpenMVカメラを使用して視野内のQRコードを読み取ることができます。QRコードの検出・デコードにより、スマートロボットが環境内のラベルを読み取る機能を実現できます。
- Data Matrix検出/デコード
- OpenMV CamはData Matrixコード(2次元バーコード)の検出とデコードも可能です。詳細はこちらの動画をご覧ください。
- リニアバーコードデコード
- OpenMV Camは1次元バーコードも処理できます。EAN2、EAN5、EAN8、UPCE、ISBN10、UPCA、EAN13、ISBN13、I25、DATABAR、DARABAR_EXP、CODABAR、CODE39、CODE93、CODE128をデコード可能です。詳細はこちらの動画をご覧ください:/learn/50017
- AprilTagトラッキング
- 上記のQRコードよりもさらに優れている点として、OpenMVカメラはAprilTagsも追跡可能です。AprilTagsは最先端の基準マーカーであり、回転不変、スケール不変、せん断不変、照明不変の特性を備えています。詳細はこちらの動画をご覧ください:/learn/49590
- ライン検出
- OpenMV Camはほぼ全フレームレートで動作しながら、無限直線検出を迅速に完了できます。また、非無限の線分も検出可能です。詳細はこちらの動画をご覧ください:/learn/50009
- 円検出
- OpenMVを使用して画像内の円を簡単に検出できます。
- 矩形検出
- OpenMVは、AprilTagライブラリの四角形検出コードを使用して、長方形も検出できます。
- テンプレートマッチング
- OpenMVのテンプレートマッチングを使用して、視野内にテンプレートと類似した画像が存在するかどうかを検出できます。例えば、テンプレートマッチングはPCB上のマーカーを見つけたり、ディスプレイ上の既知の数字を読み取るために使用できます。
- 画像キャプチャ
- OpenMVを使用してRGB565/グレースケールのBMP/JPG/PPM/PGM画像をキャプチャできます。Pythonスクリプトで直接画像のキャプチャ方法を制御できます。最も重要なのは、機械視覚アルゴリズムを使用して線や文字を描画し、保存できることです。
- ビデオ録画
- OpenMVカメラを使用して、RGB565/グレースケールのMJPEG動画やGIF画像(またはRAW動画)を記録することができます。Pythonスクリプトで各ビデオフレームの記録方法を直接制御し、動画記録の開始と停止のタイミングを完全に管理できます。また、写真撮影と同様に、機械視覚アルゴリズムを使用して線を描画したり文字を描画したりしてから保存することができます。
最後に、上記のすべての機能は、IOピン制御と組み合わせて、独自のカスタムアプリケーションで現実世界と相互作用するために使用することができます。