小さい物体を検出するための手法SAHIの効果を実験した論文を解説!

小さい物体を検出するための手法SAHIの効果を実験した論文を解説!

はじめに
 2022年5月9日にトルコのアンカラ大学の研究チームが、小さい物体をより精度よく検出する手法「SAHI」の効果を実験した論文について発表しました。なお同手法は、同大学の研究チームによって開発された手法です。

●論文
Evaluation of YOLO Models with Sliced Inference for Small Object Detection
https://arxiv.org/abs/2203.04799

概要

 物体検出の精度は近年大きく向上しましたが、小さい物体の検出精度が実際に利用する上では実用段階に到達していないということが指摘されています。
 今回の論文は、小さい物体の検出精度を向上させるための手法であるSAHIをYOLO系(YOLOv5 と YOLOX)の物体検出モデルに対して用いたとき、精度向上を確認した論文です。
 
・実験に用いたデータセット
 VisDrone2019Det :物体の大きさが画像の大きさと比べて小さいことが特徴。

・結果
 SAHIおよび効果的に利用するための1枚の画像を分割させた学習データで学習させたYOLOv5-Large model が最もよい精度 48.8 を記録した。
 小さい物体を検出する上では、SAHIおよび画像分割した学習データの利用が効果的であるといえる。

詳細

実験背景

 YOLOは、COCOなどのベンチマークデータセットでよい成果をあげています。一方で、現実世界の応用では問題を抱えており、特に小さな物体の検出精度が低下することが見られます。(小さな物体の検出が重要となる例として、空中物体検出、監視アプリケーション、および農業アプリケーションなどがあげられます。)
 今回、SAHI(slicing aided inference:画像を分割して推論することで精度をあげる手法)を用いて小さい物体の検出精度が向上するかを検討しました。

※SAHIについては、「SLICING AIDED HYPER INFERENCE AND FINE-TUNING FOR SMALL OBJECT DETECTION」(https://arxiv.org/pdf/2202.06934.pdf) において議論されています。

VisDrone2019Detデータセット

 実験では、VisDrone2019Detデータセットが用いられました。VisDroneデータセットは、より小さな物体を検出することを目的としたデータセットです。データセット内には、「歩行者」、「人」、「車」、「バン」、「バス」、「トラック」、「モーター」、「自転車」、「日よけ三輪車」、「三輪車」の10クラスがあります。物体が密集した箇所に対しても、適切に検出することが求められます。

・データの中身

学習データ:6471画像
検証データ:548画像
テストデータ:1580画像
test-devデータ:1610画像(モデルの評価に使用)
(合計10,209画像)

データ内のクラス分布

データセット内の画像例

実験

利用するモデル

 すべてのモデルがCOCOで事前学習ずみのものを利用しています。SAHI(slicing aided inference)は、SAHIレポジトリから利用されています。

・YOLOv5(公式Gitのレポジトリから作成)
 YOLOv5-small, YOLOv5-large(学習率は、0.01)

・YOLOX(MMDetectionレポジトリから作成)
 YOLOX-small, YOLOX-large(学習率は、0.001)

実験の段階

実験は以下の4段階で行われました。

1.通常の画像サイズで学習し、通常の形式でテストする
2.通常の画像サイズで学習し、SAHIを用いてテストする
3.分割した画像サイズで学習し、通常の形式でテストする
4.分割した画像サイズで学習し、SAHIを用いてテストする

データセットへの工夫

 実験1と2のモデルは、解像度1088 x 1088の元のVisDrone画像で学習されます。一方、実験3と4のモデルは、元のVisDrone画像のクロップされた部分で学習されました。クロップは640×640の画像でオーバーラップなしで行われました。モデルを学習させる際に、サイズを1088×1088に変更します。

※注意事項
 なお、クロップされたデータセットを作成する場合、クロップ間で0のオーバーラップを使用しても、一部のクロップは自然に非常に大きなオーバーラップを持つ可能性があります。 これは、画像の形状によるものとされています。 これにより、ほぼ重複する例が類似しているため、データセットの品質が低下することが指摘されています。この問題を回避するには、クロップした画像の幅、高さ、および重なりの比率を慎重に選択することが実験チームより提案されています。
 考慮すべきもう1つのポイントとして、一部のデータセットに「Ignored」などのクラスが含まれていることがあげられています。(このクラスは通常、オブジェクトが非常に小さく、ほとんどの場合ラベルがない遠方の領域を表します。)クロップされたデータセットが作成されると、これらの領域は大きく表示されますが、学習データセットにラベルがないケースがあります。この領域が大きい場合、学習に悪影響を与えることが懸念されています。

結果

 SAHIが推論精度の向上を果たしました。またSAHIを利用するうえでは、基本的に切り抜いた画像を学習データに利用したほうがよいことも明らかになりました。
 最もよい精度は、YOLOv5-Large を切り抜いた画像で学習させ、SHAIで推論させた時でAP50のスコアが48.8になりました。

物体サイズ別の検出精度
 また物体のサイズが小さいときにより効果的であることが明らかになりました。特にモデルサイズが小さい場合の方が、よりSAHIの効果が大きいようにみられます。