跳到主要内容

在PC训练模型

在PC训练模型

制作数据集

  1. 收集待标记的png、jpg、JPEG、bmp、webp格式图片数据,推荐使用jpg格式。图片分辨率不高于1080P,单张图片不大于1MB,推荐每个类别的图片数量在100张左右,图片名称不支持字符".",需放置在全英文路径下。

  2. 为模型迁移准备数据集,进行图像标注,在工具界面选择“分类模型”。

    图1 选择数据集标签界面

    • 选择“制作数据集”,配置1收集的数据集的路径。

      1. 配置标签信息,即需要分类的类别名称,用英文表示并用逗号隔开,不支持其他字符。例如:apple,banana,watermelon,tangerine。

      2. 单击“确认”,开始标注,对应每张图片,从右侧标记栏选择对应的标签名称,当前图片标注完成后,从图片上方菜单单击

        图标或左侧文件列表选择下一张图片进行标记,直到完成所有图片的标注任务。

        图2 图片标注界面

      :::note 说明

      • 在分类任务下进行标注时,只能选择右侧“标记”栏进行标注,选择图形标注不可用。
      • 分类模型下不能在标注界面增加分类类别,如果分类类型有增加,需要重新制作数据集,在制作数据集弹框输入即可。
      • 分类时会在输入图片文件夹地址下,生成与图片一一对应的json文件,记录标注信息。
      • 分类时会在输入图片文件夹同级目录生成flags.txt文件。 :::
    • 选择“已有数据集”:无需进行图像标注,单击“确认”后,可直接开始模型迁移。

模型迁移

  1. 在工具界面单击下方“一键迁移”按钮,进入配置界面,输入迁移信息,单击“一键迁移”开始迁移。

    图3 模型一键迁移配置界面

    • 数据集路径:2中标注的数据集路径。
    • 数据集拆分:将图片划分成训练、验证以及测试集的比例,推荐值:0.3。默认拆分0.1的测试集用于边缘推理,训练集与验证集按输入拆分比例再次进行拆分。
    • 迭代次数:训练轮次,推荐值:100。
    • 每批图片数:参与每个批次训练的图片张数,推荐值:12。
    • 输出目录:模型输出路径。
    • 使用早停策略:勾选后,可根据设置的acc值(准确率,一般指在所有图片中,预测正确的概率得分)和持续迭代不上升次数,提前停止训练。
      • acc达到(值):该训练模型精度已达标,可停止训练的阈值,默认值:0.99。
      • acc连续迭代不上升次数:acc值达到某一水平,多次迭代后并无提升的次数,默认值:10。

    :::note 说明 当使用模型适配工具一键迁移时突然断电、重启、进程卡死或手动取消时,可能会引起输出文件残留,请用户自行删除残留文件后再进行一键迁移,请参见使用模型适配工具一键迁移时出现输出文件夹残留手动取消迁移导致模型适配工具异常退出解决。 :::

  2. 迁移完成后会出现提示框,提示已生成打包好的文件,如图4所示。在训练输出目录会生成以下文件与目录,如图5所示。

    • train_output:训练输出的权重文件、onnx文件以及训练数据信息json文件。

    • trans_output:经过数据转换,根据数据集拆分设置生成的测试集、验证集、训练集。

    • edge_infer.tar:打包好的推理相关模型文件与脚本。

      图4 迁移完成

      图5 输出文件

父主题: 构建图像分类应用

模型推理

  1. root用户远程登录开发者套件,将在PC训练模型获得的压缩包上传到开发者套件,上传方法可参见Windows与开发者套件的文件传输,进入压缩包上传目录执行以下命令解压压缩包。

    tar -xvf edge_infer.tar
  2. 进入解压后文件目录执行以下命令将Windows格式文件转换为Unix、Linux格式。

    cd edge_infer/ && dos2unix `find .`

    :::note 说明 若提示命令dos2unix not found,请使用命令安装。

    • Ubuntu22.04版本镜像:

      apt install dos2unix
    • OpenEuler22.03版本镜像:

      yum install dos2unix

    :::

  3. 进入解压缩目录执行如下命令进行模型转换,获得om模型。

    bash atc.sh

    模型转换成功回显如下:

    set env successfully!!
    start exec atc
    ATC start working now, please wait for a moment.
    .................................ATC run success, welcome to the next use.
  4. 执行以下命令进行推理。

    bash run.sh

    推理成功回显如下:

    set env successfully!!
    start exec atc
    [Sample] init resource stage:
    Init resource success
    load model mobilenetv3_100_bs1.om
    Init model resource
    [Model] create model output dataset:
    [Model] create model output dataset success
    [Model] class Model init resource stage success
    ....
    image name :./data/watermelon/pic (85).jpg, infer result: apple //识别pic (85).jpg中物品类别为苹果
    ....
    image name :./data/watermelon/pic (36).jpg, infer result: tangerine //识别pic (36).jpg中物品类别为柑橘
    Execute end. Acc: 0.25
    INFO: convert model success!
    Release acl resource, 1
    Start relase resource 0
    Model start release...
    Model release source success
    Release acl resource success

    推理结果图如图1图2所示。

    图1 查看推理结果1

    图2 查看推理结果2

    :::note 说明 run.sh会调用推理主程序infer.py,执行此条命令。

    python3.9 infer.py --model mobilenetv3_100_bs1.om --label_path class_indices.json --output_path ./

    命令行参数解析:

    • model:分类模型文件目录。
    • label_path:训练生成的class_indices.json地址。
    • output_path:推理分类结果输出cls_output.txt地址。 :::

