目次
Let’s play with AI.
こんにちは。
AI coordinator管理人の清水秀樹です。
前回に続き、Jetson nanoを使った物体検出AIの構築方法について紹介します。
今回紹介するAIはkeras-yolo v3と本家のYOLO v3です。
とくにkeras-yolo v3はpythonで実行できる物体検出ですので、GPIOと組み合わせながら実験し動かすことが可能なのでオススメです。
しかもDeepStreamのyoloよりも、はるかに認識率が高いです。
セットアップ方法については、YouTube動画でも紹介していますので、当ページと合わせてご確認頂ければと思います。
tensorflowのインストール
インストール用のスクリプトを準備してくださっている方がいてセットアップがとても楽になりました。
ありがたく使用させて頂きましょう。
ちなみにいきなり時間がかかる処理になります。
大体2時間ぐらいかかります。
気長に待ちましょう。
ただ注意点があります。
途中でパスワードを2回聞かれるタイミングがあるので、適度に確認しながら放置しましょう。
$ git clone https://github.com/karaage0703/jetson-nano-tools $ cd jetson-nano-tools $ ./install-tensorflow.sh
keras install
いちいちtensorflow.を付加してソースを修正するのが面倒いのでkerasをインストールしちゃいましょう。
sudo apt install libatlas-base-dev gfortran sudo apt-get install python3-scipy sudo apt-get install python3-keras sudo apt-get install python3-matplotlib
keras-yolo v3をセットアップ
keras-yolo v3を使う準備をします。
ターミナルのディレクトリをhomeに戻してからkeras-yolo3をクローンしましょう。
git clone https://github.com/qqwweee/keras-yolo3.git
tinyモデルをダウンロードして実行します。
cd keras-yolo3 wget https://pjreddie.com/media/files/yolov3-tiny.weights python3 convert.py yolov3-tiny.cfg yolov3-tiny.weights model_data/yolo-tiny.h5
モデル変換作業は20秒程度で終わります。
続いてyolo.pyを修正します。
どうせtinyでしか使い物にならないのでソースをtiny専用に修正しちゃいましょう。
yolo.pyの23,24行目を以下のように編集します。
"model_path": 'model_data/yolo-tiny.h5', "anchors_path": 'model_data/tiny_yolo_anchors.txt',
同様に174行目も以下のように修正しましょう。
vid = cv2.VideoCapture(int(video_path))
さあ、実行してみましょう
python3 yolo_video.py --input 0
fps1~3程度で動きます。
本家本元のYOLOも動かしてみましょう
darknet
darknetをダウンロードします。
git clone https://github.com/AlexeyAB/darknet darknet cd darknet
モデルのダウンロードをします。
wget https://pjreddie.com/media/files/yolov3-tiny.weights
makefileの修正をします。
GPU=1 CUDNN=1 OPENCV=1
同様に64行目のnvccのpathも修正しましょう。
NVCC=/usr/local/cuda/bin/nvcc
makeします。
make
以上で準備は完了です。
tiny-yoloで実行
実行します。
PythonでAIを試した後は・・・
Pyhtonを使って物体検出AIを試すことが出来ました。
ということは・・・
GPIO制御と組み合わせて使ってみることで、AIを活用した装置の開発ができるようになります。
近いうち紹介したいと思います。
それではまた!!
この記事へのコメントはありません。