你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure IoT Edge 视觉 AI 选择相机

计算机视觉系统中最关键的组件之一是相机。 相机必须捕获并呈现人工智能 (AI) 或机器学习 (ML) 模型可以正确评估和识别的图像。 本文深入介绍不同的相机类型、功能和注意事项。

相机类型

相机类型包括面扫描、线扫描和嵌入式智能相机。 有许多不同的制造商生产这些相机。 请选择符合你的具体需求的供应商。

面扫描相机

面扫描相机生成传统的相机图像。 这种相机通常搭载了像素传感器矩阵。 该相机捕获 2D 图像并将其发送到 Azure IoT Edge 硬件进行评估。

面扫描相机可以捕捉较大的区域,非常擅长检测变化。 可以使用面扫描相机的工作负载示例包括工作场所安全检查,或者检测或统计环境中的物体。

线扫描相机

线扫描相机搭载了单行线性像素传感器。 该相机快速连续拍摄 1 像素宽的图像,将其拼接成视频流,然后将流发送到 IoT Edge 设备进行处理。

线扫描相机适用于其中的物品要么经过相机,要么需要旋转以检测缺陷的视觉工作负载。 然后,线扫描相机生成一个连续的图像流用于评估。 最适合使用线扫描相机的工作负载示例如下:

  • 对传送带上流动的部件进行物品缺陷检测
  • 需要旋转才能看到圆柱形物体的工作负载
  • 需要旋转的工作负载

嵌入式智能相机

嵌入式智能相机是一个自给性的独立系统,可以处理和采集图像。 嵌入式智能相机可以使用面扫描或线扫描相机来捕获图像,不过线扫描智能相机极其少见。 这些相机通常搭载了 RS232 或以太网输出端口,因此它们可以直接集成到可编程逻辑控制器 (PLC) 或其他工业 IoT (IIoT) 控制器中。

相机功能

在为视觉工作负载选择相机时,请考虑几项功能。 以下部分介绍传感器大小、分辨率和速度。 其他需要考虑的相机功能包括:

  • 镜头选择
  • 焦距
  • 单色或色彩深度
  • 立体深度
  • 触发器
  • 物理大小
  • 支持

相机制造商可帮助你了解应用程序需要哪些特定的功能。

传感器大小

传感器大小是评估相机时要考虑的最重要因素之一。 传感器是相机内部的硬件,用于捕获目标并将其转换为信号,然后生成图像。 传感器包含数百万个称为“感光点”的半导体光电探测器。

更高的百万像素数并不总能产生更好的图像。 例如,具有 1200 万个感光点和 1 英寸传感器的相机比具有 1200 万个感光点和 ½ 英寸传感器的相机产生的图像更清晰鲜明。 用于计算机视觉工作负载的相机的传感器大小通常为 ¼ 英寸至 1 英寸。 在某些情况下可能需要更大的传感器。

如果你的视觉工作负载具有以下特征,请选择更大的传感器:

  • 需要精密测量
  • 较低的光照条件
  • 较短的曝光时间或快速移动的物品

解决方法

分辨率是选择相机时要考虑的另一个重要因素。 如果你的工作负载具有以下特征,则需要选择分辨率较高的相机:

  • 必须识别细微特征,例如集成线路芯片上的文字/符号
  • 要尝试检测面部
  • 需要从远处识别车辆

以下图像显示了在给定用例中使用错误分辨率所造成的问题。 这两张图像都是在距离汽车 20 英尺的位置拍摄的。 小红框代表一个像素。

  • 以下图像是使用 480 水平像素拍摄的:

    480 像素的汽车照片。

  • 以下图像是使用 5184 水平像素拍摄的:

    5184 像素的汽车照片。

Speed

如果视觉工作负载需要每秒捕获许多图像,则有两个因素非常重要。 第一个因素是相机接口连接速度。 第二个因素是传感器的类型。 传感器有两种类型:电荷耦合器件 (CCD) 和有源像素传感器 (CMOS)。 CMOS 传感器可以从感光点直接读出数据,因此它们通常提供更高的帧速率。

相机放置

