Mobility Technologies Co.,Ltd.
ECCV2020に採択
TIDE: A General Toolbox for Identifying Object Detection Errors
https://arxiv.org/abs/2008.08115
物体検出のエラーの原因を分析するツールを提案した論文
発表概要
2
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
3.
Mobility Technologies Co.,Ltd.
3
物体検出は、mean Average Precision(mAP)を性能の評価指標としている
mAPはいくつかの弱点があり、最も問題になるのは、複雑性
■ meanは、物体クラスのAPの平均を意味している
■ APは、 ground truth(GT)に対して、特定のIoU閾値(0.5)で、precision-recallカーブの下の面積である
■ さらに、著名なデータセットであるCOCOでは、一つのIoU閾値での評価結果ではなく、0.5:0.95の0.05お
きの10個IoU閾値での評価結果の平均を性能指標としている
物体検出のエラーを分析するのが難しい
■ 各タイプのエラーがmAPにどの程度影響するか測りにくい
背景
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
https://qiita.com/cv_carnavi/items/08e11426e2fac8433fed
4.
Mobility Technologies Co.,Ltd.
4
■ クラス分類問題の場合、正しくクラスを回答すれば、正解
■ 物体検出問題の場合、bbox位置などを考慮する必要
■ foreground IoU閾値: background IoU閾値:
複雑なエラータイプ(6種類)
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
5.
Mobility Technologies Co.,Ltd.
5
評価指標のmAPを改善すればよいのでは?
応用によって、エラータイプの重要性が異なる。
■ がんの検査では、正確にクラスを分類するのががんのbboxの位置の予測より重要
■ ロボットがものをつかむタスクでは、bboxの位置が分類より重要
そのため、各エラータイプがmAPにどのぐらい影響するかを把握することで、タスクに
対して、モデルの選定や改善などに役に立つ
なぜ分析が必要?
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
6.
Mobility Technologies Co.,Ltd.
6
分析ツールとして下記の5つの機能が必要だと考え、TIDEツールを提案した
なぜ新しい分析ツールが必要?
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
7.
Mobility Technologies Co.,Ltd.
7
ほかのツールは、一つのエラーを正解に直したままで、次のエラーを直していくという漸進的な方法で分析
を行う。先に直したエラーは、どうしてもほかのエラーに影響を与えるため、各エラーのcontributionの評価
が正確ではない
※contributionとは、各タイプのエラーを修正した場合、どれだけmAPが改善するか
分類エラーと背景エラーの
評価の順序を入れ替えると、
contributionが変わる
そのため、TIDEは元の結果から
エラータイプごとに独立に
評価する
漸進的な分析方法の弱点
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
8.
Mobility Technologies Co.,Ltd.
8
モデル:
■ two-stage
■ Mask R-CNN:Baseline
■ Hybrid Task Cascades(HTC):強力な性能で、2018 coco challenge で優勝した
■ TridentNet:scale-invarianceを強化した
■ one-stage
■ YOLACT/YOLACT++:リアルタイムモデル
■ RetinaNet:強力な anchor-based
■ Fully Convolutional One-Stage (FCOS):non anchor-based
データセット:COCOをメインで分析を行い、cross-datasetの分析能力も示す
■ COCO:よく使われているベンチマーク
■ Pasval VOC:簡単なデータセット
■ Cityscapes:高解像度で、小さい物体に対する密なアノテーション
■ LVIS:COCOと同じ画像を使い、1200以上のクラスのアノテーション
分析用のモデルとデータセット
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
9.
Mobility Technologies Co.,Ltd.
9
TIDEツールは、下記のよう分析図をプロットできる。
円グラフ:各タイプのエラーの相対的なcontribution(割合)
横棒グラフ:各タイプのエラーの絶対的なcontribution
縦棒グラフ:FPとFNでエラーを分類する場合の絶対的なcontribution
※contributionとは、各タイプのエラーを修正した場合、どれだけmAPが改善するか。
評価出力
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
10.
Mobility Technologies Co.,Ltd.
■ HTCは、Mask R-CNNに対して、分類と位置精度の改善と、背景っぽい物体の検出性能が改
善できると主張
■ HTCの分類(cls)と位置(Loc)のエラーがすべてのモデルの中で最も少ない
■ 検出漏れエラー(Miss)が少なくなり、背景検出エラー(Bkg)が増える
■ TridentNetは、scale-invariance特徴を作ることで、分類と位置精度を改善すると主張
■ TridentNetの分類エラーと位置エラーは、HTCと同じように小さい
10
手法による改善の検証
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
11.
Mobility Technologies Co.,Ltd.
■ RetinaNetはfocal lossの導入で、検出漏れを抑えながら、背景エラーを少なくする
■ RetinaNetの背景エラーが最も少なく、検出漏れエラーもMask R-CNNより少ない
■ FCOSは、non anchor-basedモデルとして、既存のanchor boxを回帰するより、新しいboxを予測
する
■ 目標物体にanchor boxがなければ検出漏れになるようなことがなく、検出漏れが最も少ない
■ NMS閾値が通常の0.5ではなく、0.6なので、重複エラーが最も多い
11
手法による改善の検証
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
12.
Mobility Technologies Co.,Ltd.
■ YOLACTは、リアルタイム検出器で、RetinaNetの改善バージョンがbackboneになっており、
focal lossがない。モデルを加速するための設計を採用したので、RetinaNetと全く異なるエ
ラー分布になっている
■ 位置エラーと検出漏れエラーが著しく高い
■ インスタンスセグメンテーションの性能がmask R-CNNと同じ良好なので、YOLACTは高品質のマス
クに適切であるが、検出器の性能が悪い
12
手法による改善の検証
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
13.
Mobility Technologies Co.,Ltd.
■ 物体のスケールやアスペクト比などの属性の違いによって、性能への影響を細かく比較でき
る
■ 例えば、スケールの違いによる性能への影響の比較(pixel areaでスケールを決める)
■ 0 〜 16^2 as extra small (XS)
■ 16^2 〜 32^2 as small (S)
■ 32^2 〜 96^2 as medium (M)
■ 96^2 〜288^2 as Large (L)
■ 288^2 and above as extra large (XL)
13
物体属性による細かい分析
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
TridentNetは、Mサイズの物体に効果がよい
HTCは、LとXLの物体に効果がよい
14.
Mobility Technologies Co.,Ltd.
■ TIDEは、異なるデータセットにおいて、同じモデルで比較できる
■ Cityscapesは、小さい物体が多く、検出が難しいので、検出漏れエラーが多い
■ LVISは、クラス数が多く、正確に分類することが難いため、分類エラーが多い
■ アノテーションの密度の増加とともに、背景エラーが相対分布でも絶対分布でも減少
■ PASCALとCOCOの多くの背景エラーは、アノテーションがないからと考えられる
14
異なるデータセットの比較
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
15.
Mobility Technologies Co.,Ltd.
■ 多くのconfidenceの高い予測は、実はアノテーションのミス。
■ もっと多いのは曖昧なケースである。例えば、人形を人とアノテーションするか、物体の反射
をアノテーション対象に含めるかなど。
15
回避できないエラー
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
16.
Mobility Technologies Co.,Ltd.
16
簡単に使える
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
github
https://dbolya.github.io/tide/
インストール
pip3 install tidecv
Usage
from tidecv import TIDE, datasets
tide = TIDE()
tide.evaluate(datasets.COCO(), datasets.COCOResult('path/to/your/results/file'), mode=TIDE.BOX)
tide.summarize() # Summarize the results as tables in the console
tide.plot() # Show a summary figure. Specify a folder and it'll output a png to that folder.