NanoでYOLOv5とPyTorchを使って物体検出をする方法を解説したいと思います。Nanoに対応しているJetPackの最新バージョンで使用できるものとなっていますので、ぜひ参考にしてみてください。Nanoに関する記事を以下のページでまとめていますので、あわせてご覧ください。NVIDIA社が開発販売しているシングルボードコンピュータ、Jetsonの活用方法について解説します。Nanoの本体については、私が使用しているモデルは旧モデルのA02ですが、これから購入される方はインタフェースなどが増えているB01モデルがおすすめです。NanoのJetPack上でYOLOv5をセットアップする手順を解説していきます。手順はez_teraさんの以下の記事を参考にさせて頂きました。最新版をご覧ください。NXl...エディタのインストール設定ファイルを編集するためのnanoエディタをインストールします。(インストール済みの方は飛ばしてください)以下のコマンドを実行してください。Nanoではメモリーが4GBしかないため、メモリーが不足した際にSDカードをスワップ領域としてしようできるようにします。スワップ領域を変更するためのツールを以下のコマンドでインストールします。dphys-swapfileインストールしたら以下のコマンドを実行して、エディタで設定ファイルを開きます。/etc/dphys-swapfile「CONF_SWAPSIZE」と「CONF_MAXSWAP」の行を以下のように変更してください。(コメントアウトされている場合は#を削除してください)CONF_SWAPSIZE=4096CONF_MAXSWAP=4096OpenCVのインストール続いて画像処理ライブラリ、OpenCVをダウンロードしてビルドします。任意のフォルダに移動して以下のコマンドを実行してください。https://github.com/Qengineering/Install-OpenCV-Jetson-Nano/raw/main/OpenCV-4-5-0.shダウンロードが完了したら、以下のコマンドを実行してパーミッションを変更します。./OpenCV-4-5-0.sh以下のファイルを実行してビルドします。(かなり時間がかかりますので気長に待ってください)./OpenCV-4-5-0.shPyTorchのインストール続いてYOLOv5での推論に使用する機械学習ライブラリをインストールします。META社が公開しているPyTorchをインストールします。任意のディレクトリに移動し、以下のコマンドを実行して必要なファイルをダウンロードします。torch-1.7.0-cp36-cp36m-linux_aarch64.whl以下のコマンドを実行し、必要なツールをインストールします。torch-1.7.0-cp36-cp36m-linux_aarch64.whltorchvisionのインストールPyTorchで使用するパッケージ、torchvisionをインストールします。以下のコマンドを実行してください。torchvisionダウンロードしたディレクトリに移動し、セットアップスクリプトを実行します。installcdYOLOv5のインストール最後にYOLOv5をインストールします。任意のインストールディレクトリに移動し、以下のコマンドを実行してリポジトリをダウンロードしてください。https://github.com/ultralytics/yolov5.gitインストールするパッケージのリストを編集します。以下のファイルをエディタで開いてください。requirements.txtこれまで個別にインストールした、以下のツールの行をコメントアウトしてください。#opencv-python>=4.1.2#torch>=1.7.0#tensorboard>=2.2#torchvision>=0.8.1以下のコマンドを実行して、インストールを行います。requirements.txtこれでYOLOv5を使用する環境のセットアップは完了です。Amazon調べ)口コミを見るAmazon楽天市場Yahooショッピングメルカリポチップ推論を実行する(動作確認)YOLOv5のディレクトリで「detect.py」を実行して、サンプルで用意されている画像を使って推論を行います。以下のコマンドを実行してください。私の環境では「detect.py」を実行すると以下のようなエラーが発生しました。(コアダンプ)調査したところCPU命令セットの違いによる可能性があるということで、以下の環境変数の設定を行えば解消されるという情報があったため試してみました。OPENBLAS_CORETYPE=ARMV8私の環境ではこれでも解消されなかったため、さらに調査したところNumPyにバグがあるとの情報が見つかりました。NumPyモジュールのバグで苦戦!NumPyを最新の1.19.5からバグのない=1.19.3のバージョンに変更します。以下のコマンドを実行してインストールします。numpy==1.19.3これで私の環境ではエラーが解消されました。1.19.4はまた別のバグがあるようです。再度「detect.py」を実行すると以下のように無事推論が終了しました。runs/detect/exp「runs/detect/exp」を確認すると以下のように推論結果が描画されたファイルが正しく出力されていました。Amazon調べ)口コミを見るAmazon楽天市場Yahooショッピングメルカリポチッププログラミングのスキルを活かすにはプログラミングのスキルを仕事に活かすには、フリーランスとして受けられる案件がおすすめです。サポートを行っているフリーランスエージェントです。週3〜4日の案件の豊富さ年収100万円アップのサポート無料相談フォームからご登録いただくだけで、経験年数やスキルに合わせて案件をご紹介。リモートワーク可能な案件や週3〜4日OKの案件も豊富に用意されています。副業やフリーランスとして仕事を受けてみたいと考えている方には、テックゲートフリーランスが提供する多様なサポートが非常におすすめです。NanoでYOLOv5を使って物体検出を行う方法を解説しました。NanoでもYOLOv5が使えるようになったことによって、PCでの環境とソースを共有できそうです。JetsonでYOLOを使ってみたい方はぜひ参考にしてみてください。機械学習を効率よく学びたい方には、自分のペースで動画で学べるUdemyの以下の講座がおすすめです。数学的な理論からPythonでの実装までを習得できます。エンジニア養成講座(初級編~統計学から数字認識まで~)それでは、また次の記事でお会いしましょう。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ExampleMurasan(むらさん)制御系エンジニアです。Piなどのマイコンボードを使ってアプリケーションを開発しています。好きなガジェットについても紹介していきたいと思います。トップページの画像はStableDiffusionというAIによって生成されたイラストです。