前提・実現したいこと
業務で物体検出ライブラリを使ったカメラ解析システムを作ることになりました。
イメージとしては以下のようなシステムです。
- 監視カメラの映像からYOLOv3を使って人間だけを検出する(BBoxの取得)。
- 各BBOxを画像からクロッピングし、別のDNNの入力とすることで映っている人間の属性を判定する(年齢、性別、服装など)。
- 判定結果をcsvに出力する。
まずは1のYOLOv3についてkeras実装であるkeras-yolo3を参考に作ることにしました。
疑問点
YOLOv3では入力画像サイズは32の倍数の正方形型である必要があると聞き、学習時の入力画像は416x416にリサイズした上でアノテーションを行っています。また以下のトピックでも述べられている通り、YOLOv3の入力画像サイズは学習・推論時に同一であるべきだと認識しています。
しかし、推論時において入力となる監視カメラの映像のアスペクト比として4:3ないし16:9しか選ぶことができません。
試しに元のサイズ(640x480)の画像を入力して推論を実行したところ、実行エラー等は生じず、推論結果も一見妥当なものとなりました。どうやら前述のkeras実装ではアスペクト比が1:1でない画像が入力となったときにletterbox_image処理によって元画像のアスペクト比を損なわない形でリサイズ(拡大・縮小とパディング)が行われているようです。出力画像(BBoxが追加された画像)では元のサイズ(640x480)に戻っていることから、サイズの復元も行われているように見受けられます。
Darknet YOLOが少し変わっていた件
letterbox_image処理(L20-)
リサイズ処理(L102-)
上記のようにkeras実装内では入力画像のリサイズ処理が含まれていますが、この場合でも「学習・推論時に画像サイズが同一でない」という状態に該当するのでしょうか?
また、学習・推論時に画像サイズが同一でないとき、「学習時と条件が異なることで推定精度が下がる」以外に何か問題はあるのでしょうか?
私自身プログラミング・機械学習について十分な知識があるとは言えず、また周囲に詳しい人間もおりません。
ご助言いただけますと幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/17 09:10
2020/08/17 09:33
2020/08/17 14:43