【开源/在PC和Jeston上实现YOLO+SGBM+3D音频】:高实时性双目摄像机目标检测+深度测量+音频输出程序及硬件搭配方案源码分享(可运行于PC和Jeston Nano B01上)
本文介绍了基于Jetson Nano的智能视觉系统开发方案。软件部分包含主程序结构、参数设置和核心功能实现。硬件选用Jetson Nano B01开发套件(1249元),搭配双目摄像头(261元)、USB声卡(30元)等外设,总成本约1540-1869元。系统在Jetson Nano上实现0.35秒延迟的实时检测,功耗仅5W。文章详细说明了软硬件配置方案、环境搭建建议,并分析了在不同Jetson产
软件部分
|
项目结构 |
|
|
|
主程序v2.0 |
|
程序结构示意图:
|
|
程序代码略缩图
|
|
主循环写法
|
|
参数设置 |
|
Pytorch的yolo参数
|
|
Tensorrt的cpp文件中的yolo参数
|
|
Opencv-python的SGBM的参数
|
|
重要功能实现方式(完整代码见附件) |
|
目标检测函数写法(Pytorch为例)
|
|
摄像头缓冲区的调用和启动(TensorRT为例)
|
|
音频输出函数
|
|
坐标转换
|
硬件部分
|
硬件连接示意图 |
|
|
|
项目组用到的硬件,以及选择的原因 |
|
Jeston Nano B01 SUB:这款国产开发套件比较好买(官方经常断货),而且是英伟达Jetson家族价格最低的。Jeston Nano也是Jetson家族性能最低,功耗最低(移动电源模式最高5W,MaxN约10W)的。在Jeston Nano上能达到良好性能的代码,在更好的AI开发板上只会运行得更快(续航会下降但不会差很多)。见“建议“一节。 |
|
TF卡:系统烧写在比公版更大(16GB->64GB)的TF卡上。不用U盘启动,因为会占用一个USB口。 |
|
USB声卡:Jeston Nano B01 SUB上没有3.5mm耳机接口,用USB口转接。这个声卡可以立体声输出,不会把立体声混成单声道。如果选择Jestson Nano蓝牙模块,一方面成本提高,另一方面蓝牙可能不保留立体声信息。 |
|
立体声耳机:用3D音频播放声效,与用语音播报障碍物位置相比,能输出障碍物位置信息的速度就大大提高了,保证了实时性。 |
|
移动电源:用Micro USB口供电,因为要连接移动电源。DC口电源只在无头模式点亮时需要。 |
|
手机:连接USB网络共享,方便环境配置,同时省下来购买Jestson Nano WiFi模块的成本。 |
|
U盘:用来传文件。注意需要格式化为Jetpack4能读写的文件系统类型如FAT32。 |
|
显示器:开发时用到。但用户可以配置Jetson,使得一插电就自动运行程序(无头启动),不需要从显示器或电脑命令行启动。 |
|
开发者必须用到的硬件 |
用户必须用到的硬件 |
|
开发者需要功能:点亮Jeston Nano,配置环境,下载项目文件,开发和调试程序,刷机,重新烧写TF卡 ①Jeston Nano B01 SUB(但不需要WiFi和蓝牙模块) ②TF卡(启动系统,开发套装自带) ③USB声卡(转接) ④立体声耳机 ⑤移动电源(MicroUSB/5V3A) ⑥[USB键盘鼠标+显示器+手机+电脑](推荐) 点亮:用USB键盘鼠标+显示器点亮Jetson Nano;因为有图形界面,在Jetson Nano上调配环境和调试代码更方便 配置环境,下载项目文件:手机USB网络共享,Jetson Nano直接用PIP配环境、直接下载项目文件 开发和调试程序:用电脑上的IDE 重新烧写TF卡:用电脑,没有TF卡槽则需要读卡器 刷机:用电脑连接Jeston Nano ⑦[电脑] 点亮:用电脑无头模式点亮Jetson Nano。(需DC电源) 配置环境,下载项目文件:用电脑USB通信(用Jetson的默认虚拟网卡地址)配环境和下载项目文件。 开发和调试程序:可以在电脑上搭建虚拟机,调试好了再放到Jetson Nano上运行。 重新烧写TF卡:用电脑,没有TF卡槽则需要读卡器 刷机:用电脑连接Jeston Nano |
用户需要功能:点亮Jeston Nano,配置环境,下载项目文件 ①Jeston Nano B01 SUB(但不需要WiFi和蓝牙模块) ②TF卡(启动系统,开发套装自带) ③USB声卡(转接) ④立体声耳机 ⑤移动电源(MicroUSB/5V3A) ⑥[USB键盘鼠标+显示器+手机](推荐) 点亮:用USB键盘鼠标+显示器点亮Jetson Nano;因为有图形界面,在Jetson Nano上调配环境和调试代码更方便 配置环境,下载项目文件:手机USB网络共享,Jetson Nano直接用PIP配环境、直接下载项目文件 ⑦[USB键盘鼠标+显示器+电脑] 点亮:用USB键盘鼠标+显示器点亮Jetson Nano;因为有图形界面,在Jetson Nano上调配环境和调试代码更方便 配置环境,下载项目文件:用电脑USB通信(用Jetson的默认虚拟网卡地址)配环境和下载项目文件。 ⑧[电脑] 点亮:用电脑无头模式点亮Jetson Nano。(需DC电源) 配置环境,下载项目文件:用电脑USB通信(用Jetson的默认虚拟网卡地址)配环境和下载项目文件。 |
表中:红色:必须用到的硬件
橙色:必须用到的硬件,但除了应用于项目还能用来干其他事,用户可能已经拥有
蓝色:这些硬件组合任选其一,下方的斜体为具体实现方式
成本分析
在此节中,顺便介绍一下用户复现本项目需要的成本。
|
材料名称 |
数量 |
金额 |
|
JESTON开发版套件[包括Jeston Nano B01,亚克力外壳,风扇,线材,TF卡,读卡器] |
1 |
¥1249 |
|
摄像头模组[双目摄像机,外壳,线材] |
1 |
¥261.4 |
|
立体声耳机(3.5mm口) |
1 |
(¥100) |
|
USB声卡 |
1 |
¥30 |
|
移动电源(MicroUSB/5V3A) |
1 |
(¥50) |
|
手机(USB网络分享) |
1 |
未计入 |
|
键鼠(USB) |
1 |
未计入 |
|
显示器(HDMI/DP) |
1 |
(¥179) |
总结:默认用户有手机和键盘鼠标,则成本为1540元,如果用户需要显示器、耳机、移动电源,则成本最高为1869元。如果用户不需要显示器(用电脑命令行启动和操作Jetson Nano),则加上耳机和移动电源的成本为1690元。
性能演示
在PC上:检测成功率较好,延时~0.03s
在Jetson Nano上:检测成功率较好,延时~0.35s(详见演示视频)
Jetson Nano上的功耗:移动电源模式最高5W,若移动电源74Wh,则可运行至少12小时
笔记本(OS:Windows 11/ CPU 架构:x86_64/ GPU 架构:Ada Lovelace)
Jeston Nano(OS:Ubuntu/CPU架构:ARM64/GPU架构:Maxwell)
PC运行效果
Jetson运行效果演示
代码下载
环境配置
建议用Pycharm开发;建议用conda。
Python:3.9.21
建议按以下顺序配置:
- opencv-python 4.5.1.48
- cudatoolkit 11.8.0 //torch+cuda安装可参考:对应关系 安装教程
- cudnn 8.9.2.26
- torch 2.3.1+cu118
- torchaudio 2.3.1+cu118
- torchvision 0.18.1+cu118
- pyaudio 0.2.14
PC详细配置:
| absl-py 2.2.2 blas 1.0 ca-certificates 2025.9.9 colorama 0.4.6 coloredlogs 15.0.1 comtypes 1.4.10 contourpy 1.3.0 cudatoolkit 11.8.0 cudnn 8.9.2.26 cycler 0.12.1 filelock 3.18.0 flatbuffers 25.2.10 fonttools 4.57.0 fsspec 2025.3.2 grpcio 1.71.0 h5py 3.13.0 humanfriendly 10.0 icc_rt 2022.1.0 importlib-metadata 8.6.1 importlib-resources 6.5.2 intel-openmp 2021.4.0 jinja2 3.1.6 kiwisolver 1.4.7 markdown 3.7 markdown-it-py 3.0.0 markupsafe 3.0.2 matplotlib 3.9.4 mdurl 0.1.2 mkl 2021.4.0 mkl-service 2.4.0 mkl_fft 1.3.11 mkl_random 1.2.8 mpmath 1.3.0 networkx 3.2.1 np 1.0.2 numpy 1.23.0 onnx 1.17.0 onnxruntime 1.19.2 onnxsim 0.4.36 opencv-python 4.5.1.48 openssl 3.0.18 packaging 24.2 pillow 9.5.0 pip 25.0 protobuf 6.30.2 pyaudio 0.2.14 pygments 2.19.1 pyparsing 3.2.3 pypiwin32 223 pyreadline3 3.5.4 python 3.9.21 python-dateutil 2.9.0.post0 pyttsx3 2.98 pywin32 310 rich 14.0.0 scipy 1.13.1 setuptools 75.8.0 six 1.17.0 sqlite 3.45.3 sympy 1.13.1 tbb 2021.13.1 tensorboard 2.19.0 tensorboard-data-server 0.7.2 thop 0.1.1-2209072238 torch 2.3.1+cu118 torchaudio 2.3.1+cu118 torchsummary 1.5.1 torchvision 0.18.1+cu118 tqdm 4.67.1 typing-extensions 4.13.1 tzdata 2025a ucrt 10.0.22621.0 vc 14.42 vc14_runtime 14.44.35208 vs2015_runtime 14.44.35208 werkzeug 3.1.3 wheel 0.45.1 zipp 3.21.0 |
建议
Jetson Nano是jetson家族中性能最低的,如果愿意增加成本,可以将代码在Jetson其他产品上运行,参考附录的环境配置部分。选择其下一代产品Jetson Orin Nano 成本增加最低(¥1000),可将推理性能提升40倍(0.5TOPS->40TOPS)。但功耗也提高(5-10W->7-15W)。
使用内置深度算法的双目相机也能显著提升性能,例如英特尔 RealSense D435i或奥比中光 Gemini 335(¥2000),因为这意味着不需要调用Opencv-python的SGBM算法。
如果需要在jetson其他产品上进行tensorrt加速(优势:不需要安装pytorch+cuda,简化环境配置),在正确配置环境后,本代码直接可运行。
如果需要在jetson其他产品上进行pytorch+cuda加速的话(优势:不需要在jetson或虚拟机上编译,调试yolo参数比较方便),我们在此提供对应的环境配置方案:
|
在更强的Jetson开发板上配置项目环境: |
|
例:Jetson Orin Nano ①查看Jetpack版本 Jetpack 5.1.2(cuda 11.4.19 cudnn 8.6.0) ②在jetson上进行torch install with cuda enabled 运行pytorch for jetson官方whl ③在jetson上进行torchvision install with cuda enabled 下载并编译torchvision源码 ④配置项目所需其他依赖 终端运行Pip install指定版本对应库 |
更多推荐













所有评论(0)