在Jetson NANO上运行Yolov5,通过IMX477 CSI 相机进行目标检测

2021-09-22 11:20:13 浏览数 (1)

本文转载自:

原文:

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

视频教程:

0 人点赞