Press "Enter" to skip to content

使用人工智能技术监测您的牛群

亚马逊网络服务 (AWS),我们不仅热衷于为客户提供各种全面的技术解决方案,也致力于深入了解客户的业务流程。我们采取第三方的视角和客观的判断,帮助客户梳理出他们的价值主张,收集痛点,提出适当的解决方案,并创建最具成本效益和可用性的原型,帮助他们系统地实现业务目标。

这种方法被称为亚马逊工作方式。它意味着将技术和解决方案放在一边,从客户的期望结果开始,确认他们的价值,然后逆向推导出需要进行的工作,最终实施解决方案。在实施阶段,我们还遵循最小可行产品的概念,努力快速形成可以在几周内产生价值的原型,然后进行迭代。

今天,让我们回顾一次亚马逊和新希望乳业合作在云端建立智能农场的案例研究。通过这篇博文,您可以深入了解亚马逊在建设智能农场方面提供了哪些功能,并与亚马逊专家一起学习如何在云端上构建智能农场应用。

项目背景

牛奶是一种营养饮料。考虑到民众健康,中国一直积极推广乳制品行业的发展。根据Euromonitor International的数据,2020年中国乳制品销售额达到6385亿元人民币,预计到2025年将达到8100亿元人民币。此外,过去14年的复合年增长率也达到了10%,显示出了快速发展。

另一方面,截至2022年,中国乳制品产业的大部分收入仍来自液态奶。60%的原奶用于液态奶和酸奶,另外20%是奶粉 —— 液态奶的衍生品。只有极少量的原奶用于奶酪和奶油等高度加工产品。

液态奶是轻度加工产品,其产量、质量和成本与原奶密切相关。这意味着如果乳制品行业想要释放产能,专注于生产高度加工产品,创造新产品,进行更多创新的生物技术研究,就必须首先改善和稳定原奶的生产和质量。

作为乳制品行业的领军企业,新希望乳业一直在思考如何提高牧场运营效率,提高原奶的产量和质量。新希望乳业希望利用亚马逊的第三方视角和技术专长促进乳制品行业的创新。在新希望乳业副总裁兼首席信息官胡刘通的支持和推动下,亚马逊客户团队开始组织对乳业农场的运营和潜在创新点的调研。

乳业农场面临的挑战

亚马逊是云技术领域的专家,但要在乳业实现创新,则需要乳业专业人士的专业建议。因此,我们与新希望乳业生产技术中心副主任宋良荣、牧场管理团队和营养师进行了数次深入访谈,了解农场面临的一些问题和挑战。

首先是清点剩余奶牛

牧场上的奶牛分为两类:产奶奶牛和剩余奶牛。产奶奶牛是成熟的,能持续产奶,而剩余奶牛是还未达到产奶年龄的奶牛。规模较大且适应性好的农场通常会为剩余奶牛提供更大的活动区域,以创造更舒适的生长环境。

然而,无论是产奶奶牛还是剩余奶牛都是农场的资产,需要每月进行盘点。产奶奶牛每天都有产奶,由于在挤奶过程中相对静止,盘点跟踪相对简单。然而,剩余奶牛处于开放空间,四处自由活动,这导致对其进行盘点不便。每次盘点时,几名工人会从不同区域反复计数剩余奶牛,最后核对数字。这个过程需要数名工人耗时一两天,并且经常在计数方面出现问题,或者不确定是否每头奶牛都被计数。

如果我们能够快速准确地进行剩余奶牛的盘点,就可以节省大量时间。

其次是鉴定跛脚牛

目前,大多数乳制品公司使用一种名为荷斯坦的品种来产奶。荷斯坦奶牛是我们大家熟悉的黑白相间的奶牛。尽管大多数乳制品公司使用相同的品种,但不同公司和牧场在产奶数量和质量上仍存在差异。这是因为奶牛的健康状况直接影响到奶的产量。

然而,奶牛不能像人类一样表达不适,兽医也无法定期为成千上万头奶牛进行体检。因此,我们必须使用外部指标快速判断奶牛的健康状况。

智能农场

牛的健康外部指标包括体况评分和跛行程度。体况评分很大程度上与牛的体脂肪含量有关,是一个长期指标;而跛行是由腿部问题或足部感染等问题引起的短期指标,会影响牛的情绪、健康和产奶量。此外,成年荷斯坦奶牛体重可超过500公斤,如果不稳定的话会对它们的脚造成严重伤害。因此,当发生跛行时,兽医应尽快介入。

根据2014年的一项研究,中国严重跛行奶牛的比例可能高达31%。尽管情况可能在那之后有所改善,但农场的兽医人数非常有限,很难进行定期监测。当发现跛行时,情况往往严重,治疗费时且困难,产奶量已经受到影响。

