NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

腾讯冯牮:基于卷积神经网络在手机端实现文档检测

  • 2017-10-10
  • 本文字数:2303 字

    阅读完需:约 8 分钟

2017 年 10 月 17 日至 19 日,有 InfoQ 举办的全球软件开发大会QCon 将在上海举办。大会吸引了来自世界各地的技术专家及开发者。本文采访了QCon 大会的参会讲师,来自腾讯的的iOS 高级开发工程师冯牮,本次大会他的演讲题目为《基于卷积神经网络在手机端实现文档检测》。

在手机端运行模型并不容易,手机端计算能力有限,在技术方案中还需要权衡考虑多种因素,比如 TensorFlow 静态库的裁剪,模型大小的控制。首先,冯牮老师为我们介绍了利用卷积神经网络在手机端实现文档检测的流程。

在用神经网络技术解决实际业务问题的时候,通常要做的事情都是准备样本数据,选择网络结构,网络参数调优,这几件事情很有可能都是需要重复很多遍的,会经历各种失败,也正是因为有这些失败,才会促使开发者去进一步的思考,去寻找能取得更好结果的最优方案。

冯牮表示,在做这套文件检测方案的时候,也是符合这种基本的套路的,只不过在完整的技术方案里面,还包含了一部分用OpenCV 实现的算法,这部分算法也是配合着神经网络部分一步一步优化出来的。有一些比较关键的技术节点,按照时间先后顺序,简单记录一下,大致如下:

A:初始版本 HED + 公开通用样本集 + findContours API

B:公开样本图片集是通用意义上的边缘检测线,效果不够好,所以采用人工合成的思路,分别收集前景图和背景图,用 OpenCV 粘贴合成,模拟旋转、平移和透视变换

C:HED 网络的输入图片的尺寸是 224 * 224, 提升到 256 * 256 有助于得到更高精度的边缘检测线,但是训练难度大增,检测效果不升反降,为了改善这一点,先使用少量样本图片训练网络,当 HED 网络开始收敛,并且每一个尺度的输出 image 都开始对最终结果产生贡献后,才使用完整的训练样本集合继续训练网络

D:findContours 过于理想化,针对 HED 的边缘检测效果,把边缘线段延长到整个图片区域,在此基础上寻找四边形的顶点

E:OpenCV 并没有图层的概念,在旋转和透视变换等需要插值的时候,会在边缘区域直接用黑色像素进行插值,为了降低这种黑色像素干扰,只能使用精读最低的插值算法,这就使得合成的样本图片的清晰度也很低,为了改善这一点,把 OpenCV 替换成了 iOS 上的 UIView,也就是利用 OpenGL 来合成训练样本,提高了图片的清晰度

F:改进了 cost 函数,得到了更细的边缘检测线,降低了整体误差

G:在训练样本集中添加了 1200 张人工标注的真实图片

H:结合测试和体验用户的反馈信息,对一些识别率低的场景进行分析,刻意合成了一批这类场景的样本图片,比如杂乱背景、A4 纸白色背景等,最终总共合成了 80000 多张训练样本图片

I:在对低识别率场景的分析过程中发现,之前 D 步骤中设计的数学模型对其中一种场景很容易误判,所以重新设计了这部分的数学模型,不再把边缘线段延长到整个图片区域,另外在对四边形进行合理性判断的时候,重新设计了一组过滤策略

这其中的 B、C、E、G、H,是对训练样本的优化,C 和 F 是对 HED 网络的优化,D 和 I 是对数学模型的优化,从这里也能看出来,训练样本的重要性是很高的。

VGG 与 HED 神经网络算法 在冯牮的训练过程中,主要使用了两种神经网络算法:VGG 与 HED。

这两个神经网络算法,冯牮觉得是很难可以『简单』介绍清楚的:“我并不是说 VGG 和 HED 网络很难,其实正好相反,这两个网络结构,在卷积神经网络大家族里面其实反而是两个最简单最基础的网络结构了。”

冯牮解释说:比如 VGG,作为一个分类网络,和 ResNet、Inception model 这些新的分类网络相比,它的结构就是很简单的,因为它的层和层之间的关系很简洁,前一层的输出就是后一层的输入,HED 网络就是以 VGG 为基础,把其中一些卷积层的输出单独取了出来,再通过某些策略融合到一起,就得到了最终的输出。想学习 VGG 和 HED 的话,最好的资料还是第一手的论文和认可度比较高的参考代码。

然而一开始的时候,冯牮是想要仿照 face alignment 的思路,用一个端到端的神经网络结构直接拟合得到 4 个点的坐标,训练网络的时候虽然可以收敛,但是得到的结果是不可用的,网络计算出来的 4 个点的坐标是趋向于四个固定位置的。后来他也尝试用 YOLO 网络做过对象检测,用 FCN 网络做过图像切割,但是结果都很不理想,要么就是检测精度太低,要么就是计算量太大做不到实时检测。最终冯牮选用了 HED 网络,其实也就是前面提到的这几个原因,既要保证一定的精度也要保证实时计算的运行速度。

如何选择深度学习框架 在选择深度学习框架这一点上,冯牮有自己的一些想法,他认为:对于初学者来说,在挑选框架的时候,不需要纠结太多问题,选一个工业界主流的框架就可以了,TensorFlow、MXNet、Caffe2 这些都是可以的,这些主流的框架,配套的开发文档、demo 程序等等都是比较齐全的。而且,重点要学习的还是神经网络的各种算法,框架只是实现这些算法的一种手段。

