语雀知识库:https://www.yuque.com/seanyu/azure/customvision
公众号:
什么是自定义视觉(Custom Vision)什么是自定义视觉(Custom Vision)
自定义视觉是一种认知服务,用于生成、部署和改进自己的图像分类器。自定义视觉允许你确定要应用的标签,比如要对一组水果进行识别,你需要对待检测的水果打上诸如“苹果”“香蕉”“草莓”的标签。
作用
自定义视觉服务使用机器学习算法为图像应用标签。 你作为开发人员必须提供多组图像(例如苹果,香蕉,草莓),其中包含或缺少相关的特征。 请在提交时自行标记图像(标记该水果是香蕉还是苹果), 然后,此算法会针对该数据进行训练并计算其自己的准确度,方法是针对这些相同的图像自行进行测试。 训练算法以后,即可对其进行测试、重新训练,并最终使用它根据应用的需求对新图像分类。 也可导出模型本身,方便脱机使用。
分类和对象检测
可以将自定义视觉功能分为两种功能。 图像分类可将一个或多个标签应用到图像。 对象检测与之类似,但还在图像中返回坐标,坐标中可以找到应用的标签。
优化
自定义视觉服务经过优化,可以快速识别图像之间的主要差异,因此你可以使用少量数据开始原型制作。 开始时,每个标签通常可以包含 50 个图像。 此服务不适用于检测图像中的细微差异(例如,在质量保证方案中检测细微裂纹或凹陷)。
另外,可以从多种自定义视觉算法中进行选择,这些算法已针对包含某些主题内容(例如特征点或零售商品)的图像进行了优化。
案例-使用自定义视觉实现识别是否戴口罩
1.在Azure Portal创建自定义视觉
选择自定义视觉进行创建,注意,目前自定义视觉仅在Global Azure可用。
训练和预测尽量选择最靠近最终使用位置的区域。
2.在自定义视觉门户创建“对象检测”项目
创建完成后,点击自定义视觉门户进入控制台。
点击新建项目,创建一个“对象检测类型的项目”
3.在自定义视觉的Portal上传大于100张图片,其中50张戴口罩,50张不戴口罩
注: 本案例中的图像均来自互联网。
对图像的一些基本要求:
为了有效地训练模型,请使用具有视觉多样性的图像。 选择在以下方面有所不同的图像:
- 照相机角度
- 照明
- background
- 视觉样式
- 个人/分组主题
- size
- type
此外,请确保所有训练图像满足以下条件:
- .jpg、.png、.bmp 或 .gif 格式
- 大小不超过 6 MB (预测图像不超过 4 MB)
- 最短的边不小于 256 像素;任何小于此像素的图像将通过自定义影像服务自动纵向扩展
4.在Portal上对图片进行标记,标记为戴口罩和不戴口罩
添加“mask”和“nomask”两个Tag
依次点击未标记的图像,在口罩部位(建议保留耳朵,眼睛,鼻子等特征)标记“mask”或“nomask”;
标记完成一张后,点击右侧的翻页箭头直至所有图像都标记完成。
5.进行训练
点击训练按钮,开始训练。
评估检测器
完成训练后,将计算并显示模型的性能。 自定义视觉服务使用提交用于训练的图像来计算精度、召回率和平均精度。 精度和召回率是检测器有效性的两个不同度量值:
- 精确度(Precision )表示已识别的正确分类的分数 。 例如,如果模型将 100 张图像识别为狗,实际上其中 99 张是狗,那么精确度为 99%。
- 召回率(Recall )表示正确识别的实际分类的分数 。 例如,如果实际上有 100 张苹果的图像,并且该模型将 80 张标识为苹果,则召回率为 80%。
概率阈值
请注意“性能”选项卡左窗格上的“概率阈值”滑块 。这是预测被视为正确时所需具有的置信度(用于计算精度和召回率)。
当使用较高的概率阈值来解释预测调用时,它们往往会以高精度返回结果,但以召回率为代价 — 检测到的分类是正确的,但许多仍未被检测到。 使用较低的概率阈值则恰恰相反 — 实际分类会被检测到,但该集合内有更多误报。 考虑到这一点,应该根据项目的特定需求设置概率阈值。 稍后,在客户端接收预测结果时,应使用与此处所用概率阈值相同的概率阈值。
管理训练迭代
每次训练检测器时,都会创建一个新的迭代,其中包含其自身的已更新性能指标 。 可以在“性能”选项卡的左窗格中查看所有迭代 。在左侧窗格中,还可以找到“删除”按钮,如果迭代已过时,可以使用该按钮删除迭代 。 删除迭代时,会删除唯一与其关联的所有图像。
6.测试训练结果,如果不满意,适当增加图片进行标记后训练
7.发布
选择预测资源进行发布
8.使用Postman测试
获取预测资源信息
在Postman中测试
检查预测结果