CN115867946A - 基于视频对猪群中的猪进行计数的***和方法 - Google Patents

基于视频对猪群中的猪进行计数的***和方法 Download PDF

Info

Publication number
CN115867946A
CN115867946A CN202180032495.4A CN202180032495A CN115867946A CN 115867946 A CN115867946 A CN 115867946A CN 202180032495 A CN202180032495 A CN 202180032495A CN 115867946 A CN115867946 A CN 115867946A
Authority
CN
China
Prior art keywords
skeleton
animal
computing device
image
pig
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180032495.4A
Other languages
English (en)
Inventor
沈诗文
陈�光
文珑银
罗斯
薄列峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jd Financial Usa
Jingdong Technology Holding Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jd Financial Usa, Jingdong Technology Holding Co Ltd filed Critical Jd Financial Usa
Publication of CN115867946A publication Critical patent/CN115867946A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • G06V20/53Recognition of crowd images, e.g. recognition of crowd congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30232Surveillance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30242Counting objects in image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Image Analysis (AREA)

Abstract

提供了一种用于对猪舍中的猪进行计数的方法和***。该***包括计算设备和成像设备。计算设备具有处理器和存储有计算机可执行代码的存储设备。计算机可执行代码被配置为:接收从屋舍的一端到屋舍的另一端捕获的图像;使用神经网络对图像中的关键点进行检测;通过关联多个相关的关键点来识别猪骨架;跟踪在图像中的骨架以获得轨迹;将每个图像划分为激活区和去激活区;为激活区中的骨架指定空间值0,为去激活区中的骨架指定空间值1;对每个轨迹的空间值的一阶差分求和以获得轨迹计数;以及将轨迹计数相加以获得猪计数。

Description

