v3.6.0

v3.6.0 では、新しい高解像度フレームサイズ(HD / FHD / QHD / QXGA / WQXGA)を備えた OV5640 5 MP カメラの完全サポートを提供し、コアを MicroPython 1.12 に更新し、ソフトウェア JPEG エンコーダ と AprilTag / 線検出を大幅に最適化し、OpenMV Cam H7 Plus での UVC(USB ビデオ) を追加し、最大 32 MB の QSPI フラッシュをサポートします。MicroPython の動作と get_histogram() が変更されました — 以下の破壊的変更をお読みください。

ハイライト

  • OV5640 5 MP — 新しい HD / FHD / QHD / QXGA / WQXGA / WQXGA2 フレームサイズを備えた完全なカメラドライバー。

  • MicroPython 1.12 — 同梱のコアを更新しました。

  • より高速なパイプライン — ソフトウェア JPEG エンコード、AprilTag 検出、LSD 線検出、histeq()、QR コードのデコードを大幅に最適化しました。

  • H7 Plus での UVC — OpenMV Cam H7 Plus が USB ビデオデバイスとして動作できます。

  • 破壊的変更: MicroPython の動作、image.get_histogram() の正規化、および OpenMV 3 の JPEG/グレースケール出力が変更されました — 破壊的変更を参照してください。

新機能

  • OV5640 — OV5640 5 MP カメラの完全サポート(センサー初期化での外部クロック設定)と、新しい sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2 フレームサイズ定数を追加しました。

  • TIM4 — MicroPython から使用できるように解放しました。

  • DAC のタイミング書き込みのサンプル(dac_write_timed.py)を追加し、dac_control.pydac_write.py にリネームしました。

その他の変更と改善

  • 同梱の MicroPython を 1.12 に更新し、ソフトウェア JPEG エンコーダ(VGA パス、グレースケール/バイナリパス、浮動小数点演算の代わりに整数演算、最適化された MCU キャプチャ)、LSD の find_line_segments()、AprilTag 検出、Image.histeq()、QR コード / RGB からグレーへの変換を大幅に最適化し、最大 32 MB のチップに対応した QSPI フラッシュサポートを追加し、廃止された CMSIS-CNN の cnn.py サンプルを削除しました。

バグ修正

カメラとイメージング:

  • HQQQVGA での JPEG エンコードの破損、バイナリ(1 ビット)画像 → JPEG 圧縮、find_line_segments() のリグレッション(NOTDEF 非整列チェックを再有効化)、および軽微な OV2640 ドライバーの問題を修正しました。

システムとブート:

  • セルフテスト / ファイルシステムの破損(selftest.py が USB MSC を有効化する前に実行されるようになり、致命的なエラー時にはホストがエラーログを読めるよう USB MSC を有効化)、pyb.DACwrite_timed()、H7 の machine.I2C タイミング、ストップモード後の F7 オーバードライブ再有効化、および stop_mode.pyrtc.wakeup() 間隔を修正しました。

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

  • OV5640 — 高解像度フレームサイズを備えた完全な 5 MP カメラドライバー。

  • OpenMV Cam H7 Plus — UVC(USB ビデオ)のサポート。OPENMV4R ボードターゲットは OPENMV4P にリネームされました。

  • QSPI フラッシュ — 最大 32 MB のチップがサポートされるようになりました。

API の破壊的変更

v3.5.2 と v3.6.0 の間でユーザーに見える API の破壊的変更があります。対象範囲: modules/ 内の Python C モジュールと scripts/libraries/ 内の Python ライブラリ。

3 つの破壊的変更はすべて 動作 の変更です(同じ API で結果が異なる)— 影響を受けるスクリプトを再確認してください。各コミットハッシュは GitHub の差分にリンクしています。

MicroPython を 1.12 に更新 (動作)

同梱の MicroPython コアが 1.12 に更新されました。標準ライブラリと言語の動作はアップストリームの MicroPython 1.12 に従います。バージョン固有の micropython / 標準モジュールの動作に依存するスクリプトを再確認してください。

コミット: eafd431ea

image.get_histogram() のしきい値の正規化が変更 (動作)

カラーしきい値を指定した image.get_histogram()(および get_statistics())は、ROI 全体ではなくしきい値処理されたピクセル数で正規化するようになり、ビンのインデックス計算に round の代わりに floor を使用するようになりました。しきい値処理を伴う呼び出しのヒストグラム/統計値は以前のリリースと異なります — 絶対的なヒストグラム値と比較していたコードを再調整してください。

コミット: 7cf0f8089

OpenMV 3 の JPEG/グレースケール出力が変更 (動作)

フラッシュ容量を節約するため、OpenMV 3(M7)の YUV ルックアップテーブルが無効化されたため、OpenMV 3 では JPEG とグレースケール出力のピクセル値の計算がわずかに異なります。出力は依然として有効ですが、以前のリリースとはわずかに異なります。OpenMV 3 でのピクセル単位の厳密な比較を再確認してください。

コミット: 0e4b46e41

移行チェックリスト

バージョン固有の MicroPython の動作に依存するスクリプトを 1.12 に対して再検証し(MicroPython のバージョンアップ)、カラーしきい値を使用する際に絶対的な get_histogram() / get_statistics() の値と比較していたコードを再調整し(ヒストグラムの変更)、OpenMV 3 でのピクセル単位の厳密な比較を再確認してください(OpenMV 3 の出力変更)。その他のすべてのスクリプトはそのまま動作します。