APEX AD10 GMSL相机#

接口说明#

  • 不支持热插拔

  • 支持最长15米同轴电缆的信号传输

  • 推荐支持输出分辨率为720p,1080p,4k等多种分辨率的相机

推荐使用转接线

节点映射关系#

接口

设备节点

GMSL 0

/dev/video0

GMSL 1

/dev/video1

GMSL 2

/dev/video2

GMSL 3

/dev/video3

GMSL 4

/dev/video4

GMSL 5

/dev/video5

GMSL 6

/dev/video6

GMSL 7

/dev/video7

GMSL相机试用,可以利用历史相机调试的驱动,快速验证相机功能。但由于没有经过充分测试,可能存在问题。

选择GMSL相机试用#

选择试用,使能功能#

选择对应的相机,来进行测试#

视频输出#

可以使用下列命令,快速打开相机来确认效果。

方法一:无需输入参数快速点亮相机#

点亮相机#

sudo chmod +x /opt/miivii/features/gmsl_camera/bin/cameras_sdk_demo 
cd /opt/miivii/features/gmsl_camera/bin/
# 点亮相机(自动点亮所有相机,如需单独点亮相机需指定路数)
./cameras_sdk_demo 

#

性能问题解决方案#

cameras_egl_demo:EGL Demo 直接使用v4l和opencv来获取摄像头图像。

/opt/miivii/features/gmsl_camera/bin/cameras_egl_demo -s 1280x720 -d /dev/video0

兼顾性能和易用性的方案#

cameras_opencv_demo:OpenCV Demo,使用egl来作为显示部分实现,显示部分效率高。

/opt/miivii/features/gmsl_camera/bin/cameras_opencv_demo -s 1280x720 -d /dev/video0

方法二:输入相机参数点亮相机#

显示单路720P的相机#

gst-launch-1.0 -v v4l2src device="/dev/video1" ! video/x-raw,width=1280,height=720,format=UYVY ! xvimagesink

显示单路1080P的相机#

gst-launch-1.0 -v v4l2src device="/dev/video0" ! video/x-raw,width=1920,height=1080,format=UYVY ! xvimagesink

GMSL​相机问题排查#

原则#

米文只保证从硬件接口拿到数据的帧率是正常的,用户自行设计的程序进行计算的帧率不能作为判断异常的标准,应当使用业内常用的工具或者大家认可的标准进行测试。

建议使用v4l2-ctl命令(安装命令: sudo apt install v4l-utils)进行帧率测试。

故障排查具体方法#

现象一:相机可正常点亮,但图像帧率与相机手册帧率不符#

排查项一:使用v4l2-ctl工具验证出图#

相机插到米文设备上,并在websetting正确配置相机型号。 打开终端,输入命令:

v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap

上述指令假如相机分辨率为:1920x1080,插入的相机口为:video0,客户可按自身实际情况进行改动。

如上图,ts:33.327ms  即相机帧率为30HZ。

  • 多次执行,如使用v4l2-ctl帧率均与相机手册不符合,建议客户与相机厂商沟通固件版本是否正确。

  • 如存在丢帧问题,建议检查硬件链路链接,如硬件链路正常,则执行”排查项二:收集log信息”。

排查项二:抓取log#

将设备连接外网后,打开终端输入:

curl -sSL https://doc.miivii.com/scripts/run_miivii_diagnostic.sh | sudo bash -s gmsl

并将日志以及/var/log下文件导出,上传至故障工单中,交由米文技术支持。

现象二:相机无法修改帧率#

排查项一:确认相机是否支持外触发#

步骤1:询问相机厂家相机是否支持外触发#

  • 如支持外触发则执行”排查项二:使用v4l2-ctl工具验证帧率是否被修改”。

  • 如不支持外触发,则不支持修改帧率。

排查项二:使用v4l2-ctl工具验证帧率是否被修改#

步骤1:同”现象一”中”排查步骤一”#

  • 如确认未修改成功,则执行”排查项三”。

  • 如帧率与修改的帧率相符,则需要排查自身应用程序。

排查项三:小幅度修改帧率,尝试能否修改成功#

步骤1:使用sdkdemo修改小范围帧率(相比默认帧率相差5FPS之内的帧率)#

  • 如可修改成功,则建议客户咨询相机厂商相机固件支持的帧率修改范围。

  • 如不可修改成功则执行”排查项四:确保相机的同步信号正常在输出”。

根因解释:

由于CMOS硬件限制,即使是同一家相机厂商的不同产品,可以支持的相机修改的帧率也是不同的,这里给一个大致的区分,凡是支持外触发相机的都可以参考(以CMOS的供应商进行区分):

1 2 OV相机的CMOS最低帧率通常是默认的一半+1,如何识别是否是OV的CMOS?例如:相机名称中携带OX08B/OX03C/OV10640等带OX/OV字样的。 2 ONSEMI的CMOS通常支持1-30FPS的帧率调整,如何识别是否是ONSEMI的CMOS?例如:相机名称中携带AR0233/AR0820/AR0147等带AR字样的。 2 SONY的CMOS比较特殊,没有特定的特点,常见的如IMX系列,通常只支持固定帧率输出(例如 IMX390,IMX477,IMX728),如ISX系列,通常支持默认帧率的一半+1(例如ISX031,ISX021)。

排查项四:确保相机的同步信号正常在输出#

步骤1:检查sdk是否正常运行#

1、查看终端是否有报错信息。 2、使用sdkdemo打印时间戳,查看触发是否正常.

  • 如无报错信息且时间戳正常,建议客户询问相机厂商该型号相机是否支持修改帧率。

  • 如有报错信息,则执行”排查项五-步骤2:抓取log信息”。

排查项五:重新刷写镜像验证是否为软件环境导致#

步骤1:刷写镜像#

刷写镜像方法:https://doc.miivii.com/Apex-AD10-User-Manual-CH/wiki/Apex-AD10-%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%86%99.html

  • 刷写镜像后,帧率可正常修改,则证明为系统软件环境导致,需要客户自己排查软件环境。

  • 刷写镜像后,帧率仍然无法修改,则执行”步骤2”。

步骤2:抓取log#

将设备连接外网后,打开终端输入:

curl -sSL https://doc.miivii.com/scripts/run_miivii_diagnostic.sh | sudo bash -s gmsl

并将日志以及/var/log下文件导出,上传至故障工单中,交由米文技术支持。