基于视频对猪群中的猪进行计数的***和方法
交叉引用
在本公开的描述中引用和讨论了一些参考文献,其可能包括专利、专利申请和各种出版物。提供此类参考文献的引用和/或讨论仅用于阐明本公开的描述,并不承认任何此类参考文献相对于本公开是已有的。在本说明书中引用的或讨论的所有参考文献通过引用整体并入本文,并且与每篇参考文献通过引用单独并入的程度相同。
技术领域
本公开总体上涉及对大量动物进行计数,更具体地,涉及基于视频对猪群中的一群猪进行计数的***和方法。
背景技术
本文提供的背景描述是为了概括地呈现本公开的上下文。在本背景部分描述的范围内,目前发明人的工作、以及在提交申请时可能不符合已有技术的描述方面,既不明确也不隐含地承认为相对于本公开是已有的。
猪群舍通常容纳有大量的猪,并且频繁地统计在群舍中的猪的数量对于大型养猪设施来说是关键的管理任务。一方面,猪通常在不同的生长阶段被转移到不同的畜舍中,或按大小分组到单独的大围栏中,并且饲养员需要知道每个大围栏中有多少头猪。另一方面,将计数结果与猪的实际数量进行比较,可以及早发现意外事件,例如,猪的丢失。然而,在猪舍中行走来计数大量的猪,其劳动成本很高。
因此,本领域存在解决上述缺陷和不足的未解决需求。
发明内容
在某些方面,本公开涉及一种用于对屋舍中的动物进行计数的***。所述***包括计算设备和成像设备。所述计算设备包括处理器和存储有计算机可执行代码的存储设备。所述计算机可执行代码,在处理器处执行时,被配置为:
接收由所述成像设备从屋舍的一端到屋舍的相对的另一端捕获的多个图像;
使用神经网络对每个图像中的关键点进行检测;
通过将所述图像中的多个关键点进行关联来识别动物的骨架,其中,每个骨架对应于一个动物;
跟踪在所述图像中识别到的骨架,以获得所述骨架的轨迹;
将所述每个图像划分为激活区和去激活区;
为所述激活区中的骨架指定第一空间值,为所述去激活区中的骨架指定第二空间值;
通过将对应的一个轨迹中对应的一个骨架的所述第一空间值和所述第二空间值的一阶差分进行求和,来提供针对每个轨迹的轨迹计数;以及
将轨迹的轨迹计数相加以获得动物的计数。
在某些实施例中,每个骨架包括五种类型的关键点中的至少一种关键点,所述五种类型的关键点包括对应于动物头部的头部关键点、对应于动物颈部的颈部关键点、对应于动物背部的背部关键点、对应于动物腰部的腰部关键点以及对应于动物尾部的尾部关键点。每个检测到的关键点包括分类和向量,其中,分类指示所述检测到的关键点属于五种类型的关键点中的哪一种关键点,向量指示朝向与所述检测到的关键点属于同一骨架的至少一个检测到的关键点的方向。在某些实施例中,背部关键点被定义为根关键点,颈部关键点和腰部关键点被标记为相同类型,并且头部关键点和尾部关键点被标记为相同类型。
在某些实施例中,第一空间值为0,第二空间值为1。
在某些实施例中,激活区的大小和去激活区的大小基本相等,并且激活区在成像设备的移动方向上位于去激活区的前方。
在某些实施例中,计算机可执行代码还被配置为:过滤掉靠近活动扫描线的骨架,其中,活动扫描线将激活区和去激活区分开。
在某些实施例中,计算机可执行代码被配置为通过二分图匹配来跟踪在图像中识别到的骨架。
在某些实施例中,神经网络是卷积神经网络(CNN),并且动物是猪。
在某些实施例中,成像设备安装在屋舍上方的且从屋舍的一端到屋舍的另一端的导轨上。
在某些实施例中,神经网络在远程计算设备中进行训练,并且计算设备可与成像设备一起移动,计算设备为嵌入式设备。换言之,神经网络可以在猪计数***的计算设备上进行训练,或者在一些其它计算机上进行训练,然后被传送到猪计数***的计算设备。
在某些实施例中,成像设备包括固定在房屋顶部的多个相机以使得相机的视场覆盖屋舍的整个内部区域。
在某些实施例中,计算设备和成像设备被安装在无人机上。
在某些方面,本公开涉及一种用于对屋舍中的动物进行计数的方法。在某些实施例中,该方法包括:
由计算设备接收由成像设备从屋舍的一端朝向屋舍的相对的另一端捕获的多个图像;
由计算设备使用神经网络对每个图像中的关键点进行检测;
由计算设备通过将图像中的多个关键点进行关联来识别动物的骨架,其中,每个骨架对应于一个动物;
由计算设备跟踪在图像中识别到的骨架,以获得骨架的轨迹;
由计算设备将每一个图像划分为激活区和去激活区;
由计算设备为激活区中的骨架指定第一空间值,以及为去激活区中的骨架指定第二空间值;
由计算设备通过将对应的一个轨迹中对应的一个骨架的所述第一空间值和所述第二空间值的一阶差分进行求和,来提供针对每个轨迹的轨迹计数;以及
由计算设备将轨迹的轨迹计数相加,以获得动物的计数。
在某些实施例中,每个骨架包括五种类型的关键点中的至少一种关键点,所述五种类型的关键点包括对应于动物头部的头部关键点、对应于动物颈部的颈部关键点、对应于动物背部的背部关键点、对应于动物腰部的腰部关键点以及对应于动物尾部的尾部关键点。在某些实施例中,每个检测到的关键点包括分类和向量,其中,分类指示所述检测到的关键点属于五种类型的关键点中的哪一种关键点,向量指示朝向与所述检测到的关键点属于同一骨架的至少一个检测到的关键点的方向。
在某些实施例中,第一空间值为0,第二空间值为1。
在某些实施例中,激活区的大小和去激活区的大小基本相等,并且激活区在成像设备的移动方向上位于去激活区的前方。
在某些实施例中,该方法还包括:由计算设备过滤掉靠近活动扫描线的骨架,其中,活动扫描线将激活区和去激活区分开。
在某些实施例中,所述跟踪在图像中识别到的骨架的步骤是通过二分图匹配来执行的。
在某些实施例中,神经网络是卷积神经网络(CNN),并且动物是猪。
在某些实施例中,成像设备安装在屋舍上方的且从屋舍的一端到屋舍的另一端的导轨上。神经网络在远程计算设备中进行训练,并且计算设备可与成像设备一起移动,计算设备为嵌入式设备。
在某些方面,本公开涉及一种存储有计算机可执行代码的非暂时性计算机可读介质。计算机可执行代码,在计算设备的处理器处执行时,被配置为执行上述方法。
本公开的这些和其他方面将从以下结合以下附图及其说明的优选实施方案的描述中变得清楚,尽管其中的变体和修改可能会受到影响,但不会偏离本公开的新颖概念的精神和范围。
附图说明
附图示出了本公开的一个或多个实施例,并与书面描述一起用于解释本公开的原理。在可能的情况下,在整个附图中使用相同的附图标记来指代实施例的相同或相似的部件,在附图中:
图1示意性地描绘了根据本公开的某些实施例的猪计数***;
图2示意性地描绘了根据本公开的某些实施例的安装在猪舍中的猪计数***;
图3示意性地描绘了根据本公开的某些实施例的全卷积神经网络;
图4示意性地示出了根据本公开的某些实施例的从关键点热图和向量图导出的猪的骨架;
图5示意性地示出了根据本公开的某些实施例的骨架跟踪;
图6A示意性地示出了根据本公开的某些实施例的视频图像的视场;
图6B示意性地描绘了根据本公开的某些实施例的连续视频图像中的两个猪骨架的空间码;
图7A至图7G示意性地描绘了根据本公开的某些实施例的被追踪的猪的空间码;
图7H示意性地描绘了根据本公开的某些实施例的两个连续的时间码的求和;
图8A和8B示意性地描述了根据本公开的某些实施例的用于猪计数的过程;
图9示意性地描绘了根据本公开的某些实施例的用于猪计数的方法;
图10A及图10C示意性地示出了根据本公开的某些实施例的自上而下检测猪的方法;以及
图10B及图10D示意性地示出了根据本公开的某些实施例的的自下而上检测猪的方法。
具体实施方式
在以下示例中更具体地描述本公开,这些示例仅旨在作为说明,因为其中的许多修改和变体对于本领域技术人员来说将是清楚的。现在详细描述本公开的各种实施例。参考附图,在整套附图中,相同的数字指示相同的部件。除非上下文另有明确规定,否则本文的描述中和整个权利要求中使用的“一个”、“一”和“所述”的含义包括复数。此外,如在本公开的描述和权利要求书中所使用的,除非上下文另有明确规定,“在”的含义包括“在……中”和“在……上”。并且,为了方便读者,说明书中可以使用标题或副标题,这不影响本公开的范围。此外,本说明书中使用的一些术语在下文有更具体的定义。
本说明书中使用的术语在本领域中、在本公开的上下文中以及在使用每个术语的特定上下文中通常具有它们的普通含义。用于描述本公开的某些术语在下文或说明书中的其他地方讨论,以向从业者提供关于本公开的描述的额外指导。可以理解,同样的事情可以用不止一种方式表达出来。因此,替代语言和同义词可用于此处讨论的任何一个或多个术语,并且对于此处是否详细阐述或讨论术语没有任何特殊意义。本公开提供了某些术语的同义词。一个或多个同义词的使用不排除使用其他同义词。本说明书中任何地方的示例的使用,包括本文讨论的任何术语的示例,仅是说明性的,决不限制本公开内容或任何示例性术语的范围和含义。同样,本公开不限于本说明书中给出的各种实施例。
除非另有定义,本公开使用的所有术语(包括技术和科学术语)具有与本公开内容所属领域的普通技术人员通常理解的相同的含义。还应理解,诸如在常用词典中定义的术语应被解释为具有与其在相关技术和本公开的上下文中一致的含义,并且,除非在此明确定义,否则不会被解释为理想化的或过于形式化的意义。
如本文所述,“大约”、“大致”、“基本上”或“近似”应通常表示给定值或范围的20%以内,优选10%以内,更优选5%以内。本文给出的数值是近似的,意味着如果没有明确说明,可以推断出术语“大约”、“大致”、“基本上”或“近似”。
如本文所述,“多个”是指两个或更多个。
如本文所述,术语“包括”、“包含”、“携带”、“具有”、“含有”、“涉及”等应理解为开放式的,即意味着包括但不限于。
如本文所述,短语A、B和C中的至少一个应解释为表示逻辑(A或B或C),使用非排外性逻辑或(OR)。应当理解,在不改变本公开的原理的情况下,方法内的一个或多个步骤可以以不同的顺序(或同时)执行。如本文所述,术语“和/或”包括一个或多个相关列出项目的任何和所有组合。
如本文所述,术语“模块”可以指示例如在片上***中的属于或包括专用集成电路(Application Specific Integrated Circuit,ASIC);电子电路;组合逻辑电路;现场可编程门阵列(Field Programmable Gate Array,FPGA);执行代码的(共享的、专用的或组)处理器;提供所描述功能的其他合适的硬件组件;或以上部分或全部的组合。术语“模块”可以包括存储由处理器执行的代码的(共享的、专用的或组)存储器。
本文使用的术语“代码”可以包括软件、固件和/或微代码,并且可以指代程序、例程、函数、类和/或对象。上面使用的术语“共享”意味着可以使用单个(共享)处理器执行来自多个模块的一些代码或所有代码。此外,来自多个模块的一些代码或所有代码可以存储在单个(共享)存储器中。上面使用的术语“组”意味着可以使用处理器组执行来自单个模块的一些代码或所有代码。此外,可以使用存储器组来存储来自单个模块的一些代码或所有代码。
如本文所述,术语“接口”通常是指在部件之间的交互点处用于执行部件之间的数据通信的通信工具或装置。一般而言,接口可以既适用在硬件层面又适用在软件层面,且接口可以是单向接口或双向接口。物理硬件接口的示例可以包括电连接器、总线、端口、电缆、端子和其他I/O设备或部件。例如,与接口通信的部件可以是计算机***的多个部件或***设备。
本公开涉及计算机***。如附图所示,计算机部件可以包括物理硬件部件,其使用实线框示出,以及虚拟软件部件,其使用虚线框示出。本领域普通技术人员将理解,除非另有说明,否则这些计算机部件可以以软件、固件或硬件部件或其组合的形式来实现,但不限于这些形式。
本文描述的装置、***和方法可以通过由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非暂时性有形计算机可读介质上的可由处理器执行的指令。计算机程序还可包括存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁存储和光存储。
在下文中参考附图更全面地描述本公开,其中示出了本公开的实施例。然而,本公开可以以许多不同的形式体现并且不应被解释为限于这里阐述的实施例;相反,提供这些实施例是为了使本公开彻底和完整,并将本公开的范围充分传达给本领域技术人员。
在某些方面,本公开涉及使用计算机视觉(Computer Vision,CV)技术的自动猪计数和监测,这是支持集约化养猪管理同时降低成本的有前途的方式。在某些实施例中,本公开具有覆盖大区域的视场,可以处理猪频繁进出相机视场的情况,保留猪的详细个体信息,使用猪的准确位置信息,跨时间关联目标,适用于形状灵活、移动的目标,且适用于具有遮挡和交叠的室内场景。
图1示意性地描绘了根据本公开的某些实施例的猪计数***。如图1所示,***100包括机器人设备110、安装有机器人设备110的计算设备130、附接到机器人设备110并与计算设备130通信的成像设备170、以及可选的导轨190以用于机器人设备110沿其移动。在某些实施例中,计算设备130可以是具有有限处理、存储器以及存储容量的专用计算机,这降低了***100的成本,同时仍然具有足够的功率来实现***100的功能。在某些实施例中,计算设备130还可以是远离***100并且与成像设备170通信的服务器计算机、集群、云计算机或通用计算机。在某些实施例中,计算设备130是嵌入式的设备。在某些实施例中,经由网络进行通信,该网络可以是有线网络或无线网络,并且可以具有各种形式,例如公共网络和专用网络;或者经由非暂时性计算机介质进行通信,所述非暂时性计算机介质包括但不限于闪存驱动器、USB驱动器、硬盘驱动器、软盘、SD卡、光驱或任何其他便携式数据存储介质。在某些实施例中,计算设备130提供用户接口,以用于配置机器人设备110、计算设备130和成像设备170的参数,配置或管理设备110、130和170之间的通信,和/或为养猪场工作人员呈现计数结果。在某些实施例中,机器人设备110、计算设备130和成像设备170集成在一起,并一起沿着导轨190移动。
如图1所示,计算设备130可以包括但不限于处理器132、存储器134和存储设备136。在某些实施例中,计算设备130可以包括其他硬件组件和软件组件(未示出)以执行其相应的任务。这些硬件组件和软件组件的示例可以包括但不限于其他所需的存储器、接口、总线、输入/输出(I/O)模块或设备、网络接口和***设备。
处理器132可以是中央处理单元(Central Processing Unit,CPU),该中央处理单元用于控制计算设备130的操作。处理器132可以执行计算设备130的操作***(OperatingSystem,OS)或其他应用。在一些实施例中,计算设备130可以具有一个以上CPU作为处理器,例如两个CPU、四个CPU、八个CPU或任何合适数量的CPU。存储器134可以是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),以用于在计算设备130的运行期间存储数据和信息。在一些实施例中,存储器134可以是易失性存储器阵列。在一些实施例中,计算设备130可以在一个以上存储器134上运行。存储设备136是用于存储计算设备130的OS(未示出)和其他应用的非易失性数据存储介质。存储设备136的示例可以包括非易失性存储器,例如闪存、存储卡、USB驱动器、硬盘驱动器、软盘、光驱、固态硬盘(Solid-State Drive,SSD)或任何其他类型的数据存储设备。在一些实施例中,存储设备136可以是本地存储、远程存储或云存储。在一些实施例中,计算设备130可以具有多个存储设备136,这些存储设备136可以是相同的存储设备或不同类型的存储设备,计算设备130的应用可以存储在计算设备130的一个或多个存储设备136中。在一些实施例中,计算设备130是云计算机,并且处理器132、存储器134和存储设备136是是通过互联网按需提供的共享资源。在某些实施例中,计算设备130是为猪计数而设计的嵌入式***,并且可以包含具有集成的存储器和***接口的微处理器,或者包含普通微处理器。
如图1所示,存储设备136包括猪计数应用138。猪计数应用138用于为养猪场提供猪计数服务,其能够基于视频帧或视频图像实现自动猪计数。猪计数应用138包括图像捕获模块140、神经网络142、关键点关联模块144、跟踪模块146、空间编码模块148、时间过滤模块150、用户接口152和机器人控制模块154。在某些实施例中,猪计数应用138可以包括猪计数应用138的操作所必需的其他应用或模块。需要说明的是,各个模块由计算机可执行代码或指令实现,其共同构成一个应用。在某些实施例中,每个模块还可以包括子模块。可替代地,一些模块可以组合为一个堆叠。在其他实施例中,某些模块可以实现为电路而不是可执行代码,并且计算设备130可以由简单的电路板实现,其他附件组件安装在电路板上。在某些实施例中,猪计数应用138的一些或所有模块可以位于远程计算设备处或分布在云端。
视频捕获模块140用于在接收到指令或在执行猪计数应用138时,指示成像设备170捕获养猪场中猪舍的多个序列图像或视频帧,并将捕获到的视频帧发送到神经网络142。图2示意性地示出了安装在猪舍200中的***100。猪舍200可以是用于猪群的畜舍或大围栏。该群猪可以是从出生到断奶的猪仔,从断奶到断奶后约6-8周的保育猪,或从保育到完全长大一般持续16-17周的生长育肥猪。猪舍200可以有木地板、水泥地板或石头地板,并且天花板可以允许一定的阳光或者可以被完全遮蔽。在某些实施例中,本公开的猪舍200具有封闭空间,猪无法自由地离开猪舍200。如图2所示,导轨190可安装在猪舍200的天花板上,并具有第一端192和第二端194。机器人设备110可沿导轨190来回移动。成像设备170附接在机器人设备110下方。当机器人设备110位于位置196时,成像设备170具有如虚线矩形所示的视场202。请注意,视场202的长度方向或“X”方向是猪舍200的长度的一部分,视场202的宽度方向或“Y”方向与猪舍200的宽度基本相同。通过这种设计,成像设备170的视场202将完全覆盖猪舍的宽度方向。活动扫描线204将视场202分成两个区,在机器人设备110的移动方向的后侧的去激活区206,以及在机器人设备110的移动方向的前侧的激活区208。在某些实施例中,活动扫描线204基本上直接位于成像设备170的下方。在某些实施例中,由成像设备170捕获的图像可以是红绿蓝(RGB)图像或黑白图像。
神经网络142用于在从图像捕获模块140接收到捕获的图像时,对图像执行神经网络操作以对图像中的关键点进行检测,并将检测到的关键点发送到关键点关联模块144。在某些实施例中,神经网络142是自下而上的检测卷积神经网络(Convolutional NeuralNetwork,CNN)。图3示意性地描绘了用于对属于每一头猪的图像中的可见关键点进行检测的全卷积网络300。如图3所示,CNN300包括卷积层、卷积块、最大池化(maxpool)层和上采样层。深度可分离卷积用作基本构建块以降低计算成本。位置保留最大池化用于提高位置精度,其保留编码器的最大池化层的索引并将这些索引传递给解码器的对应的上采样层。
提供训练数据以用于训练神经网络300。在某些实施例中,训练数据包括一个或多个猪舍中的猪的多个图像。图像中刚性物体的检测通常是可靠的。然而,猪经常在猪舍内活动并且身体灵活,因此很难准确地检测和区分猪。为了解决这个问题,在某些实施例中,本公开使用关联的关键点来表示猪,而不是定义边界框并从边界框中提取特征。在某些实施例中,本公开使用五个特定的关键点来识别每头猪,这五个关键点对应于猪的头部、颈部、背部、腰部和尾部。在某些实施例中,将头部和尾部标记为相同类别以用于训练神经网络300,将颈部和腰部标记为相同类别以用于训练神经网络300。为了进一步提高检测准确度,本公开的某些实施例还包括关键点之间的关联。例如,对于猪的五个关键点,还记录相邻关键点之间的距离和相对角度。可以使用图像来测量关键点之间的距离,尤其是相邻关键点之间的距离。关键点之间的方向,尤其是相邻关键点之间的方向,可以用从一个关键点朝向另一关键点的向量来表示。使用图像中猪的五个关键点的位置和方向的标签,可以有效地训练神经网络142以推断相邻关键点之间的关系。
然后,可以使用经过良好训练的神经网络142来预测每一个捕获的图像中猪的关键点。图4示意性地示出了关键点的预测和关键点的关联以获得骨架。如图4所示,当捕获的帧402用作神经网络142的输入时,神经网络142用于根据捕获的帧402生成关键点热图404和向量图406。如404所示,每头猪都被标记有五个关键点。通过使用不同的关键点限定猪的不同部位,本公开可用于将一头猪与其它猪容易地区分开。例如,如果两个头部关键点和两个颈部关键点彼此靠近,则这两个头部关键点不太可能属于同一头猪,并且这两个颈部关键点不太可能属于同一头猪。此外,还可以基于关键点的距离和向量方向,以及可选地基于邻近区域的背部关键点、腰部关键点和尾部关键点,进一步确定头颈对。具体而言,向量图406可用于确定相邻关键点之间的关系。在某些实施例中,热图可以包括六个通道,五个通道用于各个关键点类型,一个通道用于背景。在某些实施例中,将头部和尾部限定为相同的类型,将颈部和腰部限定为相同的类型,因此五种类型可以简化为三种类型:头部/尾部关键点、颈部/腰部关键点、以及背部关键点。因此,热图中呈现了四个通道,三个通道用于各个关键点类型,一个通道用于背景。然后,热图预测被表示为逐像素多分类问题,并且每个像素被神经网络142学习为属于关键点类型之一或背景。
关键点关联模块144用于在从神经网络142接收到关键点的热图和向量图后,将图像中的每头猪的关键点进行关联以形成骨架,并将骨架发送到跟踪模块146。如图4所示,猪1、猪2、猪3和猪4的骨架408是从关键点热图404和向量图406导出的。在某些实施例中,当使用关键点之间的距离和向量方向时,属于同一头猪的关键点被关联起来。因此,每头猪都由五个关联的关键点来表示。在某些实施例中,图像中的猪的一部分会被遮挡,并且针对猪的关联的关键点可能少于五个。
在某些实施例中,由于热图上预测的关键点的不可知性的实例,因此可以为每一个检测到的关键点分配一个唯一实例ID,以便本公开可以“连接”属于同一个体实例的“点”。为此,本公开向神经网络添加了偏移字段的单独的两个通道输出,该偏移字段指示从给定关键点到该给定关键点在骨架中的父节点的位移。在测试阶段,采用迭代贪心算法来对预测的关键点进行关联。本公开可替代地为所有预测的关键点搜索最佳候选父节点,并从它们的候选子列表中移除剩余的关键点,直到找不到更好的假设。最佳候选父节点被定义为在正确类中且与预测的偏移向量最佳匹配的关键点。预测的偏移量和实际的偏移量之间的欧几里得(Euclidean)距离用于衡量匹配度。在某些实施例中,猪的中部点或背部点被定义为根关键点,而背部关键点是对应的颈部关键点和腰部关键点的父节点。随后,颈部关键点是头部关键点的父节点,腰部关键点是尾部关键点的父节点。猪的五个关键点,连同父/子关系,定义了猪的骨架。
跟踪模块146用于在接收到序列图像中的针对猪的骨架时,跟踪序列图像中的骨架,并将跟踪到的骨架发送到空间编码模块148。在某些实施例中,有效的在线跟踪方法用于在时间上将猪的关键点进行关联。该方法将针对单个帧的组合的猪关键点(骨架)作为输入,然后为各帧中的每头猪分配一个唯一标识(ID)号。在某些实施例中,该问题被表述为基于二分图匹配的能量最大化问题。然后通过二分图匹配将帧t处的估计的猪候选者C_t与帧t-1处的先前的猪候选者C_(t-1)相关联。在某些实施例中,这个二分图匹配问题是使用匈牙利算法解决的。图5示意性地示出了骨架跟踪的过程。如图5所示,每一帧t、t-1、t-2、...中的骨架通过关联506从对应的向量图502和热图504导出。每个图像包括检测到的关键点,并且属于同一组的关键点被分配了特定的骨架ID。然后跟踪多个图像508中的同一头猪的骨架以获得每一头被跟踪的猪的轨迹。
空间编码模块148用于在接收到被跟踪的图像后,为每个图像中的每头猪指定一个空间码,并将该空间码发送给时间过滤模块150。图6A示意性地描绘了一个图像的视场,图6B示意性地描绘了一系列图像中两头猪的空间码。如图6A所示,对于每个图像,空间编码模块148使用活动扫描线602将图像划分为激活区604和去激活区606。在某些实施例中,活动扫描线602基本上垂直于机器人设备110的移动方向。活动扫描线602大致位于视场中心且垂直于移动方向,使得激活区604和去激活区606的大小彼此相同或相似。活动扫描线602在单个图像中是静止的,但与机器人设备110一起移动以用于扫描整个猪舍。换言之,活动扫描线602在不同的图像中是移动的。当猪的骨架位于图像中的激活区604中时,该骨架被指定有相应的码值,例如码值0。当猪的骨架位于图像中的去激活区606中时,骨架被指定有相应的码值,例如码值1。去激活区606指示去激活区606中的所有候选猪已经被猪计数应用138计数,激活区604中的候选猪在活动扫描线602扫描通过它们时将被计数。如图6B所示,时间图像中显示了两头被跟踪的猪。左侧的猪在时间图像中位于去激活区,右侧的猪在顶部图像中位于去激活区且在底下三个图像中位于激活区。由于机器人设备110在捕获图像的期间移动,因此去激活区和激活区在图像中是动态的。
时间过滤模块150用于在接收到图像中猪骨架的空间编码时,过滤时间骨架以对猪进行计数,并将计数发送到用户接口152。在某些实施例中,在接收到图像中猪的空间编码时,时间过滤模块150用于将序列图像中同一猪的空间码值组合以生成空间码列表。一头猪或该猪的一条轨迹具有一个空间码列表,每个空间码对应时间点处的猪的状态。图7A示意性地示出了时间点t-6、t-5、t-4、t-3、t-2、t-1和t处的猪的码值。猪位于激活区的时间点t-6、t-5、t-4和t-3的码值为0,猪位于去激活区的时间点t-2、t-1和t的码值为1。t-6和t-5之间、t-5和t-4之间、t-4和t-3之间、t-2和t-1之间以及t-1和t之间中的每个一阶差分为0,t-3和t-2之间的一阶差分为1。因此,生成的猪的时间码值列表从t-6到t为[0,0,0,0,1,1,1],一阶差分为[0,0,0,1,0,0]。时间过滤模块150将针对该轨迹的最终计数定义为时间码的一阶差分的总和。因此,该猪的最终计数为1,这表明该猪从激活区移动到去激活区时被扫描一次。因此,由于图7A所示的猪的码值,猪的总数应该加1。类似地,图7B示出了具***[1,0,0,0,1,1,0,0]的猪轨迹,并且一阶差分的总和推断计数为-1。这意味着这头之前被计数过的猪,从扫描区(去激活区)移动到了待扫描区(激活区)。因此,总计数应该减1。这种设计使算法能够避免由于猪进出相机视场以及从一个区到另一区而导致的误报计数。图7C-G示出了当猪轨迹计数分别为-1、0、1、0和0时的示例。图7F表示从未穿过活动扫描线702的猪轨迹。图7D和图7G表示轨迹在同一激活区或去激活区开始和结束的情况。图7H示意性地示出了两个连续的时间码的总和,其中,连续的时间码的一阶差分将导致计数。这些示例表明,本公开的某些方法不会受到仅在一个单独区中发生的跟踪失败(例如,一条轨迹被分解为由于遮挡导致的多个轨迹)的影响。在某些实施例中,在计算一阶差分之前应用窗口大小为5的低通滤波器。该低通滤波步骤旨在避免活动扫描线附近的轨迹抖动。整个序列图像或视频的最终计数结果还将在开始图像的去激活区中检测到的候选对象的数量与在结束图像的激活区中检测到的候选对象的数量相加。在某些实施例中,当成像设备170在扫描过程结尾处捕获图像时,直接基于激活区中的骨架数量对激活区中的猪进行计数,而不是使用时间码进行计数。换言之,视频中的猪总数与时间码的一阶差分与最后一帧激活区的骨架数量相同。在替代实施例中,当成像设备170在扫描过程结尾处捕获图像时,视频的最终图像可以被全部定义为去激活区,以便对图像中的所有猪进行计数。在机器人设备110从猪舍200的一端移动到猪舍200的另一端之后,整个猪舍区域被扫描,并且总数对应于猪舍200中的猪的总数。
用户接口152用于在接收到时间图像中的猪的计数时,将计数发送或呈现给用户。在某些实施例中,用户接口152可以包括显示计数的屏幕。在某些实施例中,用户接口152可以通过无线网络或有线网络将计数发送给用户,或者发送给用户可以访问的云服务器。在某些实施例中,用户接口152还可以提供用户界面来定义成像设备170的图像捕获参数、机器人设备110的操作参数以及猪计数应用138的处理参数。
机器人控制模块154用于控制机器人设备110的移动。在某些实施例中,机器人设备110的移动和成像设备170的图像捕获由猪计数应用138协调,并且机器人设备110从导轨190的一端到另一端的移动伴随着成像设备170对图像的捕获。
成像设备170用于捕获猪舍200的视频图像并将捕获的视频图像发送到猪计数应用138。在某些实施例中,成像设备170可以是RGB相机或灰度相机。在某些实施例中,成像设备170也可以是具有执行深度检测能力的RGBD相机。
导轨190安装在猪舍200顶部空间的天花板或框架上。机器人设备110可以安装在导轨190上并被引导以沿导轨190移动。在某些实施例中,机器人设备110包括马达以使其自身沿着导轨190移动。在其他实施例中,马达也可以安装在导轨190上,机器人设备110可以被动地沿着导轨190移动。
在某些实施例中,***100还可以在需要时包括其他组件。例如,当现场训练神经网络142时,存储设备136还可以包括用于训练神经网络142的数据库;当需要本地显示时,***100还可以包括连接到用户接口152的显示设备以用于显示猪计数结果。在某些实施例中,并非图1中所示的所有组件都是猪计数所必需的。例如,猪计数应用138可以不包括用户接口152,并且计数结果可以在时间过滤模块150对猪计数之后直接显示在显示器上,或者将计数结果传送到远程设备以便用户可以通过远程设备访问计数结果。
图8A和8B示意性地描绘了根据本公开的某些实施例的用于猪计数的过程。如图8A和8B所示,检查机器人可在猪栏上方的导轨上移动。检查机器人的摄像头捕获视频,视频帧t,t-1,t-2,……,用作神经网络的输入。神经网络为每个输入的帧成向量场和热图,并将每个帧的向量场和热图关联起来,以获得该帧中针对每头猪的骨架。跟踪连续帧中猪的骨架,每个骨架对应跟踪轨迹。对于每个轨迹,每个帧中的骨架基于骨架是位于激活区还是非激活区而被编码值。空间编码被记录和过滤,并且对于每个轨迹导出0或1的计数。计数的总和是猪栏中猪的总数。
图9示意性地描绘了根据本公开的某些实施例的用于猪计数的方法。在某些实施例中,该方法由图1所示的机器人设备110实施。在某些实施例中,图9中所示的方法900对应于猪计数应用138的功能。需要特别说明的是,除非本公开中另有说明,该方法的步骤可以采用不同的顺序,并不限于如图9所示的顺序。
如图9所示,在步骤902处,当猪计数应用138被激活时,机器人设备110沿着导轨190从一端朝向另一端移动,视频捕获模块140指示成像设备170捕获猪舍200的图像,并将捕获的图像发送到神经网络142。
在步骤904处,在接收到捕获的图像时,神经网络142处理每个图像以检测关键点,并将检测到的关键点发送到关键点关联模块144。在某些实施例中,对于每个帧中的每个检测到的关键点,关键点的检测到的特征不仅包括每个关键点的位置,还包括关键点的向量方向。
在步骤906处,当接收到检测到的关键点时,关键点关联模块144将每个图像中的相关关键点组合为骨架,并将骨架发送到跟踪模块146。每个骨架对应于帧中的猪。在某些实施例中,基于关键点之间的距离和向量方向来确定骨架。在某些实施例中,每个骨架可以包括对应于猪的头部、颈部、背部、腰部和尾部的五个关键点。
在步骤908处,当接收到帧中的骨架时,跟踪模块146跟踪图像中的骨架以形成骨架的轨迹,并将轨迹发送到空间编码模块148。具体地,跟踪模块146为帧中的每个骨架指定跟踪ID或骨架ID,并跟踪骨架在多个序列帧中的移动。在某些实施例中,基于骨架的位置、骨架中的关键点分布以及骨架中关键点的向量方向,确定序列图像中的骨架具有相同的跟踪ID或骨架ID。
在步骤910处,在接收到序列帧中骨架的轨迹后,空间编码模块148为每个帧中的每个骨架提供空间码,并将空间码发送到时间过滤模块150。具体地,针对每个帧,空间编码模块148将视场划分为激活区和去激活区。帧覆盖了猪舍的整个宽度。激活区位于机器人设备移动方向的前方,对激活区的猪进行计数,并为其分配空间码值0。去激活区位于激活区的后方,去激活区中的猪已被计数,为其分配空间码值1。
在步骤912处,当接收到帧中骨架的空间码时,时间过滤模块150处理空间值以获得猪舍中猪的计数,并将计数发送到用户接口152。每个骨架的轨迹对应于空间码列表,空间码列表对应于具有该骨架的一个或多个序列帧,针对轨迹的计数是空间码的一阶差分之和,针对所有轨迹的计数之和是猪的最终计数。在某些实施例中,猪会从一些图像中丢失,并且会具有断开的轨迹。断开的轨迹可以包括由猪计数应用138确定的多个轨迹。换言之,同一头猪可以对应于多个轨迹,并且本公开的猪计数应用138不能辨别多个轨迹属于同一头猪。通过上述空间码指定和计数计算,虽然应用可以将多个轨迹识别为对应不同的猪,但多个轨迹的计数的总和仍然会匹配猪的计数,要么为0,要么为1。
在步骤914处,当接收到猪舍200中的猪的最终计数时,用户接口152显示计数以供用户查看,或将计数传送给用户可访问的另一设备。
在某些实施例中,上述方法不仅可以对猪舍中的猪进行计数,还可以对封闭空间中的其他动物进行计数。
在另一方面,本公开涉及一种存储有计算机可执行代码的非暂时性计算机可读介质。所述代码,在计算设备的处理器处执行时,用于执行上述方法。在某些实施例中,非暂时性计算机可读介质可以包括但不限于任何物理或虚拟存储介质。在某些实施例中,非暂时性计算机可读介质可以实现为如图1所示的计算设备130的存储设备136。
在某些方面,本公开还可以通过使用自上而下的方法代替自下而上的猪检测来实现。在实施例中,本公开使用检测器,例如单点检测器(Single Shot Detector,SSD)、YOLO(You Only Look Once)、或基于快速区域的卷积神经网络(Faster-RCNN)来检测边界框。然而,这些方法不如上述实施例准确或有效。这些方法首先提出使用边界框来检测候选的位置,然后将每个框分类为真实目标或非真实目标。在某些实施例中,非极大值抑制(Non-Maximum Suppression,NMS)被用作后处理方法,以通过去除彼此之间具有高重叠率(交并比)的边界框来显著地减少误报候选。尽管如此,在这个应用中,使用边界框来定位猪是次优的。可变形的且长椭圆形的猪对于拥挤场景中基于边界框的方法非常具有挑战性。如图10A和图10C所示,两只相邻的猪***的边界框具有非常高的重叠率,其模糊性倾向于使神经网络训练混乱。此外,对于推断,NMS后处理步骤将强制检测器在这些高度重叠的情况下仅选择一个边界框,从而导致假阴性。与边界框相比,如图10B和图10D所示的由关键点限定的猪骨架更适合区分猪群中的猪。
在某些实施例中,***可以不需要安装导轨190,机器人设备110和成像设备170可以安装在无人机上。无人机可以从猪舍的一端飞到猪舍的另一端,以使成像设备170可以拍摄猪舍的视频图像,并且机器人设备110可以处理捕获的视频图像以获得猪舍中的猪的计数。
在某些实施例中,***可以不将成像设备170从猪舍的一端移动到另一端,而是在不同区域处安装多个成像设备以使由多个成像设备捕获的图像覆盖整个猪舍。然而,由于整合捕获的图像的难度和计算资源,固定的多个成像设备不如使用可移动的成像设备170。
本公开的某些实施例尤其具有以下有益优点。首先,猪的计数是基于捕获的视频图像自动进行的,从而节省了通过其他方法进行猪计数的成本。其次,在捕获的视频帧中检测猪不需要检测边界框,避免了由于猪舍拥挤而导致一个边界框覆盖多于一头猪的情况。相比之下,本公开提供了一种自下而上的解决方案,其中直接检测关键点,并且从组合的关键点中推导出猪的骨架。第三,组合的关键点考虑了猪体的灵活性和猪在猪舍内的快速移动。具体地,本公开考虑了关键点之间的距离和向量方向,以将属于猪的关键点组合,这使得猪的确定更加准确。第四,将每个视频帧划分为激活区和去激活区,猪的轨迹中的每个猪骨架位置都根据骨架所属的区被指定了空间码值,针对每个轨迹的空间码值通过一阶差分求和以获得准确的计数。因此,猪从一个区移动到另一区或移出区不会影响准确计数,而快速移动的猪从一个区到另一区不会被多次计数。此外,即使在几个中间帧中缺少某猪,则将该猪的轨迹视为属于不同猪的多条单独的轨迹,上述计数仍然可以捕获到该情况并为多条轨迹提供0或1的准确计数。
本公开的示例性实施例的前述描述仅出于说明和描述的目的而呈现并且不旨在穷举或将本公开限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。
选择和描述实施例是为了解释本公开的原理及其实际应用,从而使本领域的其他技术人员能够利用本公开和各种实施例以及适合于预期的特定用途的各种修改。在不脱离本公开的精神和范围的情况下,替代实施例对于本公开所属领域的技术人员将变得清楚。因此,本公开的范围由所附权利要求而不是前述描述和其中描述的示例性实施例限定。
参考文献:
[1]TIAN MENGXIAO,HAO GUO,HONG CHEN,et al.,Automated pig countingusing deep learning,Computers and Electronics in Agriculture,2019,163,0168-1699.
[2]XU LIU,STEVEN W.CHEN,SHREYAS ADITYA,et al,Robust fruit counting:combining deep learning,tracking,and structure from motion,2018IEEE/RSJInternational Conference on Intelligent Robots and Systems(IROS),2018,arXiv:1804.00307.
[3]XU LIU,STEVEN W CHEN,CHENHAO LIU,et al.,Monocular camera basedfruit counting and mapping with semantic data association,IEEE Robotics andAutomation Letters,2019,4(3):2296–2303.
[4]JARROD C HODGSON,SHANE M BAYLIS,ROWAN MOTT,et al.,Precisionwildlife monitoring using unmanned aerial vehicles,Scientific reports,2016,6:22574.
[5]RIVAS A,CHAMOSO P,GONZALEZ-BRIONES A,CORCHADO JM,Detection ofcattle using drones and convolutional neural networks,Sensors,2018,18(7):2048.
[6]ANDREW G HOWARD,MENGLONG ZHU,BO CHEN,et al.,Mobilenets:efficientconvolutional neural networks for mobile vision applications,2017,arXiv:1704.04861.
[7]VIJAY BADRINARAYANAN,ALEX KENDALL,ROBERTO CIPOLLA,SegNet:a deepconvolutional encoder-decoder architecture for image segmentation,IEEEtransactions on pattern analysis and machine intelligence,2017,39(12):2481-95.
[8]WEI LIU,DRAGOMIR ANGUELOVE,DUMITRU ERHAN,et al,SSD:single shotmultibox detector,European conference on computer vision,2016,21-37,Springer,Cham,arXiv:1512.02325.
[9]JOSEPH REDMON,SANTOSH DIVVALA,ROSS GIRSHICK,ALI FARHADI,You onlylook once:unified,real-time object detection,Proceedings of the IEEEconference on computer vision and pattern recognition,2016,779-788.
[10]ROSS GIRSHICK,Fast R-CNN,Proceedings of the IEEE internationalconference on computer vision,2015,1440-1448.

