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

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

MENU

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

はじめに

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

 リアルタイムに物体検出を行うアルゴリズムにYOLO(You Only Look Onse)と呼ばれるものがあり、CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)を用いたアルゴリズムとなっています。2020年6月にyolov5が公開されていて、2021年8月にYOLOX、2022年の7月に最新の物体検出モデルYOLOv7が公開されています。yolov5は最新モデルではありませんが、広く扱われていること、機能を拡張できるスクリプトがいくつか公開されています。yolov5で推論デモを実行すると下図のように各物体にバウンディングボックス(四角の枠)とその物体のラベル名が描画されます。

 本記事では、yolov5を用いて物体検出を行うための動作環境の構築と推論デモ実行方法について簡単に紹介します。

Aidemy Premium

 

1. yolov5のGithubリポジトリ

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

github.com

 

2. 動作環境の構築

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

 

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

以下のように学習済みモデルを格納するweightsフォルダを作成して、学習済みモデルをダウンロードします。

今回はyolov5sをダウンロードします。他の学習済みモデルを使用する際には、上記リポジトリのPretrained Checkpointsの項目からダウンロードできます。

 

4. 推論の実行

それでは推論デモを行います。3でweightsフォルダ内にいたので一つ上の階層に移動してから推論コマンドを実行します。今回はtest.jpgのパスを設定してtest.jpgという画像に対して推論しています。

推論が終わるとruns/detectにexp+数字のフォルダができていると思います。最後の番号が最新の推論結果になります。以下のように各物体にバウンディングボックス(四角の枠)とその物体のラベル名が描画されます。

もし、動画の場合は以下のようになります。ここではsample.mp4という動画に対して推論を実行しています。

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

youtu.be

そのほかにも --sourceにディレクトリ、rtspリンクを指定することもできるので、リポジトリ内の「Inference with detect.py」をチェックしてみてください。

 

オススメ書籍

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

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

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

 

スキル修得&転職

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

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

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

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

 

おわりに

 本記事では、yolov5を用いて物体検出を行うための動作環境の構築と推論デモ実行方法について簡単に紹介しました。最新のYOLOv7やYOLOXが使用される中でYOLOv5を扱う事例やYOLOv5を用いて物体トラッキングを行うといった拡張事例も多いのでYOLOv5にも慣れておきましょう!