如果我们有办法及时检测到奶牛的跛行并促使兽医在轻度跛行阶段介入,奶牛的整体健康和产奶量将会提高,农场的绩效也会得到改善。

最后,还有饲料成本优化

在畜牧业中,饲料是最大的变动成本。为了确保饲料的质量和库存,农场通常需要从国内外供应商购买饲料原料,并将其运送到饲料制造厂加工。现代饲料原料种类繁多,包括大豆粉、玉米、苜蓿、燕麦草等,因此存在许多变量。每种饲料原料都有自己的价格周期和价格波动。在大幅波动时,饲料总成本可能波动超过15%,造成重大影响。

饲料成本会波动,但乳制品价格在长期内相对稳定。因此,在其他条件不变的情况下,仅由于饲料成本的变化,整体利润可能产生明显波动。

为了避免这种波动,有必要在价格低时考虑储存更多的原料。但储存也需要考虑价格是否真正处于低谷,以及根据当前消耗率购买多少饲料。

如果我们能够精确预测饲料消耗量,并与整体价格趋势相结合,提供最佳的购买时间和数量建议,就能在农场上降低成本并提高效率。

显然,这些问题与客户改善农场运营效率的目标直接相关,而解决问题的方法分别是减少劳动力、增加产量和降低成本。通过对解决每个问题的困难和价值进行讨论,我们选择增加产量作为出发点,并优先解决跛行奶牛的问题。

研究

在讨论技术之前,需要进行研究。该研究由AWS客户团队、管理机器学习算法模型的AWS生成AI创新中心以及提供最新计算机视觉研究算法咨询的AWS AI Shanghai Lablet和新希望乳业的专家养殖团队共同进行。研究分为以下几个部分:

  • 了解跛行奶牛的传统纸质识别方法,并对跛行奶牛有基础的了解。
  • 确认现有的解决方案,包括农场和行业中使用的解决方案。
  • 进行农场环境研究,了解物理情况和限制。

通过研究材料和观察现场视频,团队对跛行奶牛有了基础的了解。读者也可以通过下面的动画图像对跛行奶牛的姿势有一个大致的了解。

跛行奶牛

与相对健康的牛相比,瘸腿的牛在姿势和步态上有明显的区别。

健康的牛

在现有的解决方案中,大多数牧场依靠兽医和营养师的视觉检查来识别瘸腿的牛。在该行业中,有使用可穿戴计步器和加速计进行识别的解决方案,也有使用分区过磅桥进行识别的解决方案,但两者都相对昂贵。对于竞争激烈的乳制品行业来说,我们需要尽量降低识别成本和对非通用硬件的依赖。

在与牧场兽医和营养师讨论和分析信息后,AWS 生成式人工智能创新中心的专家决定采用计算机视觉(CV)进行识别,仅依靠普通硬件:民用监控摄像头,这不会给牛增加额外负担,而且降低了成本和使用障碍。

在确定了这个方向之后,我们访问了一个规模庞大的牧场,那里有成千上万头牛,调查了牧场环境,并确定了摄像机的位置和角度。

使用人工智能技术监测您的牛群 四海 第4张

初始提案

现在,让我们来介绍解决方案。基于计算机视觉的解决方案的核心包括以下几个步骤:

  • 牛的识别:在视频的单个帧中识别多头牛,并标记每头牛的位置。
  • 牛的跟踪:在记录视频时,我们需要持续跟踪牛的位置,并为每头牛分配一个唯一的编号。
  • 姿势标记:通过将牛的图像转换为标记点,降低牛运动的维度。
  • 异常识别:识别标记点动态中的异常。
  • 瘸腿牛算法:将异常标准化,得到一个评分,用于确定牛的瘸腿程度。
  • 阈值确定:根据专家输入获取一个阈值。

根据 AWS 生成式人工智能创新中心专家的判断,前几个步骤是通用要求,可以使用开源模型解决,而后面的步骤则需要我们使用数学方法和专家干预。

解决方案中的困难

为了平衡成本和性能,我们选择了 yolov5l 模型,这是一个 VoAGI 尺寸的预训练模型,用于牛的识别,输入宽度为 640 像素,非常适用于这个场景。

虽然 YOLOv5 负责识别和标记单个图像中的牛,但实际上,视频由多个连续变化的图像(帧)组成。YOLOv5 无法识别不同帧中的牛属于同一头牛。为了在多个图像中跟踪和定位一头牛,我们还需要另一个名为 SORT 的模型。

