本公司拥有专业技术与崇高服务为你制作河北十一选五
400-0367515

当前位置

主页 > 成功案例 >

行业新闻

发布时间: 2020-08-05 21:41

  深度学习这几年是一个很火的技术,也有很多涌入这个领域,对于新手来说,入门很容易,训练一个简单的模型,调下参数谁都会。对于任何一个公司主要有高质量的数据,随便一个研究生,本科生都能复现大神的模型直接部署到应用上。困难的是如何找到应用的方向,未来深度学习的趋势也肯定是比拼如何快速优质应用这些技术为产品服务。我在这个方向也接近有一年经验了。最开始做的是缺陷检测,接触最多的是分类模型,后来也逐渐接触分割,检测等等,在这个过程中自己也踩了不少坑,也学了不少东西,从最开始的在服务器上追求精度,到现在直接在移动端部署模型,效率精度兼备。这篇文章主要是以交通标志分类为例给新人提供一个深度学习从数据查找,模型训练,以及应用到生产环境整个流程的思路。

  对于我们做应用的人而言,最重要的应该就是数据。数据往往是一个算法公司的主要财产之一。那么如何为自己的问题获取对应的数据呢?先说结论:大型公开数据集 迁移学习 自己标注。

  如果自己做的问题有大型公开数据集最好,那么直接用大型数据集就行,免去自己查找数据的麻烦,只需要专注于选模型,调参数等。这里给几个个CV方向的数据查找网址:

  当然使用公开数据集的时候也要遵守相应的规范,看是不是可以直接拿来商用。这方面其实中国公司都不怎么注意。

  如果没有大型公开数据集就要看有没有小一点的数据集,然后在这个基础上使用在大型数据集上训练好的模型权重进行迁移学习。

  最开始来现在这个公司的时候,给公司做一个人像分割模型。和最新版微信的制作自己的表情背后的技术实现是一致的。但是我们有的数据只有2000张左右,先使用Pascal数据训练一个物体分割数据模型,然后在这个基础上使用我们自己的人像数据迁移学习一个人像模型,最后取得了比较好的效果。可以参考我另一篇文章:

  实在没有办法可以自己标注数据,但是这个是成本很大的问题,还有准确度的问题。当然这只是针对小公司而言,对于大公司数据也是壁垒之一。

  获得数据之后,最好大致检查一遍所有的数据,观察下数据质量,统计下每个类的数目,这样数据有个大致的了解。

  这里我们使用Keras框架,Tensorflow作为后端来进行训练,其实对于一般做移动端应用的公司我觉得使用Keras,然后转换到移动端推理框架挺方便的。

  这里就不介绍Keras使用了,有需要的童鞋可以参考我的其他文章,介绍了很多Keras使用。这里提供一个训练网络和读取数据的易用接口,省去很多重复性工作:

  准备好数据和网络配置文件之后在tran.py训练脚本中传入相应的参数,直接训练便可。

  训练100 epochs之后就有0.945-0.95的准确度了,说明我们的模型效果还可以。

  一般很多人的文章调完参数,达到一定的准确度,观察一些测试数据,就不介绍了。然而你有这个模型,如何将它应用到生产环境中还有一段路要走。接下来的部分就介绍如何将训练好的模型移植到移动端,打造一个真正实时可用的App。

  现有的移动端推理框架有很多,如CoreML, tensorflow lite,Caffe2等。需要了解的话,可以参考下我这篇文章:Tensorflow移动端模型转换。国内ncnn的口碑和速度算是比较好的了,用的人也比较多。这里我们选用苹果自带的CoreML,CoreML入门比较简单,不需要太多配置,将模型格式转化正确便可,笔者不是做IOS开发的,也是在前人的基础上进行一些修改。

  正确转换之后我们就得到CoreML下可用的深度学习模型了,剩下的只需要在IOS工程中正确调用便可,稍微有些IOS 开发相关的知识就能完成。

  至此我们就完成一个深度学习应用的开发了,这里只是抛砖引玉,要实现其他功能的应用,流程也大致如此。

  希望这篇文章可以对入门计算机视觉的童鞋有所裨益,有什么问题都可以留言或者私信讨论。

联系我们

CONTACT US

电话:400-0367515

邮箱:2885427@qq.com

地址:浙江省 温州市 苍南县东前村162号