基于AM572x 和DLP 结构光的 3D 机器视觉参考设计

德州仪器设计 基于 AM572x 和 DLP 结构光的 3D 机器视觉参考设计-EVM
中文翻译-----手工翻译

德州仪器设计
这种三维 (3D) 机器视觉设计描述了一种嵌入式扫描仪,它根据结构光原理生成物理对象的 3D 数字表示。 数码相机与 Sitara™ AM57xx 片上系统 (SoC) 一起用于捕获来自基于 DLP4500 的投影仪的反射光图案。 捕获图案的后续处理、对象 3D 点云的计算及其 3D 可视化均在 AM57xx 处理器内执行。
此设计提供的嵌入式解决方案与基于主机 PC 的实施方案相比,在功耗、简单性、成本和尺寸方面具有优势。 凭借 AM57xx 处理器中的内置 DSP,该嵌入式解决方案可以实现与 2 GHz 双核 i5 级处理器类似的处理时间,而功耗和成本仅为其一小部分。

特征
• 使用基于 DLP® 技术的结构光进行 3D 机器检测的现场演示技巧
• 基于Sitara AM57xx SOC 和DLP Lightcrafter™4500 的全嵌入式3D 机器视觉系统。 无需电脑
• 提供 3D 对象点云
• 以 60 fps 展示高达 1.3 MP 的相机捕获
• 支持高达 4K fps 的结构光图案显示
• 使用 AM572x SoC 中的集成处理器内核和图形处理器演示 3D 点云的组织和渲染
• 支持在高清显示器上显示被测3D对象
• 演示 TI 的软件框架和库以简化集成

在这里插入图片描述
介绍
此设计基于 TI 设计 TIDA-00254 中描述的原理和算法。 该设计不使用主机,而是使用 AM5728 级嵌入式应用处理器来处理捕获的图像并显示生成的 3D 点云模型。
结构光是一种 3D 扫描的光学方法,将一组图案投射到物体上,然后使用偏离投影仪的成像传感器捕获生成的图像。 结构光是获得精确尺寸测量的有效方法。 结构光广泛应用于检测和分类表面缺陷的应用,以及物体或物体表面没有几何特征可提取的情况。 基于结构光的典型例子
3D 扫描仪系统是:
• 工厂自动化
• 在线检查
• 计量学
• 表面检查
• 计量学和零件测量
• 农产品检验
• 牙科口腔扫描仪
3D 测量的相关技术有:
• 立体视觉
• 飞行时间 (TOF)
表 1 列出了针对不同应用领域的 3D 扫描技术的比较,以及使用时的优势和限制。 成本比较是相互关联的,基于 TI 设备上的典型实施。
在这里插入图片描述

Table 1. Methods for 3D Scanning and Measurement (continued)

结构光 3D 扫描仪捕获结构光照明对象的图像,然后根据对象对图案的扭曲计算对象的深度信息。 相机和投影仪都看到的物体会导致来自相机和投影仪的不同光线相互交叉。 可以通过使用来自投影仪的格雷编码和相移光线信息以及来自捕获图像的检测光线信息来计算该交叉点。 这种光线的交点决定了空间中物体的真实点。 几何射线相交计算由软件中的几何模块针对每个相交点执行。
几何模块生成的点存储在称为点云的集合中。 点云是捕获场景中的所有已知点。 可以生成软件工具和算法以使用点云来创建实体表面。 可以在连接到 AM57x 板的显示设备上查看点云。 MeshLab 软件工具也可用于点云的离线查看。

图 1 显示了基于结构光照明的深度测量原理的高级概述。 基本步骤是:

  1. 预先设计或自适应生成结构光图案并投射到物体上。
  2. 相机捕捉图像,其中相机相对于物体和光源的位置和角度被校准。
  3. 处理器根据反射光计算物体特征的深度。
    光图案可以是简单的垂直或水平二元色线、正弦强度线,或具有更复杂的色谱,具体取决于物体的预期形状和反射特性。
    在这里插入图片描述

1.1 系统概述
1.1.1 系统说明
图 2 显示了 3D DLP 扫描仪设计的主要组件。 该系统基于以下关键组件模块:
• 光源:从 DLP LCR4500 投影仪模块投射
• 相机:Point Grey® 1.3 MP 工业相机、FL3-U3-13S2C 或 FL3-U3-13Y3M
• 处理器:AM572x 应用处理器 EVM 模块
• 显示器(可选):直接由 AM5728 EVM 驱动的标准 HDMI 显示器
在这里插入图片描述

图 3 显示了基于通用 AM57xx 应用处理器的设计的内部数据流和处理功能,突出显示了该设计中的激活功能。 CSI-2 接口仅在 AM571x 系列设备上可用。
在这里插入图片描述

