[作品提交] 【2022得捷电子创新设计大赛】-基于树莓派的智能动物识别系统

吾妻思萌   2022-10-5 22:39 楼主

 

基于树莓派的智能动物视频识别监控系统

 

作者: EEWorld-吾妻思萌

一、作品简介(100-200字)
(设计名称、作品照片、功能介绍等。)

本作品为基于树莓派的的动物识别监控系统,通过对于户外或者野外自然保护区定位视频监控流来捕捉动物图像,通过内部图像识别算法来判定动物物种和记录行为方式,还可以增设红外摄像头,做到24小时无人值守,全程监控。

223912j4bjyjb4a9ajvahh.jpg

 

 

二、系统框图(图文结合)
(系统软硬件实现框图)

通过 Opencv 框架对于正样本图像进行颜色通道转换和获取灰度值,接下来提取其轮廓特征,将背景滤除,获得样本中鸟类的形体轮廓 ;最后对于样本进行训练和测试。解决传统卷积神经网络滤波器随机初始化问题,稀疏自编码器是一种无监督学习模型,通过隐藏层学习 一个数据的表示或对原始数据进行有效编码,从而学习得到数据的特征

223912mveqsfp333jkrsv3.png

 

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

223912wj335fegkm1cmbmj.png

 

 

三、各部分功能说明(图文结合)

(各部分实现的功能说明及讲解,以图文结合的展示。)

本系统自己编写爬虫脚本从中国鸟类图库中, 爬取了大量鸟类图片,将分辨率统一后其数据集。预处理操作是将摄像头捕捉到的图像进行二进制化的过程,目前主要将彩色图转化为灰度图的基本算法有:极值法、平均值法、加权法等。本系统采用加权法,其主要操作思想如下:假设当前图片的像素三分量为 R,G,B,通过如下式可以 得到转换后的像素分量值:

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

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

223912atdt6htalnwvy4mb.png

 

通过二值化处理,将图像中有意义的特征进行标注和分割,利用目标区域和背景色灰度值不同的差异,将低于阈值的的像素设置为一个灰度值,将高于阈值的像素设置为另一个灰度值,以便利用目标区域前景色与背景色的明显差异来用灰度区分开。

223912r4eninuxj9ojwovw.png

 

目前依靠深度学习实现图像识别的框架主要有caffe,yolo,theano,Torch,keras,tensorflow 等。而本文使用的框架 tensorflow是Google开源的深度学习工具包, 它将深度学习复杂的计算过程抽象成了数据流图(Data Flow Graph),并提供简洁灵活的高级抽象接口,让用户通过简单的学习就可以使用深度学习。本文使用tensorflow训练一个卷积神经网络 CNN(convolution neural network)来进行鸟类图像识别。

223912qv4vsxyksidb2bzs.png

 

本系统所使用地卷积神经网络的参数设置如下:一共设置了两层卷积和池化层,两层全连接层,一个输入层,一个输出层。卷积部分采用的激活函数是relu,池化层采用的 max_pool 最大池化方式,对全连接层的神经元采用dropout方式防止过拟合,最后使用softmax进行分类,采用的优化器为 AdamOptimizer,该算法相对于SGD 的优点在于不容易陷入局部优点,速度更快,效果更好。迭代次数为 2000 次,学习率为 0.0001。 最终得出的结果为 97.4026%的正样本识别率, 经过多次迭代学习其误差识别率已经低于 0.1%。可 以说该神经网络训练出的结果已经满足样本内的识别了

 

 

四、作品源码

主要代码如下所示:

import tensorflow as tf

bird=input_data.read_data_sets("C:/Users/jiangu o/Desktop/tensorflow/BIRD_data/",one_hot = True)

定义各个卷积层,池化层,全连接层。

craossentropy=tf.reduce_mean(tf.reduce_sum(ys *tf.log(prediction) ,reduction_indices =[1] ))

train_step=tf.train.AdamOptimizer(1e-).minimize (cross_entropy)

sess = tf.Session() sess.run(tf.global_variables_initializer) for i in range(2000):

batch_xs,batch_ys = mnist.train.next_batch(100)

sess.run(train_step, feed_dict={xs: batch_xs, ys: batch_ys})

print(compute_accuracy(mnist.test.images,mnist. test.labels))

 

五、作品功能演示视频

(视频简介+链接)

【2022得捷电子创新设计大赛】 https://training.eeworld.com.cn/video/34501?s=4b69T0RhQXbscPTX0f5yhZ0DW8lV%252BBl3c6DIBCD0SEC%252BVLCyxatir53O8nBD7SLefgl7y0w0hwEblndD5FlD5Ebbm5zX688Mkzg

六、项目总结

(项目文字总结+帖子分享链接汇总)

通过样本的识别验证和实物的识别过程验证, 可知本系统设计的鸟类识别系统具有一定的识别 功能和精度。样本图片的 97%识别率,对于色彩特征的和优化人机交互界面还需继续开发,但其基本功能已经有较大完善。实时捕捉识别的功能均已具备,其系统整体还未见成熟产品,具有一定的推广意义和价值。

 

七、其他

本帖最后由 吾妻思萌 于 2022-10-7 22:05 编辑

回复评论 (4)

恭喜版主大大完成了作品呀。希望得大奖!

点赞  2022-10-6 12:31

恭喜完成作品

点赞  2022-10-16 14:58
引用: sipower 发表于 2022-10-16 14:58 恭喜完成作品

谢谢 水贴

点赞  2022-10-26 23:11
引用: lugl4313820 发表于 2022-10-6 12:31 恭喜版主大大完成了作品呀。希望得大奖!

谢谢 我是水贴

点赞  2022-10-26 23:12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复