开发平台¶
Jetson-TX2¶
Jeton-TX2 的开发包,包含了 tensorRT,cuda,cudnn,opencv,以及visionworks 以及Multimedia API等等。 以及相关的开发工具,CPU的proiler, NSight Eclipse, Tegra Graphic profiler 等等。并且本身是全版的ubuntu 16.04. 特别适合做二次开发。
如何从离线安装¶
把上次安装目目录下的
/Jetpack/jetpack_download
保存一下再一次安装的指定 repo
comp_repo_path=file:///home/ubuntu/Jetpack/jetpack_download/jetpack.json ./JetPack-L4T-XX.run #slient update Launcher_slient_mode=install development_platform=jetson-tx2 ./JetPack-L4T-XXX.run
JetPack 的目录结构¶
JetPack tree -L 3
.
├── 64_TX2
│ ├── cuda-l4t
│ │ └── cuda-l4t.sh
│ ├── cudnn
│ │ ├── libcudnn6_6.0.21-1+cuda8.0_arm64.deb
│ │ ├── libcudnn6-dev_6.0.21-1+cuda8.0_arm64.deb
│ │ └── libcudnn6-doc_6.0.21-1+cuda8.0_arm64.deb
│ ├── Linux_for_Tegra_tx2
│ │ ├── apply_binaries.sh
│ │ ├── bootloader
│ │ ├── cmd.sh
│ │ ├── flash.sh
│ │ ├── jetson-tx2.conf -> p2771-0000-devkit.conf
│ │ ├── kernel
│ │ ├── new_dir
│ │ ├── nv_tegra
│ │ ├── p2771-0000.conf.common
│ │ ├── p2771-0000-devkit.conf
│ │ ├── p2771-0000-dsi-hdmi-dp.conf
│ │ ├── rootfs
│ │ ├── source_sync.sh
│ │ └── TX2_flash_package.tgz
│ └── tegra_multimedia_api
│ ├── argus
│ ├── data
│ ├── include
│ ├── LEGAL
│ ├── LICENSE
│ ├── Makefile
│ ├── README
│ ├── samples
│ └── tools
├── _installer
│ ├── Chooser
│ ├── configure_host
│ ├── cuda-l4t.sh
│ ├── exit.code
│ ├── flash_os
│ ├── InstallUtil
│ ├── JetPack.log
│ ├── Launcher
│ ├── Launcher.log
│ ├── local.cfg
│ ├── local.db
│ ├── local.ini
│ ├── logs
│ │ └── 64_TX2
│ ├── nv_info_broker
│ ├── ocv.sh
│ ├── PageAction
│ ├── Poller
│ ├── rc.local
│ ├── remove_unsupported_cuda_samples.sh
│ ├── report_ip_to_host.sh
│ ├── run_command
│ ├── run_gameworks_sample.sh
│ ├── selected_comps.txt
│ ├── start_up.sh
│ ├── sudo_daemon
│ └── tmp
│ ├── jetpackfifo
│ ├── jetpackfifo_req
│ └── log
├── jetpack_download
│ ├── 2017_06_14_0412-22311683-NVIDIA_Tegra_Graphics_Debugger_2.4.17165.0412_Release_External_tgd-l4t_linux-l4t.run
│ ├── cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb
│ ├── cuda-repo-ubuntu1404-8-0-local_8.0.84-1_amd64.deb
│ ├── host-x64-linux-public-3.8.450-a527a18.tar.gz
│ ├── jetpack_docs.zip
│ ├── libcudnn6_6.0.21-1+cuda8.0_arm64.deb
│ ├── libcudnn6-dev_6.0.21-1+cuda8.0_arm64.deb
│ ├── libcudnn6-doc_6.0.21-1+cuda8.0_arm64.deb
│ ├── libopencv4tegra-repo_2.4.13-17-g5317135_amd64_ubuntu-14.04.deb
│ ├── libopencv4tegra-repo_2.4.13-17-g5317135_arm64_l4t-r26.deb
│ ├── libvisionworks-repo_1.6.0.193n_amd64_ubuntu-14.04.deb
│ ├── libvisionworks-repo_1.6.0.233n_arm64_l4t-r26.deb
│ ├── libvisionworks-sfm-repo_0.90.1_amd64_ubuntu-14.04.deb
│ ├── libvisionworks-sfm-repo_0.90.1_arm64_l4t-r26.deb
│ ├── libvisionworks-tracking-repo_0.88.0_amd64_ubuntu-14.04.deb
│ ├── libvisionworks-tracking-repo_0.88.0_arm64_l4t-r26.deb
│ ├── nv-gie-repo-ubuntu1604-ga-cuda8.0-trt2.1-20170614_1-1_arm64.deb
│ ├── NVIDIA_Tegra_Linux_Driver_Package.tar
│ ├── NVIDIA_VisionWorks_1.6_Docs.zip
│ ├── Tegra186_Linux_R28.1.0_aarch64.tbz2
│ ├── Tegra_Linux_Driver_Package_Release_Notes_R28.1.pdf
│ ├── Tegra_Linux_Sample-Root-Filesystem_R28.1.0_aarch64.tbz2
│ └── Tegra_Multimedia_API_R28.1.0_aarch64.tbz2
├── JetPack-L4T-3.1-linux-x64.run
├── JetPack_Uninstaller
├── manifest.json
├── repository.json
├── tmp
│ ├── com.nvidia.cuda.host_tx2_cuda.png
│ ├── com.nvidia.l4t.driver4os_64_tx2_nvidia.png
│ ├── com.nvidia.l4t.flash_64_tx2_nvidia.png
│ └── com.nvidia.nvtools.battle_tegra-graphics-debugger.png
└── update.lock
21 directories, 76 files
➜ JetPack
如何快速定制target的刷机Image¶
从官网下载最新的 JetPack 最新版本为3.1.
选择相关的包进行安装并刷机。
Note
进入recover 模式, 组合键顺序:
Rec
->Rec+Reset
->Rec
在device 上安装各种额外的包。你可以用VNC 或者ssh 去连接device.
sudo apt-get intall -y git cmake clang
备份整个device的rootfs.
sudo tar -cvpz --one-file-system / | ssh <yourlocalhost> "(cat >ssh_jetson_tx2_rootfs.tgz)"
在host上解压到jetpack的解压目录
sudo tar -xvpzf /path/to/ssh_jetson_tx2_rootfs.tar.gz -C <rootfs folder in host> --numeric-owner"
重新刷机生成一个新的刷机包
cd <Jetpackppath>/64_TX2/Linux_for_Tegra_tx2 ./flash_os jetson-tx2 mmcblk0p1
Note
刷机前看一下device是否在 recovery mode 用命令 lsusb | grep "nvidia" 来查看
等刷机完成后,在
Linux_for_Tegra_tx2/bootloader
下就生成了新的刷机包了。并且以后刷机直接用 cd Linux_for_Tegra_tx2/bootloader && sh bootloader 。基本十几分钟就可以刷好了。
如何手工安装¶
Install CUDA
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-r381_8.0.84-1_amd64.deb sudo apt-get sudo apt-get install -y --allow-unauthenticated update sudo apt-get install -y cuda sudo dpkg --add-architecture arm64 sudo apt-get --allow-unauthenticated update sudo apt-get install -y --allow-unauthenticated cuda-cross-aarch64
libopencv4tegra-dev
sudo apt-get install -y cuda-cross-aarch64
cuda toolkit cross compiler
sudo dpkg --add-architecture arm64 sudo dpkg -i xxx.deb sudo apt-get update sudo apt install cuda-cross-aarch64
Import a CUDA sample to Nsight Eclipse and set arch as aarch64
参考¶
SLAM on Jetson TX2¶
视频分析¶
- Capture video
- Recognition objects
- Take action in real-time
- Visualize
TX2 的基本库¶
计算有CUDA,图形 GL,图像OPENCV,以及计算机视觉有Visionworks。DL可以用tensorrt来推理。
标准流可以用vision works,非标准流可以用 tegra-multimedia api.
基本的视频分析¶
Tegra_multimedia api sample¶
Manual : <L4T Multimedia API Reference> on https://developer.nvidia.com/embedded/downloads
库的组成¶
- V4L2 API 用于各种视频的编解码与scaling等等。
- libargus 用于图像处理,能直接处理lower level Camera信息。 具体流程可以查看http://on-demand.gputechconf.com/gtc/2016/webinar/getting-started-jetpack-camera-api.pdf
- Buffer utilis ,buffer 的内存管理
- NVDC-DRM 可以对于非 X11的轻量的级的显示管理系统,特别是适合一些嵌入的系统
- NVOSD on-Screen display.
backend¶
$ ./backend 1 ../../data/Video/sample_outdoor_car_1080p_10fps.h264 H264 \
--trt-deployfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.prototxt \
--trt-modelfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.caffemodel \
--trt-forcefp32 0 --trt-proc-interval 1 -fps 10