見出し画像

YOLOXの学習:VoTTによるアノテーション、COCO形式への変換、学習実行


1.はじめに

 近年、AI(Artificial Intelligence:人工知能)の急速な発展に伴い、それらを用いた技術が活用され始めています。例えば、AIによる画像認識技術として物体検出などがあります。物体検出は「画像の中から特定の物体の位置、種類、個数などの情報を認識する技術」であり、AIを用いて比較的高速に画像内の物体情報を取得することができます。この技術を用いて製造業では品質評価、外観検査、異常検知などに活用されています。 
 リアルタイムに物体検出を行うアルゴリズムにYOLO(You Only Look Onse)と呼ばれるものがあり、CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)を用いたアルゴリズムとなっています。2021年8月に公開された最新の物体検出モデルにYOLOXがあり、これはYOLOv5を超える性能と、使いやすいライセンス(Apache License)を両立しています。YOLOXなどの物体検出で精度改善等を行う場合、画像にアノテーションを行って学習を行います。アノテーションは一般的にVoTTやlabelmeなどのツールを使い、アノテーションデータはPascalVOC形式のデータとして出力されます。その後、YOLOXの学習用にCOCO形式へ変換し、学習を実行します。 
 本記事では、YOLOXで学習を実行するまでの流れとして、VoTTによるアノテーション、COCO形式への変換、学習実行の方法を紹介します。本記事をマスターすることでご自身の検出したい物体に合わせたモデルを作成することができるようになるので、業務の自動化や新規ビジネスにも繋がります。

YOLOXの完全攻略マニュアルも以下のnote記事で紹介しています。

2.VoTTによるアノテーションデータセットの作成

VoTTによるアノテーションデータセットの作成については、以下の記事をご覧ください。

3.データセットをPascalVOC形式からCOCO形式へ変換

PascalVOC形式からCOCO形式へ変換については、以下の記事をご覧ください。

4.YOLOXの動作環境の構築

YOLOXの動作環境の構築については、以下の記事をご覧ください。

5.学習準備

5.1 データセットの用意

第2章で作成したCOCO形式のデータセットをYOLOX/datasetsディレクトリに置きます。以下のように保管します。

YOLOX
  ├─datasets
        └─{YYYYMMDD_HHMMSS}_COCO_format
             ├─annotations
             |  ├─instances_train2017.json
             |  └─instances_val2017.json
             ├─train2017
             |  └─@@@.jpg
             └─val2017
                └─@@@.jpg

personのみアノテーションしたデータセットのサンプルをここに置いておきます。

ここから先は

3,131字 / 1画像 / 1ファイル

¥ 400

この記事が気に入ったらサポートをしてみませんか?