今回はJetson NanoでYOLOv4のモデルを使って画像の物体検出を行う方法を解説します。
またJetsonの活用方法について以下のページでまとめていますので、あわせてご覧ください。
環境
ソフトウェア
JETPACK SDK:4.6.2
Python:3.6.9
ハードウェア
Jetson Nano:A02 4GB
今回、推論を行うハードウェアはNVIDIAのGPUを搭載したマイコンボード、Jetson Nanoの4GB版を使用しています。
YOLOをセットアップする
今回は以下のリポジトリを使って画像の物体検出を試してみました。
まずは任意のフォルダにリポジトリをダウンロードします。
git clone https://github.com/AlexeyAB/darknet
エディタをインストールします。入っている方は飛ばしてください。
sudo nano apt install nano
Makefileを編集します。
cd darknet
sudo nano Makefile
以下のように編集してください。(最後の行はNVCC=nvccとなっている行を修正します)
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
LIBSO=1
NVCC=/usr/local/cuda/bin/nvcc
Makefileを修正したらビルドします。
sudo make
続いて重みファイルと設定ファイルを「darkne」のディレクトリにダウンロードします。「yolov4-tiny」は軽量版です。今回は組み込みボードで処理を行うためこちらを使用します。
sudo wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights
sudo wget https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov4-tiny.cfg
必要なライブラリをインストールします。
sudo apt-get install libcanberra-gtk-module -y
これでセットアップは完了です。
動作確認
おなじみの犬画像「dog.jpg」を使って動作確認をします。
以下のコマンドを実行してください。
./darknet detect yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg
以下のように表示され推論が実行されました。
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, obj_norm: 1.00, cls_norm: 1.00, delta_norm: 1.00, scale_x_y: 1.05
nms_kind: greedynms (1), beta = 0.600000
Total BFLOPS 6.910
avg_outputs = 310203
Allocate additional workspace_size = 26.22 MB
Loading weights from yolov4-tiny.weights...
seen 64, trained: 0 K-images (0 Kilo-batches_64)
Done! Loaded 38 layers from weights-file
Detection layer: 30 - type = 28
Detection layer: 37 - type = 28
data/dog.jpg: Predicted in 4119.524000 milli-seconds.
bicycle: 60%
dog: 84%
truck: 79%
car: 46%
Failed to write image predictions.jpg
「dog.jpg」の画像の中のオブジェクトが正しく検出できました。
プログラミングのスキルを活かすには
プログラミングのスキルを仕事に活かすには、フリーランスとして受けられる案件がおすすめです。
テックゲートフリーランスは、フリーランスエンジニアの案件紹介や契約交渉・債権管理などのサポートを行っているフリーランスエージェントです。
- リモートワーク可能な案件が50%以上
- 週3〜4日の案件の豊富さ
- 年収100万円アップのサポート
無料相談フォームからご登録いただくだけで、経験年数やスキルに合わせて案件をご紹介。また、リモートワーク可能な案件や週3〜4日OKの案件も豊富に用意されています。
副業やフリーランスとして仕事を受けてみたいと考えている方には、テックゲートフリーランスが提供する多様なサポートが非常におすすめです。
\ 無料で登録してみる! /
まとめ
今回はJetson NanoでYOLOv4を使って物体検出を行ってみました。次はPythonのコードからカメラ映像を使ってリアルタイムに物体検出する方法について書きたいと思います。
機械学習を効率よく学びたい方には、自分のペースで動画で学べるUdemyの以下の講座がおすすめです。数学的な理論からPythonでの実装までを習得できます。(私自身もこの講座を受講しています)
【徹底的に解説!】人工知能・機械学習エンジニア養成講座(初級編~統計学から数字認識まで~)また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。
スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。
それでは、また次の記事でお会いしましょう。
\ 機械学習を学びたい人には自宅で学べるUdemyがおすすめ! /
講座単位で購入できます!
コメント