faster r-cnnの入力画像について

今回、faster r-cnnで4step学習を試みている状態なのですが、1つ理解ができていないことがあり質問させていただきます。
まず、inputSizeが[32 32 3]であるcnnネットワークを事前学習させました。このネットワークをfaster r-cnnとして学習するさいに、オプションであるSmallestImageDimensionとして学習イメージをサイズ変更できるとあるのですが、このオプションを使用すると、入力画像がその設定した値にサイズ変更されてネットワークに流れるのでしょうか?その場合、inputSizeが合わなくなってしまうので、一度inputSizeをSmallestImageDimensionの値と同じにする必要があるのでしょうか。
ミニバッチを適用する際に、faster r-cnnですと入力画像を同じサイズに変更する必要があり、transformを使用してinputSize[32 32]に合わせるべきなのか、それともSmallestImageDimensionの値に合わせるべきなのかわかりません。
ここの兼ね合いがよく理解できずにいます。何かアドバイス、ご指摘いただければ幸いです。
どうぞよろしくお願いいたします。

 채택된 답변

Kenta
Kenta 2020년 9월 17일

0 개 추천

こんにちは、ひとまず、両方試してみて、analyzeNetwork関数などで、ネットワーク構造をみてみてはいかがでしょうか?

댓글 수: 4

HY
HY 2020년 9월 17일
kenta様
ご回答ありがとうございます。
試したところ700ですとエラーが発生してしまい、32で合わせると読み込みますがアンカーボックスが[2 2]など非常に小さい値になってしまいます。
SmallesetImageDimensionとの兼ね合いがよくわかりません。
Kenta
Kenta 2020년 9월 25일
こんにちは、返信が遅くなり申し訳ありません。SmallesetImageDimensionにすると一括して、全訓練データが32×32などにリサイズされるのではないでしょうか。700でエラーがでるのは、700より小さい画像サイズをもつ訓練データが存在するからで、32で、アンカーボックスがとても小さくなる理由は、縦(や横)の長さが32になるように、訓練データの各画像をそれだけ小さくしているから、ではないでしょうか?700でエラーが出る場合は、transformを使えばエラーを返さない気がします。
少し話はちがいますが、例えば同じカメラで同じように撮影すると、解像度も同じなのでこのような問題には直面しないと思うので、いろいろな画像が訓練データとしてあるのですね。縦32ピクセル、では非常に小さい気もしますが、それだけ撮影が難しい対象なのでしょうか?32といった、低い解像度がほとんどの場合だと32にリサイズするのがいいでしょうし、例外的に32が含まれて、ふつうは700×700とかが多いのであれば、その少数の低解像度画像は諦めるほうがいいのかもしれませんね。目的は、手持ちの画像で物体検出をしたいということと思うので、あとはお手持ちのデータの特性で、色々と作戦を変えたらよいのだと思います。
HY
HY 2020년 9월 25일
お返事ありがとうございます。学習データを集める際に携帯やアクションカメラなどサイズの違う学習データを集めています。別枠でも質問しましたが2017verでは勝手が違うようで困惑しています。色々とアドバイス大変ありがとうございます。提案されたことを一つ一つ試したいと思います。
Kenta
Kenta 2020년 9월 25일
なるほど、そういう場合は大変ですね。詳しく教えていただいありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

질문:

HY
2020년 9월 17일

댓글:

2020년 9월 25일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!