見出し画像

Jetson Nano Developer Kit: JetPack 4.5用TensorFlowを準備したい

以前に、Jetson Nano Developer Kitの設定をし、CUDAのデモの動作確認をした。

Jetson Nano 超入門」の4-3節にVisonWorksのデモのセットアップが記されている。下記のコマンドで、デモをビルドできる。

$ usr/share/visionworks/sources/install-samples.sh ~/
$ cd ~/VisionWorks-1.6-Samples
$ make

ビルドは、約4分で終了する。なお、最初のコマンドの最後の~/は、インストールするディレクトリである。デモの実行ファイルは、~/VisionWorks-1.6-Samples/bin/aarch64/linux/release に11個できる。

$ /bin/ls -1 bin/aarch64/linux/release/
nvx_demo_feature_tracker
nvx_demo_feature_tracker_nvxcu
nvx_demo_hough_transform
nvx_demo_motion_estimation
nvx_demo_stereo_matching
nvx_demo_video_stabilizer
nvx_sample_nvgstcamera_capture
nvx_sample_object_tracker_nvxcu
nvx_sample_opencv_npp_interop
nvx_sample_opengl_interop
nvx_sample_player

「Jetson Nano 超入門」では、動画から走行する車、センターラインなどを検出するnvx_demo_feature_trackerのデモが紹介されている。

「Jetson Nano 超入門」のPart 5では、USBカメラを使った物体検出が記されているが、JetPack 4.5には対応していないらしい。下のサポートサイトに、インストールの仕方が記されている。

$ git clone https://github.com/karaage0703/jetson-nano-tools
$ cd jetson-nano-tools
$ ./install-tensorflow-v45.sh

いろいろなpython packageがインストールされ、約30分かかった。サポートサイトには、tensorflow 1.x系がインストールされる、と記されていたが、確認すると、1.15.5だった。

$ python3 -c 'import tensorflow as tf; print(tf.__version__)'
2021-03-17 21:28:36.199529: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.2
WARNING:tensorflow:Deprecation warnings have been disabled. Set TF_ENABLE_DEPRECATION_WARNINGS=1 to re-enable them.
1.15.5

USBカメラを接続すると、ドライバインストールなどなしで、認識した。dmesgの出力は、

$ dmesg
... 略
[ 4657.504910] usb 1-2.2: new high-speed USB device number 6 using tegra-xusb
[ 4657.801171] usb 1-2.2: New USB device found, idVendor=0c45, idProduct=NNNN
[ 4657.801176] usb 1-2.2: New USB device strings: Mfr=2, Product=1, SerialNumber=N
[ 4657.801179] usb 1-2.2: Product: USB  Live camera
[ 4657.801182] usb 1-2.2: Manufacturer: Sonix Technology Co., Ltd.
[ 4657.801185] usb 1-2.2: SerialNumber: SNMMMM
[ 4657.803174] uvcvideo: Found UVC 1.00 device USB  Live camera (0c45:NNNN)
[ 4657.838414] uvcvideo: Unable to create debugfs 1-6 directory.
[ 4657.838604] uvcvideo 1-2.2:1.0: Entity type for entity Extension 4 was not initialized!
[ 4657.846654] uvcvideo 1-2.2:1.0: Entity type for entity Extension 3 was not initialized!
[ 4657.854681] uvcvideo 1-2.2:1.0: Entity type for entity Processing 2 was not initialized!
[ 4657.862786] uvcvideo 1-2.2:1.0: Entity type for entity Camera 1 was not initialized!
[ 4657.870769] input: USB  Live camera as /devices/70090000.xusb/usb1/1-2/1-2.2/1-2.2:1.0/input/input3
[ 4657.894740] usb 1-2.2: 4:1: cannot get freq at ep 0x84
[ 4660.080803] usb 1-2.2: usb_suspend_both: status 0

lsusbコマンドでみると、

$ lsusb
Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
Bus 001 Device 006: ID 0c45:6536 Microdia
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Microdiaとは何だろう。Manufacturer名が表示されてもよさそうだが。動作確認のために、静止画を撮影するツールをインストールして、静止画を撮影した。

$ sudo apt install fswebcam
$ fswebcam -d /dev/video0 -r 640x480 pic.jpg

pic.jpgを表示させて、正しく撮影できていることを確認した。サポートサイトにある物体検出ソフト「Object Detection Tools」を確認するのは、次の機会に。