1.本发明涉及渔业养殖设备技术领域,具体涉及一种基于深度学习的鱼饲料自动投喂系统。
背景技术:
2.目前,大部分水产养殖厂仍然采用人工抛洒饲料和定时投喂的方式,但随着鱼池数量的不断增加,人工抛洒饲料进行投喂的方式会耗费大量的人力、物力和财力,效率较低,随着鱼个体的不断地增长,对饲料的摄入量也在增加,定时投喂的方式便不再适用,在不同的季节和温度下,鱼的进食量也会有较大的变化,因此,如何提供一种可以随着鱼进食量的改变而调整投喂量的系统和方法,结合鱼类在不同时期、季节和温度等外部环境下的状态确定投饲机制,实现鱼饲料远程自动投喂,成为亟需解决的问题。
技术实现要素:
3.本发明的目的是为了解决上述问题,设计了一种基于深度学习的鱼饲料自动投喂系统。
4.本发明第一方面提供一种基于深度学习的鱼饲料自动投喂系统,该系统包括图像数据采集模块、硬件设备、风力投喂机、投喂算法控制模块、前后端模块和云服务模块,其中,
5.图像数据采集模块,用于通过usb接口连接摄像头,将所述摄像头拍摄到的视频保存在本地,对拍摄到的视频进行分帧处理,并将处理后的图像制作成pascal voc格式数据集供算法模型训练;
6.投喂算法控制模块,用于采用深度学习算法对摄像头实时拍摄的图像进行分析,得到分析结果,并根据所述分析结果确定鱼饲料投喂方案,将所述鱼饲料投喂方案传输至云服务模块;
7.云服务模块,用于根据app id和app key链接云服务,根据设备号将所述投喂算法控制模块输出的所述鱼饲料投喂方案上传到云服务对应设备中,读取所述鱼饲料投喂方案,向rock pi x发送操作指令,rock pi x经过串口集线器传到arduino,arduino传给继电器,继电器连接风力投喂机,进而控制风力投喂机进行投喂。
8.可选的,在本发明第一方面的第一种实现方式中,所述采用深度学习算法对传入的图像进行分析,得到分析结果,并根据所述分析结果确定鱼饲料投喂方案,包括:
9.将传入的图像调整到416
×
416的大小,并在图像边缘加上灰条,再将图像划分成3种不同尺寸的网格,每个网格点负责一个区域的预测,得到特征图;
10.对所述特征图进行特征提取,从上到下特征图不断地被压缩,特征通道数不断地扩张;
11.将特征提取网络的后三层分别传到bifpn中进行特征融合,bifpn先进行了卷积、上采样和concat拼接,又进行了下采样、拼接,最后输出三个不同大小的特征层分别进行分
类预测和回归预测。
12.可选的,在本发明第一方面的第二种实现方式中,对所述特征图进行特征提取,从上到下特征图不断地被压缩,特征通道数不断地扩张,包括:
13.将所述特征图传入focus网络结构,然后再进行两次卷积标准化和激活函数,再经过csplayer结构,然后再经过两次conv2d_bn_silu和csplayer后传入sppbottleneck,sppbottleneck是最大池化的过程,后面再跟一个csplayer完成特征提取的过程。
14.可选的,在本发明第一方面的第三种实现方式中,所述csplayer结构是将原来的残差块的堆叠进行了一个拆分,拆成两部分,其中主干部分继续进行原来的残差块的堆叠,另一部分则像一个残差边一样,经过少量处理直接连接到最后。
15.可选的,在本发明第一方面的第四种实现方式中,所述鱼饲料投喂方案包括当水面波纹剧烈且水面浮现多条鱼的强摄食现象则不改变指令继续进行投喂、当出现水面波纹趋于平缓且水面浮现少量鱼的弱摄食现象则降低投喂量、当出现水面平稳无波纹或水面有残余饵料的不摄食现象则改变指令关闭投喂。
16.可选的,在本发明第一方面的第五种实现方式中,所述硬件设备至少包括传感器、串口集线器、继电器、arduino uno开发板、rock pi x开发板和摄像头,其中所述传感器检测鱼池的温度、电导率、溶氧、ph和液位。
17.可选的,在本发明第一方面的第六种实现方式中,所述风力投喂机至少包括投饲大漏斗、内置鼓风机、转动齿轮和延长管,其中所述投饲大漏斗用来投放鱼饲料,将鱼饲料倒入投饲大漏斗后电机带动齿轮转动,鱼饲料慢慢渗入风力投喂机,通过所述内置鼓风机将鱼饲料吹出,鱼饲料顺着延长管到达鱼池,可以通过后端控制投喂机风力等级。
18.可选的,在本发明第一方面的第七种实现方式中,所述前后端模块通过访问ip地址先登录管理员账号密码进入前端页面,前端页面分为用户管理和大屏测试,用户管理部分可以新增、修改和删除用户的账号信息,大屏测试中可以通过下拉菜单选取设备进行查看,右边跟着显示设备号,下方展示摄像头实时上传的图像,可以通过点击下载图片按钮将图片下载下来,页面左半部分还有通过传感器检测的温度、氨氮、电导率、ph、溶解氧的数值,下方是投料开关按钮,当点击投料按钮后会进行投料操作,按钮下方会显示操作时间和设备名称,如果算法出现异常,可以通过开启或关闭投料按钮强行控制投喂。
19.本发明提供的技术方案中,该系统采用定时投喂和算法检测相结合的形式来实现自动投喂,根据渔场每天人工投喂的时间来将定时投喂集成到算法上,再通过深度学习算法模型对摄像头拍摄到的视频图像进行实时检测,根据鱼池中水面波纹的剧烈程度、残余饵料的量、水面鱼的数量来进行分类,分为强摄食、弱摄食和不摄食三种状态控制投喂,如果是强摄食则继续进行投喂,弱摄食则降低投喂量,不摄食则停止投喂,将检测结果传到云服务器,后端将结果从云服务器上读取下来控制投喂机进行投喂,从而实现自动投喂。
20.本发明与现有人工抛洒饲料的方式相比更加的自动化,效率高、成本低、更稳定,不再需要雇佣多个工人对每个鱼池抛洒饲料进行投喂,可以节省大量的人力、物力和财力,操作方便,可控性高,与现有的定时投喂技术相比更加的智能化,不再是固定不变的投喂一段时间,会通过算法根据每个鱼池不同的进食量来动态控制投喂时长,进而达到控制投喂量的效果。
附图说明
21.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
22.图1为本发明实施例提供的基于深度学习的鱼饲料自动投喂系统的逻辑流程图;
23.图2为本发明实施例提供的基于深度学习的鱼饲料自动投喂系统的硬件设备结构连接图;
24.图3为本发明实施例提供的基于深度学习的鱼饲料自动投喂系统的投喂算法控制模块逻辑流程图。
具体实施方式
25.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、设备、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
26.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1本发明实施例提供的基于深度学习的鱼饲料自动投喂系统的示意图,该系统包括图像数据采集模块、硬件设备、风力投喂机、投喂算法控制模块、前后端模块和云服务模块,其中,
27.图像数据采集模块,用于通过usb接口连接摄像头,将摄像头拍摄到的视频保存在本地,对拍摄到的视频进行分帧处理,并将处理后的图像制作成pascal voc格式数据集供算法模型训练;
28.投喂算法控制模块,用于采用深度学习算法对图像数据采集模块输出的数据集中的图像进行分析,得到分析结果,并根据分析结果确定鱼饲料投喂方案,将鱼饲料投喂方案传输至云服务模块,其中鱼饲料投喂方案包括当水面波纹剧烈且水面浮现多条鱼的强摄食现象则不改变指令继续进行投喂、当出现水面波纹趋于平缓且水面浮现少量鱼的弱摄食现象则降低投喂量、当出现水面平稳无波纹或水面有残余饵料的不摄食现象则改变指令关闭投喂;
29.云服务模块,用于根据app id和app key链接云服务,根据设备号将投喂算法控制模块输出的鱼饲料投喂方案上传到云服务对应设备中,读取鱼饲料投喂方案,向rock pi x发送操作指令,rock pi x经过串口集线器传到arduino,arduino传给继电器,继电器连接风力投喂机,进而控制风力投喂机进行投喂。
30.硬件设备至少包括传感器、串口集线器、继电器、arduino uno开发板、rock pi x开发板和摄像头,其中传感器检测鱼池的温度、电导率、溶氧、ph和液位,云服务器下发指令到rock pi x,rock pi x经过串口集线器传到arduino,arduino传给继电器,继电器连接投喂机,进而控制投喂机进行投喂。
31.风力投喂机至少包括投饲大漏斗、内置鼓风机、转动齿轮和延长管,其中投饲大漏
斗用来投放鱼饲料,将鱼饲料倒入投饲大漏斗后电机带动齿轮转动,鱼饲料慢慢渗入风力投喂机,通过内置鼓风机将鱼饲料吹出,鱼饲料顺着延长管到达鱼池,可以通过后端控制投喂机风力等级。
32.前后端模块通过访问ip地址先登录管理员账号密码进入前端页面,前端页面分为用户管理和大屏测试,用户管理部分可以新增、修改和删除用户的账号信息,大屏测试中可以通过下拉菜单选取设备进行查看,右边跟着显示设备号,下方展示摄像头实时上传的图像,可以通过点击下载图片按钮将图片下载下来,页面左半部分还有通过传感器检测的温度、氨氮、电导率、ph、溶解氧的数值,下方是投料开关按钮,当点击投料按钮后会进行投料操作,按钮下方会显示操作时间和设备名称,如果算法出现异常,可以通过开启或关闭投料按钮强行控制投喂。
33.投喂算法控制模块,先进行预处理,将数据集中的图像调整到416
×
416的大小,为了防止失帧,在图像边缘加上灰条,再将图像划分成3种不同尺寸的网格,每个网格点负责一个区域的预测,得到特征图,只要物体的中心点落在这个区域,这个物体就由这个网格点来确定;
34.对特征图进行特征提取,将特征图传入focus网络结构,然后再进行两次卷积标准化和激活函数,再经过csplayer结构,csplayer结构是将原来的残差块的堆叠进行了一个拆分,拆成两部分,其中主干部分继续进行原来的残差块的堆叠,另一部分则像一个残差边一样,经过少量处理直接连接到最后,然后再经过两次conv2d_bn_silu和csplayer后传入sppbottleneck,sppbottleneck是最大池化的过程,后面再跟一个csplayer完成特征提取的过程,整个特征提取过程从上到下特征图不断地被压缩,特征通道数不断地扩张,可以看作下采样的过程;将特征提取网络的后三层分别传到bifpn中进行特征融合,bifpn先进行了卷积、上采样和concat拼接,又进行了下采样、拼接,最后输出三个不同大小的特征层分别进行分类预测和回归预测。
35.根据不同鱼类一天中的最佳投饲时间及投喂量设定一个时间阈值先进行定时投喂一段时间,然后对摄像头拍摄的画面进行实时检测,如果出现水面波纹剧烈且水面浮现多条鱼的强摄食现象则不改变指令继续进行投喂,若出现水面波纹趋于平缓且水面浮现少量鱼的弱摄食现象则降低投喂量,若出现水面平稳无波纹或水面有残余饵料的不摄食现象则改变指令关闭投喂。算法模型采用了改进的yolov5网络模型,在主干特征提取网络cspdarknet中引入了注意力机制模块,首先通过squeeze操作,对空间维度进行压缩,对每个特征图做全局池化,平均成一个实数值,该实数具有全局感受野,squeeze操作能够使得靠近数据输入的特征也可以具有全局感受野;经过squeeze操作后,网络输出了1
×1×
c大小的特征图进行excitaton操作,利用权重w来学习c个通道直接的相关性;先对c个通道降维再扩展回c通道,降低了网络计算量,将exciation的输出看作经过特征选择后的每个通道的重要性,通过乘法加权的方式乘到之前的特征上,实现提升重要特征,抑制不重要特征的功能,使得模型更加关注待检测的目标,进而提升模型的检测精度,以解决漏检问题;为了提升yolov5对小目标检测能力的问题,将bifpn替换掉panet网络模型结构,panet是在自顶向下结构的基础上添加了自底向上的路径,使得底层的信息更容易传到高层顶部;bifpn是在panet结构的基础上进行的改进,实现了重复双向跨尺度连接,卷积层数越深,语义信息越来越丰富,但特征图越来越小,分辨率越来越低,越容易忽略小目标的特征,如果原始
输入节点和输出节点处于同一层,则在原始输入节点和输出节点之间添加一条额外的边,以在不增加太多计算量的情况下融合更多的特性,通过增加额外边将浅层和高层的特征图连接起来,将浅层的信息传递到深层,以解决深层特征图容易忽略小目标的问题,从而提升对小目标的检测能力;为了提升检测速度,将sppf替换掉spp结构,spp结构是由5
×
5,9
×
9,13
×
13的卷积核构成,最后通过concat拼接输出特征层,sppf是在spp结构上进行的改进,通过5
×
5卷积核的串接替换掉9
×
9和13
×
13的卷积核,从而减少计算量,提升检测速度。
36.本发明实施例中,硬件设备部分,将开发板pockpix、arduino,继电器,串口集线器,传感器,摄像头,投喂机按照图2进行连接后固定到设备箱中,将设备箱固定到鱼池旁,固定摄像头确保拍摄画质清晰,将摄像头延长线连接到设备箱中,投喂机放置在鱼池旁合适位置,连接好投喂机和设备箱,在投喂机出口处连接延长管伸至鱼池中即可。首先进行数据采集,将采集到的数据进行标注,制作成pascalvoc格式数据集供算法模型使用,其中,图像数据采集分为强摄食、弱摄食和不摄食三种数据,如果出现水面波纹剧烈且水面浮现多条鱼则视为强摄食现象,若出现水面波纹趋于平缓且水面浮现少量鱼则视为弱摄食现象,若出现水面平稳无波纹或水面有残余饵料则视为不摄食现象。将投喂大漏斗、风力投喂机、延长管连接好,再将投喂机连接线与设备箱进行连接。投喂算法控制模块,如图3所示,对传入的图片进行预处理,特征提取,特征融合,最后输出3个不同大小的特征层分别进行分类预测和回归预测,根据渔场鱼池中鱼类的最佳投饲时间先定时投喂一段时间,通过摄像头拍摄的画面进行检测,如果出现水面波纹剧烈且水面浮现多条鱼的强摄食现象则不改变指令继续进行投喂,若出现水面波纹趋于平缓且水面浮现少量鱼的弱摄食现象则降低投喂量,若出现水面平稳无波纹或水面有残余饵料的不摄食现象则改变指令关闭投喂。前后端模块,通过访问ip地址先登录管理员账号密码进入前端页面,前端页面分为用户管理和大屏测试,用户管理部分可以新增、修改和删除用户的账号信息,大屏测试中可以通过下拉菜单选取第几套设备进行查看,右边跟着显示设备号,下方展示摄像头实时上传的图像,可以通过点击下载图片按钮将图片下载下来,页面左半部分还有通过传感器检测的温度、氨氮、电导率、ph、溶解氧的数值,下方是投料开关按钮,当点击投料按钮后会进行投料操作,按钮下方会显示操作时间和设备名称,如果算法出现异常,可以通过开启或关闭投料按钮强行控制投喂。云服务模块,通过appid和appkey链接云服务,根据设备号将深度学习算法检测后的结果上传到云服务对应设备中,后端读取算法上传的结果后向rockpix发送操作指令,rockpix经过串口集线器传到arduino,arduino传给继电器,继电器连接投喂机,进而控制投喂机进行投喂。
37.综上,本实施例采用定时投喂和算法检测相结合的形式来实现自动投喂,根据渔场每天人工投喂的时间来将定时投喂集成到算法上,再通过深度学习算法模型对摄像头拍摄到的视频图像进行实时检测,根据鱼池中水面波纹的剧烈程度,残余饵料的量,水面鱼的数量来进行分类,分为强摄食、弱摄食和不摄食三种状态控制投喂,如果是强摄食则继续进行投喂,弱摄食则降低投喂量,不摄食则停止投喂,将检测结果传到云服务器,后端将结果从云服务器上读取下来控制投喂机进行投喂,从而实现自动投喂;与现有人工抛洒饲料的方式相比更加的自动化,效率高、成本低、更稳定,不再需要雇佣多个工人对每个鱼池抛洒饲料进行投喂,可以节省大量的人力、物力和财力,操作方便,可控性高,与现有的定时投喂技术相比更加的智能化,不再是固定不变的投喂一段时间,会通过算法根据每个鱼池不同
的进食量来动态控制投喂时长,进而达到控制投喂量的效果。
38.以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。