本发明属于水面死鱼清理,涉及一种基于stm32的水面死鱼打捞系统及其方法。
背景技术:
1、在水产养殖的过程中,因为各种各样的因素如水体酸碱度不适、鱼苗带病、放养密度过大、水域污染等,会导致鱼苗的死亡,而死亡后的鱼苗如果不进行及时的清理,会形成二次感染,导致更多的鱼苗死亡。因此当养殖人员发现鱼塘内存在死鱼时,需要及时将其打捞起来,而传统的打捞作业需要养殖人员亲自下水进行打捞,整个打捞作业存在死鱼发现不及时、打捞作业繁琐、作业过程危险等问题。
2、中国专利申请cn115045254公开了一种淡水鱼类养殖用死鱼无害化处理装置,包括壳体与传送带;所述壳体采用内部中空的l形块结构;壳体的内部后侧设置有分离槽;所述传送带设置于壳体的前侧;传送带还包括有:刮板,刮板采用矩形板结构;倒刺,倒刺采用圆锥形杆结构;卷收辊,卷收辊共设置有两组;通过传送带对于鱼塘中的死鱼进行快速捕捞收集。但是,该专利申请技术具有以下缺点:①打捞范围小,为固定的器械,难以对整个水域进行打捞,打捞效率低;②整个装置成本高,装置大,不够智能环保。
3、另外,中国专利申请cn114937200a公开了一种基于深度学习的池塘死鱼检测方法、装置、设备及介质,包括:采集目标区域对应的第一图像;通过改进的yolov5死鱼检测模型检测第一图像中是否存在死鱼;若是,采集目标区域对应的第二图像,若否,则返回步骤1;通过改进的yolov5死鱼检测模型检测第二图像中是否存在死鱼;若是,通过restnet特征提取模型获取第一图像和第二图像的特征向量,若否,则返回步骤1;根据第一图像和第二图像的特征向量计算第一图像和第二图像的相似度;当相似度小于阈值时,发送预警信号。该专利申请技术存在以下缺点:①仅提供一种理论识别方法,并未将其部署到实际设备上进行验证;②所提方法是通过2s前后两张图片进行对比,检测的效率不高。
技术实现思路
1、本发明的目的在于克服现有技术的缺陷,提供一种基于stm32的水面死鱼打捞系统及其方法,采用stm32与计算机视觉技术相结合,并实现自动航行,满足生产养殖过程中的实际需求;可有效解决渔产养殖过程对死鱼的打捞作业依赖人工、死鱼发现不及时、作业繁琐、作业危险等问题。其整套装置较小,成本低,效率高,同时装载智能打捞控制算法,将传统机械装置与深度学习算法相结合,可做到现代化智能打捞。
2、为解决上述技术问题,本发明采用以下技术方案。
3、本发明的一种基于stm32的水面死鱼打捞系统,包括打捞船体、stm32模块、gps模块、水质检测模块、超声波模块、usb转换模块、双目摄像头、舵机云台、舵机驱动模块、电机驱动模块、正转螺旋桨、反转螺旋桨、12v电源、降压电源模块、打捞网舵机组和打捞网;
4、所述的打捞船体采用双体船连接结构、双机双桨推进方式,超声波模块、gps模块、水质检测模块、电机驱动模块通过gpio引脚与stm32模块连接,双目摄像头通过iic配置接口和dvp接口连接usb转换器,并通过usb接口将usb转换器连接到stm32模块上,最终实现双目摄像头与stm32模块的连接,12v电源给整个系统供电;通过分别设置在两个船上的两个电机的差速转动来驱动打捞船;船体前端设置超声波模块和双目摄像头,以超声波模块测得的距离来修正双目摄像头测得的距离;双体船连接处安装stm32模块、gps模块、水质检测模块;在两个船舱内分别安装电机驱动模块以及电源模块,12v电源通过降压电源模块降为5v为stm32单片机与打捞网舵机组供电;gps模块为打捞船提供精确的定位信息,水质检测模块检测当前水质情况,并将数据保留在stm32模块中,以便查看水质情况。
5、具体的,所述stm32模块内置有打捞控制算法,用于依据双目摄像头与超声波模块提供的当前船体与死鱼之间的距离信息,判断当前船体是否处于死鱼打捞范围内,当其处于打捞范围时,stm32内置的打捞控制算法发送控制信号以完成打捞。
6、具体的,所述的电机驱动模块采用l289n,降压电源模块采用lm2596s,舵机驱动模块采用pca9685。所述的stm32模块采用型号为stm32f103zet6的stm32单片机,usb转换模块采用cy7c68013a。
7、本发明的一种基于stm32的水面死鱼打捞方法,其特征在于,基于stm32模块内置的打捞控制算法,包括以下步骤:
8、步骤1、将目标点的经纬度预先设置在程序内,程序按所需要到达目标点经纬度的顺序,生成直线路径,实现打捞船的自动航行,同时双目摄像头进行图像的采集;
9、步骤2、获取当前水域的图像信息,采用opencv图像预处理算法,得到具有物体矩形轮廓的区域图像,根据水域的图像特征,识别出当前图像中出现的物体;
10、步骤3、通过采用已经训练好的mobilenetv2-yolo-fastest模型对步骤1中所得到的物体进行目标检测,当检测的目标为死鱼时,执行步骤4,否则继续执行步骤1;
11、步骤4、比较超声波模块与双目摄像头所测量的距离l1与l2,若其误差小于5%,则执行步骤5,否则打捞船将会返回起点;
12、步骤5、通过超声波测得的距离l1来修正双目摄像头所测得的距离l2,得到修正后的距离l,判断l是否在打捞网可打捞范围内,若在范围内则执行步骤6;若不在范围内,则向电机驱动模块发送指令使其控制正反螺旋桨旋转,使其向打捞物体靠近;
13、步骤6、通过stm32模块内置的打捞控制算法来调节打捞船与待打捞物体之间的位置,调节完成后执行步骤7;
14、步骤7、舵机组控制打捞网对其进行打捞,并将其放置在专门的放置箱中,打捞网归位后重新执行步骤1,直至完成整个航行;完成整个航行后,打捞船返回起点。
15、具体地,所述的打捞控制算法,将双目摄像头采集的画面分为出现和居中两帧,当画面中出现需要打捞的物体时,记为第一帧,通过一系列变化后使物体处于画面中间位置记为最后一帧;将第一帧物体的中心点记为a点,a点投影在最后一帧画面上记为b点,b点在最优一帧画面中水平中心线上的投影记为c点,最后一帧画面的中心点记为d点;通过b点与c点在屏幕中的垂直距离,自动调整打捞船与双目摄像头,保证使待打捞物体处于屏幕的水平中心线上,随后根据待打捞物体的中心点c点与d点之间的水平距离,自动调整打捞船与双目摄像头,保证最终使带打捞物体处于中心可打捞区域。
16、本发明与现有技术相比,具有以下优点和有益效果:
17、1.本发明采用自动航行的方式,通过设置的航行轨迹,让打捞船按照既定的路径进行航行,能满足整个水域的打捞工作,打捞范围大,解决传统打捞船依赖人工的问题。
18、2.本发明采用的控制系统具有智能化,功耗低等特点,适合中小型水产养殖区域内的死鱼打捞。可解决传统打捞效率低、员工安全性得不到保证、打捞不及时等问题。
19、3.本发明基于stm32与opencv图像处理以及深度学习算法相结合,使打捞船具有智能识别以及个性化打捞的功能。
20、4.本发明所采用的检测模型属于轻量化模型,能做到实时检测,对于无人艇来说响应时间比较短,更适合打捞工作的实现。