YOLOv3を用いて​学習させた検出器で、​馬の顔領域を検出した​いと考えています。一​つの画像から1頭のみ​を検出したく、検出さ​れたバウンディングボ​ックスのうち、最も大​きなものだけを表示さ​せる方法を知りたいの​ですがどなたかご教授​頂けないでしょうか。

17 ビュー (過去 30 日間)
隆人 山田
隆人 山田 2022 年 1 月 7 日
コメント済み: 隆人 山田 2022 年 1 月 7 日
この画像から、手前の2頭が検出されてしまいます。手前の茶色馬だけを検出する方法を教えていただきたいです。

採用された回答

Shunichi Kusano
Shunichi Kusano 2022 年 1 月 7 日
バウンディングボックスには幅と高さの情報が入っています。また、バウンディングボックスと一緒にscoreという検出の信頼性みたいな値も出てきます。
[bbox,score,label] = detect(yolonet,img);
最も大きいという基準で選択したいなら
area = bbox(:,3) .* bbox(:,4);
[~,Idx] = max(area);
bbox1 = bbox(Idx,:);
最も信頼性が高い、なら
[~,Idx] = max(score);
bbox1 = bbox(Idx,:);
といった感じで画像から一つだけ取り出すことができます。
  5 件のコメント
隆人 山田
隆人 山田 2022 年 1 月 7 日
出来ました!!
本当にありがとうございました
また機会があればよろしくお願いします!!

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!