ZHCACO4 may   2023 AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM68A , AM69A

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 目标读者
    2. 1.2 主机信息
  5. 2创建数据集
    1. 2.1 收集图像
    2. 2.2 标记图像
    3. 2.3 增强数据集(可选)
  6. 3选择模型
  7. 4训练模型
    1. 4.1 输入优化(可选)
  8. 5编译模型
  9. 6使用模型
  10. 7构建最终应用
    1. 7.1 使用 TI 的 Gstreamer 插件优化应用
    2. 7.2 使用原始 MIPI-CSI2 摄像头
  11. 8总结
  12. 9参考文献

收集图像

应在与在目标嵌入式处理器上实际使用模型类似的上下文中收集图像。例如,付款台可以使用一个具有明亮光照和中性色背景的朝下摄像头。空间可以(基本)没有其他对象,但可能显示用户的手、钱包、智能手机等。

用于收集图像的摄像头应具有良好的质量,但不需要具有摄影师所需的专业品质。深度学习过程中使用的大多数图像的缩放分辨率(< 100 万像素:例如,512x512)小于原始输入。使用最终产品将使用的同一摄像头可能会有好处,包括摄像头可能需要的相同自动增益、白平衡和其他调优设置,但这并非明确有必要。使用不同的摄像头或设置可以提高稍后必须更换摄像头时的稳健性。本文档中的零售扫描仪应用使用终端摄像头(一个 IMX219 图像传感器)和 1080p USB 摄像头进行图像采集。

在数据集中,目标是为机器学习模型提供与待解决问题相关的足够多模式 实例。例如,香蕉应具备什么样的外观才能添加到顾客的订单中。训练样本中不应始终存在不相关的模式,例如香蕉总是在图像边缘附近或在白色背景下。为了提高模型的稳健性,如果特性可能发生变化,建议改变照明条件;对象方向、位置和角度;摄像头角度/高度以及对象自身版本(例如,不同成熟度的香蕉)。如果差异不够大,则训练数据可能会过拟合,这样神经网络在识别训练数据时极其有效,但无法泛化到新数据。数据集应反映终端系统实际将看到的图像。

较大数据集在训练深度神经网络方面比较小数据集更有效。大型优质 数据集非常有效。但是,大型数据集的收集和标注很耗时。从较小的数据集开始,有助于诊断需要更多数据的问题类型。每类项目的实例数量少至 50 个的数据集足以满足首次尝试的需求。初始概念验证仅需 10 个。对于这些微型数据集而言,经过训练的模型已经在大型数据集(如 COCO 的 ImageNet)上进行过一次训练(使用 TI 工具进行训练的模型就是如此),这一点很重要。

食品检测数据集使用每个食品项的 100-200 个实例,以提高稳健性。此应用旨在演示器件功能。虽然该模型不需要有生产价值,但它确实需要足够可靠地执行,以便在随机环境中以合理的准确性进行演示。该食品数据集包括真实的假食品或包装的不易腐食品,使演示更易于在新的地方传输和重现。这样,对象的外观在训练后不会发生很大变化。图 2-1 是来自食品检测数据集的示例图像。

GUID-20230424-SS0I-1H6C-Z4FZ-JVC09RPZTNK0-low.jpg图 2-1 来自食品识别数据集的图像

可以从此演示应用的 Github 存储库下载数据集 [2]。