v1.0.0-beta

v1.0.0-beta は OpenMV ファームウェアの最初(ベータ)のリリース であり、OpenMV Cam の最初の公開ビルドです。これ以降のすべての土台となる基盤を確立します。すなわち、STM32F4 の OpenMV Cam 上で動作する MicroPython スクリプティングランタイム、カメラの sensor API、image マシンビジョンライブラリ、そしてライブ開発のための OpenMV IDE です。最初のリリースであるため移行元はありません。このエントリでは、最初のファームウェアに同梱された内容をまとめます。

ハイライト

  • OpenMV Cam 上の MicroPython — USB 経由でカメラ上の Python スクリプトを実行でき、対話型 REPL と IDE デバッグインターフェースを備えます。

  • カメラキャプチャsensor モジュール: ピクセルフォーマット/解像度/フレームレートを設定し、snapshot() でフレームを取得します。

  • マシンビジョンimage ライブラリ: カラーブロブ検出、描画、フィルタ、テンプレートマッチング、Haar カスケード顔検出、キーポイント。

  • OpenMV IDE — ライブフレームバッファビューア、コードエディタ、IDE 内ファームウェア更新を備えたデスクトップ IDE。

  • ハードウェア — OmniVision OV9650 / OV2640 カメラを搭載したオリジナルの OpenMV Cam(STM32F4)。SD カードと WiFi シールドのサポート。

新機能

スクリプティングとモジュール:

  • ファームウェアの基盤としての MicroPython ランタイム。USB デバッグインターフェース経由でのカメラ上スクリプト実行と対話型 REPL を備えます。

  • sensor モジュール — set_pixformat() / set_framesize() / set_framerate()、ゲイン上限/明るさ/コントラスト/ゲインの各制御、reset()snapshot()、左右反転/上下反転、ならびにセンサーと解像度の定数。

  • image マシンビジョンモジュール(imlib)。画像オブジェクト(Python バッファプロトコル対応)と、その下位の画像処理機能を公開します。

  • タイミング計測と FPS 測定のための time / clock モジュール。

  • 初期のペリフェラルモジュール — led(RGB LED)、spigpio(外部割り込み登録付きのピン I/O)、uart、ハードウェア rng、systick タイマー、そしてファイルシステム用の file / select

  • socket / wlan(CC3000 WiFi)によるネットワーク、lcd ディスプレイドライバ、mlx90620 サーマルセンサーモジュール、AVI/MJPEG ビデオ録画。

画像処理:

  • 動的に確保されるフレームバッファにキャプチャされるカメラフレーム。

  • カラーブロブ検出(フラッドフィル)と LAB/XYZ 色空間のしきい値処理(RGB↔LAB 変換テーブル付き)。

  • 描画プリミティブ(線、文字列/フォント、円)、フィルタ(収縮/膨張/メディアン/反転/二値化/しきい値処理)、画像のスケーリング(バイリニア)、部分画像の抽出、blit、アルファブレンディング。

  • テンプレートマッチング(テンプレートの保存/読み込み付き)、Viola-Jones Haar カスケードによる顔/物体検出(読み込み可能なカスケード + OpenCV カスケードコンバータ)、LBP カスケードと目検出器、FAST / SURF / FREAK のキーポイント検出とディスクリプタマッチング、積分画像、動き検出。

  • JPEG エンコード(品質制御付き)、PPM / PGM / PNG / raw 画像の保存、AVI/MJPEG ビデオエンコード。

IDE とツール:

  • OpenMV IDE デスクトップアプリケーション — FPS 表示付きのライブフレームバッファビューア、コードエディタ(開く/新規/保存/名前を付けて保存、最近使ったファイル、同梱の Examples メニュー)、接続/リセット/自動接続、設定の読み込み/保存。

  • DFU 経由の IDE 内ファームウェア更新、純 Python の pydfu ユーティリティ、ブートローダーへ強制移行する USB コマンド。openmv.py ホストライブラリ/プロトコル。スタンドアロンのフレームバッファビューアとカスケードツール。Linux udev ルール。

その他の変更と改善

  • 同梱のサンプルスクリプト: ブロブ検出、顔検出/追跡、SURF / キーポイント、テンプレートマッチング、LCD、フレームバッファビューア、blit、MJPEG ストリーマー、AVI 録画、エコーサーバー、FPS、JPEG / 画像書き込みのデモ。

ハードウェアとボードサポート

  • OpenMV Cam — 初期のハードウェアリビジョン全体にわたる STM32F4xx(STM32F407 / F429)。CMSIS + STM32 ペリフェラル/Cube HAL と CMSIS-DSP を使用。

  • カメラ — センサー HAL を介した OmniVision OV9650 と OV2640(SCCB/I2C、レギュレータ制御)、ならびに MLX90620 サーマル IR センサー。解像度は QQCIF/QCIF から SVGA/UXGA まで、最大 30 FPS。

  • ストレージ/接続性 — FatFS を用いた SD カード(SPI と SDIO)、内部フラッシュファイルシステム、SDRAM(SDRAM 上のフレームバッファ)、USB OTG FS(デバッグ + DFU)、CC3000 WiFi(WiFi / BLE シールド)、IR LED、ソフト/ハードウェア I2C と DMA 駆動の SPI。

互換性に影響する API 変更

なし。v1.0.0-beta は OpenMV ファームウェアの最初(ベータ)のリリース であり、互換性を壊す対象となる以前のリリースは存在しません。以降のリリースでは、その前のリリースに対する互換性に影響する変更を記載します。詳しくは 変更履歴 の残りを参照してください。