使用Jetson nano套件进行CSI相机配置和Yolov物体检测的操作指南

1,532 阅读3分钟

使用Jetson nano开发套件进行IMX477 CSI相机配置和Yolov5物体检测的分步指南。

图片由作者提供

这篇文章介绍了 JetsonYolo 这是一个简单易行的过程,用于CSI摄像机的安装、软件和硬件设置,以及在NVIDIA Jetson Nano上使用Yolov5和openCV进行物体检测。该项目使用 CSI-相机来创建一个管道和捕获帧,以及 Yolov5来检测物体,在Jetson开发工具包上实现了一个完整的可执行代码。请查看 CodePlay jetson nano youtube播放列表的视频说明和 JetsonYolo Github.

要求

Jetson Nano最常用的相机之一是Raspberry Pi Camera Module V2,但如果你需要更高的分辨率怎么办?最近我试图在一个项目中使用Waveshare IMX477 CSI相机,但在将其连接到电路板上时遇到了麻烦。最后,在尝试了几种不同的方法后,我想出了一个简单的过程,并决定与其他人分享它。这篇文章由几个部分组成,包括:硬件、驱动程序和python库的安装,最后是Yolov5。这些步骤都是使用Jetson Nano板上的摄像头进行物体检测的必要条件。

相机设置

将相机安装在载板上的MIPI-CSI相机连接器中。拉起相机接口的塑料边缘。推入摄像头色带,确保摄像头色带上的针脚面向Jetson Nano模块。将塑料连接器向下推。你可以使用 Arducam相机设置 指南了解更多信息。

图片由作者提供

相机驱动

在默认情况下,英伟达JetPack支持几种不同传感器的摄像头,其中最著名的是Raspberry Pi摄像头V2。但是如果你使用其他类型的摄像头,你需要安装一个传感器驱动程序。在这个项目中使用了一个12.3MP的摄像头,传感器是IMX477-160,需要一个额外的驱动程序来连接。Arducam提供了一个 IMX477驱动为带有IMX477传感器的相机提供了一个简单的绝缘装置。

下载自动安装脚本。

cd ~
wget 

安装驱动程序。

chmod +x install_full.sh
./install_full.sh -m imx477

最后,输入y来重新启动板子。

使用下面的命令来检查摄像头是否被正确识别。

ls /dev/video0

你可以使用 JetsonHacks python代码,使用OpenCV从相机中捕获帧。

图片由作者提供

PyTorch & torchvision

Yolov5模型是在Pytorch框架中实现的。PyTorch是一个基于Torch库的开源机器学习库,用于计算机视觉和自然语言处理应用。这里有一个完整的指南,用于 安装PyTorch和torchvision在Jetson开发工具包上。

推论

在Jetson nano上克隆 JetsonYolo资源库。

git clone 

图片由作者提供

下载Yolov5模型

根据模型的大小、所需的速度和精确度选择所需的模型。你可以在资产部分找到可用的模型 这里资产部分。使用下面的命令下载模型,并将其移动到权重文件夹中。

cd weights
wget 

运行JetsonYolo.py,用摄像头检测物体。

python3 JetsonYolo.py

图片由作者提供

结论

本文重点介绍了使用IMX477相机来捕捉帧并进行物体检测。设置这种类型的相机需要额外的驱动安装步骤,Arducam为Jetson Linux驱动(L4T)提供了一个驱动。在安装了必要的驱动程序和Python库后,在Jetson Nano上实现了JetsonYolo,并以每秒12帧的速度取得了令人满意的结果。