具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一方面,提供了一种圈养栏信息的确定方法的方法实施例。
可选地,在本实施例中,上述圈养栏信息的确定方法可以应用于如图1所示的由图像采集设备101和服务器103所构成的硬件环境中。如图1所示,图像采集设备,用于采集待处理的第一图像,其中,第一图像是对畜牧场进行拍摄得到的图像,畜牧场用于通过圈养栏来隔离被圈养的对象;服务器,用于利用目标模型对第一图像中的圈养栏进行识别,得到包括识别出的圈养栏的第二图像,对第二图像进行去噪声处理,得到第三图像,并利用第三图像确定畜牧场中圈养栏的信息,其中,目标模型是预先设置好的用于进行圈养栏识别的语义分割神经网络模型。服务器103通过网络与图像采集设备101进行连接,可用于为图像采集设备101提供服务(如图像分析服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,图像采集设备101并不限定于摄像头、相机、手机、平板电脑、载有图像传感器的无人机等。
本申请实施例的圈养栏信息的确定方法可以由服务器103来执行,也可以由服务器103和图像采集设备101共同执行。图2是根据本申请实施例的一种可选的圈养栏信息的确定方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,获取待处理的第一图像,第一图像是对畜牧场进行拍摄得到的图像,畜牧场用于通过圈养栏来隔离被圈养的对象。
上述被圈养的对象可以为猪、鸡、羊等家禽,后续以猪为例进行说明。
步骤S204,利用目标模型对第一图像中的圈养栏进行识别,得到包括识别出的圈养栏的第二图像,目标模型是预先设置好的用于进行圈养栏识别的语义分割神经网络模型。
步骤S206,对第二图像进行去噪声处理,得到第三图像。
步骤S208,利用第三图像确定畜牧场中圈养栏的信息。
相关技术中的畜牧场,圈养栏相关信息的捕捉识别,目前是通过人工方式识别,效率较低,通过上述步骤,直接对畜牧场进行拍摄得到的图像,利用目标模型对第一图像中的圈养栏进行大概识别,得到包括识别出的圈养栏的第二图像,并对第二图像进行去噪声处理,得到第三图像,然后利用第三图像确定畜牧场中圈养栏的信息,从而可以通过图像识别的方式识别出圈养栏相关的信息,可以解决相关技术中统计圈养栏信息的效率较低的技术问题,进而达到快速识别圈养栏相关信息的技术效果。
在一种可选的方案中,可以采用局部动态阈值分割的方式来进行圈养栏的栏杆识别,当栏杆外框像素的灰度基本一致,且与周围环境像素的灰度有较大差别时,通过设置合适的阈值条件,可初步提取到栏杆,然后通过形态学处理,可准确检测到栏杆;也可基于活动轮廓模型的图像分割,此法将图像分割问题转化为求解能量最小化的变分问题,首先设定一条初始轮廓曲线,通过最小化能力泛函,使这条曲线逐步逼近待分割栏杆的轮廓。
但是考虑到畜牧场环境较为复杂,若采用上述第一种方案,当栏杆灰度不同,或栏杆与周围环境像素的灰度差别不大时,局部动态阈值分割法检测效果不佳;若采用第二种方案,当场景移植时,摄像头角度,光照条件都会发生很大变换,这种方案不具备泛化性。
为了克服上述缺陷,本申请还提供了一种使用义分割神经网络模型(如Enet,后续以Enet为例进行说明)分割网络的栏杆的检测方案,将其应用于畜牧业,可对牲畜管理提供助力,能够在较差环境中进行,即光线不固场景下,增加了方案的场景兼容性。下面结合图2所示的步骤进一步详述本申请的技术方案。
在步骤S202提供的技术方案中,通过图像采集设备采集第一图像,图像采集设备可以为固定在畜牧场内的摄像头,为了节约成本和提高采集的针对性,也可以采用设有摄像头的无人机来采集,如无人机可以通过巡航的方式来采集第一图像。
在步骤S204提供的技术方案中,上述目标模型主要包括两个部分,即第一网络(可称为初始层initial层)和第二网络(也可称为瓶颈结构),以Enet为例,为了满足实际应用中对方案的时效性极高的要求,Enet通过减少浮点运算解决了语义分割模型时效性差的问题,其模型体系结构由初始块(即initial层所在的模块)和多个瓶颈结构(bottleneckmodule)组成,如五个瓶颈结构,此时前三个瓶颈结构用于编码输入图像,后面两个用于解码输入图像。
在本申请的方案,在利用目标模型对第一图像中的圈养栏进行识别,得到包括识别出的圈养栏的第二图像时,可通过目标模型中的第一网络对第一图像执行压缩操作,得到第四图像,压缩操作用于消除第一图像中的视觉冗余信息(描述信源的数据是信息和数据冗余之和,即,数据=信息+数据冗余,视觉冗余是图像数据中普遍存在的一种数据冗余),如利用initial层对图像进行压缩,过滤图像中的视觉冗余信息,如图3所示,并行通过大小为3*3、步长stride为2的卷积核与最大池化层MaxPooling,将卷积核与最大池化层对输入处理得到的两个结果在深度(channel)通道上串联concat在一起;通过目标模型中的第二网络对第四图像进行语义分割,得到第二图像,如在Enet中,五个瓶颈结构中包括较大的编码器(如前三个瓶颈结构)和较小的解码器(如后两个瓶颈结构),在不明显影响分割精度的情况下尽可能地缩小了网络的体积,减少了参数数量。
可选地,在通过目标模型中的第一网络对第一图像执行压缩操作,得到第四图像时,可通过第一网络的卷积层对第一图像执行卷积操作,并通过第一网络的池化层对第一图像执行池化操作;通过第一网络的拼接层将执行卷积操作得到的结果和执行池化操作的结果拼接起来,得到第四图像。
以Enet为例,瓶颈结构如图4所示,瓶颈模块可包括:1*1的投影层,用于降低特征的维度;主卷积层(conv),用于进行特征卷积;1*1的扩展层;在所有卷积层之间放置批量标准化Regularizer和PReLU。如果瓶颈模块是下采样,则可将最大池化层(MaxPooling)添加到主分支,相反如果是上采样,则将填充层Padding添加到主分支。第一个1*1的投影可被替换为2*2卷积,步长stride=2,对于regularizer(正则化器),可使用Spatial Dropout。
在图4中,可以进行批量归一化BN处理,PReLU表示带参数的修正线性单元激活函数;MaxPooling表示最大池化。
在实际场景中,本方案可以对栏杆进行精确分割,从而达到检测栏杆的目的,在图5所示场景中,使用本方案的检测结果(即第二图像)如图6所示。
在步骤S206提供的技术方案中,在对第二图像进行去噪声处理,得到第三图像时,可以通过如下步骤实现:
步骤S2062,对第二图像进行形态学处理,得到第五图像,形态学处理用于通过膨胀处理和腐蚀处理消除第二图像中的噪声。
可选地,对第二图像进行形态学处理,得到第五图像包括:膨胀公式为:
其中,A表示所述第二图像,B表示卷积核,
表示膨胀运算的运算符,x表示一个点,(B)
X∩A≠Φ表示利用B对x进行膨胀处理的结果(B)
X与A的交集不为空集Φ,意思是在用B对A做卷积的时候,保证卷积核和A是有交集的,即卷积有边界;腐蚀公式为:
其中,Θ是腐蚀运算的运算符,
表示利用B对x进行腐蚀处理的结果(B)
X属于A,表示卷积后的结果要在A范围内。
先进行腐蚀,然后是膨胀,其中侵蚀首先消除噪声(并收缩物体)然后扩张再次扩大物体,但噪声将从先前的侵蚀中消失,从而达到降噪的目的。通过这些操作可提取关于物体形状的更好(更少噪声)信息或放大重要特征,如角点栏杆检测的情况。
步骤S2064,对第五图像进行连通域分析,得到第三图像,其中,连通域分析用于消除第五图像中的噪声。
可选地,对第五图像进行连通域分析,得到第三图像包括:识别出第五图像中的连通域,并将第五图像中面积小于第一目标阈值的连通域用黑色填充,得到第六图像;对第六图像中像素点的像素值进行取反,得到第七图像;识别出第七图像中的连通域,并将第七图像中面积小于第二目标阈值的连通域用黑色填充,得到第八图像;对第八图像中像素点的像素值进行取反,得到第三图像。
通过上述方案,可以进一步消除图像中的噪声,并让需要的特征(如栏杆)更为明显,填补栏杆间空缺。
在步骤S208提供的技术方案中,利用第三图像确定畜牧场中圈养栏的信息,如利用闭合的区域来确定圈养栏的数量和位置,进一步确定圈养栏中猪的数量等。
作为一种可选的实施例,在智能猪场系统中,猪只均以栏为单位进行圈养,栏与栏之间多使用铁制栏杆进行分隔,智能检测栏杆的算法可以为后续智能猪场系统的搭建提供有力支持。本申请的技术方案应用于猪养殖场的方案如图7所示:
步骤S702,分割检测栏杆。
使用深度学习方法分割检测栏杆,使用Enet网络经过训练,得到栏杆分割模型(即目标模型),将监控图像输入模型,得到栏杆分割图像,监控图像(即第一图像)如图8所示,栏杆检测结果如图9所示。
步骤S704,形态学处理,填补栏杆间空缺。
对检测结果进行形态学处理。通过膨胀和腐蚀,将图像的白色部分扩张或缩减,以填补栏杆间空缺。图像膨胀和腐蚀公式分别为:
其中,A表示栏杆检测图像,B表示卷积核,
是膨胀运算的运算符,Θ是腐蚀运算的运算符。
步骤S706,寻找连通域。
寻找图像连通域。通过对二值图像中白色像素(目标)的标记,让每个单独的连通区域形成一个被标识的块。
步骤S708,根据场景,填充无关连通域。
根据场景,填充无关连通域,将面积较小的连通域填充成黑色,进一步确定主栏位的位置,填充结果如图10所示。
步骤S710,图像取反。遍历每个像素的像素值,用255去减去每个像素值,得到取反图像。
步骤S712,寻找并填充小连通域。对取反后的图像计算灰度值为255的面积,设置合适阈值,填充小面积区域为黑色,然后把小黑色区域去掉。
步骤S714,图像取反。即S710的相反步骤,结果如图11所示。
在本申请的技术方案中,使用深度学习分割模型检测栏杆,提高泛化性能;可将栏杆检测应用于畜牧业,帮助管理牲畜;提供了整套主栏位分析在畜牧业的落地方案,并提供了主栏位的填充方案流程。采用本申请的技术方案,可以有效地检测出栏杆,为后续牲畜管理做铺垫,例如栏内点数计算,智能猪场系统部署中,主栏位分析起到关键性的辅助作用,如前期可以减少摄像头角度的调试过程,到后期可以增加栏内猪智能计算的准确率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述圈养栏信息的确定方法的圈养栏信息的确定装置。图12是根据本申请实施例的一种可选的圈养栏信息的确定装置的示意图,如图12所示,该装置可以包括:
获取单元1201,用于获取待处理的第一图像,其中,第一图像是对畜牧场进行拍摄得到的图像,畜牧场用于通过圈养栏来隔离被圈养的对象;
识别单元1203,用于利用目标模型对第一图像中的圈养栏进行识别,得到包括识别出的圈养栏的第二图像,其中,目标模型是预先设置好的用于进行圈养栏识别的语义分割神经网络模型;
去燥单元1205,用于对第二图像进行去噪声处理,得到第三图像;
确定单元1207,用于利用第三图像确定畜牧场中圈养栏的信息。
需要说明的是,该实施例中的获取单元1201可以用于执行本申请实施例中的步骤S202,该实施例中的识别单元1203可以用于执行本申请实施例中的步骤S204,该实施例中的去燥单元1205可以用于执行本申请实施例中的步骤S206,该实施例中的确定单元1207可以用于执行本申请实施例中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,直接对畜牧场进行拍摄得到的图像,利用目标模型对第一图像中的圈养栏进行大概识别,得到包括识别出的圈养栏的第二图像,并对第二图像进行去噪声处理,得到第三图像,然后利用第三图像确定畜牧场中圈养栏的信息,从而可以通过图像识别的方式识别出圈养栏相关的信息,可以解决相关技术中统计圈养栏信息的效率较低的技术问题,进而达到快速识别圈养栏相关信息的技术效果。
可选地,识别单元包括:压缩模块,用于通过目标模型中的第一网络对第一图像执行压缩操作,得到第四图像,其中,压缩操作用于消除第一图像中的视觉冗余信息;分割模块,用于通过目标模型中的第二网络对第四图像进行语义分割,得到第二图像。
可选地,压缩模块还可用于:通过第一网络的卷积层对第一图像执行卷积操作,并通过第一网络的池化层对第一图像执行池化操作;通过第一网络的拼接层将执行卷积操作得到的结果和执行池化操作的结果拼接起来,得到第四图像。
可选地,上述去燥单元还可用于:对第二图像进行形态学处理,得到第五图像,其中,形态学处理用于通过膨胀处理和腐蚀处理消除第二图像中的噪声;对第五图像进行连通域分析,得到第三图像,其中,连通域分析用于消除第五图像中的噪声。
可选地,上述去燥单元还可用于:利用膨胀公式对第二图像进行膨胀处理并利用腐蚀公式对第二图像进行腐蚀处理,得到第五图像,膨胀公式为:
其中,A表示第二图像,B表示卷积核,
表示膨胀运算的运算符,x表示一个点,(B)
X∩A≠Φ表示利用B对x进行膨胀处理的结果(B)
X与A的交集不为空集Φ;腐蚀公式为:
其中,Θ是腐蚀运算的运算符,
表示利用B对x进行腐蚀处理的结果(B)
X属于A。
可选地,上述去燥单元还可用于:识别出第五图像中的连通域,并将第五图像中面积小于第一目标阈值的连通域用黑色填充,得到第六图像;对第六图像中像素点的像素值进行取反,得到第七图像;识别出第七图像中的连通域,并将第七图像中面积小于第二目标阈值的连通域用黑色填充,得到第八图像;对第八图像中像素点的像素值进行取反,得到第三图像。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述圈养栏信息的确定方法的服务器或终端。
图13是根据本申请实施例的一种终端的结构框图,如图13所示,该终端可以包括:一个或多个(图13中仅示出一个)处理器1301、存储器1303、以及传输装置1305,如图13所示,该终端还可以包括输入输出设备1307。
其中,存储器1303可用于存储软件程序以及模块,如本申请实施例中的圈养栏信息的确定方法和装置对应的程序指令/模块,处理器1301通过运行存储在存储器1303内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的圈养栏信息的确定方法。存储器1303可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1303可进一步包括相对于处理器1301远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1305用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1305包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1305为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1303用于存储应用程序。
处理器1301可以通过传输装置1305调用存储器1303存储的应用程序,以执行下述步骤:
获取待处理的第一图像,其中,第一图像是对畜牧场进行拍摄得到的图像,畜牧场用于通过圈养栏来隔离被圈养的对象;
利用目标模型对第一图像中的圈养栏进行识别,得到包括识别出的圈养栏的第二图像,其中,目标模型是预先设置好的用于进行圈养栏识别的语义分割神经网络模型;
对第二图像进行去噪声处理,得到第三图像;
利用第三图像确定畜牧场中圈养栏的信息。
处理器1301还用于执行下述步骤:
识别出第五图像中的连通域,并将第五图像中面积小于第一目标阈值的连通域用黑色填充,得到第六图像;
对第六图像中像素点的像素值进行取反,得到第七图像;
识别出第七图像中的连通域,并将第七图像中面积小于第二目标阈值的连通域用黑色填充,得到第八图像;
对第八图像中像素点的像素值进行取反,得到第三图像。
采用本申请实施例,提供了一种“获取待处理的第一图像,其中,第一图像是对畜牧场进行拍摄得到的图像,畜牧场用于通过圈养栏来隔离被圈养的对象;利用目标模型对第一图像中的圈养栏进行识别,得到包括识别出的圈养栏的第二图像,其中,目标模型是预先设置好的用于进行圈养栏识别的语义分割神经网络模型;对第二图像进行去噪声处理,得到第三图像;利用第三图像确定畜牧场中圈养栏的信息”的方案。可以通过图像识别的方式识别出圈养栏相关的信息,可以解决相关技术中统计圈养栏信息的效率较低的技术问题,进而达到快速识别圈养栏相关信息的技术效果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图13所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图13其并不对上述电子装置的结构造成限定。例如,终端还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行圈养栏信息的确定方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
获取待处理的第一图像,其中,第一图像是对畜牧场进行拍摄得到的图像,畜牧场用于通过圈养栏来隔离被圈养的对象;
利用目标模型对第一图像中的圈养栏进行识别,得到包括识别出的圈养栏的第二图像,其中,目标模型是预先设置好的用于进行圈养栏识别的语义分割神经网络模型;
对第二图像进行去噪声处理,得到第三图像;
利用第三图像确定畜牧场中圈养栏的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
识别出第五图像中的连通域,并将第五图像中面积小于第一目标阈值的连通域用黑色填充,得到第六图像;
对第六图像中像素点的像素值进行取反,得到第七图像;
识别出第七图像中的连通域,并将第七图像中面积小于第二目标阈值的连通域用黑色填充,得到第八图像;
对第八图像中像素点的像素值进行取反,得到第三图像。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。