Claims (20)

1.一种用于对屋舍中的动物进行计数的***,所述***包括计算设备和成像设备,所述计算设备包括处理器和存储有计算机可执行代码的存储设备,其中,所述计算机可执行代码,在所述处理器处执行时,被配置为:
接收由所述成像设备从所述屋舍的一端到所述屋舍的相对的另一端捕获的多个图像;
使用神经网络对每个图像中的关键点进行检测;
通过将所述图像中的多个关键点进行关联来识别动物的骨架,其中,每个骨架对应于一个动物;
跟踪在所述图像中识别到的骨架,以获得所述骨架的轨迹;
将所述每个图像划分为激活区和去激活区;
为所述激活区中的骨架指定第一空间值,以及为所述去激活区中的骨架指定第二空间值;
通过将对应的一个轨迹中对应的一个骨架的所述第一空间值和所述第二空间值的一阶差分进行求和,来提供针对每个轨迹的轨迹计数;以及
将所述轨迹的轨迹计数相加以获得所述动物的计数。
2.根据权利要求1所述的***,其中,
所述每个骨架包括五种类型的关键点中的至少一种,所述五种类型关键点包括对应于动物头部的头部关键点、对应于动物颈部的颈部关键点、对应于动物背部的背部关键点、对应于动物腰部的腰部关键点以及对应于动物尾部的尾部关键点;以及
每个检测到的关键点包括分类和向量,其中,所述分类指示所述检测到的关键点属于所述五种类型的关键点中的哪一种关键点,所述向量指示朝向与所述检测到的关键点属于同一骨架的至少一个检测到的关键点的方向。
3.根据权利要求1所述的***,其中,所述第一空间值为0,所述第二空间值为1。
4.根据权利要求1所述的***,其中,所述激活区的大小和所述去激活区的大小基本相等,并且所述激活区在所述成像设备的移动方向上位于所述去激活区的前方。
5.根据权利要求1所述的***,其中,所述计算机可执行代码还被配置为:过滤掉靠近活动扫描线的骨架,所述活动扫描线将所述激活区和所述去激活区分开。
6.根据权利要求1所述的***,其中,所述计算机可执行代码被配置为通过二分图匹配来跟踪在所述图像中识别到的骨架。
7.根据权利要求1所述的***,其中,所述神经网络是卷积神经网络CNN,并且所述动物是猪。
8.根据权利要求1所述的***,其中,所述成像设备安装在所述屋舍上方的且从所述屋舍的所述一端到所述屋舍的所述另一端的导轨上。
9.根据权利要求8所述的***,其中,所述神经网络在远程计算设备中进行训练,并且所述计算设备可与所述成像设备一起移动,所述计算设备为嵌入式设备。
10.根据权利要求1所述的***,其中,所述计算设备和所述成像设备被安装在无人机上。
11.一种用于对屋舍中的动物进行计数的方法,包括:
由计算设备接收由成像设备从所述屋舍的一端到所述屋舍的相对的另一端捕获的多个图像;
由所述计算设备使用神经网络对每个图像中的关键点进行检测;
由所述计算设备通过将所述图像中的多个关键点进行关联来识别所述动物的骨架,其中,每个骨架对应于一个动物;
由所述计算设备跟踪在所述图像中识别到的骨架,以获得所述骨架的轨迹;
由所述计算设备将所述每个图像划分为激活区和去激活区;
由所述计算设备为所述激活区中的骨架指定第一空间值,以及为所述去激活区中的骨架指定第二空间值;
由所述计算设备通过将对应的一个轨迹中对应的一个骨架的所述第一空间值和所述第二空间值的一阶差分进行求和,来提供针对每个轨迹的轨迹计数;以及
由所述计算设备将所述轨迹的轨迹计数相加以获得所述动物的计数。
12.根据权利要求11所述的方法,其中,
所述每个骨架包括五种类型的关键点中的至少一种关键点,所述五种类型的关键点包括对应于动物头部的头部关键点、对应于动物颈部的颈部关键点、对应于动物背部的背部关键点、对应于动物腰部的腰部关键点以及对应于动物尾部的尾部关键点;以及
每个检测到的关键点包括分类和向量,其中,所述分类指示所述检测到的关键点属于所述五种类型的关键点中的哪一种关键点,所述向量指示朝向与所述检测到的关键点属于同一骨架的至少一个检测到的关键点的方向。
13.根据权利要求11所述的方法,其中,所述第一空间值为0,所述第二空间值为1。
14.根据权利要求11所述的方法,其中,所述激活区的大小和所述去激活区的大小基本相等,并且所述激活区在所述成像设备的移动方向上位于所述去激活区的前方。
15.根据权利要求11所述的方法,还包括:由所述计算设备过滤掉靠近活动扫描线的骨架,其中,所述活动扫描线将所述激活区和所述去激活区分开。
16.根据权利要求11所述的方法,其中,所述跟踪在所述图像中识别到的骨架的步骤是由二分图匹配来执行的。
17.根据权利要求11所述的方法,其中,所述神经网络是卷积神经网络CNN,并且所述动物是猪。
18.根据权利要求11所述的方法,其中,所述成像设备安装在所述屋舍上方的且从所述屋舍的所述一端到所述屋舍的所述另一端的导轨上,所述神经网络在远程计算设备中进行训练,并且所述计算设备可与所述成像设备一起移动,所述计算设备为嵌入式设备。
19.一种存储有计算机可执行代码的非暂时性计算机可读介质,其中,所述计算机可执行代码,在计算设备的处理器处执行时,被配置为:
接收由成像设备从屋舍的一端到所述屋舍的相对的另一端捕获的多个图像;
使用神经网络对每个图像中的关键点进行检测;
通过将所述图像中的多个关键点进行关联来识别动物的骨架,其中,每个骨架对应于一个动物;
跟踪在所述图像中识别到的骨架,以获得所述骨架的轨迹;
将所述每个图像划分为激活区和去激活区;
为所述激活区中的骨架指定第一空间值,以及为所述去激活区中的骨架指定第二空间值;
通过将对应的一个轨迹中对应的一个骨架的所述第一空间值和所述第二空间值的一阶差分进行求和,来提供针对每个轨迹的轨迹计数;以及
将所述轨迹的轨迹计数相加以获得所述动物的计数。
20.根据权利要求19所述的非暂时性计算机可读介质,其中,
所述每个骨架包括五种类型的关键点中的至少一种关键点,所述五种类型的关键点包括对应于动物头部的头部关键点、对应于动物颈部的颈部关键点、对应于动物背部的背部关键点、对应于动物腰部的腰部关键点以及对应于动物尾部的尾部关键点;
每个检测到的关键点包括分类和向量,其中,所述分类指示所述检测到的关键点属于所述五种类型的关键点中的哪一种关键点,所述向量指示朝向与所述检测到的关键点属于同一骨架的至少一个检测到的关键点的方向,以及
其中,所述第一空间值为0,所述第二空间值为1。
CN202180032495.4A 2020-05-25 2021-05-21 基于视频对猪群中的猪进行计数的***和方法 Pending CN115867946A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/882,580 US11263454B2 (en) 2020-05-25 2020-05-25 System and method for video-based pig counting in the crowd
US16/882,580 2020-05-25
PCT/CN2021/095197 WO2021238797A1 (en) 2020-05-25 2021-05-21 System and method for video-based pig counting in the crowd

