実現したいこと
Mask R-CNNで1枚の画像から車を検出をしました.
重複して抽出したものをどのように処理するのが一般的か知りたいです.
前提
- 学会で車を検出する深層学習+画像処理手法の提案をしたい.
- Mask R-CNNは比較手法なので,特別精度を上げたいわけでない.
- Pytorchを使って実装,学習,推論は完了.
- Mask R-CNNがRPN(領域提案ネットワーク)が提案したRoIそれぞれについてマスクを出してくれており,一つの車に対して複数のマスクが出ている.
- 画像には4~18台の車が含まれる.大きく重なっている車もあれば,独立しているものもある.
お聞きしたいこと
以下のように,Confidence Score(確信度)が低いものを削除するのが素直だと思いますが,合っていますでしょうか?
Validationデータで:
- 閾値t=0.5とする.
- 閾値以下のConfidence Scoreのマスクを削除する.
- 残ったマスクは全て抽出されたとして,AP,ARのような指標で評価する.
- 1~3を様々なtについて繰り返す.
Testデータで:
- Validationデータで最適だった閾値tを使ってマスクを選別.
- AP,ARなどで評価する.
他にも以下のようなことが考えられると思います.
- Confidence Scoreでフィルタせず,そのまま使う.
- RPNの提案する領域候補の数を最適化すべき.
Mask R-CNNは比較手法にすぎないので,どこまでやれば専門家から指摘が入らなくなるか,感覚でも良いので教えてほしいです.
よろしくお願い致します.
調査したこと・試したこと(追記)
簡単にConfidence Scoreの閾値を変化させて実験しました.
- Confidence Scoreで閾値(t=0.9)で選別すると,しなかったときに比べて,
- 抽出したマスクの精度が向上する
- 未抽出の車が増える
- Confidence Scoreで閾値(t=0.2)で選別すると,t=0.5に比べて,
- 抽出したマスクの精度が低下する
- 未抽出の車は減る
やはり閾値を変化させることによって,精度は変化しそうです.最適化によってAP,ARのバランスが最適になる値を見つける必要があるのでしょうか.
また調査もしたのですが,
- Mask R-CNNの原論文では,RPNで12,000個を提案し,IoUが0.7以上のものを1つにし,残ったものをさらにNMSで2,000個に減らしている.
- 他のブログとかも20ほど目を通したのですが,抽出結果をどのように選別するのかに言及しているものは見つからず.
という現状です.なにとぞ,回答よろしくお願い致します…!!!
あなたの回答
tips
プレビュー