1.1.2 主要系统规格
该系统实现了完全嵌入式设计,同时最大限度地提高了同等基于 PC 的软件重用率
系统。 系统组件的主要功能包括:
• AM5728 应用处理器
– 高达 1.5 GHz 的双核 ARM® Cortex®-A15 处理器
– 高达 750 MHz 的双核 C66x DSP 处理器
– 加速的 3D 图形
– 从 VIP、USB3、Gbe 或 PCIe 获取多种图像的能力
– 内置带 PHY 的 HDMI 传输
– 触摸屏支持
• DLP LightCrafter 4500
– 18 个垂直模式,18 个水平模式,预存
– 投影分辨率:912 × 1140(菱形)
– 裁剪后有效面积:912×570(矩形)
– 光模式生成的 4-KHz 开关能力
• Point Grey 1.3-MP 相机 [FL3-U3-13S2C 或 FL3-U3-13Y3M]
– 1280 × 1024, 60 fps 单声道
– 每幅图像发出一个 GPIO 选通脉冲
• 触发和同步
– 从相机到 DLP 投影仪的基于 GPIO 的硬件触发

2 硬件和软件入门
可以通过获取以下硬件组件和软件模块来重新创建此参考设计。

2.1 软件
3D DLP 扫描仪软件套件执行系统的捕获、处理、点云生成和 3D 对象可视化功能。 开发采用分阶段的方式,如表2所示。
本设计指南的当前修订反映了第 2 阶段。
在这里插入图片描述

图 4 显示了第一阶段开发的软件处理流程,其中所有处理都在嵌入式 A15 处理器内核上执行,除了 3D 渲染在 SGX544 图形内核上执行。
图 5 显示了阶段 2 的处理流程,其中部分后处理和深度计算被卸载到 DSP。
在这里插入图片描述

Figure 4. Phase 1 Software Processing Data Flow

2.1.1 Preparation and Control of Project Light Patterns
Pattern projection is performed by a structured light module in the DLP ALC SDK. The module generates vertical and horizontal gray-coded patterns or phase-shifted patterns which are sent to a LightCrafter 4500 projector. A firmware file with prestored patterns is prepared and statically uploaded to the projector using the LightCrafter 4500 module. For further details of how to use the DLP ALC SDK and prepare prestored light patterns see TIDA-00254.
2.1.1 投影光型的准备与控制
图案投影由 DLP ALC SDK 中的结构光模块执行。 该模块生成垂直和水平灰度编码图案或相移图案,这些图案被发送到 LightCrafter 4500 投影仪。 使用 LightCrafter 4500 模块准备一个带有预存模式的固件文件并静态上传到投影仪。 有关如何使用 DLP ALC SDK 和准备预存光模式的更多详细信息,请参阅 TIDA-00254。

2.1.2 捕获
Standard Point Grey driver APIs are called to capture a set of images based on a set of prestored light patterns in the DLP projector.
The camera module triggers DLP light switching through a GPIO cable, and then stores all N captured frames through the USB3 to the AM57x.
标准 Point Grey 驱动程序 API 被调用以根据 DLP 投影仪中的一组预存光模式捕获一组图像。 摄像头模组通过GPIO线触发DLP灯光切换,然后通过USB3将采集到的N帧全部存储到AM57x中。

2.1.3 图像数据准备
调用 Point Grey Flea3® 驱动程序 API 将本机相机文件格式转换为标准 Linux® 图像文件格式。
2.1.4 后处理
裁剪捕获的帧并识别干净的图像,与预存的光模式相匹配。

2.1.5 深度计算
执行三角函数和几何函数来计算对象的深度。

2.1.6 3D点云生成
根据计算的深度信息生成 3D 网格文件。

2.1.7 显示
生成的 3D 网格文件由集成的 SGX544 图形处理器内核渲染,并在连接的 LCD 或 HDMI 显示器上播放

2.1.8 系统校准
系统必须经过校准才能为固定设置建模正确的位置和角度。 DLP 3D扫描仪SDK 包含一个校准模块,用于估计 3D 扫描仪的内在和外在参数相机和投影仪。 估计参数的示例包括焦点、镜头畸变和相机相对于投影仪的空间方向。 每当投影仪和相机彼此改变方向或更换设备时,都必须执行校准程序。

