我们都知道单纯靠算法解决一切问题是不现实,图像识别作为一个工程性很强的领域,更多的需要从输入源,也就是图像采集端(摄像头或者扫描仪等)、光源以及系统架构方面等解决问题。做过低照度高帧率图像识别,也搞过不少机器视觉物料分拣项目,对此深有体会。一个清晰的图像质量,干净的背景会方便后期图像处理很多,所以实际项目中首先保证尽可能好的图像,尽可能干净的背景,之后再来图像检测定位分割跟踪或者识别。
- 下面以水表识别,燃气表识别为例进行讨论
图像处理到底靠不靠谱,做检测识别需不需要做图像预处理
- 图像识别项目最大的特征就是“看图说话”,具体项目具体处理。所以需不需要图像预处理,看具体项目需要。
- 图像预处理耗时吗?很多项目需要在手机平台运行,或者嵌入式上跑,用CPU处理一张720P的图像会很耗时,比如720P的RGB在iPhone6上做resize就需要20多ms了,有时候会借助于GPU来预处理图像。
- 对于实时性要求很高的应用来说,我的经验上基本上直接原图上用分类器做检测定位分割就够了,不需要图像处理。比如基于haar+adaboost的图像检测,基于CNN的图像定位等。因为原图一动,所有的样本就动了,分割出来的识别样本就不一样了,试想几百万的样本,有滤波过的,有没有滤波的,有直方图拉伸过的,有没有拉伸过的,如果在低照度下,因为曝光时间比较短,相机成像较差,会出现部分图像噪点很严重