v2.5.0

v2.5.0 は機能豊富なイメージングリリースです。find_rects()find_circles()get_regression()(直線/回帰フィッティング)、find_number()(LeNet による数字)、ImageWriter / ImageReader のストリームクラス、sensor.flush() / width() / height()、そして pyb.RTC のサポートを追加します。画像の読み込みがフレームバッファベースになりました — 以下の破壊的変更をお読みください。

ハイライト

  • image.find_rects() — コーナー出力付きの矩形 / 四角形の検出器。

  • image.find_circles() — ハフ円検出。

  • image.get_regression() — 最小二乗法およびロバスト(Theil-Sen)な直線フィッティング。

  • image.find_number() — LeNet による数字認識。

  • ImageWriter / ImageReader — 画像ストリームの記録と再生。

  • pyb.RTC のサポートに加え、sensor.flush() / sensor.width() / sensor.height()

  • 破壊的変更: 画像の読み込みがフレームバッファベースになり、画像が大きすぎる場合は例外を発生させるようになりました — 破壊的変更を参照してください。

新機能

  • 特徴検出image.find_rects()(AprilTag の四角形検出器。x / y / w / h / corners / magnitude を持つ rect オブジェクト)、image.find_circles()(ハフ)、image.get_regression()(最小二乗法 + Theil-Sen ロバスト直線フィッティング)、および image.find_number()(LeNet による数字認識)を、それぞれサンプルスクリプト付きで追加しました。

  • 結果のコーナー — QRコード / AprilTag / データマトリックス / バーコードの結果オブジェクトに corners 属性を追加しました。

  • 画像ストリームimage.ImageWriter / image.ImageReader クラス(16 バイトアラインされたチャンク形式)を image_writer.py / image_reader.py のサンプル付きで追加しました。

  • センサーsensor.flush()(スナップショットなしでフレームバッファを IDE にプッシュする)および sensor.width() / sensor.height() を追加しました。

  • pyb.RTCrtc.py のサンプル付きで RTC サポートを有効化しました。

  • 猫の顔の Haar カスケードと Servo-Shield(PCA9685)のサンプルを追加しました。openmv-cascade.py ホストツールが新しい OpenCV XML カスケード形式のサポートを獲得しました。

その他の変更と改善

  • copy_to_fb 画像メソッドが IDE プレビューを更新するようにフレームバッファをリファクタリングしました。HaarCascade() のパスは先頭の / を必要としなくなりました(組み込みかファイルかは自動検出されます)。GIF/MJPEG 録画が VGA(および BAYER GIF)をサポートするようになりました。組み込みの README.txt が更新され、openmv.inf ドライバーファイルは新規ファイルシステム上では作成されなくなりました。

バグ修正

イメージング:

  • find_circles() の投票の蓄積、ROI を伴う get_regression() の rho オフセットとメモリリーク、find_lines() のセグメントのマージ、find_blobs() の角度平均化とデフォルト(最も制約の少ない)カラー境界、ORB キーポイントのソートの安定性 / ディスクリプタの順序とマッチフラグ、および Haar カスケードのバッファ付き読み込み(アラインされていない読み込み)を修正しました。

システム:

  • pyb の Servo 3(P9)を有効化し(#256)、RTC の初期化を修正し、UART の文字タイムアウトを増やし(#240)、初期化されていないセンサーフレームバッファの「enabled」フラグを修正しました。

ハードウェアおよびボードサポート

  • pyb.RTC のサポートと pyb の Servo 3(P9)。Servo-Shield(PCA9685)のサンプル。

APIの破壊的変更

v2.4.1 と v2.5.0 の間でのユーザーから見える API の破壊的変更です。範囲: modules/ 内の Python C モジュールおよび scripts/libraries/ 内の Python ライブラリ。

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

画像の読み込みがフレームバッファベースになった (behavior)

image.Image / 画像の読み込みが、読み込んだ画像をメインのフレームバッファにコピーするようになり、画像が大きすぎて収まらない場合は例外を発生させるようになりました。以前はヒープバッファに成功していた読み込みが失敗するようになる可能性があります — 読み込む画像がフレームバッファに収まるようにしてください(または新しいエラーを処理してください)。

Commits: 87d53385a

移行チェックリスト

以前ヒープベースの画像読み込みに依存していた箇所では、読み込む画像がフレームバッファに収まるようにしてください(または新しい「画像が大きすぎる」エラーをキャッチしてください)(画像読み込みの変更)。その他のすべてのスクリプトはそのまま動作します。