ADOC TECH BLOG
2025-04-25
- ADOC インターナショナル
- ブログ
- YOLO + SAM でアノテーション作業を効率化!AI研究現場での実践レポート
YOLO + SAM でアノテーション作業を効率化!AI研究現場での実践レポート
はじめに
AIに関する技術やプロダクトの調査や検証、ソリューション開発などに携わっているXYです。
今回はそのAIの調査や検証の内容について、一部ですがご紹介したいと思います。
PAGE INDEX
ここ数年で、AI(人工知能)は私たちの生活やビジネスに急速に浸透し始めています。自動運転、音声アシスタント、レコメンド機能、チャットボットなど、さまざまな分野で活用が進み、その応用範囲は日々広がっています。
こうしたAI技術の多くは、コンピューターに「これはこういうものだ」と教える作業、いわゆる「アノテーション(教師データへのラベル付け)」によって成り立っています。
アノテーションは、音声認識、自然言語処理、画像認識など、あらゆる分野で必要とされる工程です。たとえば、音声データに「この発音は『こんにちは』」とラベルをつけたり、テキストに「この文はポジティブな感情を含んでいる」といった情報を付与したりします。
さまざまなAI技術の中でも特に私たちが注目しているのが、「画像や映像を理解する」分野、いわゆる画像認識AIです。
工場での不良品検出、医療画像の診断支援、防犯カメラの自動監視など、さまざまな現場で導入が進んでいます。この分野では、物体検出(画像内の対象物を見つけて枠で囲む)やセグメンテーション(対象物の輪郭をピクセル単位で特定する)といった技術が用いられます。
それら技術を学習させるには、画像内の対象物を手作業で囲み「これは○○です」と正解を教える必要があり、この工程こそがアノテーションです。精度の高いAIを作るには、このアノテーション作業の質と量が極めて重要になります。しかし、アノテーションは非常に手間がかかり、人手不足の原因にもなることから、多くの現場で課題となっています。
そこで今回、YOLO+SAMによる自動アノテーション機能を活用する実験を行い、実際に効率がどれほど向上するのかを検証しました。
本記事では、その実験内容と成果について詳しく紹介します。
使用技術の紹介:YOLO+SAMによる自動アノテーション機能
今回使用したのは、YOLOシリーズの最新版(YOLOv8以降)に組み込まれている自動アノテーション機能と、Meta社が開発したSegment Anything Model(SAM)です。
- YOLO(You Only Look Once)
一度の画像処理で複数の物体検出・分類が可能な高速な物体検出アルゴリズム。YOLOv8以降では、検出だけでなくセグメンテーションや分類にも対応。 - SAM(Segment Anything Model)
Meta社が2023年に発表した、あらゆる物体をゼロショットでセグメンテーションできる汎用モデル。任意の画像内のオブジェクトを高精度で領域分割可能。
YOLO+SAMによる自動アノテーションでは、ユーザーの手を借りずに画像中の物体領域を自動で認識・分割し、ラベル付きアノテーションデータを生成できます。
実験の目的と環境
今回行った実験の目的は、以下の通りです:
- 目的
手作業でのアノテーションに比べて、YOLO + SAM による自動アノテーションがどれほど効率的にアノテーションデータを生成できるかを評価すること。 - 対象
自動車のナンバープレートを対象とした画像10枚(実験環境に合わせた小規模な検証) - 使用環境
OS: Ubuntu 24.04.1 LTS
CPU: Intel Core i5-9400F
GPU: NVIDIA GeForce RTX 2060(6GB VRAM)
メモリ: 16GB
実施手順
実際の自動アノテーション作業は、以下のような手順で進めました:
- YOLO+SAMによる自動アノテーション環境をセットアップ
- 10枚の画像で、自動アノテーションを実行
- 出力されたセグメンテーション領域を人が目視で確認
- 必要に応じて微修正(ポリゴンの調整など)
- 正式なアノテーションデータとして保存(YOLO Segmentation Format)
このように、ユーザーの操作は最小限にとどまり、多くの作業が自動化されているのが特徴です。また、自動で出力されたデータは、YOLOの学習にそのまま利用できる形式(クラスIDと正規化座標を含む .txt)で保存されるため、学習データへの転用もスムーズです。
出力結果
実際に使用した画像データのうち1枚を例に、出力した結果を紹介します。
使用画像ファイル(.png):
出典:国土交通省ウェブサイト

