2017-10-05 19 views
0

642 * 481イメージの複数のオブジェクトを検出するTensorflow faster_rcnn_resnet101モデルを試しています。私は2つの方法を試みたが、どれも満足できる結果を得ていなかった。Tensorflowオブジェクトの検出問題

1)こうして私は、トレーニング画像(トレーニング画像は642 * 481テスト画像とは異なるぼかしサイズであるかもしれない)からオブジェクト(50×160矩形)を切り取った。私は、fast_rcnn_resnet101を訓練するためにこれらの切り取った画像を使用します。テストセットが同じサイズの切り抜かれた画像でも良い結果を得ているように見えます。しかし、642 * 481のテスト画像では、複数のオブジェクトを検出できず、結果が良好でした。

次に、モデルが50 * 160に一致するようにテストイメージを再スケーリングしたと思われるので、詳細が失われている可能性があります。この考え方で、私は別の方法を試しました

2)私は642 * 481白い背景にそれぞれ切り抜かれたイメージを(基本的にはパディング)コピーしました。したがって、各トレーニング画像はテスト画像と同じくらいの大きさです。背景にコピーされたトリミングされた画像の位置は、意図的にランダムに設定されます。しかし、それでもテスト画像では良好な検出はできません。 パフォーマンスを試すには、GIMPを使用してオブジェクトを含むウィンドウを作成し、ウィンドウ外の他の部分を白いピクセルで置き換えます。結果ははるかに良いです。 イメージ内にオブジェクトウィンドウを1つだけ残して他の部分を白くすると、結果は超です。

私の質問はそれらの背後で起こっていることですか?テストイメージの複数のオブジェクトを正常に検出するにはどうすればいいですか?ありがとう。

答えて

0

練習中に複数のオブジェクトインスタンスを含むトレーニングイメージを使用する必要があります。言い換えれば、作物をする必要はありません!特にあなたのイメージはそれほど大きくはありません。

ただし、オブジェクトを識別(ラベル付け)する必要があります。これは、画像内の各オブジェクトの境界ボックスを知ることを意味します。さらに、このデータは元の画像と一緒にtfrecordファイルに組み立てる必要があります。プロセス全体には良いガイドhereがあります。あなたの場合、のすべてのオブジェクトは、 "raccoon"ではなく、ソースイメージ(642x481)にラベル付けされます。あなたのオブジェクトに複数のクラスがある場合は、それらにラベルを付けるようにしてください!

コンテキスト内にオブジェクトが含まれているこれらのイメージを使用してトレーニングすると、ネットワークはコンテキスト内にオブジェクトを持つ類似のイメージを認識するようになります。

関連する問題