我是这么从零开始用深度学习做狗脸识别 ios App的

电脑杂谈  发布时间:2019-09-06 15:02:20  来源:网络整理

有什么软件能识别音乐_能识别狗狗脸的软件_识别狗狗品种软件

我是一个初创公司的软件工程师。曾经有段时间在雅虎工作,做谷歌财经图表和Multiple inboxes,并主管谷歌地图的业务。最近,我开了一家叫Spring的购物公司。同时能识别狗狗脸的软件,我只是一个创业者,在空余时间里我喜欢做一些副业。

我是这样从零开始用深度学习做狗脸识别 ios App的

几个月前,我起初做一个用于小孩自拍app的头部过滤器。当你将app对着你的狗时,这个app都会将这个过滤器作用在狗的身上。有9200万张照片被标记为dogsofinstagram——你可能会发现有一些客户不在其中——创造他们想要的东西是额外的动力:

我需要

从对深度学习一无所知到作出一个还不错的app。我想要分享我在每一步中所学到的心得。

我希望那些刚接触深度学习的人会感觉这种方式很有用。

第1步:深度学习大都是现成的

我需要回答的第一个问题是“这是也许的吗?”。我的难题容易处理吗?我需要从哪开始?

一些简单的搜索告诉我该学习TensorFlow对象测试教程、研究论文,或者怎么用现成的代码创建一个有边界框的检测器。

我的难题看起来是可以缓解的(人们受到的各种结果在我所必须的范围内),但没有现成的东西可以便捷地用到我的用例中。试图弄明白怎么设置现有的教程让人恼火。

在阅读博客文章的过程中,我起初转向最基本的网络课程,从基础开始。事实证明这是一个非常好的决定。

在这个过程中,我了解到:

刚开始时,你很难从网络教程中学习最基本概念。如果你从更合适你的课程或课本中学习基本的核心概念。它将使你的学习更容易。

第2步:弄明白怎么实现特点点检测

有什么软件能识别音乐_识别狗狗品种软件_能识别狗狗脸的软件

用我今天看到的基本知识,我终于开始着手研究怎样推动我的自定义模型。

“对象分类”和“对象评估”在昨天终于是现成的了。我想要做的不是这种,而是前面这个,在文献中这个词是“特征点检测”(Landmark Detection) ,用名词概括我要做的事情会更方便一点。

现在,新的难题。什么样的模型是好的?我还要多少数据?我该怎么给数据贴上标签?如何去训练数据呢?一个好的最小可行开发工作步骤又是怎什么样?

第一个目标是让一些程序运行出来。以后我可以再去做一些提高品质方面的工作。俗话说在你跑之前先得学会走。

我的心得:

这种微妙的黑盒子的觉得——在恰当的地方做正确的事情时就会失败——这种似乎在近乎每一步都存在。

跟踪缺陷、识别难题、缩小问题的范围——在通常软件工程中是正常的——在现在的深度学习开发中并不那么容易。

对于像我这么的初学者来说,弄清楚这个难题变得梦幻而恰巧,而不是深思熟虑的结果。我不知道这个市场里能否有人知道怎么做好这一点——感觉更像是每个人都在试图解决这个难题。

大约三周后,我就变成了一些事情:我可以给数据贴上标签,在里面训练模型,用一张照片在Jupyter Notebook运行那些模型,然后得到真实的坐标(带有可疑的位置)作为输出。

第3步:确保模型在iOS上运行

现在有了一个简单的工作模型,我的下一步是保证它能在一个手机上运行,并且运行得足够快。

Keras/TensorFlow模型不能在iOS本地上运行,但是苹果有自己的神经网络运行框架CoreML。在iOS上运行.mlmodel可以借助教程代码完成。如此简单的过程让我被它征服了。

但是,即使是这个简单的转化方法(从.h5到.mlmodel)也不是没有挑战的。

苹果将一个.h5模型转化成一个.mlmodel模型的软件(称为coremltools),是一个半成品。 使用pip安装的版本在box外能够运行,我应该使用python2.5在conda环境中,打补丁。嘿,至少它有用。

有什么软件能识别音乐_能识别狗狗脸的软件_识别狗狗品种软件

弄清楚如何在电脑上预先处理输入图像,就像模型所希望的这样,却出人意料的不简单。我在stackOverflow提问,或者搜索博客文章,可哪个都没有。我最后通过给Matthijs Hollemans发送陌生短信来找到了我的答案,让我惊喜的是他的答案使我摆脱困局!他反而有一篇关于这个疑问的博客文章。如果没有他,我不会发现这篇文章。

事实证明,整个深度学习软件链仍在研发中。在深度学习领域,事物变化迅速。

另一方面,我喜欢团体小而充满魅力,互帮互助的觉得。如果你像我一样,有点迷糊,不要犹豫,直接发邮件问。最差也只是是没有人回答。最好的状况却是有个好人帮了你。就像Matthijs。感谢!

我的模型在实体机上以每秒19帧的速率运行了,这好像一个神奇的划时代事件。有了这个基础,现在我可以致力于提高品质了。

第4步:让模型运行得非常完美

这的确需要一些时间。我该如何做就能让我的产品在深度学习模型外也体现良好?再多点数据?使用不同的顶层?使用不同的损失函数?层中使用不同的激活参数?太麻烦了!

