Open2
なぜ僕はアノテーションをするのか
きっかけ
- リサーチャーの期待に応えられなかった
- MediaPipe の性能がショボすぎてお遊びレベルなのに MediaPipe で評価された論文が多すぎ
- mmXX 使いにくい、分かりにくい
- Detectron 使いにくい、遅い、複雑過ぎ
- YOLOv9, YOLOX を除く YOLOvXX をリリースした組織が死ぬほど嫌い(実害あり)
- 高性能モデルを自作したいがパブリックデータセットはゴミしか公開されていないと悟りを開いた
- ラベルがつけられていない、あるいは、誤りラベルが付いたデータが多い、むしろ、そんなデータしかこの世には無い
- 一般的にはやらない、とされる領域のアドバイスをいただいた
- 小手先のアーキテクチャ改善でごく微量の性能向上で長年トップカンファに論文が通っているのがどうしても納得できなかった
- トップカンファに通っている論文の評価結果に全く納得感が無かった
- リアル環境の外乱に耐えうるレベルのモデルがどこを探しても無く、どれもお遊びモデルにしか見えなかった
- クリーンルームで収集したデータに対してクリーンルーム内だけで機械的に自動生成したノイズ付与のみでは実フィールドでのリアルなノイズをカバーしきれていない、お前らはフィールドで実際にテストしたのか
- ゴミデータで評価された微量の精度改善がゴミに偏った評価値になっていることに気づいた
- 期待した性能が出ない根本の原因の大部分はアーキテクチャのせいではなくデータセットのせいだ、と悟りを開いた
- 複数の学会で環境ノイズに負けた
方針
- まずは単タスクにおいて論文化されているモデルの性能を遥かに凌駕する性能を持つモデルを錬成する
- リーチできる考えうる出来る限り多くのパブリックデータセットを目視ですべて確認して弱点を洗い出す
- 普通はやらない部分をすべて救済する
- 「量」ではなく「質」のみに特化する
- ただし、「質」を担保し、弱点を全て徹底的にカバーしたうえで必要となる補強を施した結果「量」が必然的に増えることは良しとする
- バリデーションの数値は全て無視する、自作データの品質評価の観点でしか性能値は見ない
- レガシーアーキテクチャを構造非改変でマルチタスク化する
- レガシーアーキテクチャの本来のポテンシャルを引き出す
- データセットの定義の仕方のみでマルチタスク化を実現する
- アーキテクチャ内での特徴の共有を強く意識してラベル定義の検討のみに時間をしっかり使う
- 外乱に絶対負けないモデルを作る
- プライベートの時間のみで全てこなす、外野に絶対文句を言わせない
経過
- 手作業で 1,000,000 ラベルを超えるアノテーション
- まだラベルは大幅に増加中