Publications (1)

Publication Number Publication Date
CN115867946A true CN115867946A (zh) 2023-03-28

Family

ID=78608072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180032495.4A Pending CN115867946A (zh) 2020-05-25 2021-05-21 基于视频对猪群中的猪进行计数的***和方法

Country Status (3)

Country Link
US (1) US11263454B2 (zh)
CN (1) CN115867946A (zh)
WO (1) WO2021238797A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023064990A1 (en) * 2021-10-21 2023-04-27 Meat & Livestock Australia Limited Computer implemented system, method and device for counting animals
CN115937791B (zh) * 2023-01-10 2023-05-16 华南农业大学 一种适用于多种养殖模式的家禽计数方法及其计数装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0112990D0 (en) * 2001-05-26 2001-07-18 Central Research Lab Ltd Automatic classification and/or counting system
EP1789928A4 (en) * 2004-07-30 2011-03-16 Extreme Reality Ltd SYSTEM AND METHOD FOR PICTURE PROCESSING BASED ON THE 3D ROOM DIMENSION
US7965866B2 (en) * 2007-07-03 2011-06-21 Shoppertrak Rct Corporation System and process for detecting, tracking and counting human objects of interest
DE102009000173A1 (de) * 2009-01-13 2010-07-15 Robert Bosch Gmbh Vorrichtung zum Zählen von Objekten, Verfahren sowie Computerprogramm
US11249495B2 (en) * 2012-09-19 2022-02-15 Botsitter, Llc Method and system for remote monitoring, care and maintenance of animals
JP5674857B2 (ja) * 2013-05-10 2015-02-25 技研トラステム株式会社 乗降者計数装置
EP4250144A3 (en) * 2015-10-14 2024-01-17 President And Fellows Of Harvard College Automatically classifying animal behavior
CN108369635B (zh) * 2015-11-08 2022-07-29 阿格洛英公司 用于航空图像获取与分析的方法
US10628675B2 (en) * 2017-02-07 2020-04-21 Fyusion, Inc. Skeleton detection and tracking via client-server communication
CN106940789B (zh) * 2017-03-10 2021-08-31 广东数相智能科技有限公司 一种基于视频识别的数量统计的方法、***及装置
CN111107740B (zh) * 2017-09-22 2022-01-04 松下知识产权经营株式会社 家畜信息管理***、畜舍、家畜信息管理程序以及家畜信息管理方法
JP6853156B2 (ja) * 2017-09-29 2021-03-31 株式会社日立製作所 姿勢推定システム、姿勢推定装置、及び距離画像カメラ
WO2020072918A1 (en) * 2018-10-05 2020-04-09 The Trustees Of Princeton University Automated system to measure multi-animal body part dynamics
PT3866587T (pt) * 2018-10-17 2023-04-26 Group Ro Main Inc Monitorização de gado
CN109726796A (zh) * 2018-12-03 2019-05-07 三峡大学 一种基于神经网络的养殖场管理方法
US10916046B2 (en) * 2019-02-28 2021-02-09 Disney Enterprises, Inc. Joint estimation from images
CN110147743B (zh) * 2019-05-08 2021-08-06 中国石油大学(华东) 一种复杂场景下的实时在线行人分析与计数***及方法
CN110222664B (zh) * 2019-06-13 2021-07-02 河南牧业经济学院 一种基于视频活跃性分析的智能化猪圈养监视***
US11393088B2 (en) * 2019-06-27 2022-07-19 Nutech Ventures Animal detection based on detection and association of parts
US11263347B2 (en) * 2019-12-03 2022-03-01 Truata Limited System and method for improving security of personally identifiable information

