物体検出の世界でリアルタイム処理を可能にし、様々な業界で活躍するYOLOについて解説したいとおもいます。

目次[]
YOLOとは
「YOLO」とは、リアルタイム物体検出において最も多く用いられている画像認識アルゴリズムの一つであり、オープンソースで公開されています。この技術は、画像に映っている物体を迅速かつ精密に検出する能力を有しています。
YOLOは「You Only Look Once」の略で、AIを活用した画像認識および動画認識で最も幅広く用いられており、物体検出分野では定番のアルゴリズムです。
活用されている場面
- 小売業界:商品の監視や在庫管理
- 交通システム:車両や歩行者の検出
- ヘルスケア分野:医療画像の解析
- 農業:作物の健康状態の監視
YOLOのモデル構造
物体の種類だけではなく、その物体がどこに位置しているかも推定します。1つのモデルで物体検知や分類をする点がYOLOの特徴です。

①S*Sのグリッドセル(grid cell)に分割
YOLOはR-CNNのように候補領域検出を行わない代わりに、入力画像をS*Sのグリッドセルに分割します。(なお、画像ではS=7に設定されています。)物体の中心がグリッドセルにある場合、そのグリッドセルがその物体を検出するように学習していきます。
②バウンディングボックスとクラス確率の予測
各グリッドセルについて、予測するバウンディングボックスの要素として5つの値を求めます。これらの値は、バウンディングボックスの中心座標(x, y)、幅(w)、高さ(h)、および物体が存在する確率を表す信頼度(F)です。また、各グリッドセルが何を映しているか、つまり、どのクラスに属する物体が含まれているかを判断します。これにより、各セルに対してクラスの確率が計算されます。
結果の統合
上記2のバウンディングボックス情報とクラスの確率を組み合わせて、画像内の物体の位置と種類を最終的に特定します。これにより、YOLOは画像全体を一度に処理し、効率的に物体検出を行います。
YOLOを用いるメリット
また、YOLOは各バウンディングボックスに対して信頼度スコアを計算し、物体が存在する確率とそのクラスを同時に予測します。これにより、検出精度を向上させつつ、不要な領域の検出を減らすことができます。
画像処理の課題 | 従来手法 | YOLOの解決法 |
---|---|---|
計算処理が重い | スライディングウィンドウや領域提案で多くの計算が必要 | 計算処理が軽い エンドツーエンドで統一 |
時間がかかる | 各領域を個別に処理 | 処理が速い リアルタイム処理が可能 |
背景情報や物体間の関係を考慮できない | 局所的な処理のみ | 画像全体を一度に処理可能 |
YOLOのライセンスについて
個人利用: 通常、ライセンス料は不要です。
教育利用: ほとんどのライセンスで無料で利用できます。
商用利用:
プロジェクトがオープンソースの場合、GPLまたはAGPLの条件に基づいて料金なしで利用可能です。
プロジェクトに独自の権利が必要な場合は、該当するYOLOバージョンのチームに商用ライセンスについて問い合わせる必要があります。
iCOM技研が使用している「YOLOv8」の基本情報
YOLOv8をはじめるにあたって、まず必要なパッケージのインストールを行います。この時、Pythonのバージョンは3.8以上、PyTorchは1.8以上が必要です。
インストールは、pipコマンドを使用して行います。次のコマンドでYOLOv8をインストール可能です。
pip install yolov8 |
インストール後、次のコマンドで動作確認を行います。
import yolov8print(yolov8.__version__) |
問題なく動作すれば、YOLOv8のインストール完了です。
YOLOv8を使用したテスト
テスト手法
今回使用した機材/備品
・PC
・リアルセンスカメラ
・紙コップ
テストの流れ
- 紙コップを複数角度から撮影する
- YOLOを使用してセグメンテーションを行う
- できたモデルを使用して紙コップの検出を行う
結果

まとめ
YOLOはリアルタイムで高精度な物体検出を可能にする先進的な技術です。これまでの物体検出アルゴリズムに比べて処理速度が飛躍的に向上しており、自動運転や監視カメラ、医療分野、小売業など幅広い分野での応用が進んでいます。
また、オープンソースとして提供されているため、個人や企業が自由に利用・改良できる点も魅力の一つです。将来的にはさらに多くのバージョンアップや応用事例が登場することが期待されております。
YOLOに関心がある方は、公式リポジトリや関連資料をぜひご覧になり、実際に試してみてください。