vlambda博客
学习文章列表

我的电赛作品:BP算法鸟类图像识别系统


本文由面包板社区版主原创,未经本人允许,禁止转载


不知不觉已经12月了,经过2020这个魔幻的一年,回想当年参加电子竞赛,仿佛回到了念书的快乐时光,不知不觉已经好几年了诶。任时光匆匆流走,我们还剩下什么呢?好了言归正传,小弟在此分享下当年胡乱拼凑的图像识别系统设计吧。


图像识别作为一种重要的生物信息鉴别方法,在信息安全领域有着很重要的应用价值,是模式识别与计算机视觉领域研究的热点【1】。目前来看,生物图像识别还不能达到人类的普遍认知水平,但是经过训练好的系统能在一定程度上对于特定图像进行分类识别【2】。


国内外针对野生鸟类迁徙和栖息地等研究都是人工观测和生物脚环传感器等方法。该方法人工任务繁重,野外环境恶劣等因素对于野生鸟类的研究形成较大阻碍。随着人工智能的发展,通过图像识别的方法【3-6】,可以将任务简化为图像提取,目标识别和分类保存。将计算机识别的图像进行预处理后,对于目标物体进行边缘提取,图像降噪和归一化等处理;将目标转化成计算机可以识别的二进制数据流,然后对于目标特征进行识别,最后存储以便后续的人工核对校验。本系统使用现今流行的树莓派开发板、带有夜视功能的摄像头和太阳能供电等原件,做到了硬件依赖小,成本低,便于规模化和系统升级。通过本地样本训练测试,结果表明识别准确率高,稳定性好,具有较强的创新性。


我的电赛作品:BP算法鸟类图像识别系统


图像采集模块使用带有夜视功能的感光镜头OV5687,其分辨率为1200x800,可以清晰的捕捉到画面中的目标物体。对于视频画面中出现的物体进行跳帧识别,在增加其FPS的同时也提高了,整体系统的效率。识别到目标物体后,对于其特征进行分类识别。


本系统自己编写爬虫脚本从中国鸟类图库中,爬取了大量鸟类图片,将分辨率统一后其数据集如图3所示。


我的电赛作品:BP算法鸟类图像识别系统


预处理操作是将摄像头捕捉到的图像进行二进制化的过程,目前主要将彩色图转化为灰度图的基本算法有:极值法、平均值法、加权法等。本系统采用加权法,其主要操作思想如下:假设当前图片的像素三分量为R,G,B,通过如下式可以得到转换后的像素分量值:


Gray =0.4*Red + 0.2 * Green + 0.4*Blue


二值图像是指整幅图像画面内仅有黑白二值的图像。灰度图像二值化不仅可大幅度减少数据运算量,并能有效突出目标轮廓,以便后续处理。


我的电赛作品:BP算法鸟类图像识别系统
我的电赛作品:BP算法鸟类图像识别系统


BP神经网络的学习过程是误差反向传播算法的学习过程,其误差反向传播和信息正向传播。输入层各神经元接收来自外界的输入信息进行预处理,然后传递给中间层的各个神经元,进行信息处理,以实现信息变换;按照处理内容的需要,中间层可以设置成多隐层或者单隐层的结构;最后一层将处理过后的信息传递给输出层,通过进一步处理,实现一次信息正向传播处理过程,将处理好的信息传递给输出层,最后由输出层将信息处理结果输向外界。在输出过程中,会自行对于误差进行计算,当输出结果与预先预期的期望值差别很大时,就进行误差的反向传播。误差根据梯度下降的方式改变各层之间的权重值,一层一层反向传递。内部多次的信息交替过程是误差反向传播,修正权重的运算过程,每次迭代过程,其误差的梯度都会减小,直至减小到一个可以接受的范围或者到达学习次数,输出最终的训练结果【11】。


本系统所使用的神经网络共设置三层色很精网络,在中间层设置100个节点,输出层1个节点。本系统采用双曲正切S型传递函数tansig作为隐含层各神经元传递函数,并用柔性最大值传输函数softmax作为输出层各神经元的传递函数。此神经网络的训练函数为动量反传和动态自适应学习率的梯度下降算法traingdx,学习模式为learngdm。迭代次数为10000,学习率为0.1。部分代码如下所示:


def train(self,X,y,lr=0.1,epochs=10000): Temp= 1/xX_train,y_train,X_test,y_test = 3:1input_nodes = 1308hidden_nodes = 100output_nodes = 1learning_rate = 0.1n=NeuralNetWork(input_nodes, hidden_nodes,output_nodes, learning_rate)


最终得出的结果为97.4026%的正样本识别率,经过多次迭代学习其误差识别率已经低于0.1%。可以说该神经网络训练出的结果已经满足样本内的识别了,如图6所示。


我的电赛作品:BP算法鸟类图像识别系统


通过配置好树莓派,运行内部视频捕捉代码,可以识别出随机鸟类测试图片,良好光线和环境下测试效果十分理想,故对其经行夜间闪光灯照明的多噪点实验,模拟其最坏情况,其最终效果如图8所示。



写在最后,上面就是我的一些分享,如果有什么写的不对的地方,欢迎大家来指教,反正我是不太会写代码的,但是还是能凑乎看懂一些的。



  END  
推荐文章:



▼点击阅读原文,下载万份电子技术资料