“当然,TensorFlow 官方就支持手机端,这是我选择 TensorFlow 的原因之一。”冯牮补充说。

苹果于今年推出了自家的移动端深度学习框架 CoreML,冯牮表示,虽然没有尝试使用过 CoreML,但是就他看来,这是一种技术趋势,框架只是工具,只是一种实现手段,工具之间可能会多少有一些差异,但是神经网络结构与工具无关,同一个算法,用不同的框架也是都可以实现出来的。

CoreML 和 TensorFlow 相比,最明显的优势就是它是 iOS 平台原生支持的,有硬件加速,运算速度快,系统整合度高。但是 CoreML 只是做前向运算的工具,冯牮表示,在用反向传播算法训练网络的时候,还是要用 TensorFlow 或其他框架的。

除了 TensorFlow 之外,冯牮还给希望尝试移动端深度学习训练的开发者们推荐了一些其他框架,MXNet 和 Caffe2 都是官方支持 mobile 端的,有兴趣的同学也可以从这两个框架入门学习。

2017-10-10 19:002084
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 262.8 次阅读, 收获喜欢 1293 次。

关注

评论

发布
暂无评论
发现更多内容

捷途山海T2:通勤低成本,日常出行更经济

Geek_2d6073

Saturn 4 Ultra土星引领光固化3D打印消费新风尚,大众普及指日可待

科技热闻

Taylor Swift全新专辑上线华为音乐,谱写爱与诗歌音符

最新动态

拥抱AI技术:6月22-23日全球金牌CSM认证课程 · Jim老师引导讨论AI & Agility话题

ShineScrum捷行

ScrumMaster 敏捷认证 Scrum官方认证

双线高防服务器的选择与配置:保障在线业务的安全与稳定

一只扑棱蛾子

高防服务器

​下载量超 200 万,最近频繁登上热搜的 AI 程序员,大家怎么看

阿里云云效

阿里云 AI 云原生

Serverless 成本再优化:Knative 支持抢占式实例

阿里巴巴云原生

阿里云 Serverless 云原生

「杭州*康恩贝」4月26日PolarDB开源数据库沙龙,开启报名!

阿里云数据库开源

阿里云 技术交流 开源数据库 polarDB 康恩贝

万界星空科技工时管理系统功能介绍

万界星空科技

mes 工时管理 生产管理 车间管理 工时绩效

NFTScan | 04.15~04.21 NFT 市场热点汇总

NFT Research

NFT\ NFTScan

软件测试学习笔记丨后端接口基本开发 - spring boot发送 POST请求

测试人

软件测试

下载量超 200 万,最近频繁登上热搜的 AI 程序员,大家怎么看

阿里巴巴云原生

阿里云 云原生 通义灵码

SD-WAN为什么在亚太地区普及?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

高通将支持 Meta Llama 3 在骁龙终端运行;特斯拉中国全系车型降价 1.4 万元丨 RTE 开发者日报 Vol.189

声网

Giants Planet 宣布推出符文,建立在坚实价值的基础上

加密眼界

通义灵码牵手阿里云函数计算 FC ,打造智能编码新体验

阿里巴巴云原生

阿里云 云原生 函数计算 通义灵码

阿里巴巴1688商品API实战:批量抓取价格、标题、图片及库存数据

技术冰糖葫芦

api 货币化 API 接口 pinduoduo API

2024年腾讯 抖音 百度 快手广告代理 正规授权合作

陈老师讲创业

通义灵码牵手阿里云函数计算 FC ,打造智能编码新体验

阿里云云效

阿里云 云原生 通义灵码

润和软件成功举办2023-2024年openEuler技术委员会会议

科技热闻

短视频评论ID提取采集软件|评论批量爬取下载工具

Geek_16d138

短视频创业 评论系统 好用的软件分享

短视频评论抓取拓客软件|评论采集爬取下载工具

Geek_16d138

爬虫工具 爬虫技术 好用的软件分享

Giants Planet 宣布推出符文,建立在坚实价值的基础上

大瞿科技

轻松复现一张AI图片

程序那些事

人工智能 程序那些事 4月月更 openai

漫画项目管理 | 项目目标不合理,该如何修订?

禅道项目管理

项目管理 职场 pmp 能力提升 项目管理PMP

短视频评论提取工具软件介绍|评论采集下载爬取

Geek_16d138

一文读懂Partisia Blockhain:兼顾去中心化、安全性与可扩展性

长安区块链

借助淘宝评论API,商家轻松掌握市场动态与商机

技术冰糖葫芦

API 接口 API 文档 pinduoduo API

EasyMR6.2 全面解读:四大功能深度优化,解锁全新大数据处理和计算体验

袋鼠云数栈

hadoop 数据处理 计算引擎 数据计算 国产化替代

SD-WAN在国际教育机构中的应用

Ogcloud

SD-WAN 网络sdn 企业组网 SD-WAN组网 SD-WAN服务商

PIRF-395

EchoZhou

English

腾讯冯牮:基于卷积神经网络在手机端实现文档检测_Android/iOS_陈思_InfoQ精选文章