4.7.1 工作流介绍
工作流简介
车牌检测与识别技术对于交通管理智能化、提高交通执法的稳定性具有重要意义。
ModelArts Pro提供无监督车牌检测工作流,基于高精度的无监督车牌检测算法,无需 用户标注数据,大大降低标注成本和提高车牌检测场景上线效率。
● 功能介绍
无需标注数据,构建无监督车牌检测模型,用于识别不同场景下的车牌。
● 适用场景
停车管理、交警执法、车辆保险等交通管理场景。
● 优势
模型精度高,识别速度快;更新模型简便。
工作流流程
在“ModelArts Pro>视觉套件”控制台选择“我的工作流>无监督车牌检测工作流”新 建应用,详细操作请见新建应用。您可以开发车牌检测模型,自主上传数据训练模 型,实现车牌检测和识别功能。
图4-47 无监督车牌检测工作流流程
表4-18 无监督车牌检测工作流说明
流程 说明 详细指导
准备数据 在使用无监督车牌检测工作流开发 应用之前,您需要提前准备用于模 型训练的数据,上传至OBS中。
准备数据 直接调用对应的API和SDK识别。
部署服务
4.7.2 准备数据
在使用无监督车牌检测工作流开发应用之前,您需要提前准备用于模型训练的数据,
上传至OBS服务中。
设计车牌标签
首先需要考虑好车牌的标签类型,即希望识别出图片中车牌的一种结果。例如
“plate”。
数据集要求
● 文件名规范,不能有中文,不能有+、空格、制表符。
● 保证图片质量:不能有损坏的图片;目前支持的格式包括JPG、JPEG、PNG、
BMP。
● 不要把明显不同的多个任务数据放在同一个数据集内。
● 为了保证模型的预测准确度,训练样本跟真实使用场景尽量相似。
● 为保证模型的泛化能力,数据集尽量覆盖可能出现的各种场景。
● 数据集样本数应大于100,用于测试的已标注数据应不少于20张,样本数达1万张 以上性能更优。
● 为了准确率,建议数据集中标注数据占总数据量的10%,用于测试模型,其余 90%无需标注。
● 针对未标注数据,要求将图片放在一个目录里,示例如下所示。
├─dataset-import-example
│ IMG_20180919_114732.jpg
│ IMG_20180919_114745.jpg
│ IMG_20180919_114945.jpg
– 如果导入位置为OBS,用户需具备此OBS路径的读取权限。
– 只支持JPG、JPEG、PNG、BMP格式的图片。
● 针对已标注数据,要求用户将标注对象和标注文件存储在同一目录,并且一一对 应,如标注对象文件名为“IMG_20180919_114745.jpg”,那么标注文件的文件 名应为“IMG_20180919_114745.xml”。
物体检测的标注文件需要满足PASCAL VOC格式,格式详细说明请参见表4-19。
无监督车牌检测工作流标注时标注框需要包含车牌,必须使用矩形标注框。如果 标注框坐标超过图片,将无法识别该图片为已标注图片。
示例:
├─dataset-import-example
│ IMG_20180919_114732.jpg
│ IMG_20180919_114732.xml
│ IMG_20180919_114745.jpg
│ IMG_20180919_114745.xml
│ IMG_20180919_114945.jpg
│ IMG_20180919_114945.xml
标注文件的示例如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<annotation>
<folder>NA</folder>
<filename>bike_1_1593531469339.png</filename>
<source>
<database>Unknown</database>
</source>
<segmented>0</segmented>
<object>
<name>Dog</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<occluded>0</occluded>
<bndbox>
<xmin>279</xmin>
<ymin>52</ymin>
<xmax>474</xmax>
<ymax>278</ymax>
</bndbox>
</object>
<object>
<name>Cat</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<occluded>0</occluded>
<bndbox>
<xmin>279</xmin>
<ymin>198</ymin>
<xmax>456</xmax>
<ymax>421</ymax>
</bndbox>
</object>
</annotation>
– 只支持JPG、JPEG、PNG、BMP格式的图片,单张图片大小不能超过5MB,
且单次上传的图片总大小不能超过8MB。
表4-19 PASCAL VOC 格式说明
字段 是否
必选
说明
folder 是 表示数据源所在目录。
filename 是 被标注文件的文件名。
size 是 表示图像的像素信息。
● width:必选字段,图片的宽度。
● height:必选字段,图片的高度。
● depth:必选字段,图片的通道数。
segmented 是 表示是否用于分割。
字段 是否 必选
说明
object 是 表示物体检测信息,多个物体标注会有多个object 体。
● name:必选字段,标注内容的类别。
● pose:必选字段,标注内容的拍摄角度。
● truncated:必选字段,标注内容是否被截断
(0表示完整)。
● occluded:必选字段,标注内容是否被遮挡(0 表示未遮挡)
● difficult:必选字段,标注目标是否难以识别
(0表示容易识别)。
● confidence:可选字段,标注目标的置信度,
取值范围0-1之间。
● bndbox:必选字段,标注框的类型。无监督车 牌检测工作流标注时标注框需包含车牌,因此 建议使用矩形标注框,即标注框类型选择
“bndbox”,标注信息为左上和右下两个点坐 标,如下所示。
<xmin>100<xmin>
<ymin>100<ymin>
<xmax>200<xmax>
<ymax>200<ymax>
上传数据至 OBS
使用ModelArts Pro进行应用开发时,您需要将数据上传至OBS桶中。
1. 首先需要获取访问OBS权限,在未进行委托授权之前,无法使用此功能。您需要 提前获得OBS授权,详情请见配置访问权限。
2. 已创建用于存储数据的OBS桶及文件夹,且数据存储的OBS桶与ModelArts Pro在 同一区域(目前仅支持华为-北京四),详情请见创建OBS桶。
3. 上传数据至OBS,OBS上传数据的详细操作请参见《对象存储服务快速入门》。
说明
● 您在创建OBS桶时,需保证您的OBS桶与ModelArts Pro在同一个区域。
● 建议根据业务情况及使用习惯,选择OBS使用方法。
● 如果您的数据量较小(小于100MB)或数据文件较少(少于100个),建议您使 用控制台上传数据。控制台上传无需工具下载或多余配置,在少量数据上传时,
更加便捷高效。
● 如果您的数据量较大或数据文件较多,建议选择OBS Browser+或obsutil工具上 传。OBS Browser+是一个比较常用的图形化工具,支持完善的桶管理和对象管理 操作。推荐使用此工具创建桶或上传对象。obsutil是一款用于访问管理OBS的命 令行工具,对于熟悉命令行程序的用户,obsutil是执行批量处理、自动化任务较 好的选择。
● 如果您的业务环境需要通过API或SDK执行数据上传操作,或者您习惯于使用API 和SDK,推荐选择OBS的API或SDK方法创建桶和上传对象。
上述说明仅罗列OBS常用的使用方式和工具,更多OBS工具说明,请参见《OBS 工具 指南》。
4.7.3 选择数据
在使用无监督车牌检测工作流开发应用时,您需要选择训练数据集,后续训练模型操 作是基于您选择的训练数据集。
训练数据集可以选择创建一个新的数据集,也可以选择导入基于无监督车牌检测工作 流创建的其他应用中已创建的数据集。
● 新建训练数据集
● 导入数据集
前提条件
● 已在视觉套件控制台选择“无监督车牌检测工作流”新建应用,详情请见新建应 用。
● 准备好数据并上传至OBS,详情请见准备数据。
进入应用开发页面
● 方式一:首次进入
基于预置工作流新建应用后,直接进入“应用开发”v1版本页面。
● 方式二:新建应用后进入
a. 登录“ModelArts Pro>视觉套件”控制台。
默认进入“应用开发>工作台”页面。
b. 选择已新建的应用名称,单击“操作”列的“查看”。
进入“应用总览”页面。
图4-48 进入应用总览
c. 在开发版本列表中单击“操作”列的“查看”。
进入“应用开发”页面。
图4-49 进入应用开发
新建训练数据集
在“数据选择”页面,单击“新建训练数据集”,右侧弹出“新建数据集”页面,根 据数据存储位置和数据标注情况,按表4-20填写数据集基本信息,然后单击“确 定”。
图4-50 新建数据集
表4-20 新建训练数据集参数说明
参数 说明
数据集名称 待新建的数据集名称。
描述 数据集简要描述。
数据集输入位置 训练数据存储至OBS的位置。
单击“数据集输入位置”右侧输入框,
在弹出的“数据集输入位置”对话框 中,选择“OBS桶”和“文件夹”,然 后单击“确定”。
数据集输出位置 待新建的数据集存储至OBS的位置。
待新建的数据集有一个默认存储位置。
如果需要修改数据集存储位置,请单击
“数据集输出位置”右侧的“修改”,
在弹出的“数据集输出位置”对话框 中,选择“OBS桶”和“文件夹”,然 后单击“确定”。
说明
“数据集输出位置”不能与“数据集输入位 置”为同一路径,且不能是“数据集输入位 置”的子目录。“数据集输出位置”建议选 择一个空目录。
新建训练数据集后,勾选当前应用开发所需的训练数据集。
由于该工作流所需数据集需标注10%数据量用于测试,其余90%无需标注。针对已上 传的数据集,您可以手动添加或修改标签。
单击数据集操作列的“标注测试图片”,进入数据集概览页单击右上角的“开始标 注”,在“数据标注”页面手动标注数据,详细的操作指导请参考标注数据-物体检 测。
导入数据集
1. 在“数据选择”页面,单击“导入数据集”。
弹出“导入数据集”对话框。
“导入数据集”对话框会显示您在数据标注平台或套件其它应用导入可用状态的 数据集信息,包括“数据集名称”、“来源”和“标注进度”。
单击数据集左侧的 ,可查看数据集的“创建时间”和“标签集”。
图4-51 导入数据集
2. 勾选数据集,然后单击“确定”。
数据集导入后,“数据选择”页面右上角会显示“导入成功”。
3. 导入勾选数据集后,在数据选择页面勾选当前应用开发所需的训练数据集。
由于该工作流所需数据集需标注10%数据量用于测试,其余90%无需标注。针对 已上传的数据集,您可以手动添加或修改标签。
单击数据集操作列的“标注测试图片”,进入数据集概览页单击右上角的“开始 标注”,进入“数据标注”页面手动标注数据,详细的操作指导请参考标注数据-物体检测。
后续操作
选择训练数据集后,单击右下角的“下一步”,进入应用开发的“模型训练”步骤,
详细操作指引请参见训练模型。
4.7.4 训练模型
针对已标注完成的训练数据,开始训练模型,您可以查看训练的模型准确率和误差变 化。
前提条件
已在视觉套件控制台选择“无监督车牌检测工作流”新建应用,并已执行完“数据选 择”步骤,详情请见选择数据。
训练模型
图4-52 训练模型
图4-52 训练模型