v1.6.0

v1.6.0 は OpenMV Cam の登録機能と、より充実したマシンビジョンワークフローを中心としています。IDE は接続時に未登録のカメラを検出するようになり、コードエディタと統合されたしきい値エディタを備え、折りたたみ可能なペインを追加し、同梱ファームウェアを 2.3.0 から 2.4.1 に進めました(その過程で直線検出を追加)。引き続き Qt Creator 4.0.2 をリベースなしで追従しています。ユーザーに見える破壊的変更が 1 つあります。未登録のカメラを接続すると、接続のたびにボードキーの入力を求められるようになりました(「互換性を損なう変更」を参照)。

ハイライト

  • OpenMV Cam の登録 が接続時に検出されるようになりました。IDE はボードのアーキテクチャを照会し、ボード/ID を openmv.io に対して確認し、ボードキーでカメラを登録するようユーザーに促します。

  • OMV2 (M4) と OMV3 (M7) の両カメラ向けの 同梱ファームウェア 2.4.1 は、2.4.0 で直線検出(Hough 変換による find_lines / find_line_segments)と新しい image.match_descriptor 結果オブジェクトを追加しています。ファームウェア 2.4.1 では、それに続いてバイナリ演算 API の名称変更が行われています。

  • しきい値エディタの統合: エディタ内で選択したグレースケールまたは LAB のしきい値タプルを右クリックすると、それらの値があらかじめ読み込まれた状態でしきい値エディタが開き、閉じる際に調整後のタプルがソースに書き戻されます。

  • 折りたたみ可能なペイン: フレームバッファペインとシリアルターミナルペインに、ペインの非表示と再表示を行い、設定からその状態を復元するドロワーボタンが追加されました。

  • ライブフレームバッファのタイトルバー に、現在の解像度と選択された ROI が表示されるようになり、無効化されたフレームバッファにはその代わりにオーバーレイが表示されます。

新機能

  • OpenMV Cam の登録 が接続時に検出されます。IDE はボードのアーキテクチャを照会し、ボード/ID を openmv.io に対して確認し(openmv-swd-ids-check.php / openmv-swd-ids-register.php)、ボードキーでカメラを登録するようユーザーに促します。動作する購入ハイパーリンク、進捗表示、エラー処理を備えた登録ダイアログが含まれています (c61052eb3, 9fa8a253e)。

  • エディタからのしきい値エディタ: 選択したグレースケール (g_min, g_max) または LAB の 6 要素しきい値タプルを右クリックすると Edit ... threshold with Threshold Editor アクションが表示され、それらの値があらかじめ読み込まれた状態でエディタが開き、閉じる際にソースのタプルが更新されます (3d12e6ee7, 992d3bdf8)。

  • 折りたたみ可能なペイン: フレームバッファペインとシリアルターミナルペインに、ペインの非表示と再表示を行い、設定からその状態を復元する上/下/左/右のドロワーボタンが追加されました (abaf628ff, 7461e3b55, b51faa8f5)。

  • フレームバッファのタイトルバーに ライブの解像度と ROI を表示します。例: Frame Buffer - Res (w:.., h:..) - ROI (x:.., y:.., w:.., h:..) (992d3bdf8)。

  • Machine Vision Tools メニューに DataMatrix GeneratorBarcode Generator の項目が追加され、それぞれオンラインジェネレーターを探す Google ウェブ検索を開きます (bf284997b)。

その他の変更および改善

  • フレームバッファが無効化されている場合、その代わりに中央揃えの Frame Buffer Disabled - click the disable button again to enable (top right) オーバーレイが表示されるようになりました (bf284997b)。

  • しきい値エディタ が、ウィンドウの位置だけでなく、スライダーの状態(コンボ/反転/最小最大値)をセッション間で保存および復元するようになりました (bf284997b)。

  • Python 構文ハイライト を見直し、エディタとターミナルで OpenMV のクラス/関数/メソッド/引数名と import キーワードをより適切に色付けするようにしました (38c00e5a2, 7461e3b55)。

  • シリアルターミナルへの貼り付け が、クリップボードのバイトを 1 文字ずつ送信し、送信される serial/UDP/TCP パケットの間に 1ms の間隔を挿入することで MicroPython REPL がオーバーランしないようになり、Enter キーで CR と LF が個別に送出されるようになりました (c61052eb3)。

  • メンバーの自動補完 が、)]} などの閉じ括弧の後に . を入力したときにトリガーされるようになり、関数呼び出しや添字の後に補完が表示されるようになりました (9fa8a253e)。

バグ修正

  • OpenMV Cam の SWD-ID 登録ダイアログを修正し、ポインタキャストの結果コードに依存する代わりに、Cancel とリクエスト完了で確実にダイアログが閉じるようにしました (6599856c4)。

  • 登録済みボードのファームウェアマッチングを修正し、ファームウェアマッピングテーブルでの照会前にアーキテクチャ文字列から [board:id] 登録トークンを取り除くようにしました (a1be146f1)。

  • キャンセルチェックの反転とエスケープされていないボード ID 正規表現が原因で成功/エラー処理が一度も実行されず、M4 ベースのカメラの登録チェックがスキップされていた登録の不具合を修正しました (9fa8a253e)。

  • OpenMV レイアウトのナビゲーションウィジェットを修正するため、上流の Qt Creator の左ナビゲーションサイドバーの配線を無効化しました (bf284997b)。

プラットフォームおよびツールのサポート

  • Qt Creator ベース: 4.0.2。

  • 同梱 OpenMV ファームウェア: OMV2 (M4) と OMV3 (M7) の両カメラで 2.3.0 から 2.4.1 へ 2 ステップにわたって進められました。2.3.0 から 2.4.0 のステップでは、直線検出(Hough 変換による find_lines / find_line_segments)、新しい image.match_descriptor / kptmatch 結果オブジェクト、DataMatrix デコードサンプル(find_datamatrices.py / find_datamatrices_w_lens_zoom.py)、find_lines.py / find_line_segments.py サンプル、sensor.set_vsync_output() メソッドが追加されました (f0cd4d75c)。2.4.0 から 2.4.1 のステップでは、新しい b_and / b_or 論理 AND/OR 画像演算が追加され、nand / nor / xor / xnorb_nand / b_nor / b_xor / b_xnor に名称変更されました(従来の名前はエイリアスとして保持されます) (4fc16559e)。

  • Windows ドライバ: DfuSe / FTDI / OpenMV / PybCDC ドライバのインストールコマンドスクリプトを見直し、これまで欠けていた DfuSe および FTDI/OpenMV/PybCDC のドライババイナリ、DLL、インストールに必要な VC 再頒布可能パッケージを同梱しました (b51faa8f5, c2633fc04, 4fc16559e)。

互換性を損なう変更

openmv.io が未登録と報告する OpenMV Cam を接続すると、カメラが登録されるまで接続のたびに繰り返し、ボードキーの入力を求めるプロンプトが最大 3 回表示されるようになりました。M4 ベースのボードはこのチェックの対象外です。2.4.1 ファームウェアのバイナリ画像演算の名称変更は、従来の nand / nor / xor / xnor メソッド名がエイリアスとして引き続き利用可能なため、後方互換性があります。