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参考文献

训练模型

选择模型架构并创建数据集后,下一步是在新数据集上重新训练模型。

TI 提供了一整套易于使用的模型训练和编译工具。任何训练框架都可用于训练深度学习模型,只要它仅包含器件加速器所支持的层即可。专家可能希望使用他们更熟悉的工具,例如使用 PyTorch 进行训练以及导出到 ONNX 进行编译。经验较少的用户可以使用 TI 的工具,如模型编写器edgeai-modelmaker。此处介绍的步骤使用 edgeai-modelmaker。使用 TI 工具的一个优势是,可以在训练结束时自动处理编译,这样可以完全跳过节 5

Edgeai-modelmaker 一旦设置/安装完毕,即会使用单独的训练框架(如 edgeai-mmdetection)进行训练。这从经过预先训练的模型开始,并通过重置网络的最后一层和使用低学习速率,通过迁移学习进行微调。对于 Model Zoo 中支持的模型,这会下载经过预先训练的权重。请注意,使用此过程时,最后一层之前的层不会 冻结,并且在训练期间会发生变化。

训练模型的步骤如下;请参考 modelmaker 自述文件获得最新的说明:

  • 设置 modelmaker 存储库,其中包括设置其他训练框架和 TI 工具。它们被保存在同一父目录中。edgeai-modelmaker 存储库中有一个 setup_all.sh 脚本可以处理此问题,包括为其他训练框架进行设置。
    • 推荐使用 Python 3.6 的虚拟 Python 环境。
  • 将训练样本/文件放入“edgeai-modelmaker/data/projects/PROJECT_NAME”。
    • 在其中一个示例配置 YAML 文件上运行 modelmaker 以查看这些目录的结构。它遵循 COCO 格式,具有一个“annotations”目录(包含一个 COCO 格式的“instances.json”文件)和一个图像目录。
    • 这些图像必须都位于同一目录(称为 images)中,不包含任何子目录。训练框架假定所有图像文件都位于同一“images”目录中。
  • 创建一个指向项目数据的配置文件,选择模型、训练参数等。有关更多信息,请参阅 config_detect_foods.yaml 中的示例。
  • 使用上面的配置文件作为第一个参数运行启动脚本“run_modelmaker.sh”。
    • 请参阅 modelmaker 的自述文件以了解如何设置器件目标,因为 AM62A 等处理器包含不同的 C7xMMA 深度学习加速器,因此该目标架构的编译工具与 TDA4VM、AM68A 等不同。它依赖于 TIDL_TOOLS_PATH 环境变量,如果未预定义该变量,SH 脚本将设置该变量。

如果训练机器上存在 GPU,强烈建议将其配置用于训练,因为它可以大幅提高速度。在配置中,重要的是确保 CUDA 版本与编译 Pytorch/torchvision 时使用的版本一致。撰写本文时随 modelmaker 一起提供的是 CUDA 11.3。正确设置这些驱动程序可能是一个棘手问题,因为 CUDA 版本与 NVIDIA 显示/图形驱动程序之间存在某种关系。

如果数据集相当小(少于 10000 张图像),可以从一个网络开始,该网络在大型通用数据集(如用于图像分类的 imagenet1k 或用于对象检测的 COCO)上经过预先训练。较大网络的参数数量增加,因此通常需要更多样本用于训练

对于包含大约 2500 张图像的食品识别数据集(在训练集和测试集分割并增强之后),在具有 12 核 CPU、16GB RAM 和 SSD 的 A2000 GPU (6GB VRAM) 上进行训练大约需要 1.5 小时,共进行 30 个 epoch 的训练。该数据集的平均精度均值(mAP;一个常用的对象检测精度指标)得分达到 0.68,非常高。这源于两个事实:

  • 训练框架使用的验证集会自动包括增强后的文件,因此某些验证数据与部分训练样本非常相似,从而提高所报告的准确性。
  • 环境/背景受到严格控制以提供一致性。该模型在有限的上下文中表现良好,但可能无法很好地推广到全新的设置,例如尝试在绿色或蓝色背景下识别对象。这可能重要,也可能不重要,具体取决于用例。 (1)

未针对零售扫描仪模型执行最终测试集的完整评估。相反,在进入下一阶段之前进行了目视检查,确定模型的表现相当好。通过改变 epoch 数量、增强程度和增强种类,进行了多次训练迭代。

在零售扫描仪应用中,考虑到通常受控的环境,这看起来并不重要。但是,恶意分子可能会企图欺骗系统引入颜色怪异的背景(例如紫色纸张),从而使背景上的物品难以识别。新的背景可以替换为另一种形式的增强。