---
title: 第5回 Data-CentricAI勉強会_公開データセットの再アノテーションで精度向上
tags:  #onnx #tensorflowlite #annotation  
author: [Katsuya Hyodo](https://convert.docswell.com/user/PINTO0309)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/57GXWZN1EL.jpg?width=480
description: ・再アノテーションをするモチベーション（mAP 22.0低すぎ？ 論文の指標の２分の１） ・精度向上の結果 ・データクレンジングの方針 ・対象に選定した公開データセット ・クレンジング経過ごとの学習の進み方（Lossの上下動の傾向） ・クレンジングステージごとの精度 ・トレーニングデータとバリデーションデータを同時にクレンジングして毎回Split ・官能評価による性能評価
published: December 19, 23
canonical: https://convert.docswell.com/s/PINTO0309/KVVEWQ-2023-12-19-131036
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/57GXWZN1EL.jpg)

公開データセットの
再アノテーションで精度向上
株式会社サイバーエージェント
AI Lab
Agent Development Team
Research Engineer
兵頭 亮哉


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4EQ83LQNJP.jpg)

自己紹介
兵頭 亮哉
Hyodo Katsuya
株式会社サイバーエージェント
AI事業本部 AI Lab
Agent Development Team
Research Engineer
https://www.cyberagent.co.jp/techinfo/info/detail/id=23823
マルチモーダル音声対話プラットフォームの開発
@PINTO03091
@PINTO0309
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/KJ421DN3E1.jpg)

再アノテーションをするモチベーション
● 精度が高い「人・頭・手」同時検出モデルが欲しい
● 公開されているモデルの精度がそれほど高くない
自分で作る
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LE1MGZ5Z7G.jpg)

精度向上の結果（１）
●
●
●
●
Core i9 CPU推論 Gold-YOLO-Nano
Blur耐性が大幅に向上
ハレーション耐性が向上
低照度耐性が向上
遠距離・中距離・近距離
の検出力が向上
@misc{wang2023goldyolo,
title={Gold-YOLO: Eﬃcient Object Detector via Gather-and-Distribute Mechanism},
author={Chengcheng Wang and Wei He and Ying Nie and Jianyuan Guo and Chuanjian Liu and
Kai Han and Yunhe Wang},
year={2023},
eprint={2309.11331},
archivePreﬁx={arXiv},
primaryClass={cs.CV}
}
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GEW3K956E2.jpg)

精度向上の結果（２）
Gold-YOLO-Nano
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/47ZVZ9NRE3.jpg)

精度向上の結果（３）
!?
Gold-YOLO-Nano
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/YJ65ZK817V.jpg)

データクレンジングの方針
● 仮説
○ モデルの構造設計上の性能はかなり高い
○ 人間と違って忖度を一切せず愚直に学ぶ
○ 間違った答えをそのまま正解として学ぶ
○ モデルは賢いので嘘を教えると混乱する
○ 性能が高いほど顕著に傾向が出る
○ データを整備すればレガシーなモデルでも性能が
出る
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GJ5YWP9LJ4.jpg)

データクレンジングの方針
自分ひとりで全データをクレンジング
エッジケースの判断基準を統一
マージンのとり方の基準を統一
国籍や文化のようなコンテキストを理解している前提でしか目視判
断できないオブジェクトは除外する
● モデルの性能を思い込みで過小評価しない
○ 距離（サイズ）
○ 明暗
○ ノイズ
● １ミリも妥協しない
●
●
●
●
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/9E2GQ623ER.jpg)

9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/D7YVW9Y87M.jpg)

対象に選定した公開データセット
●
●
●
●
データが多過ぎず
データが少な過ぎず
GitHubにトレーニング後のモデルが公開されている
サンプルコードが豊富ですぐに流用できるもの
Oxford-Hand（COCO-Hand）約 4,300枚
https://www3.cs.stonybrook.edu/~cvl/projects/hand_det_attention/
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/VENM9LP9J8.jpg)

Oxford-Hand の状態と検証方針
教師データもバリデーションデータもかなり不正確
元データのアノテーションを全部捨てる
ただの画像セットに手作業でアノテーションを実施
クレンジング300枚から400枚ごとにトレーニング
をしてmAPがどのように変動するかをウォッチ
● 引用したデータセットをそのまま使用したトレーニ
ング結果とのmAP比較
●
●
●
●
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/Y79N243373.jpg)

Oxford-Hand の状態と検証方針
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/G78K5QMLJD.jpg)

トレーニングデータのSplit
● トレーニングデータとバリデーションデータを同時
にクレンジングして学習試行ごとに毎回Split
● 作業進捗ごとにゴミデータとクリーンデータの混合
比率が変わる
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/L7LZYX3QER.jpg)

クレンジング経過ごとの学習の進み方
● 0%〜50%
○ 大幅にmAPが低下
○ クレンジングが進捗するたびに低下し続ける
○ Training Lossの上下動が激しい
● 51%〜100%
○ 大幅にmAPが向上
○ クレンジングが進捗するたびに向上し続ける
○ Training Lossの上下動が少しづつ安定
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/4EMVNLMKEW.jpg)

クレンジング経過ごとの最終精度（mAP@.5:.95 のみ）
●
●
●
●
●
●
●
●
●
Pure-COCO-Hand
: mAP 22.4
自撮り追加(近距離補強) : mAP 25.4
25%クレンジング
: mAP 26.3
50%クレンジング
: mAP 25.9
65%クレンジング
: mAP 29.9
75%クレンジング
: mAP 31.6
85%クレンジング
: mAP 33.9
90%クレンジング
: mAP 36.5
100%クレンジング
：mAP 41.7
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/PER2DKV679.jpg)

