10分钟上手,分钟上手,OpenCV自然场景文本检测(自然场景文本检测(Python代码代码+实实
现)现)
本教程的主要目的是教读者利用OpenCV和EAST文本检测器来检测文本。
运行环境:
EAST文本检测器需要OpenCV3.4.2或更高版本,有需要的读者可以先安装OpenCV。
主要内容:
教程第一部分分析为何在自然场景下进行文本检测的挑战性是如此之高。
接下来简要探讨EAST文本检测器,为何使用,算法新在何处,并附上相关论文供读者参考。
最后提供 Python + OpenCV文本检测实现方式,供读者在自己的应用中使用。
为何在自然场景下进行文本检测的挑战性是如此之高
由于光照条件、图片质量以及目标非线性排列等因素的限制,自然场景下的文本检测任务难度较大
受约束的受控环境中的文本检测任务通常可以使用基于启发式的方法来完成,比如利用梯度信息或文本通常被分成段落呈现,
并且字符一般都是成直线排列等信息。
但自然场景下文本检测则不同,而且更具挑战性。
由于廉价数码相机和智能手机的普及,我们需要高度关注图像拍摄时的条件。Celine Mancas-Thillou和Bernard Gosselin在其
2017年发表的优秀论文《自然场景文本理解》中描述了的自然场景文本检测面对的主要挑战:
图像/传感器噪音:手持式相机的传感器噪音通常要高于传统扫描仪。此外,廉价相机通常会介入原始传感器的像素以产生真
实的颜色。
视角:自然场景中的文本存在不平行的观测角度问题,使文本更难以识别。
模糊:不受控制的环境下,文本往往会变模糊,尤其是如果最终用户使用的智能手机的拍摄稳定性不足时,问题就更明显。
照明条件:我们无法对自然场景图像中的照明条件做出任何假设。可能在接近黑暗的条件下,相机上的闪光灯可能会亮起,也
可能在艳阳高照的条件下,使整个图像趋于饱和。
分辨率:每台图像捕捉设备都是不同的,可能存在分辨率过低的摄像机拍出的图像。
非纸质对象:大多数(但不是全部)纸张是不反光的。而自然场景中的文字可能是反光的,比如徽标,标志等。
非平面目标:想象文字印在瓶子上的情况,瓶子表面上的文本会扭曲和变形。虽然我们自己仍可以轻松地“检测”并阅读文本,
但算法做起来就会很困难。我们需要能够处理这种情况的用例。
处理条件未知:我们不能使用任何先验信息来为算法提供关于文本所在位置的“线索”。