OpenMV Cam 完全技術ガイド:MicroPythonで動くスマートビジョンカメラの機能・接続・応用
スマートビジョンカメラは、内蔵イメージセンサで画像を取得し、精密な電気情報を抽出。デジタル画像フィルタ処理に基づきイベント記述を生成し、自律判断を行うビジョンシステムです。OpenMV Camは、通信インターフェース、I/Oライン、低コストを兼ね備えた代表的なスマートビジョンカメラです。
OpenMV Cam とは
OpenMV Camプロジェクトは、低コスト・オープンソース・ユーザーフレンドリーなプラットフォームで、機械視覚を学習者に届けることを目的としています。MicroPython(Python3ベース)でプログラミング可能で、豊富な画像処理・機械学習関数を内蔵:
- GIF/MJPEG動画録画
- AprilTag検出
- QRコード/バーコードデコード
- 色追跡(Color Tracking)
- キーポイント記述子
- 顔検出
Qt CreatorベースのOpenMV IDE(クロスプラットフォーム)により、プログラマブルカメラとして強化:
- カメラフレームバッファのリアルタイム表示
- センサコントロールアクセス
- BLE/Wi-Fi/USBシリアル経由でスクリプトアップロード
画像処理ツール(閾値設定、キーポイント抽出、タグ生成等)もIDEに統合。
OpenMV Cam 仕様・機能概要
定義
MicroPythonでプログラム可能な強力なマイコンボード搭載カメラ。
主な機能
- カメラ上で機械視覚アルゴリズム実行(顔検出、色追跡等)
- 組み込み機能によりI/Oピンを現実世界で直接制御。外部イベント/機械視覚アルゴリズム実行トリガーで動画/静止画撮影可能
- C/C++ではなく高水準MicroPythonスクリプトで開発可能。機械視覚アルゴリズムから生成される高度なデータ構造/出力を扱いやすい
OpenMV Cam M7(現行主力モデル)
定義
低消費電力・コンパクトなマイコンボードで、機械視覚アプリケーションの実世界導入を支援。
機能
OpenMV Camと同様に色検出、顔追跡等を実行。
OpenMV Cam(Cortex-M7搭載モデル)主な仕様・特徴
- 12bit DACモード、12bit ADC搭載
- 高出力850nm IR LED ×2、RGB LED ×1 内蔵
- I/Oピン ×10(PWM/割り込み対応、うち3ピンはサーボ制御専用)
- SPIバス最大54Mbps(画像データストリーミングに最適)
- I/O出力 3.3V(5V非耐圧、レベルシフタ必要)
- 216MHz駆動、外部フラッシュ 2MB、RAM 512KB
- イメージセンサ OV7725:320×240 16bit / 640×480 8bit グレースケール、30FPS
- 非同期シリアル(TX/RX)、CANバス、I2Cバスで他センサ/マイコンと接続可能
- 標準M12レンズマウント(2.8mmレンズ付属)、microSDソケット(100Mbps R/W)、専門レンズ追加可能
- フルスピードUSB(12Mbps)でPC接続。USBメモリ & バーチャルCOMポートとして認識
インターフェースライブラリ:RPC(Remote Python/Procedure Call)
OpenMV CamをArduino、Raspberry Pi、SBC、PC等と接続するための内蔵RPCライブラリを提供。
RPC 対応トランスポートと最大速度
- Wi-Fi(Wi-Fiシールド経由):最大12Mbps
- USB VCP(バーチャルCOMポート):最大12Mbps
- CANバス:最大1Mbps
- SPIバス:最大54Mbps(短配線で40/80Mbpsも可能)
- I2Cバス:1Mbps(プルアップ抵抗必須)
- UART(非同期シリアル):7.5Mbps
JPG/RAW画像データストリーミング、画像処理結果取得、下位ハードウェア制御(モータドライバ等)への委譲もRPC経由で可能。
主要インターフェースライブラリ
Arduino インターフェースライブラリ(I2C/UART/SPI/CAN対応)
- CAN対応:ESP32内蔵CANペリフェラル、またはMCP2515 SPI経由
- 全Arduinoバリアントで動作
汎用Pythonインターフェース(SPI/I2C、Kvaser CAN、UART、Ethernet/Wi-Fi、USB VCP対応)
OpenMV CamをLinux(BeagleBone/Raspberry Pi)、macOS、Windows PCと接続するPythonコードを提供。
対応詳細:
- Linux SBC上のSPI/I2C(BeagleBone/Raspberry Pi等)
- Kvaser CAN(Linux/Windows)
- Wi-Fi/Ethernet(全システム)
- USB VCP(全システム、USB直結)
- TTL/RS485/RS422/RS232 UART(全システム)
シリアルポート使用時の注意点
OpenMV Cam VCPを開き、シリアルポートのテキスト行を読み取るコード例:
Linux/macOS/Windowsで動作。ポート名を環境に合わせて変更(Linux/Macでは /dev/ 形式)。
重要: USB VCPを他言語/シリアルライブラリで開く際、DTRラインを false に設定必須。未設定だとOpenMV Camが出力を上書きしてしまう現象発生。
主な応用アプリケーション
- ライン/エッジ検出
- フレーム差分(動体検知)
- 動画録画
- AprilTag追跡
- マルチブロブ色追跡(異色範囲のカラーマーカー作成)
- 画像取得
- テンプレートマッチング
- 形状検出(長方形、円等)
- 円検出
- リニアバーコードデコード
- データマトリックス検出/デコード
- QRコード検出/デコード
- オプティカルフロー
- TensorFlow Lite for Microcontrollers モデルサポート
- 眼球追跡
- 顔検出/認識
- マーカー追跡
まとめ
OpenMV Camは、顔検出、RAW動画録画、カラーコード検出等の機械視覚機能を、MicroPythonの手軽さで実現します。優れた仕様と豊富な応用範囲で、エッジAIビジョンの入り口として最適です。スマートビジョンカメラ、特にOpenMV Camについて更なるご質問はお気軽にお問い合わせください。
産業技術
- スマートファクトリー構築:実践的ステップバイステップブループリント
- Raspberry Piカメラをバードハウスに設置:ステップバイステップガイド
- B&R、精密自動化向け完全統合型スマート・カメラを発表
- アルミニウムブレージングのマスター:エキスパート技術と実践ガイド
- 銅溶接のエキスパートガイド:技術、ヒント、ベストプラクティス
- MIG溶接機セットアップ完全ガイド:電圧・ワイヤー速度・ガス流量の最適設定で完璧なビードを実現
- 適切なPCB材料の選び方:包括的ガイド
- PCBスティフナー完全ガイド:フレックスPCBの補強マスター
- IoT向けPCB設計の完全ガイド:フレックス基板とHDI基板の活用
- ADLINK、NEON-1000-MDXを発表:ターンキー エッジAIスマートカメラで産業用ビジョン導入を迅速化
- 製造業の変革:スマートファクトリーが効率とROIを向上させる仕組み