本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】专栏 | 手机端运行卷积神经网络实践:基于TensorFlow和OpenCV实现文档检测功能(5)

时间:2017-05-31 19:19来源:报码现场 作者:j2开奖直播 点击:
前面提到的转置卷积层的双线性初始化,就是一个重要因素,因为在 4 个尺度上,都需要反卷积,如果反卷积层不能收敛,那整个 HED 都不会进入期望的理

前面提到的转置卷积层的双线性初始化,就是一个重要因素,因为在 4 个尺度上,都需要反卷积,如果反卷积层不能收敛,那整个 HED 都不会进入期望的理想状态

另外一个原因,是由 HED 的多尺度引起的,既然是多尺度了,那每个尺度上得到的 image 都应该对模型的最终输出 image 产生贡献,在训练的过程中发现,如果输入 image 的尺寸是 224*224,还是很容易就训练成功的,但是当把输入 image 的尺寸调整为 256*256 后,很容易出现一种状况,就是 5 个尺度上得到的 image,会有 1 ~ 2 个 image 是无效的 (全部是黑色)

为了解决这里遇到的问题,采用的办法就是先使用少量样本图片 (比如 2000 张) 训练网络,在很短的训练时间 (比如迭代 1000 次) 内,如果 HED 网络不能表现出收敛的趋势,或者不能达到 5 个尺度的 image 全部有效的状态,那就直接放弃这轮的训练结果,重新开启下一轮训练,直到满意为止,然后才使用完整的训练样本集合继续训练网络。

训练数据集 (大量合成数据 + 少量真实数据)

HED 论文里使用的训练数据集,是针对通用的边缘检测目的的,什么形状的边缘都有,比如下面这种:

  

【j2开奖】专栏 | 手机端运行卷积神经网络实践:基于TensorFlow和OpenCV实现文档检测功能

用这份数据训练出来的模型,在做文档扫描的时候,检测出来的边缘效果并不理想,而且这份训练数据集的样本数量也很小,只有一百多张图片 (因为这种图片的人工标注成本太高了),这也会影响模型的质量。

现在的需求里,要检测的是具有一定透视和旋转变换效果的矩形区域,所以可以大胆的猜测,如果准备一批针对性更强的训练样本,应该是可以得到更好的边缘检测效果的。

借助第一版技术方案收集回来的真实场景图片,我们开发了一套简单的标注工具,人工标注了 1200 张图片 (标注这 1200 张图片的时间成本也很高),但是这 1200 多张图片仍然有很多问题,比如对于神经网络来说,1200 个训练样本其实还是不够的,另外,这些图片覆盖的场景其实也比较少,有些图片的相似度比较高,这样的数据放到神经网络里训练,泛化的效果并不好。

所以,还采用技术手段,合成了 80000 多张训练样本图片。

  

【j2开奖】专栏 | 手机端运行卷积神经网络实践:基于TensorFlow和OpenCV实现文档检测功能

如上图所示,一张背景图和一张前景图,可以合成出一对训练样本数据。在合成图片的过程中,用到了下面这些技术和技巧:

在前景图上添加旋转、平移、透视变换

对背景图进行了随机的裁剪

通过试验对比,生成合适宽度的边缘线

OpenCV 不支持透明图层之间的旋转和透视变换操作,只能使用最低精度的插值算法,为了改善这一点,后续改成了使用 iOS 模拟器,通过 CALayer 上的操作来合成图片

(责任编辑:本港台直播)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容