
アノテーション精度向上施策
本資料では、YOLO系物体認識を用いて小物体・微細対象を高精度に認識させることを目的として、 入力画像、アノテーション、タイル分割、学習時および推論時の画像解像度について整理する。
小物体認識では、元画像の解像度だけでなく、 YOLOへ入力された時点で対象物が何ピクセル残っているかが重要である。 そのため、アノテーション作成時から高解像度原画像を維持し、 学習時・推論時ともに同等条件のタイル分割を行うことが望ましい。
1. 小物体認識における基本的な考え方
高解像度画像を使用していても、YOLO入力時に画像全体を低解像度へ縮小すると、 小物体の画素情報が失われる。
例えば、3840×2160ピクセルの画像上に幅20ピクセルの対象物が存在する場合、 画像全体を幅640ピクセルへ縮小すると、対象物は約3.3ピクセルまで縮小される。
20 × (640 / 3840) ≒ 3.3 pixel
2. アノテーション精度向上の基本方針
アノテーション精度を向上させるためには、 単にBBoxを丁寧に描くことだけでなく、 学習・推論時に対象物の情報が保持される画像構造を作る必要がある。
- 原画像は可能な限り高解像度で保持する
- 小物体を含む画像を全体縮小しない
- 高解像度画像を一定サイズのタイルに分割する
- タイル単位でアノテーションを作成・変換する
- 学習時と推論時で同じタイルサイズを使用する
- タイル境界にはオーバーラップを設定する
- 推論後に元画像座標へBBoxを復元する
3. 推奨タイルサイズ
小物体認識を重視する場合、 640~1280ピクセルという広い範囲で検討するのではなく、 1280付近に候補を絞って比較評価する。
| パターン | タイルサイズ | 推奨Overlap | 特徴 |
|---|---|---|---|
| A | 1088 × 1088 | 160~224 px | 小物体優先。対象物を比較的大きく保持できる。 タイル枚数はやや増える。 |
| B | 1152 × 1152 | 160~256 px | 小物体認識、周辺情報、処理負荷のバランスが良い。 基準値として推奨。 |
| C | 1280 × 1280 | 192~256 px | 周辺文脈を多く保持できる。 GPU使用量、学習時間、推論時間は増加する。 |
最初の学習条件として1152×1152を使用し、 1088×1088および1280×1280と比較評価することを推奨する。
4. 32の倍数を採用する理由
YOLO系ネットワークでは複数段階のダウンサンプリングが行われるため、 入力サイズは32の倍数とすることが扱いやすい。
| サイズ | 32で除算 |
|---|---|
| 1088 | 34 |
| 1152 | 36 |
| 1280 | 40 |
いずれも32の倍数となるため、 YOLO系ネットワークの入力サイズとして利用しやすい。
5. タイル分割を行う目的
タイル分割の最大の目的は、 小物体の実ピクセル数を減らさずにYOLOへ入力することである。
画像全体を縮小した場合
この方法では、小物体の輪郭・形状・色・テクスチャ等の情報が大幅に失われる。
高解像度画像をタイル分割した場合
この方式であれば、元画像に存在する小物体の情報をほぼ維持した状態で 学習・推論が可能となる。
6. 学習時だけタイル分割しても不十分
学習時に高解像度タイルを使用していても、 推論時に元画像全体を640×640等へ縮小してしまう場合、 タイル学習の効果は大幅に低下する。
推奨構成は以下となる。
7. オーバーラップの必要性
タイルを完全に分離すると、 タイル境界に存在する物体が途中で切断される可能性がある。
そのため、隣接タイル同士に一定量の重なりを持たせる。
| タイルサイズ | 推奨Overlap | Overlap率の目安 |
|---|---|---|
| 1088 | 160~224 px | 約15~21% |
| 1152 | 192 px前後 | 約17% |
| 1280 | 192~256 px | 約15~20% |
8. アノテーション時の具体的な注意点
8.1 BBoxを過度に大きくしない
小物体の場合、BBoxの数ピクセルのズレが相対的に大きな誤差となる。 対象物の外縁に沿って、可能な限り一定基準で矩形を設定する。
8.2 対象物の一部だけを囲まない
同一クラスで「全体を囲む例」と「一部分だけを囲む例」が混在すると、 学習対象の定義が不安定になる。
8.3 クラス定義を明確化する
似た物体についてアノテーターごとに判断が分かれる場合、 学習モデルより先にクラス定義の不整合が精度低下を引き起こす。
クラスごとに最低限、以下を文章化する。
- 何を対象物とするか
- 何を対象外とするか
- 遮蔽時にアノテーションするか
- 切断された対象をアノテーションするか
- 最小サイズを何ピクセルとするか
- 見切れた対象を含めるか
8.4 極端に小さいBBoxを確認する
アノテーションデータ作成後には、 BBoxサイズの統計を必ず確認する。
特に以下を確認する。
- 幅16pixel未満のBBox数
- 高さ16pixel未満のBBox数
- 幅32pixel未満のBBox数
- クラス別平均BBoxサイズ
- クラス別BBox面積分布
9. 小物体サイズの目標
一律の絶対基準ではないが、 YOLO入力時の対象サイズとして以下を一つの目安とする。
| 入力画像上の対象サイズ | 評価 |
|---|---|
| 3~5 px程度 | 非常に厳しい |
| 6~10 px程度 | 検出可能性はあるが不安定 |
| 12~16 px程度 | 最低限確保したい範囲 |
| 20~30 px以上 | 小物体認識として望ましい |
| 32 px以上 | 比較的安定した特徴抽出が期待できる |
10. 推奨する実験条件
最適なタイルサイズは対象物のサイズ・GPU・撮影距離・背景条件によって変化するため、 3条件で比較実験を行う。
| 実験 | 入力サイズ | 目的 |
|---|---|---|
| Experiment A | 1088 × 1088 | 小物体優先 |
| Experiment B | 1152 × 1152 | 基準条件 |
| Experiment C | 1280 × 1280 | 周辺情報・文脈重視 |
タイルサイズ以外の条件は可能な限り固定し、 Precision、Recall、mAPだけでなく、 小物体だけを抽出した検出率を別途評価する。
11. 推奨ワークフロー
12. まとめ
高精度なBBoxを作成しても、YOLO入力時に対象物が数ピクセルまで縮小されれば、 学習・推論精度には限界がある。
したがって、YOLOv9MITによる小物体認識では、 以下を標準運用とすることを推奨する。
- 高解像度原画像を保持する
- 原画像全体を過度に縮小しない
- 1088、1152、1280の3条件で比較する
- 基本タイルサイズは1152×1152とする
- Overlapは約15~20%とする
- 学習時・推論時で同一条件を用いる
- BBoxサイズ分布を定量的に管理する
- 小物体だけのPrecision・Recallを個別評価する
これにより、単純なアノテーション作業品質だけではなく、 撮影・データセット作成・学習・推論までを含めた 一貫した小物体認識精度向上が可能となる。ちなみに株式会社ビー・ナレッジ・デザインのツールではこの手順は自動化実装されている。
No responses yet