循序渐进似乎是最好的。不断测试,训练,和前一次的运行状况进行非常,看看哪一个办法起了作用。刚开始用大量的数据能识别狗狗脸的软件,慢慢地扩大数据集。少量的数据意味着较短的锻炼时间。一旦运用大型数据集进行练习。运行一次得期待24小时是很常见的,这并不是真正的迅速迭代。

数据扩充是可能会出错的代码。开始的过后可以略过这一部分,运行的之后可以不运行这一部分代码,然后一点点增加数据扩展部分的代码。要确保代码是稳固的。你的模型需要始会和你输入的数据一样好。准备好时间会被耽误掉,准备好学习最优做法需要时间。你还要要不断往前走并且不断往下做,不然你是不会从出错中学到任何东西的。往前走,要敢于犯错。

这是我试着做这个项目的时所学到的:

我是这样从零开始用深度学习做狗脸识别 ios App的

我是这样从零开始用深度学习做狗脸识别 ios App的

我是这样从零开始用深度学习做狗脸识别 ios App的

检测有点不太准确。当然,这也是我测试用的狗头,一个从亚马逊买的狗。绝不会移动,总是很开心地望着照相机!

尽管并不完美,但是最终的结果体现得非常好,足够可以拿来做一个app。

有什么软件能识别音乐_识别狗狗品种软件_能识别狗狗脸的软件

并且我觉得,如果我是一个全职的机器学习工程师,让其更好是很有可能的。

但是像其它的产品一样,最后的百分之二十进程会花掉百分之八十的时间,我觉得在下一个版本中,我需要要将这部分工作纳入其中。

如果你对你的产品羞耻感较弱,你可能会需要花太多的时间能够完成很多工作,特别是针对业余项目来说。

第5步:搭建iOS应用,过滤器,然后把他们集成在一起

手上有了足够好的模型,现在可以放在Swift,ARKit上,并且事实证明,SpriteKit可以用于2D内容。iOS及其框架依然让我印象深刻。如果你能恰当看待它,这些天能够在手机上做的事情的确很倍感欣慰。

这个应用本来很基础,一个大的记录按键,一个滑动切换过滤器,一个分享图标。

大部分的工作是在学习ARKIT,然后弄清楚它的限制。如何把3D模型放出来,如何从画面,灯光,和几何图形中添加和移除那些模型

在这个过程中我学到的:

第一代结合了CoreMl的ARKit技术让我大开眼界。

在几个星期之内,我能够够在实时的照相机视频流上运行我的深度学习模型了,抽取出头部特征点,利用Arkit展示出三维的内容,使用SceneKit展示出二维的内容,处理的效率比较不错。

仅仅在两年前,为了相同的技术(用于人脸),SnapChat不得不花一亿五千万美元买下一个公司。现在iOS免费提供人脸标志检测,并且不像我的ARHitTestResult的结果,它的精确度很高。这种科技快速商品化真是太不可思议了

再过几年,一旦iPhone背面有红外点,你的环境的3D映射需要更加非常好。

总结

对于深度学习的应用,人工智能的风潮和哪个相关,iPhone当前所拥有的性能,以及ARkit,SpriteKit,Swift,我觉得自己对两者有了一个深刻的理解。

识别狗狗品种软件_有什么软件能识别音乐_能识别狗狗脸的软件

我是这样从零开始用深度学习做狗脸识别 ios App的

现在你还不能找到现成的深度学习模型,因为深度学习相关的一切都还不是很普遍,但是,在今后情况都会改善。

如果你跳过一些必要的方法,以及一些必要的限制,对我来说就像技术在这篇博客的应用。

我不必深入神经网络的外部细节,也不必直接触碰任何TensorFlow相关的东西。

高层次的Keras远远够用了。一周的关于卷积神经网络基础的网络课程足够满足我的还要了。当然,这不会让我作为专家 ,但这能让我最小限度地受到一个可用的产品。

我起初相信苹果公司必须在电脑业务之外开发提高现实科技。当人们打造 Magic-Leap-Equivalent产品时,构建提升现实会显得非常容易。ARKit已经让人印象深刻。

经过现在训练后,我对深度学习的理解非常深入,特别是在计算机视觉方面,感觉好像魔法一样。

能够从比如图片那样简单的东西中提取的结构化数据的类别将是不可思议的。你买哪个狗玩具,你还剩多少狗粮,你喜欢什么样的狗粮,你什么时候带狗去看兽医。你将无法从你的图片那种简单的事情中知道你与宠物(或你的孩子,或你的伴侣)的关系的一切。

感谢阅读,希望对你会有帮助。如果你有任何建议,不要犹豫,我很乐意让我的的应用程序变得更好。

在应用商店下载这款应用,让我明白你的看法。雷锋网雷锋网(公众号:雷锋网)

另外, 非常感谢Cosmin Negruseri, Matt Slotkin, Qianyi Zhou 以及 Ajay Chainani ,感谢你们帮助我完成的应用或者评阅这篇文章。感谢Andy Bons为这个应用提供了最初的设想。

原文链接

雷锋字幕组正在招募中

扫描下方二维码

备注“雷锋字幕组+姓名”加入我们吧


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-121917-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...