基于图像识别的棉花生长周期检测

发布时间:2019-04-26 浏览次数:149

                                                                                                        作者:戴喆


说起图像识别,大家或多或少应该都有些耳闻,这是人工智能的一个重要领域,它是指对图像进行对象识别,以识别各种不同模式的目标和对像的技术。人脸识别和车牌识别应该听过吧?目前此技术在导航、地图与地形配准、自然资源分析、天气预报、环境监测、生理病变研究等许多领域都具有重要的应用价值。

看完这些,是不是觉得图像识别是个很高大上的技术?觉得有点高不可攀?其实它也不是这么不可接近。我们用一个简单的例子讲一下它的原理。

考虑农业上常见的棉花生长问题:根据形态特征和生理特性,棉花的生长过程可以分为:播种期、出苗期、三叶期、五叶期、现蕾期、开花期、裂铃期、吐絮期、停止生长期(这些时期真的是太多太复杂了……)。使用人工区分的话非常耗时耗力,如果能实现生长周期的自动识别,就能有助于自动化灌溉、施肥等。


(不同时期的棉花图像)

 

我们使用Faster-RCNN算法对棉花图像进行检测,它是在RCNNFast-RCNN算法的基础上发展而来的:RCNNCNN(卷积神经网络)引入目标检测领域,大大提高了目标检测效果,改变了目标检测领域的主要研究思路。Fast-RCNN是在RCNN基础上改进得到的网络结构,RCNN对每一个候选区域都要做一个卷积运算,而Fast-RCNN则提出在特征映射(feature map)上进行选择性搜索来生成候选区域,这样就可以共享计算,加快计算速度,而且能将所有的特征都暂存于显存中,不占用额外的磁盘空间。Faster-RCNNFast-RCNN的基础上引入一个RPNRegion Proposal Network),解决了Fast-RCNN中生成候选区域时只能利用CPU的问题,如下图。


上面的解释有点晦涩难懂,没关系不用纠结,一句话来说,就是Faster-RCNN具有更高的精度和更快的速度。

我们要做的就是用这个方法来识别棉花周期!具体算法可以写成如下步骤(此处无详解……有兴趣的同学可以查阅相关资料):

STEP1. 对整张图片输进CNN,得到feature map

STEP2. 卷积特征输入到RPN,得到候选框的特征信息;

STEP3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类;

STEP4. 对于属于某一特征的候选框,用回归器进一步调整其位置。

 

首先人工标注一批棉花不同时期的图像,然后使用算法对其进行自动识别,根据准确率来判断图像识别能否用于精准农业。下面是部分周期的检测结果示意图。

出苗期的检测:


三叶期的检测:


开花期的检测:


根据模型的预测结果来看,若图像本身的拍摄质量较好,模型能够给出准确的预测结果。另外,若某些特征标注时框出的区域极小,需要进一步优化算法,提高小目标的准确率,进而提升整个模型的检测效果。总而言之,若要进一步提升棉花生长周期预测的效果,既从原始图片入手,提高图片拍摄质量,又要注重提升算法的不完善之处(如小目标检测)。