Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

【第1回】物体検出モデルYOLOXの動作環境構築とデモ実行

はじめに

 近年、AI(Artificial Intelligence:人工知能)の急速な発展に伴い、それらを用いた技術が活用され始めています。例えば、AIによる画像認識技術として物体検出などがあります。物体検出は「画像の中から特定の物体の位置、種類、個数などの情報を認識する技術」であり、AIを用いて比較的高速に画像内の物体情報を取得することができます。この技術を用いて製造業では品質評価、外観検査、異常検知などに活用されています。

 リアルタイムに物体検出を行うアルゴリズムにYOLO(You Only Look Onse)と呼ばれるものがあり、CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)を用いたアルゴリズムとなっています。2021年8月に公開された最新の物体検出モデルにYOLOXがあり、これはYOLOv5を超える性能と、使いやすいライセンス(Apache License)を両立しています。

 本記事では物体検出モデルYOLOXの動作環境の構築の方法を紹介します。

 

1. YOLOXのリポジトリ

YOLOXのリポジトリは以下のGithubです。

github.com

 

2. Windowsで構築

2.1 環境

Windows : Windows11

Python : 3.8.5

-venvで仮想環境構築:

 

2.2 YOLOXのダウンロードとpipインストール

以下のコマンドでYOLOXをダウンロードとpipのインストールをして実行環境を構築してください。

YOLOX:https://github.com/Megvii-BaseDetection/YOLOX

pipインストールで「error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio”」とエラーが出る可能性があります。その際には以下の記事に従ってVisual Studio Installerをインストールしてください。

mebee.info

visualstudio.microsoft.com

2.3 YOLOXのモデルダウンロード

YOLOXのモデルはこちらのGithubのBenchmarkのStandard Models.かLigth Models.のどちらかから取得してください。なお、Standard Models高精度向けで、Light Modelsはエッジ端末向けです。以下の例ではyolox-nanoのモデルを用いています。

2.4 デモ実行

それでは、デモをしてみます。以下のコマンドで、yolox-nanoのモデルを用いてassetsフォルダ内のdog.jpgの画像に対してデモを行います。

実行すると、以下のようにバウンディングボックスが描画された画像がYOLOX_outputsの中に生成されます。

動画でデモを実行するには、以下のコマンドを実行します。以下の例ではYOLOXフォルダ内にvideoフォルダを作成し、そのvideoフォルダの中にsample.mp4動画を保管したと想定しています。

なお、以下のコマンドを実行すると、以下の動画例のようにバウンディングボックスが描画された動画がYOLOX_outputsフォルダ内に保存されています。

youtu.be

youtu.be

 

3. Ubuntuで構築

3.1 環境

Ubuntu: Ubuntu 20.04.4 LTS

Python: 3.8.10

3.2 必要なパッケージのインストール

以下のコマンドで必要なパッケージをインストールしてくだい。

3.3 Cmakeのインストールとビルド

以下のコマンドでCmakeのインストールとビルドを行ってください。以下ではCmake-3.15.2を使用しています。バージョンによっては3.3のpipのインストールのonnx部分でエラーが出ました。

Cmake:https://cmake.org/download/

Cmakeのリポジトリhttps://github.com/Kitware/CMake/releases

3.4 YOLOXのダウンロードして環境構築

以下のコマンドでYOLOXをダウンロードとpipのインストールをして実行環境を構築してください。

YOLOX:https://github.com/Megvii-BaseDetection/YOLOX

3.5 YOLOXのモデルをダウンロード

YOLOXのモデルはこちらのGithubのBenchmarkのStandard Models.かLigth Models.のどちらかから取得してください。なお、Standard Models高精度向けで、Light Modelsはエッジ端末向けです。以下の例ではyolox-nanoのモデルを用いています。

3.6 デモの実行

それでは、デモをしてみます。以下のコマンドで、yolox-nanoのモデルを用いてassetsフォルダ内のdog.jpgの画像に対してデモを行います。

実行すると、以下のようにバウンディングボックスが描画された画像がYOLOX_outputsの中に生成されます。

動画でデモを実行するには、以下のコマンドを実行します。以下の例ではYOLOXフォルダ内にvideoフォルダを作成し、そのvideoフォルダの中にsample.mp4動画を保管したと想定しています。

なお、以下のコマンドを実行すると、以下の動画例のようにバウンディングボックスが描画された動画がYOLOX_outputsフォルダ内に保存されています。

youtu.be

youtu.be

 

4. コンテナ生成からDeibian環境での構築

4.1 YOLOXの事前ダウンロード

Linux系OSのhomeに事前にYOLOXをダウンロードします。

YOLOX:https://github.com/Megvii-BaseDetection/YOLOX

4.2 コンテナイメージの取得と生成

docekr pullで軽量コンテナイメージのdebian:stable-slimを取得し、docker runでコンテナを起動します。

4.3 YOLOXの環境構築とモデルのダウンロード

Cmakeのインストール・ビルド、pipのインストール、モデルの取得、onnxモデルへの変換、不必要なパッケージのアンインストールは以下のシェルスクリプトを実行することで実施できます。

4.4 コンテナ内で実行

コンテナ内で以下のコマンドを実行するとデモが実施できます。

動画の場合は以下のコマンドです。以下ではsample.mp4としていますが、ご自身の分析対象の動画を指定してください。

デモ結果の例

以下にデモを実行した際の結果例を示します。大まかには物体検出できていますが、ラベルが違うものやバウンディングボックスの位置が怪しいものがありますね。

 

オススメ書籍

物体・画像認識と時系列データ処理入門

現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装

現場で使える! TensorFlow開発入門 Kerasによる深層学習モデル構築手法

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

 

おわりに

本記事では物体検出モデルYOLOXの動作環境の構築の方法を紹介しました。ぜひ、ご自身で撮影した画像や動画に対して物体検出デモを実施してしてみてください。