天天看点

Jetson Nano开发深度学习实践(五):板载MIPICSI摄像头操作手册

1.Jetson Nano板上MIPICSI接口简介:

        MIPI标准可分为MIPIDSI和MIPICSI两种,对应于视频显示和视频输入标准。MIPICSI摄像头常作为智能手机的内置摄像头,在Jetson Nano硬件上提供了这种接口,如读者意向开发定制式嵌入式设备产品,那么我强烈推荐MIPICSI摄像头解决方案。但如果你的项目中涉及到边缘计算端与摄像头的连接距离比较长或边缘计算端与摄像头之间的布线环境较为恶劣这两种情况,我还是推荐你USB摄像头的解决方案,因为MIPICSI摄像头的传输线是15 芯的排线,相对于USB摄像头的排线较为单薄。现在已经有很多的MIPICSI模块开始出现,可以在Jetson Nano平台上使用,不过读者在购买时需要注意,官方已给出了Jetson Nano所支持的芯片,要对应特定的芯片型号进行购买。

芯片型号确定:https://github.com/search?q=CSI-Camera

Jetson Nano开发深度学习实践(五):板载MIPICSI摄像头操作手册

2. Jetson Nano板MIPICSI摄像头驱动示例

简单介绍一下在Jetson Nano硬件上如何使用MIPICSI摄像头。

        (1)首先找到Jetson Nano硬件上的MIPICSI接口位置,轻轻拔起固定片,面向散热片将裸露金属方向向外插入接口后压下固定片。安装过程动图展示:https://cloud.tencent.com/developer/article/1421907

        注意:一般电子元件对静电都比较敏感,尤其是这类摄像头,在安装摄像头电路板之前你可以尝试触摸一下水龙头、金属水槽或其它类似的东西以散发身上所携带的静电。

        (2)安装更新GStreamer及其组件

sudo add-apt-repository universe 
sudo add-apt-repository multiverse 
sudo apt-get update 
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \   
    gstreamer1.0-plugins-base gstreamer1.0-plugins-good \   
    gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \   
    gstreamer1.0-libav 
sudo apt-get install libgstreamer1.0-dev \   
    libgstreamer-plugins-base1.0-dev \   
    libgstreamer-plugins-good1.0-dev \   
    libgstreamer-plugins-bad1.0-dev

           

        (3)测试GStreamer

gst-launch-1.0 nvarguscamerasrc ! ‘video/x-raw(memory:NVMM), \   
    width=(int)1920, height=(int)1080, format=(string)NV12, \  
    framerate=(fraction)30/1' ! nvoverlaysink -e
           

        注意:这个程序的调用窗口在ssh工具中是不显示的,只有通过HDMI接口连接屏幕后才会看到程序的运行效果。

        (4)opencv驱动MIPICSI摄像头

        NVIDIA官方的NVIDIA-AI-IOT项目提供了opencv软件包使用MIPICSI摄像头的一种普遍方法:将image转化为转化为numpy这一比较通用的格式,使得深度学习模型无论运行于何种框架上都会可以便捷的转化且可被opencv利用。项目地址为:https://github.com/NVIDIA-AI-IOT/jetcam

        注意:Gstreamer开始支持opencv的版本时3.3.1,请确定你使用的opencv版本,如opencv版本不匹配则会得到报错‘unable to open camera’。

       (5)YOLOv3使用中驱动CSI摄像头

        https://blog.csdn.net/x16516581/article/details/100570038