一、背景
图像识别是借助计算机技术,对图像做出各种处理、分析,最终识别我们所要研究的目标。近年来,随着人工神经网络的兴起,尤其是其在图像领域的应用效果显著,使得图像识别技术在公共安全、生物、工业、农业、交通、医疗等很多领域都有很多应用。
本文基于华为的一站式AI开发平台ModelArts,实现对“云宝”的图像识别。下面是具体实现过程。
二、训练过程
第1步:首先进入华为云官网并登录账号,进入页面右上角控制台。
第2步:进入控制台后点开左上角菜单并下拉找到“人工智能”下的“ModelArts”选项。
第3步:由于本文以图像识别为例,因此属于自动学习中的物体检测问题,点击“创建项目”。
第4步:之后会进入数据集选择界面,选择数据集的输入位置。
第5步:由于华为数据集是以“桶”的形式存放的,因此需要将准备好的数据集上传到“桶”的文件夹中。新建“桶”的方式有多种,这里仅介绍两种。第一种直接在数据集选择界面进行操作,选择“新建桶”。
在下面的页面中填写“桶”名称,注意命名规则,本文“桶”名称为“example-yunbao”。其它选项保持默认即可。点击“立即创建”。
此时“桶”已完成创建,会自动跳转到“对象存储服务”页面。接下来是向“桶”中新建文件夹并上传数据。依次点击页面下方新建的“桶”的名称“example-yunbao”、“对象”、“新建文件夹”。在弹窗中输入文件夹名称。本文所创建的文件夹名称为“soucedata”与“output”。创建完成后点击文件夹即可通过拖拽或“添加文件”的方式上传数据集图片。
第二种方式是通过“控制台”-左侧导航栏-“对象存储服务OBS”-“桶列表”-右上角“创建桶”的方式实现,之后过程与第一种方式相同。
第6步:创建桶完成后,再次进入“控制台”-导航栏“ModelArts”-“自动学习”-物体检测“创建项目”,选择数据集输入位置,数据集输出位置文件夹位置,前者通常为数据集图片的位置。完成后点击“创建项目”。
第7步:点击“未标注”中的任意一张图片开始进行标注。标注方法为在目标的一个角单击,移动光标,在终点单击即可。
第8步:标记完数据集后,点击“开始训练”进入训练过程。在弹出的窗口中选择训练集/验证集比例,由于本文数据集量较小(仅30张),因此训练集比例选择较大。之后点击“下一步”、“提交”即可。
二、部署上线
训练完成结果如下图,从图中可以看出,准确率为86%,训练时间仅需4分钟,但是当数据集越来越大时,所需训练时间也会迅速增长。
之后即可进行部署并测试。点击“部署”、“下一步。”
部署成功后,即可点击“上传”、“预测”进行上传图片进行测试。
下面是测试结果:
可以看到,测试图片均能准确进行识别,说明训练得到的模型是可用的。此外,平台还提供了测试的python调用代码和URL接口。
具体代码如下:
{
"detection_classes": [
"卡通人物"
],
"detection_boxes": [
[
"63.788475",
"345.27063",
"690.2401",
"846.3905"
]
],
"detection_scores": [
"0.96192086"
]
}
https://3c18bcd59e3e4d97a54d23387a0d2c9d.apig.cn-east-3.huaweicloudapis.com/v1/infers/23cb8c4f-1dcf-4f58-85d9-3f94e00e9731
基于此,可以实现对检测目标的调用,方便后续工作。
三、总结
通过ModelArts实现对“云宝”的物体检测,可以感受到其为图像识别等带来的巨大便利。使得我们不用再为算法架构过多考虑,即使是完全不懂神经网络,同样可以按照给定的步骤完成模型的训练和检测。