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

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

MENU

【第12回】FreeYOLOによる物体検出:動作環境の構築と推論デモの

 

はじめに

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

 リアルタイムに物体検出を行うアルゴリズムにYOLO(You Only Look Onse)と呼ばれるものがあり、CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)を用いたアルゴリズムとなっています。これまでにYOLOv5、YOLOX、YOLOv7などいくつかのアルゴリズムが公開されています。そして2022年にyolov4、YOLOX、yolov7のアルゴリズムを参考に作成されたFreeYOLOが公開されています。これは論文にはなっていないものの、一般的な物体検出、顔検出、人物検出が可能なモデルが公開されています。一般的な物体検出は下図のような結果が得られます。

【画像】

【動作】

youtu.be

 

 本記事では、FreeYOLOを用いて一般的な物体検出を行うために、FreeYOLOの動作環境の構築と推論デモの実行方法を簡単に紹介します。顔検出と人物検出については後日本記事か別記事で紹介します。

Aidemy Premium

 

1. FreeYOLOのGithubリポジトリ

以下がFreeYOLOのGithubリポジトリです。

github.com

 

2. 動作環境の構築

動作環境は以下のように、①githubからFreeYOLOをclone(手元にダウンロード)、②仮想環境venvの構築、③必要なPythonパッケージをインストールとなっています。

 

3. 学習済みモデルの用意

以下のように学習済みモデルを格納するweightsフォルダを作成して、学習済みモデルをダウンロードします。今回はyolo_free_tiny_coco.pth(FreeYOLO-Tiny)をダウンロードします。

 

4. 推論の実行

それでは推論デモを行います。3でweightsフォルダ内にいたので一つ上の階層に移動してから推論コマンドを実行します。今回はtest.jpgを格納したフォルダのパス(test_img)を--path_to_imgの引数に設定してtest.jpgという画像に対して推論しています。さらに今回はtinyモデルを用いているため、-vの引数にはyolo_free_tinyを設定しています。

推論が終わるとdet_results/demos/image内に推論結果が出力されます。以下のように各物体にバウンディングボックス(四角の枠)とその物体のラベル名が描画されます。

もし、動画の場合は以下のようになります。ここではsample.mp4という動画に対して推論を実行しています。動画の際には--modeの引数にvideoを、----path_to_vidの引数に推論したい動画のパス(test_video/sample.mp4)を設定します。

推論結果は以下のようになります。

youtu.be

 

オススメ書籍

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

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

PyTorchで作る!深層学習モデル・AIアプリ開発入門

 

スキル修得&転職

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

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

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

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

 

おわりに

 本記事では、FreeYOLOを用いて一般的な物体検出を行うために、FreeYOLOの動作環境の構築と推論デモの実行方法を簡単に紹介しました。この記事を記載している際に中にもGithubリポジトリが更新されていたので、まだまだ改良されていくようですので、しばらく動向を見守りたいと思います。