出力されたアノテーション結果(.txt):
7 0.37259429693222046 0.7566666603088379 0.3718244731426239 0.757777750492096 0.3679753541946411 0.757777750492096 0.36720553040504456 0.7588889002799988 0.366435706615448 0.7588889002799988 0.3641262650489807 0.7622222304344177 0.3641262650489807 0.7633333206176758 0.36335644125938416 0.7644444704055786 0.36335644125938416 0.7666666507720947 0.3625866174697876 0.7677778005599976 0.3625866174697876 …(省略)
7 0.7043879628181458 0.324444442987442 0.7036181688308716 0.32555556297302246 0.7020785212516785 0.32555556297302246 0.7013087272644043 0.3266666531562805 0.7005388736724854 0.3266666531562805 0.6997690796852112 0.32777777314186096 0.6989992260932922 0.32777777314186096 0.6974595785140991 0.33000001311302185 0.6974595785140991 0.33222222328186035 0.695919930934906 0.33444443345069885 0.695919930934906 …(省略)
7 0.031562741845846176 0.7566666603088379 0.03079291805624962 0.757777750492096 0.029253272339701653 0.757777750492096 0.028483448550105095 0.7588889002799988 0.027713626623153687 0.7588889002799988 0.02694380283355713 0.7599999904632568 0.02694380283355713 0.7611111402511597 0.024634333327412605 0.7644444704055786 0.024634333327412605 0.9177777767181396 0.025404157117009163 0.9188888669013977 …(省略)
7 0.032332561910152435 0.32555556297302246 0.031562741845846176 0.3266666531562805 0.029253272339701653 0.3266666531562805 0.027713626623153687 0.3288888931274414 0.02694380283355713 0.3288888931274414 0.02694380283355713 0.33000001311302185 0.025404157117009163 0.33222222328186035 0.025404157117009163 0.33444443345069885 0.024634333327412605 0.3355555534362793 0.024634333327412605 0.4877777695655823 …(省略)
7 0.37490376830101013 0.32555556297302246 0.3741339445114136 0.3266666531562805 0.36874517798423767 0.3266666531562805 0.3679753541946411 0.32777777314186096 0.366435706615448 0.32777777314186096 0.3648960590362549 0.33000001311302185 0.3648960590362549 0.3311111032962799 0.3641262650489807 0.33222222328186035 0.3641262650489807 0.3333333432674408 0.36335644125938416 0.33444443345069885 0.36335644125938416 …(省略)
この出力YOLOセグメンテーション形式のフォーマットで、
各行は1つの物体(この場合はナンバープレート)を示しており、先頭はクラスID(ここでは「7」)、その後に続くのは正規化(0〜1)のポリゴン座標(x1 y1 x2 y2 …)です。
アノテーション可視化画像:
上記のアノテーション情報をもとに、元画像上にポリゴンを描画した画像を作成しました。
※下記画像ファイルは、本実験により出典元画像(前出)は加工されています。

ポリゴンは、ナンバープレートの縁を高精度に囲っており、手動で描くのと遜色ないレベルで出力されています。
アノテーション作業の比較
今回の実験では、実際に10枚の画像に対して手動アノテーションを行いました。各画像にはおおよそ10個のナンバープレート関連オブジェクトが含まれており、それぞれのアノテーションに平均して約5分を要しました。つまり、全体で約50分かかる結果となりました。
一方、同じ画像セットに対してYOLO+SAMを用いた自動アノテーションを実行したところ、1枚あたりの処理時間はおよそ30秒で、全体で約5分という大幅な時間短縮を実現できました。
この結果からも明らかなように、作業時間は約10分の1に削減され、アノテーション工程の大幅な効率化が確認されました。特にセグメンテーションが複雑な対象に対しても、SAMが的確に輪郭を捉えるため、後の修正にかかる手間も最小限で済みます。
項目 | 手動アノテーション | YOLO+SAMによる 自動アノテーション |
作業時間(1画像) | 約5分 | 数秒 |
総作業時間(10画像) | 約50分 | 5分未満 |
作業者の負担 | 高い (繰り返し操作が多い) |
低い (ほぼ自動) |
精度 | 高い (人が確認) |
ややバラつきあり (微修正が必要) |
まとめ
アノテーション作業はAI開発の基盤とも言える重要な工程ですが、これまで多くの労力がかかる作業でした。今回のYOLO + SAM の自動アノテーション機能の導入により、実用的な精度を保ちながらも、作業効率を大きく改善することができました。
今後もこのようなAI活用の現場知見やツールの活用事例を発信し、AI技術の普及と実装を後押ししていきたいと考えています。