Linux 35.6 + JetPack v5.1.4@DeepStream安装
Linux 35.6 + JetPack v5.1.4@DeepStream安装
- 1. 源由
- 2. 步骤
- Step 1 安装Jetpack 5.1.4 L4T 35.6
- Step 2 安装依赖组件
- Step 3 安装librdkafka
- Step 4 安装 DeepStream SDK
- Step 5 测试 deepstream-app
- Step 6 运行 deepstream-app
- 3. 总结
- 3.1 版本问题
- 3.2 二进制help
- 4. 参考资料
1. 源由
为了确保在Jetson Orin平台上继续我们追求的 FPV Geek SDK 推进;奠定一些基础技术的经验和基础;
- Ardupilot开源无人机之Geek SDK讨论
- Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考
- ArduPilot开源飞控之MAVProxy深入研读系列 - 2蜂群链路
目前,在Jetson Orin 8GB的板子上 jetson-fpv 性能不佳的情况,着实令人着急,呵呵!
2. 步骤
Step 1 安装Jetpack 5.1.4 L4T 35.6
参考:《Linux 36.3@Jetson Orin Nano之系统安装》
Step 2 安装依赖组件
$ sudo apt install \
libssl1.1 \
libgstreamer1.0-0 \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstreamer-plugins-base1.0-dev \
libgstrtspserver-1.0-0 \
libjansson4 \
libyaml-cpp-dev
Step 3 安装librdkafka
- Clone the librdkafka repository from GitHub:
$ git clone https://github.com/edenhill/librdkafka.git
或者
git clone git@github.com:confluentinc/librdkafka.git
- Configure and build the library:
$ cd librdkafka
$ git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
$ ./configure
$ make
$ sudo make install
- Copy the generated libraries to the deepstream directory:
$ sudo mkdir -p /opt/nvidia/deepstream/deepstream-6.3/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-6.3/lib
$ ls /opt/nvidia/deepstream/deepstream-6.3/lib
librdkafka++.a librdkafka.a librdkafka++.so librdkafka.so librdkafka++.so.1 librdkafka.so.1
Step 4 安装 DeepStream SDK
- Download DS SDK
$ wget --content-disposition 'https://api.ngc.nvidia.com/v2/resources/org/nvidia/deepstream/6.3/files?redirect=true&path=deepstream_sdk_v6.3.0_jetson.tbz2' -O deepstream_sdk_v6.3.0_jetson.tbz2
或者,通过网页下载:DeepStream SDK
- Install DS SDK
$ sudo tar -xvf deepstream_sdk_v6.3.0_jetson.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-6.3
$ sudo ./install.sh
$ sudo ldconfig
Step 5 测试 deepstream-app
$ ldd /usr/bin/deepstream-applinux-vdso.so.1 (0x0000ffff9420b000)libgstreamer-1.0.so.0 => /lib/aarch64-linux-gnu/libgstreamer-1.0.so.0 (0x0000ffff93f2f000)libgstvideo-1.0.so.0 => /lib/aarch64-linux-gnu/libgstvideo-1.0.so.0 (0x0000ffff93e7a000)libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000ffff93d3f000)libgobject-2.0.so.0 => /lib/aarch64-linux-gnu/libgobject-2.0.so.0 (0x0000ffff93ccd000)libgstrtspserver-1.0.so.0 => /lib/aarch64-linux-gnu/libgstrtspserver-1.0.so.0 (0x0000ffff93c5a000)libjson-glib-1.0.so.0 => /lib/aarch64-linux-gnu/libjson-glib-1.0.so.0 (0x0000ffff93c21000)libyaml-cpp.so.0.6 => /lib/aarch64-linux-gnu/libyaml-cpp.so.0.6 (0x0000ffff93bc1000)libnvdsgst_meta.so => /opt/nvidia/deepstream/deepstream-6.3/lib/libnvdsgst_meta.so (0x0000ffff93bab000)libnvdsgst_smartrecord.so => /opt/nvidia/deepstream/deepstream-6.3/lib/libnvdsgst_smartrecord.so (0x0000ffff93b94000)libnvdsgst_helper.so => /opt/nvidia/deepstream/deepstream-6.3/lib/libnvdsgst_helper.so (0x0000ffff93b7c000)libnvdsgst_customhelper.so => /opt/nvidia/deepstream/deepstream-6.3/lib/libnvdsgst_customhelper.so (0x0000ffff93b63000)libnvds_meta.so => /opt/nvidia/deepstream/deepstream-6.3/lib/libnvds_meta.so (0x0000ffff93b4c000)libnvds_utils.so => /opt/nvidia/deepstream/deepstream-6.3/lib/libnvds_utils.so (0x0000ffff93542000)libnvds_msgbroker.so => /opt/nvidia/deepstream/deepstream-6.3/lib/libnvds_msgbroker.so (0x0000ffff93528000)libX11.so.6 => /lib/aarch64-linux-gnu/libX11.so.6 (0x0000ffff933e3000)libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff933cf000)libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff931ea000)libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff931b9000)librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff931a1000)libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff930f6000)libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff92f83000)/lib/ld-linux-aarch64.so.1 (0x0000ffff941db000)libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff92f5f000)libgmodule-2.0.so.0 => /lib/aarch64-linux-gnu/libgmodule-2.0.so.0 (0x0000ffff92f4b000)libgstbase-1.0.so.0 => /lib/aarch64-linux-gnu/libgstbase-1.0.so.0 (0x0000ffff92ec6000)liborc-0.4.so.0 => /lib/aarch64-linux-gnu/liborc-0.4.so.0 (0x0000ffff92e37000)libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000ffff92dc5000)libffi.so.7 => /lib/aarch64-linux-gnu/libffi.so.7 (0x0000ffff92dac000)libgstnet-1.0.so.0 => /lib/aarch64-linux-gnu/libgstnet-1.0.so.0 (0x0000ffff92d85000)libgstrtp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstrtp-1.0.so.0 (0x0000ffff92d4f000)libgstrtsp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstrtsp-1.0.so.0 (0x0000ffff92d1a000)libgstsdp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstsdp-1.0.so.0 (0x0000ffff92cf1000)libgstapp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstapp-1.0.so.0 (0x0000ffff92cd1000)libgio-2.0.so.0 => /lib/aarch64-linux-gnu/libgio-2.0.so.0 (0x0000ffff92ad4000)libgstpbutils-1.0.so.0 => /lib/aarch64-linux-gnu/libgstpbutils-1.0.so.0 (0x0000ffff92a86000)libnvinfer.so.8 => /lib/aarch64-linux-gnu/libnvinfer.so.8 (0x0000ffff8592d000)libnvds_logger.so => /opt/nvidia/deepstream/deepstream-6.3/lib/libnvds_logger.so (0x0000ffff8591b000)libxcb.so.1 => /lib/aarch64-linux-gnu/libxcb.so.1 (0x0000ffff858e4000)libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff858b8000)libmount.so.1 => /lib/aarch64-linux-gnu/libmount.so.1 (0x0000ffff8584a000)libselinux.so.1 => /lib/aarch64-linux-gnu/libselinux.so.1 (0x0000ffff85812000)libresolv.so.2 => /lib/aarch64-linux-gnu/libresolv.so.2 (0x0000ffff857ec000)libgstaudio-1.0.so.0 => /lib/aarch64-linux-gnu/libgstaudio-1.0.so.0 (0x0000ffff85768000)libgsttag-1.0.so.0 => /lib/aarch64-linux-gnu/libgsttag-1.0.so.0 (0x0000ffff8571b000)libnvdla_compiler.so => /usr/lib/aarch64-linux-gnu/tegra/libnvdla_compiler.so (0x0000ffff84fe0000)libcudla.so.1 => /usr/local/cuda/targets/aarch64-linux/lib/libcudla.so.1 (0x0000ffff84fa3000)libXau.so.6 => /lib/aarch64-linux-gnu/libXau.so.6 (0x0000ffff84f8f000)libXdmcp.so.6 => /lib/aarch64-linux-gnu/libXdmcp.so.6 (0x0000ffff84f79000)libblkid.so.1 => /lib/aarch64-linux-gnu/libblkid.so.1 (0x0000ffff84f13000)libpcre2-8.so.0 => /lib/aarch64-linux-gnu/libpcre2-8.so.0 (0x0000ffff84e83000)libnvos.so => /usr/lib/aarch64-linux-gnu/tegra/libnvos.so (0x0000ffff84e63000)libnvdla_runtime.so => /usr/lib/aarch64-linux-gnu/tegra/libnvdla_runtime.so (0x0000ffff8480b000)libcuda.so.1 => /usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 (0x0000ffff831b4000)libbsd.so.0 => /lib/aarch64-linux-gnu/libbsd.so.0 (0x0000ffff8318d000)libnvrm_host1x.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_host1x.so (0x0000ffff8316a000)libnvrm_mem.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_mem.so (0x0000ffff83152000)libnvsocsys.so => /usr/lib/aarch64-linux-gnu/tegra/libnvsocsys.so (0x0000ffff8313e000)libnvrm_gpu.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so (0x0000ffff830d1000)libnvrm_sync.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_sync.so (0x0000ffff830ba000)libnvrm_chip.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_chip.so (0x0000ffff830a4000)libnvsciipc.so => /usr/lib/aarch64-linux-gnu/tegra/libnvsciipc.so (0x0000ffff8307f000)
Step 6 运行 deepstream-app
$ cd /opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/
$ deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.yml
3. 总结
NVIDIA提供的硬件及其相关库,原厂维护,不开源。应用相关示例代码开源或者提供源代码。
因此,在安装这些性能加速软件时,尤其要注意其版本的对应关系。
若需要进行大型开发,必须关注原厂开发动态以及版本支持情况。进而,公司软件在规划时需要充分考虑进度、里程碑等相应适配。
- Which DS version for Jetson Orin Nano/Jetpack 5.1.4/L4T 35.6.0?
3.1 版本问题
- Download DS SDK 6.4.0
$ wget --content-disposition 'https://api.ngc.nvidia.com/v2/resources/org/nvidia/deepstream/6.4/files?redirect=true&path=deepstream_sdk_v6.4.0_jetson.tbz2' -O deepstream_sdk_v6.4.0_jetson.tbz2
或者,通过网页下载:DeepStream SDK
- Install DS SDK 6.4.0
$ sudo tar -xvf deepstream_sdk_v6.4.0_jetson.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-6.4
$ sudo ./install.sh
$ sudo ldconfig
- ldd deepstream-app
出现so文件不存在等问题,基本都是链接环节出现的,也就是二进制在编译链接的路径或者库版本不一致的问题。
daniel@daniel-nvidia:~/Work$ ldd /usr/bin/deepstream-app
/usr/bin/deepstream-app: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/bin/deepstream-app)
/usr/bin/deepstream-app: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /usr/bin/deepstream-app)
/usr/bin/deepstream-app: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/bin/deepstream-app)
/usr/bin/deepstream-app: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /opt/nvidia/deepstream/deepstream-6.4/lib/libnvds_utils.so)
/usr/bin/deepstream-app: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /opt/nvidia/deepstream/deepstream-6.4/lib/libnvds_msgbroker.so)
/usr/bin/deepstream-app: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /opt/nvidia/deepstream/deepstream-6.4/lib/libnvds_msgbroker.so)linux-vdso.so.1 (0x0000ffffa8400000)libgstreamer-1.0.so.0 => /lib/aarch64-linux-gnu/libgstreamer-1.0.so.0 (0x0000ffffa80f1000)libgstvideo-1.0.so.0 => /lib/aarch64-linux-gnu/libgstvideo-1.0.so.0 (0x0000ffffa803c000)libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000ffffa7f01000)libgobject-2.0.so.0 => /lib/aarch64-linux-gnu/libgobject-2.0.so.0 (0x0000ffffa7e8f000)libgstrtspserver-1.0.so.0 => /lib/aarch64-linux-gnu/libgstrtspserver-1.0.so.0 (0x0000ffffa7e1c000)libjson-glib-1.0.so.0 => /lib/aarch64-linux-gnu/libjson-glib-1.0.so.0 (0x0000ffffa7de3000)libyaml-cpp.so.0.7 => not foundlibnvdsgst_meta.so => /opt/nvidia/deepstream/deepstream-6.4/lib/libnvdsgst_meta.so (0x0000ffffa7dcd000)libnvdsgst_smartrecord.so => /opt/nvidia/deepstream/deepstream-6.4/lib/libnvdsgst_smartrecord.so (0x0000ffffa7db6000)libnvdsgst_helper.so => /opt/nvidia/deepstream/deepstream-6.4/lib/libnvdsgst_helper.so (0x0000ffffa7d9d000)libnvdsgst_customhelper.so => /opt/nvidia/deepstream/deepstream-6.4/lib/libnvdsgst_customhelper.so (0x0000ffffa7d83000)libnvds_meta.so => /opt/nvidia/deepstream/deepstream-6.4/lib/libnvds_meta.so (0x0000ffffa7d6b000)libnvds_utils.so => /opt/nvidia/deepstream/deepstream-6.4/lib/libnvds_utils.so (0x0000ffffa749a000)libnvds_msgbroker.so => /opt/nvidia/deepstream/deepstream-6.4/lib/libnvds_msgbroker.so (0x0000ffffa747f000)libX11.so.6 => /lib/aarch64-linux-gnu/libX11.so.6 (0x0000ffffa733a000)libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffa7155000)libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffa70aa000)libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffa6f37000)/lib/ld-linux-aarch64.so.1 (0x0000ffffa83d0000)libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffa6f13000)libgmodule-2.0.so.0 => /lib/aarch64-linux-gnu/libgmodule-2.0.so.0 (0x0000ffffa6eff000)libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffa6eeb000)libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffa6eba000)libgstbase-1.0.so.0 => /lib/aarch64-linux-gnu/libgstbase-1.0.so.0 (0x0000ffffa6e35000)liborc-0.4.so.0 => /lib/aarch64-linux-gnu/liborc-0.4.so.0 (0x0000ffffa6da6000)libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000ffffa6d34000)libffi.so.7 => /lib/aarch64-linux-gnu/libffi.so.7 (0x0000ffffa6d1b000)libgstnet-1.0.so.0 => /lib/aarch64-linux-gnu/libgstnet-1.0.so.0 (0x0000ffffa6cf4000)libgstrtp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstrtp-1.0.so.0 (0x0000ffffa6cbe000)libgstrtsp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstrtsp-1.0.so.0 (0x0000ffffa6c89000)libgstsdp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstsdp-1.0.so.0 (0x0000ffffa6c60000)libgstapp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstapp-1.0.so.0 (0x0000ffffa6c40000)libgio-2.0.so.0 => /lib/aarch64-linux-gnu/libgio-2.0.so.0 (0x0000ffffa6a43000)libgstpbutils-1.0.so.0 => /lib/aarch64-linux-gnu/libgstpbutils-1.0.so.0 (0x0000ffffa69f7000)libnvinfer.so.8 => /lib/aarch64-linux-gnu/libnvinfer.so.8 (0x0000ffff9989c000)libnvds_logger.so => /opt/nvidia/deepstream/deepstream-6.4/lib/libnvds_logger.so (0x0000ffff9988a000)libxcb.so.1 => /lib/aarch64-linux-gnu/libxcb.so.1 (0x0000ffff99853000)libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff99829000)libmount.so.1 => /lib/aarch64-linux-gnu/libmount.so.1 (0x0000ffff997b9000)libselinux.so.1 => /lib/aarch64-linux-gnu/libselinux.so.1 (0x0000ffff99781000)libresolv.so.2 => /lib/aarch64-linux-gnu/libresolv.so.2 (0x0000ffff9975b000)libgstaudio-1.0.so.0 => /lib/aarch64-linux-gnu/libgstaudio-1.0.so.0 (0x0000ffff996d7000)libgsttag-1.0.so.0 => /lib/aarch64-linux-gnu/libgsttag-1.0.so.0 (0x0000ffff9968c000)librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff99672000)libnvdla_compiler.so => /usr/lib/aarch64-linux-gnu/tegra/libnvdla_compiler.so (0x0000ffff98f37000)libcudla.so.1 => /usr/local/cuda/targets/aarch64-linux/lib/libcudla.so.1 (0x0000ffff98efa000)libXau.so.6 => /lib/aarch64-linux-gnu/libXau.so.6 (0x0000ffff98ee6000)libXdmcp.so.6 => /lib/aarch64-linux-gnu/libXdmcp.so.6 (0x0000ffff98ed0000)libblkid.so.1 => /lib/aarch64-linux-gnu/libblkid.so.1 (0x0000ffff98e68000)libpcre2-8.so.0 => /lib/aarch64-linux-gnu/libpcre2-8.so.0 (0x0000ffff98dda000)libnvos.so => /usr/lib/aarch64-linux-gnu/tegra/libnvos.so (0x0000ffff98dba000)libnvdla_runtime.so => /usr/lib/aarch64-linux-gnu/tegra/libnvdla_runtime.so (0x0000ffff98762000)libcuda.so.1 => /usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 (0x0000ffff9710b000)libbsd.so.0 => /lib/aarch64-linux-gnu/libbsd.so.0 (0x0000ffff970e2000)libnvrm_host1x.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_host1x.so (0x0000ffff970c1000)libnvrm_mem.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_mem.so (0x0000ffff970a9000)libnvsocsys.so => /usr/lib/aarch64-linux-gnu/tegra/libnvsocsys.so (0x0000ffff97095000)libnvrm_gpu.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so (0x0000ffff97028000)libnvrm_sync.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_sync.so (0x0000ffff9700f000)libnvrm_chip.so => /usr/lib/aarch64-linux-gnu/tegra/libnvrm_chip.so (0x0000ffff96ffb000)libnvsciipc.so => /usr/lib/aarch64-linux-gnu/tegra/libnvsciipc.so (0x0000ffff96fd6000)
检查本地依赖库的当前情况:glibc版本不对,
- GLIBC_2.34 or GLIBC_2.32 //存在,版本不对
- GLIBCXX_3.4.29 //存在,版本不对
- libyaml-cpp.so //存在,版本不对
$ whereis libyaml-cpp
libyaml-cpp: /usr/lib/aarch64-linux-gnu/libyaml-cpp.so /usr/lib/aarch64-linux-gnu/libyaml-cpp.a$ whereis libc.so
libc: /usr/lib/aarch64-linux-gnu/libc.a /usr/lib/aarch64-linux-gnu/libc.so$ strings /lib/aarch64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_DEBUG_MESSAGE_LENGTH
3.2 二进制help
本能的认为“-i 输入文件”;“-c 配置文件”。实际存在两个问题:
- 示例代码
deepstream-app
代码hardcoded
一个txt文件 - 这个txt文件若存在,会导入这个配置文件里面的视频文件
$ deepstream-app --help
Usage:deepstream-app [OPTION?] Nvidia DeepStream DemoHelp Options:-h, --help Show help options--help-all Show all help options--help-gst Show GStreamer OptionsApplication Options:-v, --version Print DeepStreamSDK version-t, --tiledtext Display Bounding box labels in tiled mode--version-all Print DeepStreamSDK and dependencies version-c, --cfg-file Set the config file-i, --input-uri Set the input uri (file://stream or rtsp://stream)
4. 参考资料
【1】DeepStream SDK
【2】DeepStream 6.3 Quick Start
相关文章:
Linux 35.6 + JetPack v5.1.4@DeepStream安装
Linux 35.6 JetPack v5.1.4DeepStream安装 1. 源由2. 步骤Step 1 安装Jetpack 5.1.4 L4T 35.6Step 2 安装依赖组件Step 3 安装librdkafkaStep 4 安装 DeepStream SDKStep 5 测试 deepstream-appStep 6 运行 deepstream-app 3. 总结3.1 版本问题3.2 二进制help 4. 参考资料 1. …...
C++基础:list的底层实现
文章目录 1.基本结构2.迭代器的实现2.1 尾插的实现2.2 迭代器的实现 3.打印函数(模版复用实例化)4.任意位置的插入删除1. 插入2. 删除 5.析构与拷贝构造5.1 析构函数5.2 拷贝构造5.3 赋值重载 1.基本结构 与vector和string不同list需要: 一个类来放入数据和指针也就是节点 一…...
Spring中@Transactional注解与事务传播机制
文章目录 事务传播机制事务失效的场景 事务传播机制 事务的传播特性指的是 当一个事务方法调用另一个事务方法时,事务方法应该如何执行。 事务传播行为类型外部不存在事务外部存在事务使用方式REQUIRED(默认)开启新的事务融合到外部事务中Transactional(propagati…...
实验七 用 MATLAB 设计 FIR 数字滤波器
实验目的 加深对窗函数法设计 FIR 数字滤波器的基本原理的理解。 学习用 Matlab 语言的窗函数法编写设计 FIR 数字滤波器的程序。 了解 Matlab 语言有关窗函数法设计 FIR 数字滤波器的常用函数用法。 掌握 FIR 滤波器的快速卷积实现原理。 不同滤波器的设计方法具有不同的优…...
Linux - selinux
七、selinux 1、说明 SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linux。 SELinux是对程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也 是能够控制网络服务能否访问系统资源的一道关卡。 传统的文件权…...
【STL】C++ vector类模板
文章目录 基本概念vector的使用定义和初始化构造函数赋值操作容量和大小插入和删除数据存取 互换容器vector的迭代器vector储存自定义数据类型 基本概念 vector是类型相同的对象的容器,vector的大小可以变化,可以向数组中增加元素。因此,vec…...
物联网——WatchDog(监听器)
看门狗简介 独立看门狗框图 看门狗原理:定时器溢出,产生系统复位信号;若定时‘喂狗’则不产生系统复位信号 定时中断基本结构(对比) IWDG键寄存器 独立看门狗超时时间 WWDG(窗口看门狗) WWDG特性 WWDG超时时间 由于…...
从零开始写游戏之斗地主-网络通信
在确定了数据结构后,原本是打算直接开始写斗地主的游戏运行逻辑的。但是突然想到我本地写出来之后,也测试不了啊,所以还是先写通信模块了。 基本框架 在Java语言中搞网络通信,那么就得请出Netty这个老演员了。 主要分为两个端&…...
【智能控制】实验,基于MATLAB的模糊推理系统设计,模糊控制系统设计
关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…...
Vega Editor 基于 Web 的图形编辑器
Vega Editor 是一个强大的基于 Web 的图形编辑器,专为 Vega 和 Vega-Lite 可视化语法设计。它提供了一个交互式的环境,用户可以在其中编写、预览和分享他们的 Vega 和 Vega-Lite 可视化作品。Vega 和 Vega-Lite 是用于声明性可视化的开源语法,…...
SQL 中SET @variable的使用
在 SQL 中,SET variable 用于声明和赋值用户定义的变量。具体来说, 符号用于表示一个局部变量,可以在 SQL 语句中存储和使用。它通常在存储过程、函数或简单的 SQL 查询中使用。 1. 声明并赋值给变量 你可以使用 SET 语句给一个变量赋值。例…...
基于 Vite 封装工具库实践
项目背景:公司在多个项目中频繁使用相同的工具函数。为了避免每次开发新项目时都重复复制代码,决定通过 Vite 封装一个时间函数组件库。该库将被发布到 Verdaccio 供团队其他项目使用。 项目介绍 本项目封装了一个时间函数工具库,使用 Momen…...
Oracle DataGuard 主备正常切换 (Switchover)
前言 众所周知,DataGuard 的切换分为两种情况: 系统正常情况下的切换:这种方式称为 switchover,是无损切换,不会丢失数据。灾难情况下的切换:这种情况下一般主库已经启动不起来了,称为 failov…...
[Redis#13] cpp-redis接口 | set | hash |zset
目录 Set 1. Sadd 和 Smembers 2. Sismember 3. Scard 4. Spop 5. Sinter 6. Sinter store Hash 1. Hset 和 Hget 2. Hexists 3. Hdel 4. Hkeys 和 Hvals 5. Hmget 和 Hmset Zset 1. Zadd 和 Zrange 2. Zcard 3. Zrem 4. Zscore cpp-redis 的学习 主要关注于…...
青海摇摇了3天,技术退步明显.......
最近快手上的青海摇招聘活动非常火热,我已经在思考是否备战张诗尧的秋招活动。开个玩笑正片开始: 先说一下自己的情况,大专生,20年通过校招进入杭州某软件公司,干了接近4年的功能测试,今年年初,…...
Flask+Minio实现断点续传技术教程
什么是MinIO MinIO是一个高性能的分布式对象存储服务,与Amazon S3 API兼容。它允许用户存储和检索任意规模的数据,非常适合于使用S3 API的应用程序。MinIO支持多租户存储,提供高可用性、高扩展性、强一致性和数据持久性。它还可以作为软件定义…...
Java中Logger定义的三种方式
在 Java 项目中,日志记录是开发中的一个重要部分,用于跟踪系统运行状态、排查问题以及记录重要事件。在定义日志记录器时,经常会遇到一些写法上的选择,比如 Logger 的作用域、是否使用静态变量,以及如何命名变量。本篇…...
模型压缩技术
目录 模型压缩技术 权重剪枝: 量化技术: 知识蒸馏: 低秩分解: 一、权重剪枝 二、量化技术 三、知识蒸馏 四、低秩分解 模型压缩技术 权重剪枝: 描述:通过删除模型中不重要的权重来减少参数数量和计算量。举例说明:假设我们有一个神经网络模型,其中某些神经元的…...
面试题整理
1 spring使用中有哪些设计模式 工厂模式-beanFactory,代理模式-aop,单例模式-每个bean默认都是单例的,原型模式-当将bean的作用域改为prototype时每次获取bean时使用了原型模式创建对象,责任链模式-dispatchServle查找url对应的处理器映射器时使用了,观察者模式-spring的…...
Linux
1、显示系统中所有进程 ps -ef运行效果: [rootredhat-9 ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:01 ? 00:00:01 /usr/lib/systemd/systemd rhgb --switched-r root 2 0 0…...
力扣_2389. 和有限的最长子序列
力扣_2389. 和有限的最长子序列 给你一个长度为 n 的整数数组 nums ,和一个长度为 m 的整数数组 queries 。 返回一个长度为 m 的数组 answer ,其中 answer[i] 是 nums 中 元素之和小于等于 queries[i] 的 子序列 的 最大 长度 。 子序列 是由一个数组…...
UI设计从入门到进阶,全能实战课
课程内容: ├── 【宣导片】从入门到进阶!你的第一门UI必修课!.mp4 ├── 第0课:UI知识体系梳理 学习路径.mp4 ├── 第1课:IOS设计规范——基础规范与切图.mp4 ├── 第2课:IOS新趋势解析——模块规范与设计原则(上).mp4…...
Formality:等价性检查的流程与模式(Guide、Setup、Preverify、Match与Verify)
相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 等价性检查的流程 图1概述了使用Formality进行等效性检查的具体步骤。 图1 等价性检查流程 启动Formality(Start Formality) 要启动Formality,请…...
【Linux】————(日志、线程池及死锁问题)
作者主页: 作者主页 本篇博客专栏:Linux 创作时间 :2024年11月29日 日志 关于日志,首先我们来说一下日志的作用, 作用: 问题追踪:通过日志不仅仅包括我们程序的一些bug,也可以在…...
【自动化】配置信息抽取
公共基本信息配置文件抽取 公共基本信息比如卖家、买家、管理员,验证码等基本信息,再比如数据库、redis、各个服务的域名,这些目前是写死在代码之中的,为了能够更好的维护他们,我们将他们放入配置文件进行管理 公共的…...
Python毕业设计选题:基于django+vue的校园影院售票系统
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 影院信息管理 电影类型管理 电影信息管理 系统…...
Docker化部署Flask:轻量级Web应用的快速部署方案
Flask是一个用Python编写的轻量级Web应用框架,以其简洁性和灵活性而受到开发者的喜爱。Docker作为一种流行的容器化技术,为应用的部署和管理提供了极大的便利。本文将探讨Flask的优点、Docker部署的好处,并详细介绍如何将Flask应用Docker化部…...
centos怎么通过docker安装一个gitlab
在CentOS上通过Docker安装GitLab的步骤如下: 安装Docker引擎: 首先,需要在你的CentOS系统上安装Docker。可以通过以下命令来安装Docker:yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/lin…...
docker 运行my-redis命令
CREATE TABLE orders ( order_id bigint NOT NULL COMMENT "订单ID", dt date NOT NULL COMMENT "日期", merchant_id int NOT NULL COMMENT "商家ID", user_id int NOT NULL COMMENT "用户ID", good_id int NOT NULL COMMENT "商…...
qt6.4.0+visual studio2022+opencv
qt6.4.0visual studio2022opencv 补充:在安装完Qt后还需要配置环境变量...
23种设计模式之适配器模式
目录 1. 简介1.1 定义1.2 结构和组成部分 2. 代码2.1 MediaPlayer2.2 AdvanceMediaPlayer2.3 VicPlayer2.4 Mp4Player2.5 MediaPlayerAdapter2.6 AudioPlayer2.7 Test 3. 适用场景4. 优点和缺点5. 总结 1. 简介 1.1 定义 适配器模式(Adapter Pattern)是…...
剖析go协程池实现原理
go协程池实现 在go语言编程中有一种池肯定避免不了,那就是-协程池,无论你是日常工作还是面试中面试官都无法避免协程池,掌握协程池你也就算是入门go的并发编程了,打一波广告后面会有专门的文章来介绍如何在go中进行并发编程。 协…...
渗透测试--Linux上获取凭证
在测试过程中我们也会发现一些Linux主机加域的情况,虽然不多见,但它确实存在。正所谓技多不压身,这样能够触类旁通的知识,我们怎能错过,所以在此我们将会主要探讨从Linux主机上获取域凭证的方法。主要有以下内容&#…...
【笔记】自动驾驶预测与决策规划_Part9_数据驱动前沿算法与发展趋势
文章目录 数据驱动前沿算法与发展趋势0. 前言1. 端到端自动驾驶引言2. 端到端自动驾驶2.1 端到端自动驾驶早期尝试 ALVINN2.2 基于模仿学习的端到端系统 NVIDIA-E2E2.3 基于强化学习的端到端系统2.4 多模态融合的自动驾驶 Transfuser2.5 模块化端到端 UniAD2.6 模块化端到端 VA…...
工业公辅车间数智化节能头部企业,蘑菇物联选择 TDengine 升级 AI 云智控
小T导读:在工业节能和智能化转型的浪潮中,蘑菇物联凭借其自研的灵知 AI 大模型走在行业前沿,为高能耗设备和公辅能源车间提供先进的 AI 解决方案。此次采访聚焦于蘑菇物联与 TDengine 的合作项目,通过 AI 云智控平台的建设&#x…...
【Linux】开启你的Linux之旅:初学者指令指南
Linux相关知识点可以通过点击以下链接进行学习一起加油! 在 Linux 开发中,GDB 调试器和 Git 版本控制工具是开发者必备的利器。GDB 帮助快速定位代码问题,Git 则提供高效的版本管理与协作支持。本指南将简明介绍两者的核心功能与使用技巧&…...
Vite 6.0 发布:引领现代前端开发新方向
Vite 6.0 带来了大量更新与优化,旨在简化开发流程、提升性能,并解决现代 Web 开发中的诸多挑战。本次更新引入了 实验性环境 API 和现代化的工具链,进一步巩固了 Vite 作为开发者首选工具的地位。以下是关于新特性、生态发展以及重要更新的全…...
深入了解阿里云 OSS:强大的云存储解决方案
在现代互联网应用中,数据存储是一个不可忽视的环节。随着数据量的不断增长,传统的存储方式已经无法满足高速、低成本、大容量的需求。阿里云 OSS(对象存储服务)作为一种高性能、低成本且具备高度扩展性的云存储服务,已…...
canvas绘制网络地址图片
canvas在绘制网络地址图片时,需要先下载成临时路径 export function downLoadBgImg (url) {return new Promise((r,j) > {uni.downloadFile({url,success : res > {if (res.statusCode 200) {r(res.tempFilePath);return;};j(依赖文件下载失败);},fail : er…...
《DSL-FIQA》论文翻译
《DSL-FIQA: Assessing Facial Image Quality Via Dual-Set Degradation Learning and Landmark-Guided Transformer》 原文链接:DSL-FIQA: Assessing Facial Image Quality via Dual-Set Degradation Learning and Landmark-Guided Transformer | IEEE Conference…...
【Linux网络编程】第四弹---构建UDP服务器与字典翻译系统:源码结构与关键组件解析
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、UdpServer.hpp 1.1、函数对象声明 1.2、Server类基本结构 1.3、构造函数 1.4、Start() 2、Dict.hpp…...
【人工智能】人工智能,深度学习与人工神经网络
人工智能 人工智能一、定义与核心要素二、主要方法与技术三、应用领域四、发展前景与挑战五、分类六、研究目标与价值 深度学习定义与核心思想网络结构工作原理关键技术与模型应用领域发展与挑战 人工神经网络一、定义与原理二、基本特性三、网络结构四、工作原理五、应用领域六…...
嵌入式系统应用-LVGL的应用-平衡球游戏 part2
平衡球游戏 part2 4 mpu60504.1 mpu6050 介绍4.2 电路图4.3 驱动代码编写 5 游戏界面移植5.1 移植源文件5.2 添加头文件 6 参数移植6.1 4 mpu6050 4.1 mpu6050 介绍 MPU6050是一款由InvenSense公司生产的加速度计和陀螺仪传感器,广泛应用于消费电子、机器人等领域…...
Linux网络编程之---多线程实现并发服务器
下面我们来使用tcp集合多线程实现并发服务器 一.服务端 #include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <pthread.h>typedef struct sockinfo {char ip[16];unsigne…...
架构师的英文:Architect
中文版 软件架构师 的英文是 “Software Architect”。 Software: 软件Architect: 架构师,通常指的是设计和规划某种系统或结构的人。 Software Architect 通常负责软件系统的整体设计、技术选型、架构规划,确保系统的可扩展性、可维护性和高效性等。…...
量化交易系统开发-实时行情自动化交易-8.7.文华平台
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来会对于文华平台介绍。 文华财经…...
【前端】JavaScript 中的创建对象模式要点
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯对象属性值中的引号规则💯对象属性换行与尾随逗号的使用💯工厂模式:灵活高效的对象创建💯自定义构造函数:通过…...
鸿蒙NEXT元服务:论如何免费快速上架作品
【引言】天下武功,唯快不破。 本文讨论如何免费且以最快速度上架自己的作品。 作者以自己从零开始到提交发布审核一共俩小时的操作流程分享给大家作参考。 【1】立项选择 结论:元服务,单机,工具类(非游戏ÿ…...
hive3.1.3安装及基本例子
前提要安装好hadoop环境和mysql。 1、下载并解压 https://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz 下载bin包到/app/src中。 cd /app/src/ tar zxvf apache-hive-3.1.3-bin.tar.gz mv apache-hive-3.1.3-bin /app/hive2、配置path nano /etc…...
【设计模式】工厂方法模式 在java中的应用
文章目录 1. 引言工厂方法模式的定义 2. 工厂方法模式的核心概念工厂方法模式的目的和原理与其他创建型模式的比较(如简单工厂和抽象工厂) 3. Java中工厂方法模式的实现基本的工厂方法模式结构示例代码:创建不同类型的日志记录器 4. 工厂方法…...