準備
■ 周辺機器揃える
せっかくなので、はりきって電源は5V4Aで、ファンもつけました。
※追記 Jetson Nanoのファン購入に気をつけろ!
コチラの記事にあるように、5Vのファンじゃないと回らない(回りにくい?)ようなのでファンのリンクを追記しました。
一応こっちでも回ってます。
買ったものはこんなところか。
※ 良い子は技適は守ろう。
キーボードやマウス、ディスプレイは、そのへんに転がっているものでOK!!
■ セットアップ
https://dev.classmethod.jp/hardware/nvidia-jetson-nano-setup/
Etcherを使ってイメージを焼く。
■ 刹活孔を突く
・ フルパワー化
https://www.jetsonhacks.com/2019/04/10/jetson-nano-use-more-power/
$ sudo nvpmodel -m 0 $ sudo jetson_clocks
・ スワップ作成
https://www.jetsonhacks.com/2019/04/14/jetson-nano-use-more-memory/
https://github.com/JetsonHacksNano/installSwapfile $ cd installSwapfile $ ./installSwapfile
・ カメラの確認
https://www.jetsonhacks.com/2019/04/02/jetson-nano-raspberry-pi-camera/
基本指すだけ
動いてるか確認する。
$ gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=3820, height=2464, framerate=21/1, format=NV12' ! nvvidconv flip-method=0 ! 'video/x-raw,width=960, height=616' ! nvvidconv ! nvegltransform ! nveglglessink -e
実践
■ CUDAサンプルとVisionWorksのサンプルの動作確認
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0563?page=4
・ CUDA
$ cp -a /usr/local/cuda-10.0/samples/ ~/ $ cd ~/samples $ make
すげー時間かかるので気長に待つ。
個別buildの方法もリンク先に書いてある。
ここにビルドされてるので、移動してそれっぽいやつ実行確認。
$ cd bin/aarch64/linux/release $ ./deviceQuery $ ./oceanFFT $ ./smokeParticles $ ./nbody
・ VisionWorks
$ /usr/share/visionworks/sources/install-samples.sh ~/visionworks/ $ cd ~/visionworks/VisionWorks-1.6-Samples/ $ make
時間かかるので気長に待つ。
ここにビルドされてるので、移動してそれっぽいやつ実行確認。
$ cd bin/aarch64/linux/release/ $ ./nvx_demo_hough_transform $ ./nvx_demo_motion_estimation
ここまで動けば、環境的には何の問題もないはず。
本題
■ DARKNETインストール
http://takesan.hatenablog.com/entry/2019/04/09/001852
真ん中あたり、DARKNET(YOLO)のインストール
・ makefileの修正
makefileの修正で、-gencodeもコメントしないとダメでした。GPU=1 # 修正 CUDNN=1 # 修正 CUDNN_HALF=1 # 修正 OPENCV=1 # 修正 AVX=0 OPENMP=0 LIBSO=0 ZED_CAMERA=0 # set GPU=1 and CUDNN=1 to speedup on GPU # set CUDNN_HALF=1 to further speedup 3 x times (Mixed-precision on Tensor Cores) GPU: Volta, Xavier, Turing and higher # set AVX=1 and OPENMP=1 to speedup on CPU (if error occurs then set AVX=0) DEBUG=0 ARCH= -gencode arch=compute_30,code=sm_30 \ -gencode arch=compute_35,code=sm_35 \ -gencode arch=compute_50,code=[sm_50,compute_50] \ -gencode arch=compute_52,code=[sm_52,compute_52] \ # -gencode arch=compute_61,code=[sm_61,compute_61] # 修正 OS := $(shell uname) # Tesla V100 # ARCH= -gencode arch=compute_70,code=[sm_70,compute_70] # GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores # ARCH= -gencode arch=compute_75,code=[sm_75,compute_75] # Jetson XAVIER # ARCH= -gencode arch=compute_72,code=[sm_72,compute_72] # GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4 # ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61 # GP100/Tesla P100 - DGX-1 # ARCH= -gencode arch=compute_60,code=sm_60 # For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment: ARCH= -gencode arch=compute_53,code=[sm_53,compute_53] # 修正 # For Jetson Tx2 or Drive-PX2 uncomment: # ARCH= -gencode arch=compute_62,code=[sm_62,compute_62] :
・ make
$ PATH=/usr/local/cuda/bin:$PATH make
気長に待つ。
・実行
ビルドできてれば以下が出力されるはず。
$ ./darknet usage: ./darknet <function>
■ Nightmare
$ wget http://pjreddie.com/media/files/vgg-conv.weights $ ./darknet nightmare cfg/vgg-conv.cfg vgg-conv.weights data/scream.jpg 10
なんだか、結果がポクない。。
なにか間違えたか?
■ YOLO
$ wget https://pjreddie.com/media/files/yolov3.weights $ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
リアルタイムは、raspi camera 繋がってるんだけど、camera stopedとかなって終わった。
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
引き続き実験。
--------- 追記 ----------------------------------------
$ sudo apt-get install libv4l-dev v4l-utils $ v4l2-ctl --list-devices vi-output, imx219 6-0010 (platform:54080000.vi:0): /dev/video0 $ v4l2-ctl -d /dev/video0 --all Driver Info (not using libv4l2): Driver name : tegra-video Card type : vi-output, imx219 6-0010 Bus info : platform:54080000.vi:0 Driver version: 4.9.140 Capabilities : 0x84200001 Video Capture Streaming Extended Pix Format Device Capabilities Device Caps : 0x04200001 Video Capture Streaming Extended Pix Format Priority: 2 Video input : 0 (Camera 0: no power) Format Video Capture: Width/Height : 640/480 Pixel Format : 'RG10' Field : None Bytes per Line : 1280 Size Image : 614400 Colorspace : sRGB Transfer Function : Default (maps to sRGB) YCbCr/HSV Encoding: Default (maps to ITU-R 601) Quantization : Default (maps to Full Range) Flags : Camera Controls group_hold 0x009a2003 (bool) : default=0 value=0 flags=execute-on-write sensor_mode 0x009a2008 (int64) : min=0 max=0 step=0 default=0 value=0 flags=slider gain 0x009a2009 (int64) : min=0 max=0 step=0 default=0 value=16 flags=slider exposure 0x009a200a (int64) : min=0 max=0 step=0 default=0 value=13 flags=slider frame_rate 0x009a200b (int64) : min=0 max=0 step=0 default=0 value=2000000 flags=slider bypass_mode 0x009a2064 (intmenu): min=0 max=1 default=0 value=0 override_enable 0x009a2065 (intmenu): min=0 max=1 default=0 value=0 height_align 0x009a2066 (int) : min=1 max=16 step=1 default=1 value=1 size_align 0x009a2067 (intmenu): min=0 max=2 default=0 value=0 write_isp_format 0x009a2068 (bool) : default=0 value=0 sensor_signal_properties 0x009a2069 (u32) : min=0 max=0 step=0 default=0 flags=read-only, has-payload sensor_image_properties 0x009a206a (u32) : min=0 max=0 step=0 default=0 flags=read-only, has-payload sensor_control_properties 0x009a206b (u32) : min=0 max=0 step=0 default=0 flags=read-only, has-payload sensor_dv_timings 0x009a206c (u32) : min=0 max=0 step=0 default=0 flags=read-only, has-payload low_latency_mode 0x009a206d (bool) : default=0 value=0 sensor_modes 0x009a2082 (int) : min=0 max=30 step=1 default=30 value=5 flags=read-only
カメラ生きてるっぽいよね。
----------------------------------------
--------- 追追記 ----------------------------------------
Logicool HD c270なら動きました。
これの無地のやつ。
メモリ使い切って死ぬ寸でしたが・・・
スワップ作っといてよかった。
$ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
terminalの方見るとわかりますが、2FPSとかです。
実用には耐えません^^
----------------------------------------
--------- 追追追記 ----------------------------------------
tiny yolo v3なら、15FPS位出てラズパイで初めてLチカしたときくらいの満足感が得られました。
$ wget https://pjreddie.com/media/files/yolov3-tiny.weights $ ./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights
----------------------------------------
ということで、一応 Darknet 動かすところまでできました。
そもそもこの手の情報なにもない素人レベルでしたが、動かすだけなら割と簡単にできました。
お熱があるうちに、遅ればせながら機械学習のお勉強でも始めようかな。
0 件のコメント:
コメントを投稿