一、摄像头介绍
因为手头没用DSI摄像头,刚好USB摄像头也能支持,先测试下开发板和USB摄像头的功能,用的是海康威视的720P摄像头。

实际的模样如下。

二、驱动摄像头
将USB camera插到Omni3576开发板上,可以通过dmesg查看系统认出了摄像头。
[ 709.147600] usb 1-1.1: new high-speed USB device number 6 using xhci-hcd
[ 709.249726] usb 1-1.1: New USB device found, idVendor=2bdf, idProduct=0280, bcdDevice=12.06
[ 709.249792] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 709.249838] usb 1-1.1: Product: HIK 720P Camera
[ 709.249863] usb 1-1.1: Manufacturer: SN0002
[ 709.249886] usb 1-1.1: SerialNumber: SN0002
[ 709.285733] usb 1-1.1: Found UVC 1.00 device HIK 720P Camera (2bdf:0280)
进一步输入v4l2-ctl --list-devices
命令查找设备。

其中/dev/video45就是连接到开发板的摄像头。
三、软件安装
首先安装依赖的库和模块。
sudo apt-get install subversion -y
sudo apt-get install libjpeg62-turbo-dev
sudo apt-get install imagemagick
sudo apt-get install libv4l-dev
sudo apt-get install cmake
考虑到Omni3576开发板SoC强大的处理能力,直接在板子上编译安装mjpg-streamer。
先从github下载源码
luckfox@luckfox:~$ git clone https://github.com/jacksonliam/mjpg-streamer.git
Cloning into 'mjpg-streamer'...
remote: Enumerating objects: 2964, done.
remote: Counting objects: 100% (882/882), done.
remote: Compressing objects: 100% (195/195), done.
remote: Total 2964 (delta 724), reused 687 (delta 687), pack-reused 2082 (from 1)
Receiving objects: 100% (2964/2964), 3.42 MiB | 64.00 KiB/s, done.
Resolving deltas: 100% (1922/1922), done.
luckfox@luckfox:~$
进入/mjpg-streamer/mjpg-streamer-experimental 文件夹,执行 make all。

得益于RK3676强大的处理能力,mjpg-streamer本地编译耗时约15秒。再看看编译输出的文件:

四、测试摄像头
(一)启动摄像头
直接输入 mjpg_streamer 即可启动服务,默认的是video0,Omni3576开发板的USB摄像头是video45。在启动服务命令中通过“-d /dev/video45” 选项来指定。
y是表示YUV格式。如果没有-y,默认启动是mjpeg格式
-d指定设备
-f 制订帧数,默认30帧
-r指定视频大小,如320×240
-q指定画质,默认80对于输出参数:
-p 指定端口,一般是8080
-w 指定网页目录,设置的是/www目录
-c设置通过密码访问

(二)在线观看视频
打开浏览器,访问URL为:[Omni3576开发板 IP]:8080 ,得到的内容如下:

然后看看视频流:

(三)在线截图
取一张图的URL为IP:8080?action=snapshot

为后续AI分析提供图片。