需要在视觉工作负载中捕获的物品决定了相机的放置位置和角度。 相机位置还可与传感器类型、镜头类型和相机本体类型交互。 决定相机放置方式的两个最关键因素是照明和视场。

相机照明

在计算机视觉工作负载中,照明对于相机的放置至关重要。 可以应用多种不同的照明条件。 对一种视觉工作负载有用的照明条件可能会在不同的工作负载中产生不良影响。

计算机视觉工作负载有多种常见照明类型:

  • 直接照明是最常见的照明条件。 光源投射在要捕获的物体上。
  • 线性照明是最常用于线扫描相机的单一光源阵列。 线性照明在相机的焦点处产生一条光线。
  • 漫射照明照亮物体,但可以防止刺眼的阴影。 漫射照明主要在镜射或反射物体的周围使用。
  • 轴向漫射照明通常用于高反射物体,或用于防止要捕获的部位出现阴影。
  • 背光在物体的背面使用,可以产生物体的轮廓。 背光对于测量、边缘检测或对象定向最为有用。
  • 定制格栅照明是一种结构化照明条件,可以在对象上排布出一道光栅。 已知的格栅投影能够为物品组件、部件和放置位置提供更准确的测量。
  • 频闪照明用于高速运动的部件。 频闪灯必须与相机同步才能定格要评估的物体。 频闪照明有助于防止运动模糊效应。
  • 暗场照明使用多个灯光,这些灯光的角度与要捕获的部件不同。 例如,如果将部件平放在传送带上,则灯光与传送带成 45 度角。 暗场照明对高反射的透明物体最有用,通常用于镜头划痕检测。

下图演示了光源的角度放置:

显示 IoT Edge 视觉工作负载的光源角度放置的示意图。

视场

在规划视觉工作负载时,需要知道所在评估的物体的视场 (FOV)。 在选择相机、传感器和镜头配置时,FOV 是重要的考虑因素。 FOV 组件的属性包括:

  • 与物体的距离。 例如,被监视物体是在传送带上距离相机两英尺的下方,还是跨越整个停车场? 适合不同距离的相机传感器和镜头配置不同。
  • 覆盖面积。 计算机视觉试图监视的面积是小还是大? 此因素与相机的分辨率、镜头和传感器类型直接相关。
  • 太阳的方向。 如果计算机视觉工作负载在户外,则你应考虑全天的太阳方向。 太阳的运动角度可能会影响计算机视觉模型。 如果相机在镜头中受到阳光直射,则在太阳角度发生变化之前,相机可能会“失明”。 如果太阳在被监视物体上投下阴影,则该物体可能会被遮挡。
  • 相机与物体的角度。 如果相机太高或太低,它可能会遗漏工作负载试图捕获的细节。

通信接口

在规划计算机视觉工作负载时,了解相机输出如何与系统的其余组件交互非常重要。 相机通过多种标准方式来与 IoT Edge 设备通信:

  • 实时流式处理协议 (RTSP) 是一种控制流视频服务器的应用程序级网络协议。 RTSP 通过 TCP/IP 连接将实时视频数据从相机传输到 IoT Edge 计算终结点。

  • 开放网络视频接口论坛 (ONVIF) 是一个全球性的开放行业论坛,为基于 IP 的相机制定开放标准。 这些标准描述了 IP 相机与下游系统之间的通信、互操作性和开放源代码。

  • 通用串行总线 (USB) 连接的相机通过 USB 端口直接连接到 IoT Edge 计算设备。 此连接不太复杂,但会限制相机与 IoT Edge 设备之间的距离。

  • 相机串行接口 (CSI) 包括移动行业处理器接口 (MIPI) 联盟制定的多个标准。 CSI 描述了如何在相机与主机处理器之间进行通信。 2005 年发布的 CSI-2 有多个层:

    • 物理层(C-PHY 或 D-PHY)
    • 通道合并层
    • 低级协议层
    • 像素到字节转换层
    • 应用层

    CSI-2 v3.0 添加了对 RAW-24 色彩深度、统一串行链路和智能感兴趣区的支持。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