在第二步中检测到的线段,有一些是很接近的,或者有些短线段是可以连接成一条更长的线段的,所以可以采用一些策略把它们合并到一起,这个时候,就要借助第三步中得到的直线。定义一种策略判断两条直线是否相等,当遇到相等的两条直线时,把这两条直线各自对应的线段再合并或连接成一条线段。这一步完成后,后面的步骤就只需要蓝色的线段而不需要绿色的直线了 根据第四步得到的线段,计算它们之间的交叉点,临近的交叉点也可以合并,同时,把每一个交叉点和产生这个交叉点的线段也要关联在一起 (每一个蓝色的点,都有一组红色的线段和它关联) 对于第五步得到的所有交叉点,每次取出其中的 4 个,判断这 4 个点组成的四边形是否是一个合理的矩形 (有透视变换效果的矩形),除了常规的判断策略,比如角度、边长的比值之外,还有一个判断条件就是每条边是否可以和第五步中得到的对应的点的关联线段重合,如果不能重合,则这个四边形就不太可能是我们期望检测出来的矩形 经过第六步的过滤后,如果得到了多个四边形,可以再使用一个简单的过滤策略,比如排序找出周长或面积最大的矩形 对于上面这个例子,第一版技术方案中检测出来的边缘线如下图所示:
有兴趣的读者也可以考虑一下,在这种边缘图中,如何设计算法才能找出我们期望的那个矩形。 总结 算法角度 神经网络的参数 / 超参数的调优,通常只能基于经验来设置,有 magic trick 的成分 神经网络 / 机器学习是一门试验科学 对于监督学习,数据的标注成本很高,这一步很容易出现瓶颈 论文、参考代码和自己的代码,这三者之间不完全一致也是正常现象 对于某些需求,可以在模型的准确度、大小和运行速度之间找一个平衡点 工程角度 end-to-end 网络无效的时候,可以用 pipeline 的思路考虑问题、拆分业务,针对性的使用神经网络技术 至少要熟练掌握一种神经网络的开发框架,而且要追求代码的工程质量 要掌握神经网络技术中的一些基本套路,举一反三 要在学术界和工业界中间找平衡点,尽可能多的学习一些不同问题领域的神经网络模型,作为技术储备 参考文献 因不能添加外链接,请点击以下原文发布地址查看。 原文地址: 更多有关GMIS 2017大会的内容,请点击「阅读原文」查看机器之心官网 GMIS 专题↓↓↓ (责任编辑:本港台直播) |