OpenMV Camは、実世界で機械視覚を用いたアプリケーションを容易に実装できる小型低消費電力のマイクロコントローラボードです。OpenMV Camは、C/C++ではなく、MicroPythonオペレーティングシステムによる高水準のPythonスクリプトでプログラミングします。これにより、機械視覚アルゴリズムの複雑な出力や高水準のデータ構造を扱いやすくなります。ただし、Pythonを用いてOpenMV CamおよびそのI/Oピンを完全に制御できます。外部イベントに基づいて写真や動画の撮影を容易にトリガーしたり、機械視覚アルゴリズムを実行してI/Oピンの制御方法を判断したりすることができます。
OpenMV Camの主な特長:
- STM32H743VI480 MHzで動作するARM Cortex-M7プロセッサ(1MBのSRAMおよび2MBのフラッシュを内蔵)。すべてのI/Oピンは3.3V出力であり、5V耐性を持つ。このプロセッサは以下のI/Oインターフェースを備える:
- コンピューターへのフルスピードUSB(12Mbps)インターフェース。OpenMV Camを接続すると、仮想COMポートおよびUSBフラッシュドライブとして認識されます。
- 100Mbpsの読み書きが可能なマイクロSDカードスロットを搭載しており、OpenMV Camで画像を撮影し、マイクロSDカードから機械視覚関連のアセットを容易に取り出すことが可能です。
- 最大80Mbpsで動作可能なSPIバスにより、LCDシールド、Wi-Fiシールド、または他のマイクロコントローラーへ画像データを容易にストリーミングできます。
- I2Cバス(最大1Mb/s)、CANバス(最大1Mb/s)、および非同期シリアルバス(TX/RX、最大7.5Mb/s)を備えており、他のマイクロコントローラおよびセンサーとのインターフェースが可能です。
- 12ビットのADCおよび12ビットのDAC。
- サーボ制御用のI/Oピンが3本
- すべてのI/Oピンで割り込みおよびPWMをサポート(基板上には10個のI/Oピンがあります)。
- さらに、RGB LEDおよび高出力の850nm赤外線LEDが2個。
- 着脱可能なカメラモジュールシステムで、8ビットパラレルインターフェースをサポートしており、OpenMV Cam H7がさまざまなセンサーと接続可能:
- OpenMV Cam H7は、MT9M114イメージセンサーは、解像度が320×240を超える場合、640×480の8ビットグレースケール画像または640×480の8ビットベイヤー画像を40 FPSで撮影可能であり、解像度が320×240未満の場合には80 FPSで撮影可能です。ほとんどの単純なアルゴリズムは、QVGA(320×240)解像度およびそれ以下の解像度において、40~80 FPSで動作します。本イメージセンサーには、標準M12レンズマウントに取り付けられた2.1mmレンズが付属しています。より専門的なレンズを本イメージセンサーに使用したい場合は、お客様ご自身で容易に購入・装着できます。
- プロフェッショナル向けマシンビジョンアプリケーション向けに、当社の製品を購入いただけます。グローバルシャッターカメラモジュール MT9V034。
- 赤外線サーマルイメージング機械視覚アプリケーション向けに、当社の製品をご購入いただけます。FLIRレプトン熱画像モジュール。
- 3.7Vリチウムイオン電池インターフェース。当社製品を購入いただけます。3.7V-1000mAhリチウムイオン電池
OpenMV Camについて詳しくは、以下のウェブサイトをご覧ください:https://singtown.com/openmv/
アプリケーション
現在、OpenMVカメラは以下の用途に使用できます(今後追加予定):
- ニューラルネットワークによる物体検出
- OpenMVを用いて、物体検出のためのニューラルネットワークをトレーニングし、検出したい任意の対象物を学習させることができます。例えば、異なる数字、異なる果物、異なるマーカー、異なる部品、またはその他の特定の不規則な対象物などについて、それぞれの対象物の番号、座標、および対象物の種類名を識別するようにトレーニングできます。
- 当社の動画チュートリアルに基づき、実際の道路上における交通標識(例:クラクション禁止、駐車禁止、時速80キロ制限など)を検出できます。/learn/50918
- ニューラルネットワーク分類
- OpenMVを用いて、物体検出のためのニューラルネットワークをトレーニングし、検出したい任意の対象物を学習させることができます。例えば、異なる数字、異なる果物、異なるマーカー、異なる部品、またはその他の特定の不規則な対象物などについて、それぞれの対象物の番号、座標、および対象物の種類名を識別するようにトレーニングできます。
- 当社の動画チュートリアルに基づき、人物がマスクを着用しているかどうかを分類できます。/learn/50872
- マイクロコントローラー向けTensorFlow Lite
- TensorFlow Lite のサポートにより、OpenMV Cam 上でカスタムの画像分類およびセグメンテーションモデルを実行できます。TensorFlow Lite を使用することで、画像内の複雑な領域を簡単に分類し、認識した内容に基づいて 1/0 ピンを制御できます。
- フレーム差分
- OpenMV Cam上でフレーム差分アルゴリズムを使用して、シーン内の動きを検出できます。フレーム差分はセキュリティ用途に使用できます。
- 色追跡
- OpenMV を使用して、1 枚の画像内で最大 16 色を同時に検出できます(ただし、実際には 4 色を超えて検出する必要はほとんどありません)。また、各色に対して任意の数の異なるブロブを検出できます。OpenMV は、各ブロブの位置、サイズ、重心、および方向を示します。カラートラッキングを用いることで、OpenMV Cam を太陽の追跡、ライン追随、ターゲット追跡などにプログラムできます。ビデオデモ:/learn/49993
- マーカー追跡
- OpenMV Camを用いて、個別の色ではなく色のグループを検出できます。これにより、物体にカラータグ(2色以上で構成されるラベル)を貼付けることができ、OpenMVがそのタグ付き物体の内容を捉えます。
- 顔検出
- OpenMV Camを用いて、顔(またはその他の一般的な物体)を検出できます。OpenMVカメラは、一般的な物体検出のためのHaarテンプレートを処理でき、顔および目の検出に使用するための組み込みフロントフェイスタイプおよび目用Haarテンプレートを備えています。/learn/50013
- 視線追跡
- 眼球追跡により、人の視線の方向を検出できます。これによりロボットを制御できます。眼球追跡は、画像内に目が存在するかどうかを検出するとともに、瞳孔の位置を検出します。
- 人物検出
- 内蔵の人物検出器(TensorFlow Liteモデル)を使用して、視野内に人物がいるかどうかを検出できます。
- 光学フロー
- 光学フローを用いて、OpenMVカメラの前方における動きを検出できます。例えば、光学フローをクアッドコプターに適用して、空中での安定性を制御できます。
- QRコードの検出/デコード
- OpenMV Cam を使用して、視野内の QR コードを読み取ることができます。QR コードの検出/デコード機能により、スマートロボットが周囲環境にあるラベルを読み取れるようになります。
- データマトリクス検出/デコード
- OpenMV Camは、Data Matrixコード(2次元バーコード)の検出およびデコードも可能です。当社の動画は、こちらでご覧いただけます。
- 一次元バーコードデコード
- OpenMV Camは、1次元バーコードの処理も可能です。EAN2、EAN5、EAN8、UPCE、ISBN10、UPCA、EAN13、ISBN13、I25、DATABAR、DATABAR_EXP、CODABAR、CODE39、CODE93、およびCODE128をデコードできます。当社の動画は以下をご覧ください:/learn/50017
- AprilTag トラッキング
- 上記のQRコードよりもさらに優れた機能として、OpenMV Camは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ピン制御と組み合わせることで、現実世界と相互作用する独自のカスタムアプリケーションと連携できます。