名词解释
- jetson 每个产品都有一套 developer kit 和一套 module,引用自 FAQ,developer kit 用于研发阶段,module 用于生产环境。 FYI: - What is the difference between Jetson Nano and Jetson Nano developer kit - Jetson & Embedded Systems / Jetson Nano - NVIDIA Developer Forums
- l4t(Linux for Tegra),为 tegra 处理器发行的 linux,基于 ubuntu 定制。文档:NVIDIA Jetson Linux Developer Guide : Introduction | NVIDIA Docs
- jetpack,nvidia 的软件开放工具包,包括 l4t和各种工具。NVIDIA JetPack Documentation
- cuda, gpu 并行计算架构,
- tensorrt,NVIDIA 深度学习加速
Jetson Nano Developer Kit
参考 Getting Started with Jetson Nano Developer Kit
Jetson AGX Xavier Flash
刷机有两种方式:
- 通过 nvidia sdk mamager 刷入 jetpack
- Manual, 手动刷入 l4t。
Nvidia Sdk manager
NVIDIA SDK Manager,提供比较简单、自动化的刷机过程,有 gui,同时也支持 Command-Line Install :: NVIDIA SDK Manager Documentation。
简单尝试了下,因为网络的坑比较多,所以最后选择手动刷入 l4t。
Manual
手动刷机主要分为两步,刷入 l4t 后,进入系统再安装 jetpack。
刷 l4t,官方提供了比较详细的文档:
安装环境
Host
nvidia sdkmanager 有声明需要 ubuntu 16 或 18。手动刷 l4t 没提及发行版的要求。根据这些天踩过 nvidia 的坑,还是稳妥点,乖乖 ubuntu。手动刷机更不需要 gui 了,所以选择 server 版本的 ubuntu,省点资源:Ubuntu 18.04.5 LTS (Bionic Beaver)
我是 macOS + VirtualBox 环境:
- Mac mini
- macOS 11.1
- VirtualBox 6.1.16
- VirtualBox Extension Pack 6.1.16
- Ubuntu-18.04.5-live-server-amd64.iso
Vbox 需要支持 USB2/USB3,所以需要安装扩展包:Downloads – Oracle VM VirtualBox
Jetson
- Jetson agx xavier 32GB(P2888-004)
- L4T R34.1.1 archive | NVIDIA Developer
安装 Ubuntu
创建虚拟机需要注意:
- 选择 usb3 的支持
- 设置
- Ports
- USB
- USB 3.0(xHCI) Controller
- 硬盘镜像选择 30GB,基于 sdkmanager 安装 jetson 的文档提及可用空间需要大于 25GB,所以 30 GB 肯定是够的。
手动安装只安装 l4t,实际肯定不用 30GB,但 10 GB 肯定是不够的,别问为什么。
成功刷机后的空间情况:
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 462M 0 462M 0% /dev
tmpfs 99M 736K 98M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 20G 19G 76M 100% /
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda2 976M 78M 832M 9% /boot
tmpfs 99M 0 99M 0% /run/user/1000
$ lsblk
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 29G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 20G 0 lvm /
sr0 11:0 1 1024M 0 rom
添加光驱镜像 ubuntu-18.04.5-live-server-amd64.iso
后,启动虚拟机便开始安装流程。主要注意把镜像替换为
https://mirrors.tuna.tsinghua.edu.cn/ubuntu
进入系统后,需要安装
sudo apt-get install qemu-user-static
sudo apt-get install python # 需要 python 可执行,不确定是否要 python2
Host 便配置完成。
下载 l4t archive
下载页
下载
配置环境变量,可配可不配,主要是文档提及的文件名容易造成混淆。
export L4T_RELEASE_PACKAGE=Tegra186_Linux_R32.4.4_aarch64.tbz2 # 就是下载的 BSP 文件
export SAMPLE_FS_PACKAGE=Tegra_Linux_Sample-Root-Filesystem_R32.4.4_aarch64.tbz2
export BOARD=jetson-agx-xavier-devkit
解压文件
$ tar xf ${L4T_RELEASE_PACKAGE}
$ cd Linux_for_Tegra/rootfs/
$ sudo tar xpf ../../${SAMPLE_FS_PACKAGE}
$ cd ..
$ sudo ./apply_binaries.sh
然后准备刷机前,需要留意一些问题。
- 检查是否成功链接到虚拟机并处在 RCM
- usb 链接 mac mini
- vbox 添加 usb 到虚拟机,可能需要重启虚拟机、重新把擦才能认到。
lsusb
确认 usb 已经链接到虚拟机并处在 RCM :Bus <bbb> Device <ddd>: ID 0955: <nnnn> Nvidia Corp.
- usb 需要重启虚拟机才能认到
- 文档未提及需要
python
可执行。ubuntu 只有 python3,需要手动安装一些 python,或者链接一下python3
正常情况下,就可以开始刷机了,不过文档未提及需要 python
可执行。第一次执行 flash.sh,因为本地找不到 python 可执行文件,所以报错。安装 python2 后重新执行,提示
Error: probing the target board failed.
Flash Jetson TX2 : Make sure the target board is connected through
Flash Jetson TX2 : USB port and is in recovery mode.
看了下 flash.sh
的代码发现问题是因为 sudo ./bootloader/tegrarcm_v2 --uid
报错:
Failed to read UID
根据这个回帖,SDK Manager - Could not detect target hardware - Jetson & Embedded Systems / Jetson TX2 - NVIDIA Developer Forums 猜测是第一次因为 python 报错导致,但 RCM 的信息被读取,下一次 flash 就会读不到信息最后超时报错。 断电重新进入一次 Force Recovery Mode。便可以正常刷机。差点以为是不支持 VM:
不过貌似也有办法支持其他 linux:https://forums.developer.nvidia.com/t/using-jetpack-from-arch-linux/44979
确保所有条件没问题,便可以开始刷机。
- 进入
Force Recovery mode(RCM)
,设备关机,按住 Force Recovery 键(与电源键相邻),再开机。 - 链接 USB
sudo ./flash.sh ${BOARD} mmcblk0p1
刷机成功,jetson 便会自动重启直接进入系统。
安装到 nvme
Jetson AGX Xavier 需要先刷一遍 eMMC,才能刷到 NVME:
Jetson AGX Xavier series devices use boot firmware that is stored only on internal eMMC memory, and the esp partition on internal eMMC memory is also required. As a result, this type of device can boot from a USB or an NVMe drive only if the drive’s internal eMMC has been flashed.
这条指令可以自动处理整个流程:
sudo ./nvsdkmanager_flash.sh --storage nvme0n1p1
详细参考: https://docs.nvidia.com/jetson/archives/r35.2.1/DeveloperGuide/text/SD/FlashingSupport.html#flashing-to-an-nvme-drive
Control
刷好机后需要登陆到 jetson 进行配置,最直接的做法就是为 jetson 接上显示器和键盘,这个就不提了。另外也可以通过usb 模拟串口进行配置。
Serial Console
Jetson: Jetson agx xavier 32GB(P2888-004)
第一步:按照 Jetson AGX Xavier headless setup - no ttyACM port created on host - Jetson & Embedded Systems / Jetson AGX Xavier - NVIDIA Developer Forums 的官方回复需要,将 jetson micro-usb 和 type-c 同时连接到主机再开启 jetson 的电源。
但是我在 macOS 上发现只需插上 typec 就可以。
macOS
TODO modem 与 serial 的区别
两个接口连上 mbp 后:
$ ioreg -p IOUSB #可以看到有两个设备
...
+-o Linux for Tegra@14100000 <class AppleUSBDevice, id 0x1002b3edc, registered, matched, active, busy 0 (2 ms), retain 24>
+-o Quad RS232-HS@14200000 <class AppleUSBDevice, id 0x1002b40d8, registered, matched, active, busy 0 (2 ms), retain 18>
...
$ ls /dev/tty.usbmodem* 能找到设备
然后通过 screen
连上该设备便可以:
screen /dev/tty.usbmodem14238200066403 -8 -b 115200
C-a k
退出 screen
登陆上去后可能需要设置一下才能让终端有颜色:
export TERM=xterm-256color
Ubuntu
FIXME
minicon /dev/ttyUSB3 8 -b 115200 # agx xavier 是 usb3
# 可以一直保持链接,关机重启也会自动更新
ubuntu 就需要同时连接 typc-c 和 micro-usb 才能找到 /dev/ttyACM*
Configuration
有用的信息:
/media/{user}/L4T-README
- README-usb-dev-mode.txt 如何通过 usb 与主机相连,包括虚拟串口方面的信息
- README-vnc.txt 快速配置 vnc 服务
- README-wifi.txt 通过命令行连接 wifi
- NVIDIA Jetson Xavier | NVIDIA Xavier Guide | RidgeRun
- Jetson AGX Xavier - eLinux.org
- Jetson Nano — Cloud Atlas 0.1 文档
Network
默认 dhcp,配置使用命令 nmcli
apt
换源(可选)
备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.origin
内容替换为:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
更新系统
sudo apt-get update
sudo apt-get upgrade
见 How to Install Debian Packages with OTA Update
display manager 更新为 lightdm(可选,TODO 自动登陆有问题)
sudo dpkg--reconfigure lightdm
其他必备
- rbonghi/jetson_stats: 📊 Simple package to monitoring and control your NVIDIA Jetson [Xavier NX, Nano, AGX Xavier, TX1, TX2]
- sudo apt install zsh
- Oh My Zsh - a delightful & open source framework for Zsh
omz theme set ys
Headless Jetson
tigervnc
tigervnc 各方面都不错,但是,不支持 ClientCutText,考虑用 vnc server(不支持 arm64) 收费软件代替。
通过 ssh 操作剪切板
apt-get install xclip
alias xclip="xclip -selection c" # set clip
alias xclipg="xclip -selection c -o" # get clip
export DISPLAY=:0
echo -n text | xclip
sudo apt install tigervnc-scraping-server
设置密码
vncpasswd
共享本地桌面 x0vncserver
x0vncserver/x0tigervncserver
支持共享本地桌面
创建 ~/.config/systemd/user/x0vncserver.service
[Unit]
Description=Remote desktop service (VNC)
[Service]
Type=simple
# wait for Xorg started by lc
ExecStartPre=/bin/sh -c 'while ! pgrep -U "$USER" Xorg; do sleep 2; done'
# 1.12.0
# ExecStart=/usr/bin/x0vncserver -localhost no -rfbauth %h/.vnc/passwd -rfbport 5900 -fg
# 1.7.0
ExecStart=/usr/bin/x0vncserver -rfbauth %h/.vnc/passwd -rfbport 5900
[Install]
WantedBy=default.target
启用服务:
systemctl --user enable ~/.config/systemd/user/x0vncserver.service
systemctl --user start x0vncserver.service
同样需要登陆后才能生效
修改 /etc/gdm3/custom.conf
开启自动登陆
一般 vncserver 方案
默认情况下一个 vncserver 对应一个 xsession,不与当前显示器共享 xsession。
当是这方案不支持 EGL
Unfortunately, if there is no monitor case, then VNC cannot work. You could try to use RDP (remote desktop protocol) application and it should work. However, EGL seems not able to run with rdp backend. Thus, if you want to render something by using EGL, it would not work.
Vino
参考 README-vnc
或 Setting Up VNC | NVIDIA Developer
官方用的是 ubuntu 自带的 vino。与 x11vnc 一样是屏幕共享。需要等本地登陆后才能连,也可配置自动登陆:
修改 /etc/gdm3/custom.conf
开启自动登陆
不插显示器也支持,不过默认分辨率有点小:
默认分辨率太小,需要修改 /etc/X11/xorg.conf
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Default Device"
SubSection "Display"
Depth 24
Virtual 1440 900
EndSubSection
EndSection
也可以直接用 hdmi 欺骗器。
问题:卡,没有 tigervnc 流畅
切换到 lightdm 后流畅度改善不少。
x11vnc
- Dummy Monitor 不能生效,且不能使用 nvidia 驱动
- 尝试 hdmi 欺骗器 TODO
开机自动启用 x11vnc
-
login manager 自动登陆
-
先连到 loginmanager 的 xsession(Dispaly=:0),手动登陆后再,连到桌面(Display=:1):https://askubuntu.com/a/1036507 p
X11 Forwarding
转发远端的 xclient 链接到本地的 xserver
macos
- xquartz
Development
- Jetson Zoo - eLinux.org
- dusty-nv/jetson-inference: Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.
jetpack
jetpack 5.x
sudo apt install nvidia-jetpack
- 需要在本机跑程序,则安装 jetpack
nvidia-jetpack 安装两个包(11.6GB):
- nvidia-jetpack-runtime
- nvidia-jetpack-dev (开发可选)
- docker 的话则只需安装 nvidia-container(5.9GB)
jetpack 4.x
sudo apt install nvidia-jetpack
见 1.3. Package Management Tool
最后 32 GB 的空间剩下:
/dev/mmcblk0p1 28G 12G 15G 46% /
python
使用系统自带 python3 记得先升级一下 pip 避免各种奇葩问题:
python3 -m pip install pip
jupyter
- python -m pip install jupyterlab ipywidgets
- [matplotlib/ipympl: Matplotlib Jupyter Integration](https://github.com/matplotlib/ipympl)
docker
Jetpack 5.x
sudo apt update
sudo apt install nvidia-container
sudo systemctl restart docker
sudo usermod -aG docker $USER
newgrp docker
Jetpack: 4.6
Docker: 20.10.7 会遇到:
docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: error adding seccomp filter rule for syscall clone3: permission denied: unknown.
降级 docker 解决 :
wget https://launchpad.net/ubuntu/+source/docker.io/20.10.2-0ubuntu1~18.04.2/+build/21335731/+files/docker.io_20.10.2-0ubuntu1~18.04.2_arm64.deb sudo dpkg -i docker.io_20.10.2-0ubuntu1~18.04.2_arm64.deb rm docker.io_20.10.2-0ubuntu1~18.04.2_arm64.deb sudo apt install containerd=1.5.2-0ubuntu1~18.04.3
pin docker 版本:
sudo nano /etc/apt/preferences
Package: docker.io
Pin: version 20.10.2*
Pin-Priority: 1001
Package: containerd
Pin: version 1.5.2*
Pin-Priority: 1001
pytorch
Docker
不折腾选择 docker:
NVIDIA L4T PyTorch | NVIDIA NGC
本地安装
cmake python3
https://github.com/pytorch/vision/issues/2565
cmake
系统自带版本太旧,编译 torchvison 不支持 python3。删除系统的版本,再从源码重新编译。
sudo apt remove cmake
确保安装 openssl 依赖
sudo apt install libssl-dev
下载
opencv
自带的 opencv 并不支持 CUDA,cv2.getBuildInfomation()
:
General configuration for OpenCV 4.1.1 =====================================
Version control: 4.1.1-2-gd5a58aa75
Platform:
Timestamp: 2019-12-13T17:25:11Z
Host: Linux 4.9.140-tegra aarch64
CMake: 3.10.2
CMake generator: Unix Makefiles
CMake build tool: /usr/bin/make
Configuration: Release
CPU/HW features:
Baseline: NEON FP16
required: NEON
disabled: VFPV3
....
OpenCV modules:
To be built: calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python2 python3 stitching ts video videoio
Disabled: world
Disabled by dependency: -
Unavailable: java js
Applications: tests perf_tests examples apps
Documentation: NO
Non-free algorithms: NO
需要自己重新编译:Install OpenCV 4.5 on Jetson Nano - Q-engineering
# reveal the CUDA location
sudo sh -c "echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf.d/nvidia-tegra.conf"
sudo ldconfig
# third-party libraries
sudo apt-get install build-essential cmake git unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgtk2.0-dev libcanberra-gtk*
sudo apt-get install python3-dev python3-numpy python3-pip
sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev
sudo apt-get install libtbb2 libtbb-dev libdc1394-22-dev
sudo apt-get install libv4l-dev v4l-utils
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install libavresample-dev libvorbis-dev libxine2-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install libopenblas-dev libatlas-base-dev libblas-dev
sudo apt-get install liblapack-dev libeigen3-dev gfortran
sudo apt-get install libhdf5-dev protobuf-compiler
sudo apt-get install libprotobuf-dev libgoogle-glog-dev libgflags-dev
# qt5
sudo apt-get install qt5-default
下载源码:
# download the latest version
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.0.zip
# unpack
$ unzip opencv.zip
$ unzip opencv_contrib.zip
$ mv opencv-4.5.0 opencv
$ mv opencv_contrib-4.5.0 opencv_contrib
# clean up the zip files
$ rm opencv.zip
$ rm opencv_contrib.zip
$ cd ~/opencv
$ mkdir build
$ cd build
确保 CUDA_ARCH_BIN
改成 agx xavier 的版本
默认安装位置是 /usr/local
,改成/usr
是为了和本机版本共存。
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr \
-D OPENCV_EXTRA_MODULES_PATH=~/Playground/opencv_contrib/modules \
-D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=7.2 \
-D CUDA_ARCH_PTX="" \
-D WITH_CUDNN=ON \
-D WITH_CUBLAS=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_NEON=ON \
-D WITH_QT=ON \
-D WITH_OPENMP=ON \
-D WITH_OPENGL=ON \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D BUILD_TESTS=OFF \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_opencv_python3=TRUE \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_EXAMPLES=ON ..
编译
make -j4
$ sudo rm -r /usr/include/opencv4/opencv2 # 清理 old packages
$ sudo make install
$ sudo ldconfig
# cleaning (frees 300 KB)
$ make clean
测试一下:
General configuration for OpenCV 4.5.1 =====================================
Version control: unknown
Extra modules:
Location (extra): /home/tx/Playground/opencv_contrib/modules
Version control (extra): unknown
Platform:
Timestamp: 2020-12-29T03:01:07Z
Host: Linux 4.9.140-tegra aarch64
CMake: 3.19.2
CMake generator: Unix Makefiles
CMake build tool: /usr/bin/make
Configuration: RELEASE
CPU/HW features:
Baseline: NEON FP16
required: NEON
...
OpenCV modules:
To be built: alphamat aruco bgsegm bioinspired calib3d ccalib core cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv datasets dnn dnn_objdetect dnn_superres dpm face features2d flann freetype fuzzy gapi hdf hfs highgui img_hash imgcodecs imgproc intensity_transform line_descriptor mcc ml objdetect optflow phase_unwrapping photo plot python3 quality rapid reg rgbd saliency sfm shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab xfeatures2d ximgproc xobjdetect xphoto
Disabled: world
Disabled by dependency: -
Unavailable: cnn_3dobj java julia matlab ovis python2 viz
Applications: perf_tests examples apps
Documentation: NO
Non-free algorithms: YES
cv2.cuda.getCudaEnabledDeviceCount()
1
gstreamer
官方 Manual:
- https://developer.download.nvidia.com/embedded/L4T/r32_Release_v1.0/Docs/Accelerated_GStreamer_User_Guide.pdf?t=eyJscyI6ImdzZW8iLCJsc2QiOiJodHRwczovL3d3dy5nb29nbGUuY29tLyJ9
- Accelerated GStreamer
安装:
sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-good1.0-dev \
libgstreamer-plugins-bad1.0-dev
opencv 才能支持 CAP_GSTREAMER
,jetcam 才能正常使用
cv2.getBuildInfomation()
输出有:
Video I/O:
FFMPEG: YES
avcodec: YES (57.107.100)
avformat: YES (57.83.100)
avutil: YES (55.78.100)
swscale: YES (4.8.100)
avresample: NO
GStreamer: YES (1.14.5)
v4l/v4l2: YES (linux/videodev2.h)
- videoparse
- videoconvert
- queue
ipython
与 jedi 不兼容
python3.6 支持的 ipython 7.16.x,与 jedi 0.18 不兼容报错:
File "../venv/lib/python3.8/site-packages/IPython/core/completer.py", line 2029, in _complete
completions = self._jedi_matches(
File "../venv/lib/python3.8/site-packages/IPython/core/completer.py", line 1373, in _jedi_matches
interpreter = jedi.Interpreter(
File "../venv/lib/python3.8/site-packages/jedi/api/__init__.py", line 725, in __init__
super().__init__(code, environment=environment,
TypeError: __init__() got an unexpected keyword argument 'column'
需要降级 jedi,emacs lsp-mode 需要的 jedi-language-server 0.22.0,又将 jedi pin 在 0.18。 需要安装指定版本:
pip3 install 'jedi==0.17.2'
pip3 install 'jedi_language_server==0.21.0'
jupyter 无法显示图片
https://stackoverflow.com/questions/61834868/ipython-display-display-not-showing-image-in-jupyter-notebook
python3 -m pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension
# 需要安装 jupyter-lab 和 nodejs > 12
jupyter labextension install @jupyter-widgets/jupyterlab-manager
ZED
确保安装了
Cython
距离识别模式
- STANDARD,效率好,检测边界,存在黑洞(无法获取数据的点)
- FILL,生产稠密的距离图,不支持 Point Cloud,
Dr=Z^2*alpha, where Dr is depth resolution, Z the distance and alpha a constant.
zed-gstreamer
gir1.2-gst-rtsp-server-1.0 gstreamer1.0-doc gstreamer1.0-qt5 libglib2.0-doc libgstrtspserver-1.0-0 libgstrtspserver-1.0-dev