Mobility Technologies Co., Ltd.
物体検出エラーの分析ツール TIDE
2021/11/18
AI技術開発部
AI研究開発第二グループ
劉国慶
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
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
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
Mobility Technologies Co., Ltd.
5
評価指標のmAPを改善すればよいのでは?  
応用によって、エラータイプの重要性が異なる。
■ がんの検査では、正確にクラスを分類するのががんのbboxの位置の予測より重要
■ ロボットがものをつかむタスクでは、bboxの位置が分類より重要
そのため、各エラータイプがmAPにどのぐらい影響するかを把握することで、タスクに
対して、モデルの選定や改善などに役に立つ
なぜ分析が必要?
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
Mobility Technologies Co., Ltd.
6
分析ツールとして下記の5つの機能が必要だと考え、TIDEツールを提案した
なぜ新しい分析ツールが必要?
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
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
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
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
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
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
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
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の物体に効果がよい
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
Mobility Technologies Co., Ltd.
■ 多くのconfidenceの高い予測は、実はアノテーションのミス。
■ もっと多いのは曖昧なケースである。例えば、人形を人とアノテーションするか、物体の反射
をアノテーション対象に含めるかなど。
15
回避できないエラー
Daniel Bolya et al.. TIDE: A General Toolbox for Identifying Object Detection Errors. in ECCV2020
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.
文章·画像等の内容の無断転載及び複製等の行為はご遠慮ください。
Mobility Technologies Co., Ltd.
17

物体検出エラーの分析ツール TIDE

  • 1.
    Mobility Technologies Co.,Ltd. 物体検出エラーの分析ツール TIDE 2021/11/18 AI技術開発部 AI研究開発第二グループ 劉国慶
  • 2.
    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.
  • 17.