【第8回】YOLOX:ONNXRuntimeによる動画での推論
はじめに
近年、AI(Artificial Intelligence:人工知能)の急速な発展に伴い、それらを用いた技術が活用され始めています。例えば、AIによる画像認識技術として物体検出などがあります。物体検出は「画像の中から特定の物体の位置、種類、個数などの情報を認識する技術」であり、AIを用いて比較的高速に画像内の物体情報を取得することができます。この技術を用いて製造業では品質評価、外観検査、異常検知などに活用されています。
リアルタイムに物体検出を行うアルゴリズムにYOLO(You Only Look Onse)と呼ばれるものがあり、CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)を用いたアルゴリズムとなっています。2021年8月に公開された最新の物体検出モデルにYOLOXがあり、これはYOLOv5を超える性能と、使いやすいライセンス(Apache License)を両立しています。
YOLOXのデモではpytorchというライブラリを用いて推論していますが、pytorchは学習に最適化されていることから、推論速度は速くありません。その課題を解決するのがONNX(Open Neural Network eXchange)です。pytochモデル(.pth)からonnxモデル(.onnx)に変換して推論に特化したエンジンONNXRuntimeを用いることえで、推論速度を向上させることができます。
本記事では、ONNXRuntimeを用いた動画の推論デモを実施する方法を紹介します。
YOLOXの完全攻略マニュアルも以下のnote記事で紹介しています。
1. 本記事で扱うコード
本記事で扱うコードは以下のgithubで公開しています。
2. YOLOXでONNXRuntimeを用いた動画の推論
YOLOXでは画像の推論コードはあるものの、動画に対する推論コードはありません。そこで、動画に対して推論できるコードを作成したので、以下に示します。
このファイルを実行するには以下のコマンドを実行します。
実行結果例は以下のようになります。
オススメ書籍
物体・画像認識と時系列データ処理入門
現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装
PyTorchで作る!深層学習モデル・AIアプリ開発入門
スキル修得&転職
近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。
以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
おわりに
本記事では、ONNXRuntimeを用いた動画の推論デモを実施する方法を紹介しました。onnxモデルを用いて動画に対して物体検出を実行できるようになり、より高速に推論できるようになりました。ハードウェアのスペックがそこそこ良ければonnxモデルで実行するのもいいですが、エッジデバイスなどではより軽量なtfliteモデルに変換して使用するほうが良いと思います。