父主题: 构建图像分类应用

在PC训练模型

制作数据集

  1. 收集待标记的png、jpg、JPEG、bmp、webp格式图片数据,推荐使用jpg格式。图片分辨率不高于1080P,单张图片不大于1MB,推荐每个类别的图片数量在100张左右,并放置在全英文路径下。

    注:图片名称不要带字符"."。

  2. 为模型迁移准备数据集,进行图像标注,在模型适配工具界面选择“检测模型”。

    1. 单击“打开目录”选择1收集的数据集目录进行标注。

    2. 单击

      按钮,使用矩形框包围目标后单击鼠标左键,弹出添加标签界面,如图1所示。填写对应目标分类标签与Group ID号,当一个图片中有多个目标时需填写不同的ID号,单击“确定”完成标注。

      图1 添加标签

      图2 标注结果

    3. 若标记错误可单击

      按钮,按住左键可以移动标记框,移动鼠标至矩形框并单击“鼠标右键”,对矩形标签进行修改。

      图3 修改标签

    4. 当前图片标注完成后,单击图片上方菜单栏中

      图标或在左侧文件列表选择下一张图片进行标记,直到完成所有图片的标注任务。

    :::note 说明

    • 标注时输入标签仅支持数字、字母、下划线。
    • 数据集图片要从实际模型部署使用的环境获得。
    • 需将图片中的所有待检测目标都标注出来,漏标注将影响模型精度。
    • 边框需要紧密框住每个目标,且类别正确,标注无误。 :::

模型迁移

  1. 在工具界面单击下方“一键迁移”按钮,进入配置界面,输入迁移信息,单击“一键迁移”开始迁移。

    图4 模型一键迁移配置界面

    • 数据集路径:2中标注的数据集路径。
    • 数据集拆分:将图片划分成训练、验证以及测试集的比例,推荐值:0.3。默认拆分0.1的测试集用于边缘推理,训练集与验证集按输入拆分比例再次进行拆分。
    • 迭代次数:训练轮次,推荐值:100。
    • 每批图片数:参与每个批次训练的图片张数,推荐值:12。
    • 预训练模型:可选yolov5s,yolov5n,yolov5l,yolov5x,默认yolov5s。
    • 输出目录:模型输出路径。
    • 使用早停策略:勾选后,可根据设置的mAP值(均值平均精度,一般指图片内所有类别的AP的平均值)和持续迭代不上升次数,提前停止训练。
      • mAP达到(值):该训练模型精度已达标,可停止训练的阈值,默认值:0.99。
      • mAP连续迭代不上升次数:mAP值达到某一水平,多次迭代后并无提升的次数,默认值:10。

    :::note 说明 当使用模型适配工具一键迁移时突然断电、重启、进程卡死或手动取消时,可能会引起输出文件残留,请用户自行删除残留文件后再进行一键迁移,请参见使用模型适配工具一键迁移时出现输出文件夹残留手动取消迁移导致模型适配工具异常退出解决。 :::

  2. 迁移完成后会出现提示框,提示已生成打包好的文件,如图5所示。在训练输出目录会生成以下文件与目录,如图6所示。

    • train_output:训练输出的权重文件、onnx文件以及训练数据信息json文件。
    • trans_output:经过数据转换,根据数据集拆分设置生成的测试集、验证集、训练集。
    • infer_project.tar.gz:打包好的推理相关模型文件与脚本。

    图5 迁移完成

    图6 输出文件

父主题: 构建目标检测跟踪应用