2.2 硬件组件
需要以下硬件模块:
• DLP LightCrafter 4500 EVM 模块(TI 部件号 DLPLCR4500EVM),可从 http://www.ti.com/tool/dlplcr4500evm 获得;
• AM572x 评估模块(TI 部件号 TMDSEVM572X),可从 http://www.ti.com/tool/TMDSEVM572X 获得;
• 如果没有可选的 LCD 模块,则带有 HDMI 端口的标准高清显示器;
• USB3 工业相机模块。 在此实施中,使用了 Point Grey 的 Flea3 相机模块 https://www.ptgrey.com/flea3-usb3-vision-cameras)。 具体型号FL3-U3-13S2C和FL3-U3-13Y3M进行测试。 Computar® 的标准 M0814-MP2 c 型固定镜头用于相机模块。 只要提供标准的 ARM-Linux USB3 驱动程序,就可以使用其他相机模块(尽管它们尚未在此设计中进行测试)。
• 用于将 AM57x EVM 连接到 DLP 投影仪的迷你 USB 电缆
• 用于将 AM57x EVM 连接到相机模块的微型 USB 3.0 电缆
• 触发电缆,可使用 TIDA-00254 相机触发电缆组装指南中的说明进行组装:(图号 2514095)

2.3 组装硬件设置
连接硬件如下:

  1. 使用 USB 2.0 电缆将 LightCrafter 4500 连接到 AM57x EVM USB 端口(USB 2.0 或 USB 3.0 端口均有效)。
  2. 使用 USB 3.0 电缆将 Point Grey 相机连接到 AM57x EVM USB 3.0 端口。
  3. 将HDMI线连接到AM57x EVM,给EVM和显示器上电。
    4. 将相机触发电缆连接到 Point Grey 相机的 GPIO 端口和 LightCrafter 4500 的输入触发连接器 J11
  4. 为 LightCrafter 4500 供电。
  5. 为 AM572x EVM 供电。
  6. 硬件设置见图 6。
    在这里插入图片描述

Figure 6. Hardware Setup of 3D Machine Vision Reference Design

2.4 获取和安装软件模块
系统需要TI Processor SDK 4.04及以上版本,AM57x 3D扫描仪软件包,
以及相机模块驱动软件。 按照以下步骤获取处理器 SDK 版本
4.04 及更高版本:
1.下载PROCESSOR-SDK-LINUX-AM57X 04_00_00_04的AM57xx Linux SDK Essentials
来自:http://software-dl.ti.com/processor-sdk-linux/esd/AM57X/latest/index_FDS.html。
2. 按照上一个链接中的 AM57xx Linux SDK SD Card Creation 链接创建 SD 卡文件
EVM 系统。
3. 从相机供应商处下载并安装 USB3 相机驱动程序。 如果 Point Grey 相机
模块,标准的 Linux ARM 驱动软件可以从以下网站获得:
https://www.ptgrey.com/support/downloads。

2.5.4 标定相机
以下步骤与 TIDA-00254 中的第 3.6 节“校准相机”相同。 本节将指导用户完成在 LightCrafter 4500、主机 PC 和 Point Grey Flea3 相机之间创建物理连接,然后校准相机的过程。
注意:必须先完成第 2.5.3 节,然后才能校准相机。

  1. 使用 TIDA-00254-CAMERA_TRIGGER_CABLE_ASSEMBLY.pdf 文件中详述的电缆将相机的 GPIO 输出触发器连接到投影仪的输入触发器,如图 18 所示。

在这里插入图片描述

Figure 18. Connecting Camera to Host EVM

  1. 将 Point Grey Flea3 相机连接到主机 EVM USB 端口。

  2. 将 LightCrafter 4500 连接到主机 EVM USB 2.0 端口。

  3. 确保相机和投影仪之间有足够的距离。 相机和投影仪应按照被扫描物体形成的 20° 至 45° 角分开,如图 19 所示。
    在这里插入图片描述

  4. Enter menu option 4 to start the camera calibration. Follow the prompts and directions on the screen during the entire process.

  5. A live camera view window appears on the host PC. Position the camera calibration board entirely in the frame, as shown in Figure 20.

  6. 进入菜单选项 4 开始相机校准。 在整个过程中按照屏幕上的提示和说明进行操作。

  7. 主机 PC 上会出现实时摄像头视图窗口。 将相机校准板完全放置在框架中,如图 20 所示。
    在这里插入图片描述

Figure 20. Camera Calibration Board Live View

  1. 光圈尽可能小,同时仍能辨别校准板上的灰色和白色方块,并尽量减少所有眩光源。 确保投影区域对焦,然后锁定光圈和焦点。
    图 21 显示了曝光过度图像的示例,
    图 22 显示了曝光不足图像的示例。

