小白也会玩的图片分类器——微软自定义影像服务

小白也会玩的图片分类器——微软自定义影像服务

如果说要做图像分类,现在摆在我们眼前有两个选择:

一个就是,使用现有的图像识别API,例如微软认知服务里的计算机视觉服务、Google cloud vision API、腾讯优图的图片识别API。

另一个选择就是自己从利用一些深度学习框架,例如keras,在本机上自己训练一个分类器。

但前者有个缺点就是我们只能根据他们已提供好的分类方法来分类。但例如我想做一个特定内容的分类,例如某地当地特色小吃就不行。不能进行定制化。
后者的缺点就是门槛高,不论是从需要掌握的技术还是需要的硬件来说,对小白不友好。

今天我们来试试看微软认知服务中的自定义影像服务(Custom Vision Service)。但我觉得他的名字取得有点大,可能是为将来功能的扩展留空间吧。类似的还有他的自定义语音服务(Custom Speech Service)。目前自定义影像服务的功能比较简单,就是可以帮助你构建一个自定义的图像分类器。你只需要为他提供每个标签不少于三十张图片。就能通过简单的鼠标点击构建一个自定义的图像分类器。对了,这个东西目前还是免费的。

话不多说,我们可以来试试看,做一个对天津小吃分类的分类器。

首先我们访问他的网站:customvision.ai/
首页的这张图为我们简单地描述了这个网站的功能。



登录之后我们选择新建一个项目



这里它会让我们选择领域,因为他会对特定领域有一些优化。
例如我们这里的Food针对盘子做了优化,但是如果要分类水果和蔬菜可能需要选择General。

  • General 如果下面的领域没有适用的,或者你不确定领域时可以使用。
  • Landmarks 对地标做了优化,无论是自然的还是人造的都可以。适用于地标清晰可见的图片,当然,图片中有些人也不影响。
  • Retail 针对电商的商品图片做了优化,如果你想在连衣裙、裤子、衬衫之前进行高精度分类时可以使用这个。
  • Adult 针对区分成人和非成人内容进行了优化。例如,你想屏蔽有穿泳衣的人的图片,你可以用这个选项来构建分类器。



接下来就到了这个页面,我们可以进行上传图片的操作



然后我们点击Add image



目前只能从本地上传。而且我发现,点击“Browse local files”之后,选择文件的框出来得比较慢(大概7s),所以,建议点完一次之后耐心等待它跳出来,不要点多次。



一次可以上传多张图片。并且可以给他们加标签。
我是利用bing图片搜索的API写了一个小程序来批量获取某些食物的图片。
上传的时候,他还能自动去除重复的图片。
我们继续添加另外两类食物的照片



上传完之后,就可以开始训练啦。这里的数据量不是很大,训练很快,可以在线等。



训练完之后,会给出一个效果的反馈

我们可以点击右上角的Quick Test来测试我们的分类器
我们先用百度搜索一些图片来进行测试。



我们再来试一个完全无关的:



但我们给它一张热干面的图片的时候。。。


如果我们想在我们的应用中使用这个分类器,它为我们提供了一个API,只要通过简单的http请求就能进行调用。十分方便。


API会返回每种标签的置信度


总结:

微软的自定义影像服务操作比较简单,也不需要很大的数据量就能获得不错的效果,而且还能自定义识别的标签,针对特定领域的识别可能会能比较好的适应。加上还提供了REST API,便于使用。

但目前也有它的局限性。他只能对所分类的项目在图片中比较明显的进行分类。而无法进行物品检测。它只能识别图像是否是某个特定物品,而不能识别图片中是否有某个物品。


参考:

文档:认知服务-自定义影像服务

自定义影像官网