SORT 是简单的在线实时跟踪的缩写,其中在线表示它仅考虑当前和前一帧进行跟踪,而不考虑其他帧,实时意味着它能够立即识别对象的身份。

在开发 SORT 之后,许多工程师实施并优化了它,从而发展出 OC-SORT,它考虑对象的外观,DeepSORT(及其升级版 StrongSORT),它包括人的外貌,以及 ByteTrack,它使用两阶段关联链路器来考虑低置信度识别。经过测试,我们发现对于我们的场景来说,DeepSORT 的外观跟踪算法对人类比对牛更适用,而 ByteTrack 的跟踪准确性稍弱。因此,我们最终选择了 OC-SORT 作为我们的跟踪算法。

接下来,我们使用 DeepLabCut(简称 DLC)来标记牛的骨骼点。DLC 是一种无需标记的模型,这意味着尽管不同的点,如头部和四肢,可能有不同的含义,但对于 DLC 来说,它们只是点,我们只需要标记这些点并训练模型。

这带来了一个新问题:我们应该在每头牛上标记多少个点,以及应该在哪里标记它们?这个问题的答案会影响标记、训练和后续推理的工作量。为了解决这个问题,我们必须首先了解如何识别瘸腿的牛。

根据我们的研究和专家客户的意见,视频中的瘸腿牛表现出以下特征:

  • 呈弓背状:颈部和背部呈弯曲状,与颈骨根部形成三角形(弓背)。
  • 频繁点头:每一步都可能使牛失去平衡或滑倒,导致频繁点头(摇晃头部)。
  • 步态不稳定:牛在几步后步态改变,出现轻微暂停(步态模式的改变)。
健康牛和瘸腿牛的比较

至于颈部和背部曲度以及点头,AWS创新人工智能中心的专家确定,仅标记牛身上的七个背部点(一个在头部,一个在颈部底部,五个在背部)就可以进行良好的识别。由于我们现在有了一个识别框架,我们也应该能够识别不稳定的步态模式。

接下来,我们使用数学表达来表示识别结果并形成算法。

对于这些问题的人工识别并不困难,但计算机识别需要精确的算法。例如,如果给定一组牛背坐标点,程序如何知道牛背的曲度程度?如何知道一头牛是否在点头?

在背部曲度方面,我们首先将牛的背部看作一个角度,然后找到该角度的顶点,从而计算角度。这种方法的问题在于脊柱可能具有双向曲度,使得角度的顶点难以确定。这就需要切换到其他算法来解决问题。

牛的关键点

对于点头,我们首先考虑使用Fréchet距离来确定牛的点头情况,通过比较牛整体姿势曲线的差异。然而,问题在于牛的骨骼点可能会发生错位,导致类似曲线之间的距离较大。为了解决这个问题,我们需要将头部相对于识别框的位置取出并进行归一化处理。

在对头部位置进行归一化后,我们遇到了一个新问题。下图中的左侧图表显示了牛头位置的变化。我们可以看到,由于识别精度的问题,头部点的位置会不断地轻微晃动。我们需要去除这些小运动,并找到头部相对较大的运动趋势。这就需要一些信号处理的知识。通过使用Savitzky-Golay滤波器,我们可以平滑出信号并获得其整体趋势,使我们更容易识别点头,如右侧图表中的橙色曲线所示。

关键点曲线

此外,在数十个小时的视频识别中,我们发现一些背部曲度极高的牛实际上并没有驼背。进一步调查发现,大部分用于训练DLC模型的牛主要是黑色或黑白相间的,没有太多白色或接近纯白的牛,导致模型在它们身上有大片白色区域时无法正确识别,如下图中的红箭所示。这可以通过进一步的模型训练来纠正。

除了解决上述问题,还有其他一些常见的问题需要解决:

  • 视频画面中有两个路径,并且远处的牛也可能被识别出来,造成问题。
  • 视频中的路径也有一定的曲度,当牛在路径两侧时,牛的身体长度变短,容易错误地进行姿势识别。
  • 由于多个牛的重叠或篱笆的遮挡,同一头牛可能被识别为两头牛。
  • 由于跟踪参数和摄像机偶尔跳帧,无法正确跟踪牛,导致ID混淆问题。

就短期来说,根据与新希望乳业的对齐,以交付一个最小可行产品并对其进行迭代,这些问题通常可以通过异常值判断算法结合置信度过滤来解决,如果无法解决,它们将成为无效数据,需要我们进行额外的训练并持续迭代我们的算法和模型。