Also Published As

Publication number Publication date
US11263454B2 (en) 2022-03-01
WO2021238797A1 (en) 2021-12-02
US20210365663A1 (en) 2021-11-25

Similar Documents

Publication Publication Date Title
Shenoi et al. Jrmot: A real-time 3d multi-object tracker and a new large-scale dataset
Luber et al. People tracking in rgb-d data with on-line boosted target models
CN110874100B (zh) 用于使用视觉稀疏地图进行自主导航的***和方法
Martinez et al. Towards autonomous detection and tracking of electric towers for aerial power line inspection
Jafari et al. Real-time RGB-D based people detection and tracking for mobile robots and head-worn cameras
US20190362173A1 (en) Spatio-temporal awareness engine for priority tree based region selection across multiple input cameras and multimodal sensor empowered awareness engine for target recovery and object path prediction
CN115867946A (zh) 基于视频对猪群中的猪进行计数的***和方法
Guzhva et al. Now you see me: Convolutional neural network based tracker for dairy cows
Maier et al. Vision-based humanoid navigation using self-supervised obstacle detection
Luo et al. Stubborn: A strong baseline for indoor object navigation
Silva et al. Monocular trail detection and tracking aided by visual SLAM for small unmanned aerial vehicles
Noe et al. Automatic detection and tracking of mounting behavior in cattle using a deep learning-based instance segmentation model
Huang et al. Deep learning-based cow tail detection and tracking for precision livestock farming
Yao et al. Sensor planning for automated and persistent object tracking with multiple cameras
CN112836683A (zh) 用于便携式摄像设备的车牌识别方法、装置、设备和介质
Linder et al. Towards a robust people tracking framework for service robots in crowded, dynamic environments
Kyrkou C 3 Net: end-to-end deep learning for efficient real-time visual active camera control
Munaro et al. A software architecture for RGB-D people tracking based on ROS framework for a mobile robot
KR101595334B1 (ko) 농장에서의 움직임 개체의 이동 궤적 트래킹 방법 및 장치
Patel et al. Vehicle tracking and monitoring in surveillance video
CN116700228A (zh) 机器人路径规划方法、电子设备及可读存储介质
Roy et al. Robotic surveying of apple orchards
Ganesh et al. Fast and resource-efficient object tracking on edge devices: A measurement study
Kebir et al. Smart robot navigation using rgb-d camera
Rastogi et al. Teat detection mechanism using machine learning based vision for smart Automatic Milking Systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240206

Address after: Room 221, 2nd Floor, Building C, No. 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Applicant after: Jingdong Technology Holding Co.,Ltd.

Country or region after: China

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Technology Holding Co.,Ltd.

Country or region before: China

Applicant before: JD financial USA

Country or region before: U.S.A.