模型推理

  1. root用户远程登录开发者套件,将在PC训练模型获得的压缩包上传到开发者套件,上传方法可参见Windows与开发者套件的文件传输,进入压缩包上传目录执行以下命令解压压缩包。

    tar -zxvf infer_project.tar.gz
  2. 进入解压缩后目录执行以下命令将Windows格式文件转换为Unix、Linux格式。

    cd infer_project/ && dos2unix `find .`

    :::note 说明 若提示命令dos2unix not found,请使用命令安装。

    • Ubuntu22.04版本镜像:

      apt install dos2unix
    • OpenEuler22.03版本镜像:

      yum install dos2unix

    :::

  3. 进入解压缩目录执行如下命令进行模型转换,获得om模型。

    python3 onnx2om.py

    模型转换成功回显如下:

    bash common/onnx2om.sh --model=yolov5s --bs=1 --calib_bs=1 --soc=Ascend310B4 --type=fp16
    === onnx2om args ===
    version: 7.0
    model: yolov5s
    bs: 1
    type: fp16
    output_dir: output
    soc: Ascend310B4
    Starting onnx导出om模型(无后处理)
    ATC start working now, please wait for a moment.
    .................................ATC run success, welcome to the next use.
    onnx导出om模型 Success
  4. 执行推理。

    python3 om_infer.py --model=output/yolov5s_bs1.om --eval --visible

    推理成功回显如下:

    [INFO] acl init success
    [INFO] open device 0 success
    [INFO] load model output/yolov5s_bs1.om success
    [INFO] create model description success
    100%|█████████████████████████████████████████████| 5/5 [00:02<00:00, 2.18it/s]
    Average infer time: 116.717 ms / 1 image
    ...
    get 5 images
    Running per image evaluation...
    Evaluate annotation type *bbox*
    DONE (t=0.06s).
    Accumulating evaluation results...
    DONE (t=0.02s).
    Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.579
    ...
    Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.652
    &#123;'bbox_mAP': 0.579, 'bbox_mAP_50': 0.94, 'bbox_mAP_75': 0.71, 'bbox_mAP_s': -1.0, 'bbox_mAP_m': 0.6, 'bbox_mAP_l': 0.583, 'bbox_mAP_copypaste': '0.579 0.940 0.710 -1.000 0.600 0.583'&#125;
    [INFO] unload model success, model Id is 1
    [INFO] end to destroy context
    [INFO] end to reset device is 0
    [INFO] end to finalize acl
    • model:模型文件目录。
    • eval:开启模型评估,自动计算在测试集上的精度。
    • visible:保存模型在测试集上的推理结果。

    推理结果图如图1图2所示。

    图1 查看推理结果1

    图2 查看推理结果2

父主题: 构建目标检测跟踪应用

在PC训练模型

制作数据集

  1. 收集待标记的png、jpg、JPEG、bmp、webp格式图片数据,推荐使用jpg格式。图片分辨率不高于1080P,单张图片不大于1MB,推荐每个类别的图片数量在100张左右,并放置在全英文路径下。

    注:图片名称不要带字符"."。

  2. 为模型迁移准备数据集,进行图像标注,在工具界面选择“关键点模型”。

    1. 单击“打开目录”选择1收集的数据集目录进行标注。

    2. 单击

      按钮,使用多边形框包围目标后单击鼠标左键,弹出添加标签界面,如图1所示,填写对应目标分类标签与Group ID号,再单击

      按钮绘制关键点,填写对应关键点分类标签与Group ID号,当一个图片中有多个目标时需填写不同的ID号,单击“确定”完成标注。

      图1 添加标签

    3. 若标记错误可单击

      按钮,按住左键可以移动标记框,移动鼠标至图片并单击鼠标右键,对多边形进行修改,移动鼠标至关键点单击鼠标右键,对关键点进行修改。

      图2 修改标签

    4. 当前图片标注完成后,从图片上方菜单单击

      图标或左侧文件列表选择下一张图片进行标记,直到完成所有图片的标注任务。

    :::note 说明

    • 标注时输入标签仅支持数字、字母、下划线。
    • 数据集图片要从实际模型部署使用的环境获得。
    • 要将图片中的所有待检测目标都标注出来,任何目标都不能缺少标签,漏标注将影响模型精度。
    • 边框需要紧密框住每个目标,且类别正确,标注无误。 :::

模型迁移

  1. 在工具界面单击下方“一键迁移”按钮,进入配置界面,输入迁移信息,单击“一键迁移”开始迁移。

    图3 模型一键迁移配置界面

    • 数据集路径:2中标注的数据集路径。
    • 数据集拆分:将图片划分成训练、验证以及测试集的比例,推荐值:0.3。默认拆分0.1的测试集用于边缘推理,训练集与验证集按输入拆分比例再次进行拆分。
    • 迭代次数:训练轮次,推荐值:100。
    • 每批图片数:参与每个批次训练的图片张数,推荐值:12。
    • 输出目录:模型输出路径。
    • 使用早停策略:勾选后,可根据设置的mIOU值(mIOU,语义分割的标准度量,计算所有类别交集和并集之比的平均值)和持续迭代不上升次数,提前停止训练。
      • mIOU达到(值):该训练模型精度已达标,可停止训练的阈值,默认值:0.99。
      • mIOU连续迭代不上升次数:mIOU值达到某一水平,多次迭代后并无提升的次数,默认值:10。

    :::note 说明 当使用模型适配工具一键迁移时突然断电、重启、进程卡死或手动取消时,可能会引起输出文件残留,请用户自行删除残留文件后再进行一键迁移,请参见使用模型适配工具一键迁移时出现输出文件夹残留手动取消迁移导致模型适配工具异常退出解决。 :::

  2. 迁移完成后会出现提示框,提示已生成打包好的文件,如图4所示。在训练输出目录会生成以下文件与目录,如图5所示。

    • train_output:训练输出的权重文件、onnx文件以及训练数据信息json文件。
    • trans_output:经过数据转换,根据数据集拆分设置生成的测试集、验证集、训练集。
    • edge_infer.tar:打包好的推理相关模型文件与脚本。

    图4 迁移完成

    图5 输出文件

父主题: 构建关键点检测跟踪应用

在线提单