質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

10811閲覧

YOLOv3における入力画像のリサイズ処理の影響

haru135

総合スコア3

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/14 05:08

編集2020/08/15 06:15

前提・実現したいこと

業務で物体検出ライブラリを使ったカメラ解析システムを作ることになりました。
イメージとしては以下のようなシステムです。

  1. 監視カメラの映像からYOLOv3を使って人間だけを検出する(BBoxの取得)。
  2. 各BBOxを画像からクロッピングし、別のDNNの入力とすることで映っている人間の属性を判定する(年齢、性別、服装など)。
  3. 判定結果をcsvに出力する。

まずは1のYOLOv3についてkeras実装であるkeras-yolo3を参考に作ることにしました。

qqwwee/keras-yolo3

疑問点

YOLOv3では入力画像サイズは32の倍数の正方形型である必要があると聞き、学習時の入力画像は416x416にリサイズした上でアノテーションを行っています。また以下のトピックでも述べられている通り、YOLOv3の入力画像サイズは学習・推論時に同一であるべきだと認識しています。

YOLO Darknet 学習・推論での画像サイズについて

しかし、推論時において入力となる監視カメラの映像のアスペクト比として4:3ないし16:9しか選ぶことができません。

試しに元のサイズ(640x480)の画像を入力して推論を実行したところ、実行エラー等は生じず、推論結果も一見妥当なものとなりました。どうやら前述のkeras実装ではアスペクト比が1:1でない画像が入力となったときにletterbox_image処理によって元画像のアスペクト比を損なわない形でリサイズ(拡大・縮小とパディング)が行われているようです。出力画像(BBoxが追加された画像)では元のサイズ(640x480)に戻っていることから、サイズの復元も行われているように見受けられます。

Darknet YOLOが少し変わっていた件
letterbox_image処理(L20-)
リサイズ処理(L102-)

上記のようにkeras実装内では入力画像のリサイズ処理が含まれていますが、この場合でも「学習・推論時に画像サイズが同一でない」という状態に該当するのでしょうか?
また、学習・推論時に画像サイズが同一でないとき、「学習時と条件が異なることで推定精度が下がる」以外に何か問題はあるのでしょうか?

私自身プログラミング・機械学習について十分な知識があるとは言えず、また周囲に詳しい人間もおりません。
ご助言いただけますと幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

入力画像

letterbox 処理でアスペクト比固定でリサイズ (例えば、416x416)

推論

推論した矩形をリサイズ前のサイズに戻す

となっているので、推論時は固定のサイズにリサイズされてモデルに入力されます。

学習・推論時に画像サイズが同一でないとき、「学習時と条件が異なることで推定精度が下がる」以外に何か問題はあるのでしょうか?

Keras 実装がそうなっているかはわかりませんが、論文著者のオリジナル実装 (darknet) では学習時は 608x608 ~ 320x320 の間でランダムに画像サイズを変えながら学習しています。
なので、その間の32の倍数の画像サイズであれば、大丈夫なのではないでしょうか。
もちろん、入力サイズを小さくするほど精度は落ちますが、処理速度は上がります。

投稿2020/08/16 13:00

編集2020/08/16 13:02
tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haru135

2020/08/17 09:10

tiitoiさん、ご丁寧にご回答いただきありがとうございます。可能であればもうひとつだけ教えてください。 > Keras 実装がそうなっているかはわかりませんが、論文著者のオリジナル実装 (darknet) では学習時は 608x608 ~ 320x320 の間でランダムに画像サイズを変えながら学習しています。なので、その間の32の倍数の画像サイズであれば、大丈夫なのではないでしょうか。 これは「学習時に入力サイズが608x608~320x320の間の32の倍数(例. 412x412)の任意のサイズであれば、Multi-scale training処理において上記範囲内でランダムに画像サイズを変えながら学習が行われるので、推論時における入力サイズ(※letterbox処理後)がこの範囲内であれば学習時と完全に一致していなくてもある程度の精度が期待できる」という解釈で合っているでしょうか。 私が作成しているシステムでは、学習時・推論時(letterbox処理後)の入力サイズはいずれも412x412であり、画像サイズが異なるのは推論時のletterbox処理前(640x320)のみです。ですので、もし上記の解釈が合っているのであれば、Multi-scale trainingのの恩恵は受けられないように感じています。
tiitoi

2020/08/17 09:33

> 推論時における入力サイズ(※letterbox処理後)がこの範囲内であれば学習時と完全に一致していなくてもある程度の精度が期待できる」という解釈で合っているでしょうか。 その認識であっています。 > もし上記の解釈が合っているのであれば、Multi-scale trainingのの恩恵は受けられないように感じています。 すいません。質問で問題としているのはなんでしょうか? 入力画像が 640x320 だとしても、letterbox 処理でリサイズするので、416x416 で正方形にリサイズしてもアスペクト比が崩れることはありません。 なので、そのサイズの画像を入力としても検出に問題ないと思います。
haru135

2020/08/17 14:43

再びご回答いただきありがとうございました。そして私の質問の説明が拙くて申し訳ないです……。 当初の質問で問題としていたのは「入力画像が正方形とはアスペクト比の異なる画像(640x480, 640x320, etc...)であっても、letterbox処理で正方形にリサイズしてしまえば元々正方形であった画像と同じように推論できるのか?」でした。もしやダメなのではと憂慮していたので、ご回答いただいたとおり「検出に問題ない」と聞いて安心しました。 このたびはご丁寧に回答いただきありがとうございました。 いただいた情報を参考に勉強と開発を続けたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問