本文转载自:
原文:
https://towardsdatascience.com/yolov5-object-detection-on-nvidia-jetson-nano-148cfa21a024
本文使用 Jetson nano 开发套件进行 IMX477 CSI 相机配置和 Yolov5 物体检测。
准备工作:
与 Jetson Nano 一起使用的最常见的相机之一是 树莓派 V2,但如果您需要更高的分辨率怎么办?最近我尝试将 Waveshare IMX477 CSI 摄像头用于一个项目,但无法将其连接到电路板。最后,在尝试了几种不同的方法后,我想出了一个简单的过程,并决定与其他人分享。本文由硬件、驱动程序和python库安装等几个部分组成,最后是Yolov5。这些步骤对于使用 Jetson Nano 板上的摄像头进行物体检测都是必不可少的。
相机设置
将摄像头安装在载板上的 MIPI-CSI 摄像头连接器中。拉起摄像头端口的塑料边缘。推入相机色带并确保相机色带上的针脚朝向 Jetson Nano 模块。将塑料连接器向下推。
(编者注:安装方式参考 菜鸟手册(2):给Jetson Nano安装树莓派摄像头 )
相机驱动
默认情况下,NVIDIA JetPack 支持多个具有不同传感器的摄像头,其中最著名的摄像头之一是 Raspberry Pi 摄像头 v2。但如果您使用其他类型的相机,则需要安装传感器驱动程序。本项目中使用了带有 IMX477-160 传感器的 12.3 MP 相机,需要额外的驱动程序才能连接。Arducam 为带有 IMX477 传感器的相机提供易于安装的 IMX477 驱动程序。
下载自动安装脚本:
代码语言:javascript复制cd ~wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
安装驱动:
代码语言:javascript复制chmod x install_full.sh./install_full.sh -m imx477
最后,输入 y 重新启动电路板。使用以下命令检查相机是否被正确识别。
代码语言:javascript复制ls /dev/video0
也可以利用一段python代码(见菜鸟手册(2):给Jetson Nano安装树莓派摄像头 ),使用OpenCV从相机捕获帧。
PyTorch 和 torchvision
Yolov5 模型是在 Pytorch 框架中实现的。PyTorch 是一个基于 Torch 库的开源机器学习库,用于计算机视觉和自然语言处理应用程序。你可以根据这个教程进行安装:
https://www.elinux.org/Jetson_Zoo
推理
在 Jetson nano 上克隆 JetsonYolo 存储库。
代码语言:javascript复制git clone https://github.com/amirhosseinh77/JetsonYolo.git
根据模型大小、所需速度和精度选择所需模型。您可以在Asset部分(https://github.com/ultralytics/yolov5/releases )找到可用模型。使用以下命令下载模型并将其移动到权重文件夹。
代码语言:javascript复制cd weightswget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
运行 JetsonYolo.py 以使用相机检测对象。
代码语言:javascript复制python3 JetsonYolo.py
视频教程: