序文
こんにちは、データ部ML Product Devチームに所属している酒巻です。 ML Product Devチームは「機械学習を活用した競合優位性のあるプロダクト開発」をミッションとし、プロダクト開発チームと協力して日々開発しています。 今回のブログでは、物体検出タスクで使用していた mmdetection から transformers へ移行した話について共有します。
背景
MLチームでは物体検出のタスクで mmdetection を様々なプロジェクトで活用しています。 しかし、直近1年以上更新のない状態が続いており、セキュリティ面において懸念が出てきました。 そこで mmdetection から別のライブラリへの移行を検討しました。
移行先候補
移行先として以下のようなものを候補として挙げました。
それぞれのレポジトリのスター数や開発状況をまとめると以下のようになります。(2025/9/17 時点)
| ライブラリ | スター数 | 更新頻度 |
|---|---|---|
| transformers | 150k | ![]() |
| Detectron2 | 32.8k | ![]() |
| super-gradients | 4.9k | ![]() |
| Lightning Flash | 1.7k | ![]() |
更新頻度的に super-gradients と Lightning Flash はこの時点で除外しました。 残るは transformers か Detectron2 の2択になります。 上の表だけ見れば transformers が圧倒していそうですが、それぞれのライブラリがカバーするタスクの範囲は異なります。 そのまま比較するのは公平でないと感じたため、詳細を調べていくことにしました。
具体的には以下のような点を比較しました。
- ドキュメントの質、網羅性
- 対応しているタスク
- 対応するデータセット
- オーグメント処理ができるか
- 定量評価できる仕組みがあるか
- 学習コードが用意されているか
- Vertex AI上の実装例があるか
これらを筆者の独断によりまとめると以下のような結果となりました。
| 項目 | Detectron2 | transformers |
|---|---|---|
| 開発が継続されているか | ⭐️⭐️ | ⭐️⭐️⭐️ |
| スター数 | 32.8k | 150k |
| ドキュメントの質、網羅性 | ⭐️⭐️ | ⭐️⭐️⭐️ |
| 対応しているタスク | ⭐️⭐️ | ⭐️⭐️⭐️ |
| 対応するデータセット | ⭐️⭐️ | ⭐️⭐️⭐️ |
| オーグメント処理ができるか | ⭐️⭐️⭐️ | ⭐️ |
| 定量評価できる仕組みがあるか | ⭐️⭐️⭐️ | ⭐️ |
| 学習コードが提供されているか | ⭐️⭐️⭐️ | ⭐️⭐️ |
| Vertex AIの実装例 | ⭐️ | ⭐️⭐️⭐️ |
Detectron2 は mmdetection 同様にデータセットを用意して、少し設定を変更すればオーグメント、学習、推論、評価を手軽に実行できそうな印象でした。これは物体検出のタスクに特化したらライブラリならではのメリットだと思います。 transformers はサポートしているタスクが圧倒的で自然言語に限らず音声、表形式、画像など幅広いドメインに対応しています。しかし Detectron2 でサポートしているオーグメントや評価の部分はライブラリの中では直接サポートしておらず、自前で実装する必要があります。
最終的に、評価やオーグメント処理を自前で実装することは十分に許容できること、物体検出以外のタスクについてもテンプレート化がしやすいことなどを考慮し transformers を採用することにしました。
モデル選択
次に、transformersの中のどのモデルを使用するのかについて検討しました。transformersではさまざまな物体検出モデルが提供されています。 その中で以下のような項目を軸に選定しました。
- ダウンロード数
- 更新タイミング
- 柔軟さ(設定で入力サイズを変更できるか)
その結果、YOLOSとDeformable-DETRの2つを候補に挙げました。 これらのモデルに対して mmdetection (yolox-s) の学習に使用したデータセットと同じものを使用して学習を回し、精度を比較することにしました。以下がその結果です。
| モデル | Precision | Recall | F1score | パラメータサイズ | FLOPs |
|---|---|---|---|---|---|
| yolox-s (mmdetection) | 0.833 | 0.860 | 0.847 | 9.0MB ※1 | 26.8G ※1 |
| yolos-tiny | 0.724 | 0.914 | 0.808 | 5.7MB ※2 | 1.2G ※2 |
| yolos-small | 0.894 | 0.903 | 0.898 | 22.1MB ※2 | 4.5G ※2 |
| yolos-base | 0.876 | 0.935 | 0.905 | 86.4MB ※2 | 17.6G ※2 |
| Deformable-DETR | 0.885 | 0.939 | 0.911 | 40MB ※3 | 173G ※3 |
※1 YOLOX: Exceeding YOLO Series in 2021
※2 You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection
※3 DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION
精度的に yolox (mmdetection) と同等以上であれば十分だったので、計算量なども加味して今回のタスクでは yolos-small を採用することにしました。他のタスクの際には別途精度比較する予定です。
その他
今回のライブラリ移行作業で物体検出タスク用のテンプレートを作ることができました。これによりデータセットを用意さえすれば素早くモデルの学習を回し、MLFlowで結果を確認できるようになりました。 MLFlowはGCP上にサーバーを立てていて、チーム内共有も簡単に行うことができます。
まとめ
今回は物体検出タスクで使用するライブラリを mmdetection から transformers に移行した件について共有しました。 使用するモデルを、mmdetection の yolox-small から transformers の yolos-small に変更しました。 その結果、精度(F1score)を約5%向上しつつ、計算量(FLOPs)を約6分の1に削減できました。
採用募集
アンドパッドでは、「幸せを築く人を、幸せに。」というミッションの実現のため、一緒に働く仲間を大募集しています。 アンドパッドにおけるデータ活用の可能性は無限大です。 AI・MLOps・データサイエンス・データアナリティクス・データエンジニアリング、どの切り口においても取り組むべき事柄がたくさんあります。 様々な技術的課題にチームとして挑戦する中で成長を遂げることができます。 まずはカジュアル面談からでもご応募いただければより詳しい情報をお伝えできますので、是非ご応募いただければと思います。



