背景
业务需求,想要通过拍照识别照片中指定物体的数量或者物体的种类。而这种物体的模型网上没有训练好的,需要从头开始。所以调研了苹果的createML的实现方案,具体操作如下:
需求是:通过拍照识别照片中指定物体的数量,实现方案大致有几种:
通过第三方平台,训练数据,生成模型,提供前端使用
自己搭建平台,训练数据,生成模型,提供前端使用
通过苹果的CreateML工具,训练数据,生成模型,供iOS使用或转换成其他模型使用
对比可以发现,通过苹果的CreateML工具,可以省去搭建平台的过程。下面来看看怎么使用CreateML。
使用CreateML的整体流程是:
有大量的样本
标注所有的样本
用这些样本训练生成模型
验证模型的识别率
测试模型效果
导出模型供使用
需求是通过拍照识别照片中指定物体的数量,所以对我来说样本就是照片,下面就来看下怎么生成CreateML训练需求的标注信息。
使用
样本照片标注
首先要有大量的样本照片,这里由于是调研测试,所以选取20张照片,照片来源是百度图片。。。麻烦的是照片标注,由于苹果CreateML训练需要指定格式的JSON文件,格式如下:
[
{
"image": "图片名字.jpg",
"annotations": [
{
"label": "标签名字",
"coordinates": {
"x": 133,
"y": 240.5,
"width": 113.5,
"height": 185
}
}
]
}
]
所以找一个能直接导出Create ML支持的JSON格式的标注工具尤其重要。这里参考Object Detection with Create ML: images and dataset使用roboflow来进行标注,具体使用如下:
roboflow登陆后,会有引导步骤,建立workSpace,workSpace下新建项目,也可以邀请用户加入到同一个workSpace,界面如下:

点击Create Project,需要输入项目的名字,选择项目的License,选择项目的功能,输入要标记的物体的名字,界面如下:

然后导入照片,比如去网上下载十几张钢管的照片,训练识别钢管(通常应该是很多很多照片,样本越多,训练出的模型就越准确这里只用于演示流程,所以选取的照片不多);注意照片上传完成后,不要点击右上角的Finish Uploading,因为此时还没有标注,注意All Images(18),Annotated(0),说明没有一张标注的。

双击任意一张照片,即可进入标注页面,
在标注页面,要先选择最右侧标注工具,默认是长方形框框标注;
然后选择标注的范围,注意的是使用曲线标注时,起始和结束的两个点要闭合;
然后在弹出的Annotation Editor框中,输入要标记的label,然后点击保存;
如果有多个标记,则重复上面的过程;
所有标记都完成后,点击左侧的返回即可;

所有照片都标记好之后,点击Finish Uploading,会弹

本文介绍了如何使用苹果的CreateML工具进行物体识别模型的训练。从样本照片的标注,到使用roboflow进行标注并导出支持CreateML的格式,然后详细阐述了在CreateML中创建项目、选择模板、设置参数并进行训练的过程。通过训练,得到mlmodel模型并应用于iOS项目中,实现照片中物体的识别。文章还探讨了模型的评估指标I/U,并提供了代码示例展示模型的使用。

最低0.47元/天 解锁文章
815

被折叠的 条评论
为什么被折叠?