注意:如果在步骤 7 之后更改了相机的光圈大小或焦点,则会影响生成的点云数据。
如果结果不理想,请再次执行相机校准程序。

  1. 单击主机 PC 上的实时摄像头视图窗口,验证校准板是否在焦点上。
  2. 从实时摄像头视图窗口,将摄像头定位在与投影表面不同的角度和距离。 将网格放置在相机视图的不同区域,然后按空格键捕获图像。
    尽管可以调整此参数,但默认设置需要 20 个校准图像。 在 /config 中,找到 calibration_camera.txt。
    图 23 显示了指定校准图像数量的参数。
    图 24 显示了一些推荐的校准图像。 在校准过程中此时移动相机是可以接受的。
    在这里插入图片描述
    Figure 23. Camera Calibration Configuration File
    在这里插入图片描述
    Figure 24. Calibration Board Image Capture Positions
    校准过程估计镜头焦距、焦点、镜头畸变以及相机相对于校准板的平移和旋转。 校准过程会产生重投影误差。 零重投影误差是理想的,但是低于二的误差对于典型使用来说已经足够了。
    如果重新投影误差不令人满意或初始扫描未提供良好结果,请再次运行相机校准例程(参见图 25)。
    在这里插入图片描述

Figure 25. Screenshot for Generating Camera Calibration Board

2.5.5 校准投影仪

以下步骤与 TIDA-00254 中的第 3.7 节“校准投影仪”相同。 此过程校准投影仪和投影仪-相机系统。 仅在已完成有效相机校准的情况下执行此过程。 当相机校准完成并准备好投影仪后,即可执行系统校准。

  1. 在命令行提示符下输入 5 启动系统校准过程。 详细阅读提示中的说明。 默认校准需要五个图像。 要更改此默认值,请打开 \config 中的 calibration_projector.txt。 图 26 显示了要更改的参数。

以下步骤与 TIDA-00254 中的第 3.7 节“校准投影仪”相同。 此过程校准投影仪和投影仪-相机系统。 仅在已完成有效相机校准的情况下执行此过程。 当相机校准完成并准备好投影仪后,即可执行系统校准。在这里插入图片描述
Figure 26. Number of Projector Calibration Shots

  1. 投影仪显示校准板。 投影标定板必须比相机标定板大,但仍完全落在标定面上。 调整相机的位置,使投影校准板在实时视图中居中(参见图 27)。
  2. 选择实时摄像头视图窗口,然后按空格键捕获居中的校准板。
    避免投影板上的眩光,否则捕获的图像会被软件丢弃。 在捕获的图像中的所有三个轴上旋转逆止器的角度。 图 28 显示了一些推荐的投影仪校准捕获方向。 单击空格键后,相机会捕获三种图案:纯白色、黑白棋盘格和纯黑色。

在这里插入图片描述
Figure 27. Projector Calibration Chessboard Capture

2.5.4 标定相机
图 27. 投影仪校准棋盘捕获
在这里插入图片描述
Figure 28. Projector Calibration Board Capture Positions 1 to 10

  1. 重复步骤3 5 次,通过旋转和移动标定面来捕捉标定板的各种角度和位置。 确保投影校准板在每次捕获时完全落在校准表面上。

  2. 系统校准过程估计投影仪的外部和内部参数,以及镜头畸变参数。 系统校准还估计相机-投影仪方向。
    校准过程会产生类似于相机校准的重投影误差。 零重投影误差是理想的,但是低于 2 的误差对于典型使用来说应该足够了。 如果重投影误差不令人满意,请在再次执行校准之前验证第 2.5.6 节中详述的校准。

2.5.6 校准验证
以下步骤与第 3.8 节“TIDA-00254 中的校准验证”相同,并从那里复制而来。 在以下 AM57x 设备校准步骤中忽略 MeshLab。 生成的点云可以在连接到 AM57x 的显示设备上看到。 系统校准完成后,必须对其进行验证。
6. 通过在命令行菜单中输入执行扫描命令 8 来扫描平坦的白色表面,例如打印校准图像的背景。 输出深度图应类似于图 29。
在这里插入图片描述
Figure 29. Typical Depth Map of Flat Surface

  1. 如果深度图缺少大量点,如图 30 所示,通过查看捕获的图像并验证灰度编码是否正确显示来检查相机和投影仪的同步。 也有可能场景不是静态的。 确保被扫描的物体没有移动。
    在这里插入图片描述Figure 30. Deficient Depth Map of Flat Surface

图 31 显示了具有可接受密度的深度图。 或者,用户可以保存点云 (.XYZ) 文件并在 PC 上使用 MeshLab 打开它。 检查点云(在 AM57xx EVM 或 PC 上)以准确再现扫描板。
在这里插入图片描述
Figure 31. Point Cloud of Flat Surface
如果深度图在边缘处扭曲或变形,则必须重新进行校准,特别注意将打印的校准板靠近相机框架的边缘放置。

图 32 显示了一个不可接受的点云示例。
注意:3D 机器视觉参考设计能够进行非常精确的测量。 如果
如果被扫描的平面包含可察觉的扭曲,请在再次执行校准程序之前确认表面没有扭曲。
在这里插入图片描述

Figure 32. Point Cloud of Flat Surface Generated With Poor Calibration Data

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值