【问题标题】:Unknown format error on running examples on coral board along with coral camera在珊瑚板上运行示例和珊瑚相机时出现未知格式错误
【发布时间】:2020-06-01 13:37:35
【问题描述】:

我正在运行来自谷歌珊瑚的示例。他们在我的珊瑚板上工作得很好。然后我在遵循post 之后修改了示例以增加相机的 fps 输出。

平台详情:

mendel@coral2:~$ uname -a
Linux coral2 4.14.98-imx #1 SMP PREEMPT Fri Nov 8 23:28:21 UTC 2019 aarch64 GNU/Linux

该示例使用 USB 相机(标准相机)运行良好,但使用珊瑚相机会导致以下错误。 (在系统日志中可见

Jun  1 10:32:28 coral2 kernel: [378824.885837] unknown pixelformat:'BGR3'
Jun  1 10:32:28 coral2 kernel: [378824.889798] mx6s-csi 30a90000.csi1_bridge: Fourcc format (0x33524742) invalid.
Jun  1 10:32:28 coral2 kernel: [378824.897302] unknown pixelformat:'YV12'
Jun  1 10:32:28 coral2 kernel: [378824.901344] mx6s-csi 30a90000.csi1_bridge: Fourcc format (0x32315659) invalid.
Jun  1 10:32:28 coral2 kernel: [378824.908784] unknown pixelformat:'411P'
Jun  1 10:32:28 coral2 kernel: [378824.912753] mx6s-csi 30a90000.csi1_bridge: Fourcc format (0x50313134) invalid.
Jun  1 10:32:28 coral2 kernel: [378824.920308] unknown pixelformat:'MJPG'
Jun  1 10:32:28 coral2 kernel: [378824.924268] mx6s-csi 30a90000.csi1_bridge: Fourcc format (0x47504a4d) invalid.
Jun  1 10:32:28 coral2 kernel: [378824.931818] unknown pixelformat:'JPEG'
Jun  1 10:32:28 coral2 kernel: [378824.935778] mx6s-csi 30a90000.csi1_bridge: Fourcc format (0x4745504a) invalid.

产生错误的步骤

  1. git 克隆https://github.com/deepanshu-yadav/coral_bug.git
  2. ./download_models.sh
  3. cd opencv
  4. ./install_requirements.sh
  5. python3 检测.py

总而言之,它只读取第一帧,从不显示后续帧。

【问题讨论】:

    标签: opencv v4l2 google-coral google-aiy


    【解决方案1】:

    我相信您也通过我们的私人支持渠道与我们取得了联系,但我将其粘贴在这里以供其他人参考。

    很遗憾,我无法使用您的代码重现此问题。快速查看代码库,您似乎还没有提交更改。 另一方面,我不相信这首先会起作用。这是因为我们发货的Camera模组不支持BGR3格式,只支持YUYV。您可以使用以下命令确认这一点:

    $ v4l2-ctl --list-formats-ext --device /dev/video0
    ioctl: VIDIOC_ENUM_FMT
            Type: Video Capture
    
            [0]: 'YUYV' (YUYV 4:2:2)
                    Size: Discrete 640x480
                            Interval: Discrete 0.033s (30.000 fps)
                    Size: Discrete 720x480
                            Interval: Discrete 0.033s (30.000 fps)
                    Size: Discrete 1280x720
                            Interval: Discrete 0.033s (30.000 fps)
                    Size: Discrete 1920x1080
                            Interval: Discrete 0.067s (15.000 fps)
                            Interval: Discrete 0.033s (30.000 fps)
                    Size: Discrete 2592x1944
                            Interval: Discrete 0.067s (15.000 fps)
                    Size: Discrete 0x0
    

    【讨论】:

    • 提交是this。 v4l2 的输出是一样的。
    • 你检查过 SYSLOGS 吗?
    • @DeepanshuYadav 我明白了,它肯定在系统日志中。抱歉,我以为它会在标准输出中,无论如何,我能够毫无问题地运行演示。那篇文章很长,你用的是什么技术?除非您绝对知道如何控制线程,否则我会不惜一切代价避免线程。 Linux 内核不允许多个线程同时访问一个 pcie/usb 资源,所以调用肯定会崩溃。
    • Edit 仅供参考,我的意思是线程意味着让多个线程同时调用 tpu 资源(这是不允许的)。如果您可以将所有帧排队并一一提供给tpu,那没关系。
    • 谢谢 我会尝试给定here 的排队机制,然后再讨论。顺便说一句,USB相机没有发生同样的错误。这很奇怪。
    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多