从长期来看,《AWS AI上海实验室》提供了基于他们的对象中心研究来解决前述问题的未来实验建议:构建与真实世界目标中心学习的桥梁自监督的Amodal视频对象分割。除了使那些异常值数据无效外,这些问题还可以通过为姿势估计、无属性分割和监督跟踪开发更精确的对象级模型来解决。然而,传统的视觉流程对于这些任务通常需要广泛的标记。对象中心学习着重解决像素绑定到对象的问题,而无需额外的监督。绑定过程不仅提供对象位置的信息,还为下游任务提供了强大且适应性强的对象表示。由于对象中心流程专注于自监督或弱监督设置,我们可以在不显著增加客户的标记成本的情况下提高性能。

通过解决一系列问题,并结合农场兽医和营养师给出的评分,我们得到了一套综合评分体系,用于判断牛只是否患有不同程度的跛行,如重度、中度和轻度,并且还可以确定牛只的多个体位属性,以帮助进一步的分析和判断。

几周内,我们开发了一个全面的识别跛行牛的解决方案。这个解决方案的硬件摄像头只需300元人民币,而使用g4dn.xlarge实例进行Amazon SageMaker批处理推理,对于2小时的视频需时约50小时,总费用仅为300元人民币。当进入生产阶段时,如果每周检测到五批牛只(假设约10小时),并包括滚动保存的视频和数据,在一个几千头牛只的规模较大的牧场中,每月的检测成本不到1万元人民币。

目前,我们的机器学习模型的处理流程如下:

  1. 记录原始视频。
  2. 检测和识别牛只。
  3. 跟踪每头牛并检测关键点。
  4. 分析每头牛的运动。
  5. 确定跛行评分。
识别过程

模型部署

我们之前已经描述了基于机器学习识别跛行牛的解决方案。现在,我们需要将这些模型部署到SageMaker上。如下图所示:

架构图

业务实施

当然,到目前为止,我们所讨论的仅仅是我们技术解决方案的核心。为了将整个解决方案整合到业务流程中,我们还必须解决以下问题:

  • 数据反馈:例如,我们必须为兽医提供一个界面,以过滤和查看需要处理的瘸脚牛,并在此过程中收集数据用作训练数据。
  • 牛只识别:兽医在看到瘸脚牛后,还需要知道牛只的身份,比如编号和围栏。
  • 牛只定位:在一只有数百头牛的圈舍中,快速定位目标牛。
  • 数据挖掘:例如,查找瘸脚程度如何影响饲料摄入、咀嚼、休息和产奶。
  • 数据驱动:例如,识别瘸脚牛的遗传、生理和行为特征,以实现优化的繁殖和繁衍。

只有解决这些问题,解决方案才能真正解决业务问题,收集的数据才能产生长期价值。其中一些问题是系统集成问题,而另一些则是技术和业务集成问题。我们将在未来的文章中分享更多关于这些问题的信息。

总结

在本文中,我们简要介绍了AWS客户解决方案团队如何基于客户的业务快速创新。这种机制具有以下特点:

  • 以业务为导向:首先优先了解客户的行业和业务流程,在现场进行面对面的讨论,然后深入研究客户的痛点、挑战和问题,以识别可以通过技术解决的重要问题。
  • 立即可用:为客户提供简单但完整可用的原型进行测试、验证和快速迭代,周期仅为几周而非几个月。
  • 最小成本:在价值真正得到验证之前,最大限度减少甚至消除客户的成本,避免对未来的担忧。这与AWS的节俭领导原则一致。

在我们与乳制品行业的合作创新项目中,我们不仅从业务角度开始,与业务专家一起确定具体的业务问题,还与客户一起在农场和工厂进行现场调查。我们确定了现场的摄像机位置,安装和部署了摄像机,并部署了视频流解决方案。来自AWS生成性人工智能创新中心的专家分析了客户的需求,并开发了一个算法,然后由解决方案架构师为整个算法进行了工程化。

通过每次推理,我们可以获取成千上万个分解和标记的牛行走视频,每个视频都有原始视频ID、牛只ID、瘸脚评分和各种详细评分。完整的计算逻辑和原始步态数据也被保留下来,以进行后续算法优化。

瘸脚数据不仅可以用于兽医的早期干预,还可以与挤奶机数据进行交叉分析,提供额外的验证维度,并回答一些额外的业务问题,例如:最高产奶量的牛只的体格特征是什么?瘸脚对牛只产奶的影响是什么?导致瘸脚牛的主要原因是什么,如何预防?这些信息将为农场经营提供新的思路。

识别瘸脚牛的故事就到这里结束了,而农场创新的故事才刚刚开始。在接下来的文章中,我们将继续讨论如何与客户紧密合作解决其他问题。

Leave a Reply

Your email address will not be published. Required fields are marked *