一种基于视觉识别的多种类宠物喂食系统及其喂食方法
文献发布时间:2023-06-19 16:08:01
技术领域
本发明涉及宠物喂食系统技术领域,特别是涉及一种基于视觉识别的多种类宠物喂食系统及其喂食方法。
背景技术
市场现行的宠物喂食机器,大致有三种类型。一是采用离线、机械控制方案,只能满足基础的喂食功能,在宠物进食之后自动补充,无法检测宠物进食情况,控制进食量,且无法区分不同的宠物。因为很多人家都既养猫又养狗。二是电控制的喂食机,虽然其可以远程打开喂食器,但是缺乏对设备端情况的了解,可能会错误投喂或者超量投喂,也不能做到多种类宠物分别投喂。三是带了视频模块的喂食机,其功能仅限于监控设备所在场景,人工远程喂食,但是没有考虑离线状态的喂食过程或多种类宠物的喂食。
发明内容
有鉴于此,本发明的目的在于提供一种基于视觉识别的多种类宠物喂食系统及其喂食方法,通过图像识别和侦测,实现对于多种宠物的区分和自主智能喂食,同时用户可以使用配套开发的手机APP,随时随地控制设备投放宠物粮。系统设计的针对不同宠物的两种喂食模式解决了现行宠物喂食机的使用缺陷。具体功能包括,通过检测网识别分类猫狗两种宠物,发出声音引导吃东西,或在云端控制,结合电机/伺服控制模块,完成对目标宠物的喂食操作。同时在进食过程中采集图片、视频、进食量等信息上传云端以供用户查看,把控宠物的健康情况。
为了实现上述目的,本发明采用如下技术方案:
一种基于视觉识别的多种类宠物喂食系统,所述喂食系统包括智能喂食装置;所述智能喂食装置包括装置本体、摄像头模块、音频模块、图像检测与分类模块、通信模块以及控制模块;
所述装置本体包括壳体,以及置于该壳体中的第一储粮机构、第二储梁机构、对应于所述第一储粮机构的第一食槽机构以及对应于所述第二储粮机构的第二食槽机构;
所述摄像头模块包括摄像头本体以及云台;
所述音频模块包括音频播放器以及预先录制的第一语音指令和第二语音指令;
所述图像检测与分类模块包括图像检测模型和图像分类模型;
其中,所述摄像头模块获取视频序列,并且将该识别序列分解为图像数据传输至图像检测与分类模块中,所述的图像检测模型针对得到的图像数据进行检测,判断图像中是否有目标宠物,再将存在目标宠物的图像输入至图像分类模型中,图像分类模型针对得到的图像中目标宠物的类别进行分类并且计数,其中,该目标宠物包括第一种类和第二种类;
当某一种类的宠物数量达到预设值时,所述控制模块生成其对应的控制信号,该控制信号通过打开对应的储粮机构,实现加粮并且通过控制所述音频模块播放对应的语音指令;其中,第一种类宠物,其对应的控制信息对应于第一储粮机构和第一语音指令,第二种类宠物,其对应的控制信息对应于第二储粮机构和第二语音指令。
进一步的,所述喂食系统还包括与所述智能喂食装置进行通讯连接的远程终端以及云端;
所述的智能喂食装置还包括储存模块,其中,该储存模块储存所述摄像头模块获取的视频序列,以及具有目标宠物的图像数据;
当某一种类的宠物数量达到预设值时,所述控制模块生成其对应的控制信号,该控制信号控制所述储存模块将具有该种类的视频序列以及图像数据传输至云端;
所述的远程终端上配置有APP,用户通过该APP获取云端上储存的视频序列或者图像数据。
其中,所述远程终端包括智能手机或者平板电脑。
进一步的,用户基于所述远程终端上配置有的APP,下发控制指令,该控制指令经过所述云端发送至所述智能喂食装置中;
所述控制模块基于该控制指令执行如下的操作:
控制摄像头模块实时获取周围视频序列,并将获取到的实时视频序列传输至云端中;或者,
控制所述第一储粮机构或者第二储梁机构的开与闭,实现其对应食槽机构的加粮;或者,
控制所述音频模块播放所述第一语音指令或者第二语音指令。
进一步的,所述两个食槽机构的底部均置有压力传感器,该压力传感器持续获取压力数据并发送至控制模块,当某一时刻的某一食槽机构的压力数据大于预设的值时,控制模块发出控制指令控制其相应的储粮机构关闭。
进一步的,所述的第一种类宠物为狗,所述的第二种类宠物为猫,相应的,所述第一储粮机构中储存有猫粮,所述第二储粮机构中储存有狗粮;
所述的第一语音指令为主人呼唤狗的指令,所述第二语音指令为主人呼唤猫的指令。
进一步的,所述的图像检测模型和所述图像分类模型均采用caffe模型,所述图像检测模型的caffe模型,为针对darknet模型进行训练转化得到;所述的图像分类模型的caffe模型,为针对Pytorch模型进行训练转化得到;
其中,模型的训练过程在云端进行,训练所用的数据集为网络公开数据集或者基于摄像头模块获取的图像制成的数据集。
进一步的,所述通信模块包括:配置有的HI3881网卡,用以连接公网,采用HTTP通讯协议进行数据的发送与接收。
进一步的,所述控制模块包括:硬件控制板以及与之进行通讯连接的摄像头开发板;
所述摄像头开发板用于根据某一种类的宠物数量达到预设值时,生成其对应的控制信号,并传输至所述硬件控制板;所述硬件控制板根据该控制信号以控制对应的储粮机构。
一种基于视觉识别的多种类宠物喂食系统的喂食方法,所述方法包括智能投喂方法,其包括:
步骤S1、通过所述摄像头模块持续获取实时视频流,并且分解为图像数据传入所述图像检测与分类模块中;
步骤S2、所述的图像检测模型对传入的图像数据进行判别,若该图像中存在目标宠物,则传入图像分类模型中进行宠物种类分类,若不存在目标宠物,则弃置该图像等待下一帧图片的传入,其中,所述的目标宠物包括:猫和狗;
步骤S3、当所述图像分类模型接收到具有目标宠物的图像时,对该图像中的目标宠物进行分类,并且对分类结果进行记数;
步骤S4、当某一种类的宠物数量达到预设值时,所述控制模块生成其对应的控制信号,该控制信号通过打开对应的储粮机构,实现加粮并且通过控制所述音频模块播放对应的语音指令,以及该种类的宠物视频以及图像传入至与该智能喂食装置信息通讯连接的云端;其中,该语音指令为主人呼唤主人的语音指令,第一储粮机构中储存有猫粮,所述第二储粮机构中储存有狗粮。
进一步的,所述方法还包括远程在线投喂方法,该方法基于与所述智能喂食装置进行通讯连接的远程终端以及云端;所述方法包括:
步骤S1、用户通过所述远程终端发出观看实时视频的控制指令,该控制指令经过所述云端传递至所述智能喂食装置中,通过调用该装置的摄像头模块,实时查看实时场景情况;
步骤S2、用户根据远程终端上显示的实时场景情况,进行选择发出添加猫粮的指令或者添加狗粮的指令,该加粮指令经过所述云端传递至所述智能喂食装置中,所述控制模块通过驱动相应的储梁机构,以执行该指令。
本发明的有益效果是:
本发明采用智能投喂和在线远程投喂两种模式,满足了市场现行宠物喂食机所不能满足的使用场景。神经网络的应用使得此系统可以分类别的对多宠物进行投喂。而基于网络的进食情况的上传可以让用户看到自己宠物的进食过程以及进食量,控制宠物的健康进食。
附图说明
图1为本发明提供的一种基于视觉识别的多种类宠物喂食系统,其现场装置的结构示意图;
图2为本发明提供的一种基于视觉识别的多种类宠物喂食系统,其个功能模块实现思路流程图;
图3为本发明提供的一种基于视觉识别的多种类宠物喂食系统,其开发板的UI界面示意图;
图4为本发明提供的一种基于视觉识别的多种类宠物喂食系统,其远程终端配套APP的功能示意图。
附图:
1-常闭漏斗、2-外立面后板、3-外立面侧板、4-活板门、5-送粮坡道、6-送粮舵机、7-食槽舵机、8-食槽、9-底板。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,该现场装置的结构具体包括:
装置本体,该装置本体具体包括:外立面后板2、与该外立面后板2相连接的两个外立面侧板3以及底板9,其中,在该装置本体的顶部还设置有两个常闭漏斗1,
具体的说,在本实施例中,常闭漏斗1为光敏树脂材质,用于存储一定数量的宠物粮食,其下具有开口,可以向下送粮。外立面后板2为玻璃纤维材质,作为主体框架,大部分机构固定于其上。外立面侧板3为玻璃纤维材质,作为主体框架,与后半一起固定其他机构;底板9为玻璃纤维材质,支撑整个系统。
在上述的两个常闭漏斗1的底部均设置有活板门4,该活板门4为敏树脂材质,使用橡皮筋进行固定,使其平时处于常闭状态。
活板门4的下方对应的是送粮坡道5,该送粮坡道5为光敏树脂材质,在活板门开启后将粮食导入食槽,固定于玻纤板支架上。
在本实施例中,通过采用送粮舵机6,其型号为SG90,使用时其通过向左或向右牵引绳索,绳索通过送粮坡道5上的圆孔牵动活板门4,实现常闭漏斗1与活板门4的开启与关闭。
在本实施例中,还设置有食槽舵机7,该食槽舵机7的型号为SG90,通过驱动食槽,将对应侧的食槽旋出,接受从上部机构送出的食物。
在送粮坡道5的下方设置有食槽8,该食槽8为光敏树脂材质,接受并存储送出的实物,同时也直接为宠物喂食。
本发明的功能开发框架主要如图2所示。现对具体实施方案做具体介绍(下文中的3516/Taurus均指海思的HI3516DV300,也是上文中的摄像头开发板,3861均指HI3861V100,也是上文中的硬件控制板):
实施例1:智能投喂模式
具体的说,在本实施例中,该智能投喂模式的实现依赖于硬件控制、视觉识别、网络传输三个部分,具体包括:
(1)视觉识别:使用Taurus套件用于AI视觉处理。采用基于Darknet框架的Yolo2检测网进行AI应用开发与部署,并将检测结果区域给分类网进行识别,进而判断宠物种类,从而实现对于图像的抓取与智能分类。这里分实现思路和调用思路介绍。
检测网分类网的实现思路:
步骤S1:检测网部分中数据集的制作,首先通过python程序对批量图片进行一定格式的重命名,之后使用labelme工具对数据集进行标注,采用矩形标注,后每标注一张图片生成一个对应的json文件,其次使用python程序提取每个json文件中矩形标注时的两个点左边,通过计算转化为darknet需要的数据格式,即Class id、center_x、center_y、w、h,并将信息写入txt文件。下一步使用matlab程序生成存放路径的txt文件。数据集制作完成。
步骤S2:检测网使用ModelArts进行云端训练,上传数据集和代码,搭建训练环境。后将训练生成的darknet模型转换为caffe模型。Caffe模型通过海思提供的RuyiStudio进行量化生成wk文件。
步骤S3:分类网采用Pytorch中开源的Resnet18神经网络模型,包含17个卷积层+1个全连接层,在华为云端进行训练,后根据平台要求将训练后的Pytorch模型转换为Caffe模型。数据集相关,使用Taurus开发板自带的摄像头进行视频的拍摄,后按一定频率截取成图片,并结合网络开源数据集,按格式给标签后打包上传云端。后将训练生成的Caffe模型通过海思提供的RuyiStudio进行量化生成wk文件,再基于HiOpenAIS进行插件制作和模型部署,最终实现对于猫狗的可视化推理和智能分类。
检测分类网的调用及结果处理包含以下步骤:
步骤S1:摄像头采集实时视频流,并做一定处理分解为图片,图片分别送入存储区域,检测分类网,视频流同时也会送入存储区域,其中图片格式可为jpg、png;
步骤S2:步骤S1中的图片进入检测分类网之后,首先由检测网对当前图片中是否存在目标宠物进行判别,若存在则送入分类网,不存在则弃置图片等待下一帧图片的传入;
步骤S3:步骤S2中检测网检测到有效的图片送入分类网,分类网会将图中的宠物进行分类,分类结果会进行算法处理;
步骤S4:步骤S3中的算法处理是对分类结果进行记数,当同一类宠物的有效分类结果累计到达一定数量后,会给出当前宠物有进食倾向的信号;
步骤S5:步骤S4中得到的信号有三个作用,一是送入存储区域,告知存储部分当前保存的视频以及图片有效,可以送入网络传输部分传至云端,二是控制打开音频模块,播放预先录制的主人音频,呼唤宠物进食,三是将信号送至硬件控制部分;
(2)网络传输:基于HI3516的网络编程,其主要的实现思路是,配置HI3516带的HI3881网卡,使其可以连接公网。让后通过一定的通讯协议(案例中采用的是HTTP,亦可为其它协议)进行数据的发送与接收。这里分实现思路和调用思路介绍。
网络传输实现思路:
步骤S1:配置网卡需要手动打开配置udhcpc服务,并用wpa_supplicant配置网络连接,并配置DNS服务器。
步骤S2:网络连接成功之后,选择华为云作为我们云服务平台(亦可用其它平台如阿里云、腾讯云),使用其OBS桶服务。用HTTP访问华为云桶服务,首先要生成鉴权码,附于HTTP的Header之中,同时发送Date等信息,用于鉴权码的校验。然后就可以在其规则之下顺利的进行数据的传递。
步骤S3:使用网络编程的目的在于采集各类信息进行传递,期间就包含视频的采集和图片的采集,以及一小部分转码工作,基于HI3516板端strm服务以及截图插件的jpg转码功能,实现了数据采集,最后通过HTTP转发至云端桶中。而控制信息和进食量信息的传递只是简单txt文件的传递。
同时考虑到网络传输的速度限制,以及运行占用时间长度的广阔。创建三个子线程分别进行三种功能的HTTP发送\接收。线程之间全局变量同步并读写文件实现线程同步。
网络传输调用思路:
步骤S1:依托于自行设计的摄像头开发板UI界面,用户可以输入并连接至已知网络;
步骤S2:本系统基于HTTP协议开发出了一个适用于本系统摄像头开发板连接至云端的特定函数库,实现HTTP通信的建立以及不同内容的上传;
步骤S3:由分类网给出的信号会打开网络传输功能,以HTTP协议为工具,在摄像头开发板端进行socket编程,将特定格式的图片和特定编码类型的视频流、文本类型的进食时间及质量分线程传至云端,其中图片格式为jpg、png,视频格式为H264,H265;
步骤S4:步骤S3所上传的数据将通过云服务转发至用户手机APP,用户可以随时查看宠物进食情况;
对上述网络传输应用思路步骤S1中的UI界面说明:本发明位于HI3516的UI界面主要如图3所示:使用HiGVBuilder进行UI界面的设计,UI界面如上图所示。通过SET按键和BACK按键进行两个页面之间的切换,用户在SET界面输入自定义的wifi名称和密码,按下OK键连接广域网。在第二个界面中设计一个人性化的软键盘,包含字符、大小写切换、空格、横线、退格等键。每个按键设置两个事件,分别是touch事件和click事件,click事件用于实际输入字符,存入数组并显示在编辑框,touch事件用于按键的动态效果,当手按上时按键显示不同颜色,从而分别是否成功按了按键。
(3)硬件控制:包含了基于HI3861的动力控制系统及与HI3516的串口通信部分:这里分实现思路和调用思路介绍:
实现思路:
步骤S1:HI 3861的整体程序采用了Lite-OS操作系统来构建,分别创建数个子任务,完成不同的功能。其中重要的是串口任务、电机控制任务、压力传感器采集任务。机器工作的最末端就是电机的运动完成各项工作,串口任务以及压力传感器采集任务都是为其提供运动的依据以及时机。
步骤S2:为了实现对不同宠物投放不同的宠物粮食,用PWM的方法控制三个舵机来分别实现不同种类粮食的投放和存储。而控制电机收放的信号量由HI3516识别猫狗之后给出(或者APP控制),同时使用ADC采集位于粮食碗里的薄膜压力传感器的数值,来确定投放量并读出食用量。
步骤S3:串口通信任务包含了内容的打包、发送、读取、crc校验,有效的读取到控制信息并返回进食量信息供后续处理。
调用思路:
步骤S1:硬件控制板与摄像头开发板建立通讯,接受来自摄像头开发板的控制;
步骤S2:摄像头开发板的控制信号中包含了当前的两种宠物的情况,当某种宠物的状态为想进食时,硬件控制板会通过PWM控制舵机先旋出对应的食槽,再控制舵机打开对应常闭漏斗的活门板放出粮食,再根据食槽中压力传感器的返回数据决定放粮的质量;
步骤S3:放粮之后硬件控制板会持续检测食槽内粮食的余量,在一定时间后将本次宠物进食量返回摄像头开发板,以供上传云端;
实施例2:远程投喂模式
具体的说,在本实施例中,该远程投喂模式主要包含两两方面内容,一是网络传输、二是硬件控制。
(1)网络传输:基于HI3516的网络编程,其主要的实现思路是,配置HI3516带的HI3881网卡,使其可以连接公网。让后通过一定的通讯协议(案例中采用的是HTTP,亦可为其它协议)进行数据的发送与接收。这里分实现思路和调用思路介绍。
网络传输实现思路:
步骤S1:配置网卡需要手动打开配置udhcpc服务,并用wpa_supplicant配置网络连接,并配置DNS服务器。
步骤S2:网络连接成功之后,本系统基于HTTP协议开发出了一个适用于本系统摄像头开发板连接至云端的特定函数库,实现HTTP通信的建立以及不同内容的上传;
步骤S3:选择华为云作为云服务平台(亦可用其它平台如阿里云、腾讯云),使用其OBS桶服务。用HTTP访问华为云桶服务,首先要生成鉴权码,附于HTTP的Header之中,同时发送Date等信息,用于鉴权码的校验。然后就可以在其规则之下顺利的进行数据的传递。
步骤S4:用户在手机APP下发控制指令,HI3516将手机APP传输的控制指令转发给HI3861;
步骤S5:HI3516采集各类信息进行传递,期间就包含视频的采集和图片的采集,以及一小部分转码工作,基于HI3516板端strm服务以及截图插件的jpg转码功能,实现数据采集,最后通过HTTP转发至云端桶中。而控制信息和进食量信息的传递只是简单txt文件的传递。
同时考虑到网络传输的速度限制,以及运行占用时间长度的广阔。创建三个子线程分别进行三种功能的HTTP发送\接收。线程之间全局变量同步并读写文件实现线程同步。
网络传输调用思路:
步骤S1:依托于自行设计的摄像头开发板UI界面,用户可以输入并连接至已知网络;
步骤S2:手机APP下发查看设备周围环境的指令,HI3516收到后通过strm服务,将视频流回传经华为云转发至用户手机;
步骤S3:用户查看环境后根据宠物情况,分类别下发投喂指令,指令转发至HI3861,进行进一步控制;
步骤S4:上传宠物的进食数据将通过云服务转发至用户手机APP,用户可以随时查看宠物进食情况;
(2)硬件控制包含了基于HI3861的动力控制系统及与HI3516的串口通信部分:这里分实现思路和调用思路介绍:
实现思路:
步骤S1:HI 3861的整体程序采用了Lite-OS操作系统来构建,分别创建数个子任务,完成不同的功能。其中重要的是串口任务、电机控制任务、压力传感器采集任务。机器工作的最末端就是电机的运动完成各项工作,串口任务以及压力传感器采集任务都是为其提供运动的依据以及时机。
步骤S2:为了实现对不同宠物投放不同的宠物粮食,用PWM的方法控制三个舵机来分别实现不同种类粮食的投放和存储。而控制电机收放的信号量由HI3516识别猫狗之后给出(或者APP控制),同时使用ADC采集位于粮食碗里的薄膜压力传感器的数值,来确定投放量并读出食用量。
步骤S3:串口通信任务包含了内容的打包、发送、读取、crc校验,有效的读取到控制信息并返回进食量信息供后续处理。
调用思路:
步骤S1:硬件控制板与摄像头开发板建立通讯,接受来自摄像头开发板的控制;
步骤S2:摄像头开发板的控制信号中包含了当前的两种宠物的情况,当某种宠物的状态为想进食时,硬件控制板会通过PWM控制舵机先旋出对应的食槽,再控制舵机打开对应常闭漏斗的活门板放出粮食,再根据食槽中压力传感器的返回数据决定放粮的质量;
步骤S3:放粮之后硬件控制板会持续检测食槽内粮食的余量,在一定时间后将本次宠物进食量返回摄像头开发板,以供上传云端;
对上述步骤中的手机APP做介绍:本发明配套的APP功能主要如图4所示,为了实现对喂食系统的物联控制,本项目基于Android平台开发了终端控制应用。使用华为云OBS对象服务服务器搭建喂食器与应用间的通信。
综上所述,本发明通过图像识别和侦测,实现对于多种宠物的区分和自主智能喂食,同时设计设备端的UI用户界面以及手机APP,可以随时随地查看进食情况、控制设备投放宠物粮,完美解决现有技术中喂食机存在的问题,填补空缺、便利生活。
本发明未详述之处,均为本领域技术人员的公知技术。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
- 一种基于视觉识别的多种类宠物喂食系统及其喂食方法
- 宠物喂食器、喂食系统及喂食器控制方法