最終mAPが大きく改善した要因の考察
1. トレーニングデータ改善による数値精度向上
2. バリデーションデータ改善による数値精度向上
● どちらが強く影響しているかは計測していない
● おそらく、バリデーションデータが改善したことに
よるmAP改善効果のほうが大きい？
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/P7XD1LZDJX.jpg)

オートアノテーション基点のクレンジング
● 教師データもバリデーションデータもある程度綺麗
● クレンジングによる数値上の精度向上幅が小さい
● クレンジング前よりクレンジング後のほうが数値上
の精度が大幅に低下する（mAP60.0 → mAP 41.0）
● 難易度激低な特徴が選別され過ぎている
● クレンジング終盤の70%〜80%まではひたすら数値
精度が低下する
● クレンジング80%を超えるとmAPが上昇に転じる
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/37KX2L8DJD.jpg)

クレンジングステージごとの精度 ２２％
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/LJ35432P75.jpg)

クレンジングステージごとの精度 ３７％
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/8JDDQ4Z3JG.jpg)

クレンジングステージごとの精度 ４４％
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/VEPXLMDPJ8.jpg)

クレンジングステージごとの精度 ６４％
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/27VLQ91VEQ.jpg)

クレンジングステージごとの精度 １００％
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/5JGXWZ217L.jpg)

総クレンジング・アノテーション量
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/47Q83LPNEP.jpg)

アノテーションに掛けた時間とコスト
● １５０時間以上
● 期間２ヶ月
● CVAT WEB ◯千円
※オートアノテーション費用
ヒジと腰を負傷したことを除いて
実質無料
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/KE421DY371.jpg)

ごく少量の弱点補強データの追加
● COCO-Hand 約4,300枚に弱点補強用データ 約200
枚を追加して性能を上げたい
● 4,500枚に対して200枚は 4.4% のボリューム（影
響度）しか無い
● train:val:test=8:1:1 の比率で合計4,500枚を一括
Splitすると補強データがtrainとvalに含まれる量が
偏って極めて少量になってしまうことがある
● バリデーション結果がとても不安定になる
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/L71MGZ6ZJG.jpg)

ごく少量の弱点補強データのSplit
● COCO-Hand の Split 作業と 弱点補強用データの
Split 作業は別々に実施
● 別々に Split したあとで train, val, test をひとつに
マージ
● Split時の確率による偏りをできるだけ除く
● 8:1:1で補強データが確実に分割される
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/G7W3K9W672.jpg)

官能評価による性能評価（１）
クレンジング前
クレンジング後
※ 全ての後処理（しきい値判定含む）をモデルにマージして end-to-end 化して比較
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/4JZVZ95R73.jpg)

官能評価による性能評価（２）
Gold-YOLO
Cited:
https://github.com/huawei-noah/Eﬃcient-Computing/tree/mast
er/Detection/Gold-YOLO#benchmark
YOLOX
Cited:
https://github.com/Megvii-BaseDetection/YOLOX#benchmark
28


# Page. 29

![Page Image](https://bcdn.docswell.com/page/YE65ZK91JV.jpg)

官能評価による性能評価（２）
Gold-YOLO-Nano 精度
mAP 44.3
YOLOX-Nano 精度
mAP 40.9
※ 両モデル 640x640 の入力解像度でトレーニングとバリデーションを行いました。
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/GE5YWPNLE4.jpg)

官能評価による性能評価（２）
Gold-YOLO-N 20.0MB CPU
YOLOX-Nano 3.9MB CPU
30


# Page. 31

![Page Image](https://bcdn.docswell.com/page/972GQ6537R.jpg)

官能評価による性能評価（３）
YOLOX-Nano 3.9MB
160x128
RaspberryPi4 CPU
tﬂite_runtime
v2.15.0
31


# Page. 32

![Page Image](https://bcdn.docswell.com/page/DJYVW9K8JM.jpg)

官能評価による性能評価（４）
YOLOX-Nano 3.9MB
160x128
RaspberryPi Zero 2 W CPU
tﬂite_runtime
v2.15.0
INT8量子化
81ms/推論
約 12.3 FPS
32


# Page. 33

![Page Image](https://bcdn.docswell.com/page/V7NM9LR9E8.jpg)

すべてを終えたあとの所感
1. 公開データセットはかなり良くない
2. データを限界まで整えればモデルの真のポテンシャルを
引き出せる
3. 精度が劇的に向上 → 解像度削減で計算量を大幅に減らせ
る
4. ライトユースの場合は無理をして複雑なトリックが入っ
たSOTAモデルを使うメリットがあまり無くなる
5. 論文のベンチマークは過剰に高精度な数値で表現されて
いる
33


# Page. 34

![Page Image](https://bcdn.docswell.com/page/YJ9N24M3J3.jpg)

READMEやデモコードや他リソース
1. https://github.com/PINTO0309/PINTO_model_zoo/
tree/main/425_Gold-YOLO-Body-Head-Hand
2. https://github.com/PINTO0309/PINTO_model_zoo/
tree/main/426_YOLOX-Body-Head-Hand
34


# Page. 35

![Page Image](https://bcdn.docswell.com/page/GJ8K5QLLED.jpg)

おわりに
●
エンジニアも研究者も募集中です。
エンジニア向け
研究者向け
35


