不用编程实现定制图像识别系列之一:美女与野兽
近年来基于深度学习的人工智能非常火。提起人工智能都觉得是高大上,好像离普通人很远,更别说训练出定制模型了。唔,不知道什么是模型,为什么要定制?好吧,你可以想象模型就是一个人, 刚开始啥也不懂,使用教材(或者说样本)教他,他就能学会识别不同的物体。使用不同的教材(样本)就能教出不同的人。 至于为什么要定制,两个原因:
- 专业领域需要更为细致的分类。 比如,通用物体样本训练出来的模型,可能能识别数千种常见物品,它能区分出苹果和梨, 但是不太可能区分出好苹果和坏苹果。
- 深度学习模型非常敏感,背景,颜色,光线,角度,模糊程度的轻微变化就可能导致识别率下降或者失效。能识别数千种物体的通用模型,往往在专用物体识别上不太好用。
今天笔者就介绍一个不用编程就能训练出深度学习定制模型的方法。 为了吸引眼球,今天我们就训练一个能区分美女和野兽的模型来。
训练之前,我们首先需要收集对应的样本。 美女图片好收集,百度或者google上点击图片, 输入关键词"美女",大把:
然后点击浏览器的文件->另存为, 就可以存下整个HTML,包括图片(在子目录里面)。
比较麻烦的是野兽的图片,输入关键词"野兽"通常搜出来的是"beauty and beast"剧照或者卡通形象。 没办法,我们折中下, 分别搜"老虎""狮子""豹""狼"和"野生动物"这5个关键词,搜出来的图片都作为野兽一类,拿来进行训练。
最终我们存的目录结构如下:
通常我们每一类的图片在200张左右最合适。我们这里仅仅是一个demo,美女类大概下载了60张,野兽类大概200张。
好了, 我们的图片已经收集完毕, 这时我们需要删除子目录下所有非jpg文件,便于后面选择并上传图片。
下面我们就可以上传图片,并启动模型训练了。 浏览器中打开http://www.ai1to1.com 点击登录。没账户的请先注册一个账户。 等等,可能有人问,这是个什么鬼网站? 为什么不用百度AI?他们也有定制模型训练。 答案是,ai1to1是本人开发的,:)自认为做得比百度好,关键是从入库到训练,识别,完全不用编程。。。具体去网站首页看吧。 有人说,大言不惭! 看到这里,希望管理员大人不要认为这是广告而删除本文,因为往下看,确实有干货的。 :)
言归正传,我们登录ai1to1,首先需要创建项目:
这里最关键的是需要"创建分类",建立2个类别,因为我们只有美女和野兽两类。 分类分别就是0,和1。
然后我们进入图片管理上传图片, 需要选择项目和类别分别上传:
大部分人可能都知道,选择文件时, CTRL+A就可以选择所有目录下的文件,或者鼠标选择时按住CTRL键,就可以单独选择文件。
这里我们上传美女图片到分类0, 其他图片上传到分类1。请记住这个对应关系,因为后面识别时,服务器只会返回索引0或者1。
上传完毕,我们就可以启动训练了:
首先启动trainServer(点击对应'前往'),得到响应:{"ret":"OK","error":""}
然后启动train,得到响应:{"ret":"OK"}
检查训练进度:
{"stopped":false,"loss":0.07083519548177719,"trainSeconds":36.359,"error":"","ret":"OK"}
等待loss稳定在0.001以下时,我们就可以停止训练(点击停止trainServer):
{"stopped":false,"loss":0.0008496259688399732,"trainSeconds":655.577,"error":"","ret":"OK"}
一共训练了大概10分钟。
好吧, 我们训练完成了, 现在进行最激动人心的检测阶段。
首先"启动detectServer",得到响应:{"ret":"OK","error":""}
然后"通过web页面识别",输入上个截图里面的projectid和servicekey:
这时我们从百度图片里面搜一张前面没有的美女图片, 然后上传,点击识别,得到响应:
time cost:882ms, result:{"balance":1998,"topList":[{"index":0,"probability":0.924784779548645},{"index":1,"probability":0.07402833551168442}],"error":""}
记得我们前面说过,0代表美女,1代表野兽。 这里的美女识别可能性高达92%, 说明这个定制模型还是相当不错的。 :)
我保留了截图里的projectid:17和servicekey:1bc6c6bb-f19a-4d97-b810-70c5d53eb524,大家也可以上传一张美女或者野兽的图片, 测试下这个定制模型是否好用? 当然, 你们也可以自己注册一个帐号,定制自己的模型,而且是免费的!
有人说,如果我上传一张男人的图片,会怎么样? 唔,我也不知道, 因为只有两类,图片一定会识别成其中一类,具体识别成美女或者野兽,估计要看颜值。哈哈哈。。。