微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 剑桥大学等多校联手,开发出能"看懂"动物群照、一次重建所有动物3D形态的智能系统

剑桥大学等多校联手,开发出能"看懂"动物群照、一次重建所有动物3D形态的智能系统

2026-05-29 12:03
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-05-29 12:03 科技行者

这项由剑桥大学、南方科技大学、清华大学及意大利国家研究委员会米兰分院联合开展的研究,以预印本形式发表于2026年5月,论文编号为arXiv:2605.07604,有兴趣深入了解的读者可通过该编号查询完整论文。

拍过动物园或野外动物的人大概都有类似的苦恼:照片里七八匹斑马挤在一起,你中有我,我中有你,谁的腿是谁的根本分不清。人眼尚且如此,让计算机从这张二维照片里还原出每一只动物的立体三维姿态,更是难上加难。然而,正是这件看上去棘手无比的事,被这支研究团队用一套名叫SAM 3D Animal的新框架基本解决了。

过去十几年,计算机视觉领域在"理解人"这件事上取得了惊人的进步——只要给一张照片,系统就能推测出人的三维骨架、肌肉走向乃至体型。但"理解动物"这件事却长期落后,原因是多方面的:动物种类繁多,猫和长颈鹿的身体结构差异之大远超人与人之间的差异;野外场景里动物常常相互遮挡,一只羊可能被另外三只羊挡住大半个身子;而且现有的带三维标注的动物数据集极其稀少,连"让机器多学学"这条路都走得很艰难。更关键的是,现有方法几乎清一色只能处理"单只动物"的情形,要么需要提前把每只动物单独裁切出来,要么干脆无法应对多只动物同框的场景。

SAM 3D Animal正是为了打破这个困局而生。它是第一个可以直接接收一张包含多只动物的完整照片、然后一次性输出所有动物三维模型的可交互框架。更妙的是,用户还可以给系统提供额外的"提示"——比如标几个关节点的位置,或者勾出某只动物的轮廓——来帮助系统在拥挤、遮挡的场景里把每只动物识别得更准确。

一、动物界的"3D拼图":为什么这件事比看起来难得多

以拼图游戏作为理解整个研究的核心线索会很有帮助。普通的拼图是平面的,而这里的任务是从一张平面照片里还原出一个立体的"拼图"——不只是一只动物,而是同一张照片里所有动物的立体拼图,而且每只动物的拼图件还会互相遮挡、重叠。

为什么这个任务特别困难?首先是"件数不定"的问题。照片里可能有一只马,也可能有十二只马;可能是同一种动物,也可能是几种动物混在一起。其次是"遮挡迷宫"的问题。当两只动物身体部分重叠时,系统必须弄清楚前面那只的腿在哪里结束、后面那只的腿又从哪里开始——而这在平面照片上根本没有任何深度信息可以直接读取。第三是"谁是谁"的配对问题。系统输出了若干个三维动物模型之后,如何确认哪个模型对应照片里的哪只动物?一旦配错,后续的误差会像滚雪球一样越来越大。

现有方法的通常做法是先用一个目标检测系统把每只动物"框"出来,然后对每个框单独跑一次三维重建。这种流水线式的做法有两个明显缺陷:一是每个步骤的错误会传递到下一步,框出错了后面全错;二是每只动物被单独处理,彼此之间没有信息交流,对于相互遮挡的部分完全没有约束。SAM 3D Animal的设计思路则是把所有动物放在同一个网络里一起处理,让它们彼此"知道"对方的存在。

二、系统的骨架:SMAL+参数化模型,一套万能的动物"基础模板"

在理解SAM 3D Animal怎么工作之前,有必要先认识它所依赖的核心基础——SMAL+参数化动物模型。

可以把SMAL+理解为一套高度灵活的动物"橡皮泥模板"。研究人员事先从145只真实动物的三维扫描数据里提炼出了一套"基础形状",这套基础形状能够通过调整两类参数变形成几乎任何四足动物的样子。第一类参数叫做"形状参数",共145个维度,控制动物的整体体型——是瘦长还是粗壮,腿是长是短,脖子是高是低。第二类参数叫做"姿态参数",用来描述35个关节的旋转角度——头转向哪里,前腿抬起多高,尾巴翘起几度。加上一个全局位置参数,输入这些数字,SMAL+就会输出一个由3889个顶点和7774个三角面构成的完整三维网格模型,看上去就是一只栩栩如生的动物。

SMAL+相比其前身SMAL覆盖的物种范围更广,新增了长颈鹿、熊、老鼠等物种,这使得整套框架能够应对更丰富的野外动物场景。SAM 3D Animal的最终目标,就是给每只识别出的动物找到最合适的SMAL+参数组合,从而还原出它在照片里的真实三维形态。

三、核心机制:一个"大眼睛"加一个"问答专家"

SAM 3D Animal的网络结构可以用"大眼睛+问答专家"这个框架来理解。

"大眼睛"是指编码器部分。系统接收一张512×512像素的动物照片,用一个规模庞大的ViT-Huge视觉变换器(可以理解为一双极其敏锐、能同时注意到照片各个角落的眼睛)把照片处理成一张32×32的"特征地图"。这张特征地图并不是普通的像素图,而是每个位置上都携带着1280维丰富语义信息的抽象表示——它知道这里有动物的腿、那里有动物的头,但还不知道具体的三维形态。

"问答专家"是指解码器部分。解码器的设计灵感来自人类视觉中的SAM 3D Body框架,其核心是一个可以接受"提示"的Transformer结构。与SAM 3D Body每次只处理一只动物不同,SAM 3D Animal的解码器一次性预测最多30只动物的参数,实现真正意义上的"群体重建"。

解码器内部维护着一组"查询令牌",每只动物对应一组,包含五种类型:描述SMAL+姿态的令牌、描述边界框位置的令牌、描述二维关节点的令牌、描述三维关节点的令牌,以及接收用户提示的令牌。这些令牌就像一组带着特定问题的侦探,不断向"特征地图"这份案件档案发起询问,每一轮询问之后更新自己的推断,一共进行六轮,逐步收敛到最终答案。

其中有一个特别巧妙的设计值得展开说明——层间关节点反馈环路。每一轮询问结束后,系统不只是更新参数,还会主动把当前预测的二维关节点位置反馈到下一轮的查询令牌里。具体来说,系统会在特征地图上找到当前预测的各关节点所在位置,把那些位置的图像特征"采样"出来,加进下一轮的二维关节点令牌里,同时还会把当前估计的三维坐标编码进三维关节点令牌里。这相当于侦探每做出一个推断之后,马上回到案发现场重新检视证据,而不是闭门造车地一路推到底。六轮下来,估计越来越精准,最终的三维姿态和网格也因此更加准确。

四、多只动物如何"分配":匈牙利算法的妙用

解码器一次输出30个动物的预测结果,但照片里可能只有3只羊。系统必须解决一个配对问题:哪个预测对应哪只真实的动物,剩下的27个预测则标记为"没有动物"。

研究团队引入了匈牙利算法来解决这个问题。这个算法来自运筹学领域,经典用途是解决"任务分配"问题,比如把n个工人分配给n项工作,使总成本最小。这里的逻辑完全类似:把30个预测和M个真实动物之间的"不匹配程度"作为成本,算法自动找出使总成本最小的一对一配对方案。

衡量"不匹配程度"的成本函数由四项构成。第一项是边界框的位置距离,预测的框和真实的框在坐标上越接近越好。第二项是广义交并比,衡量两个框的形状和大小是否吻合。第三项是置信度惩罚,对那些系统自己都不太确信的预测施加额外惩罚,鼓励系统只在真正有把握时输出结果。第四项是关节点位置距离,比较预测的二维关节点和真实关节点之间的偏差,而且只对实际可见的关节点计算这个距离。这四项加权求和,给出最终的配对成本,匈牙利算法据此找出全局最优的配对方案。

这套机制最大的好处是完全不需要非极大值抑制(一种传统的去除重复检测框的后处理步骤),整个训练和推断过程端到端,干净利落。

五、给系统"指路":关键点提示与遮罩提示

SAM 3D Animal的一个独特卖点是支持用户提供额外提示来提升重建质量。这个设计的动机很直观:在拥挤场景里,系统仅凭图像信息可能无法确定某条腿到底属于哪只动物;如果用户额外标出几个关节点的位置,系统就能更自信地做出判断。

提示分两种形式。关键点提示是指在图像上标出若干骨骼关节点的二维坐标,比如某只猎豹的左前膝、脊背中心、颈部根部各一个点。这些点会被编码进提示令牌,直接参与每一轮的交叉注意力计算,相当于给侦探明确指出了几处关键证据的位置。遮罩提示则是提供某只动物的像素级轮廓,比如用SAM(Segment Anything Model,一种通用图像分割工具)自动生成的动物剪影。遮罩提示提供的是轮廓层面的信息,告诉系统这只动物大致占据了哪些像素。

为了让系统在没有提示时依然能正常工作,训练过程中采用了提示随机丢弃策略:遮罩提示有50%的概率被完全丢弃;关键点提示有20%的概率整体被丢弃,其余情况下每个关节点还会以0到70%之间随机采样的比例单独丢弃。这样训练出来的系统既能充分利用提示,又不会对提示产生依赖,没有提示时性能也不会大幅下降。

六、数据从哪里来:自建的Herd3D多动物数据集

训练一个能处理多只动物的系统,需要大量包含多只动物且带有精确三维标注的图片。然而现有数据集几乎没有这种东西——大多数数据集要么只有单只动物,要么只有二维标注,要么两者兼有其短。这个数据稀缺的问题几乎是整个多动物三维重建领域的拦路虎。

研究团队为此构建了Herd3D数据集,包含超过5000张图片,涵盖118个物种。生成流程的起点是GenZoo框架——一个能将参数化动物模型和可控图像生成结合起来的系统,它生成的图片天然携带SMAL+参数标注。研究团队在此基础上做了大量针对多动物场景的改造。

在场景布局上,每张图片放置2到8只动物,所有动物共享同一个地面平面。水平位置在负1.5到1.5的范围内采样,并且使用非相邻的水平区间来避免过度重叠;深度位置在8到50的范围内采样,整组动物的深度跨度不超过30,同时加入小幅随机抖动和固定的地面对齐偏移;全局朝向方面,俯仰角在正负15度内随机采样,偏航角在0到360度全范围采样,确保动物能从各个方向出现。

为了提升姿态多样性,团队整合了Animal3D数据集中的真实动物姿态。图像生成后端从原版的ControlNet换成了Qwen-Image-ControlNet-Union,后者在保持几何结构和遮挡顺序方面更为可靠。针对多动物场景中经常出现的朝向歧义问题——系统容易搞不清某只动物是面向镜头还是背对镜头——团队设计了一个两阶段的提示生成方案:先用Qwen3-VL-8B-Instruct模型预测图中每只动物从左到右的朝向,再把所有动物的物种、朝向、相机设置和场景属性综合成一个连贯的最终文本提示,交给图像生成模型。最终每张合成图片的分辨率为1024×1024,并附带SMAL+参数、二维关键点、三维关键点和边界框四类标注。

七、实验结果:数字背后的故事

研究团队用总计约49200张图片组成的训练集训练模型,然后在三个公开数据集上进行测试:Animal3D(包含三维标注的综合动物数据集)、APTv2(动物姿态估计与追踪基准)和Animal Kingdom(包含大量野外动物视频的数据集,是真正的"见没见过的场景"测试)。

比较的基准方法包括三个:AniMer(基于SMAL的Transformer方法)、GenZoo(基于SMAL+的生成式方法)和3D Fauna(代表性的无模板自由式三维重建方法)。这三个方法都需要预先把单只动物裁切出来再送入网络,SAM 3D Animal则直接接收完整图片。

在不使用任何提示的情况下,SAM 3D Animal在Animal3D上的三维误差(PA-MPJPE,可以理解为预测关节点与真实关节点之间的平均距离,单位毫米)为80.7毫米,略优于AniMer的81.0毫米;在Animal Kingdom这个从未见过的场景上,各项指标均领先所有基准,显示出更强的泛化能力;在APTv2上,关键点定位精度(PCK@0.1)达到87.9,远超GenZoo的64.1和AniMer的62.4,尽管另一个指标AP(平均精度)稍低于GenZoo。

当使用ViTPose这款现成的关节点检测工具自动生成提示时,各项指标进一步提升。APTv2上的AP从49.4升至55.5,Animal Kingdom上的AP从45.0升至50.5。这个"自动提示"版本在大多数指标上已经达到或超越了最强基准方法。

当使用真实标注的关键点作为提示时,提升幅度更为可观。Animal3D上的三维误差降至75.8毫米;APTv2上PCK@0.1达到89.0,AP达到57.4;Animal Kingdom上AP跃升至60.1,mAP(平均精度均值)达到17.7,约为AniMer的10.4的1.7倍。与最强基准相比,在Animal Kingdom上AP提升约54%,mAP提升约80%——这组数字验证了研究团队在摘要中的说法。

八、深挖细节:哪些设计真正起了作用

为了搞清楚哪些设计选择真正贡献了性能,研究团队做了一系列消融实验,逐一去掉某个组件,观察性能如何变化。

去掉Herd3D之后,三个测试集上的性能都出现下滑,其中APTv2下降最为明显。这与预期一致:Herd3D是唯一一个提供多动物场景三维标注的数据源,去掉它对那些包含拥挤场景的测试集影响最大。这说明Herd3D的价值不只是增加了训练数据量,而是真正填补了"多动物场景"这个数据空白。

关键点提示与遮罩提示之间的贡献差距令人意外。去掉遮罩提示后(保留关键点提示),性能与完整模型几乎相同;而去掉关键点提示后(保留遮罩提示),性能降回到完全无提示基线的水平。这意味着关键点提示才是驱动性能提升的主要因素,遮罩提示的贡献微乎其微。研究团队解释了两个原因:其一,关键点直接编码了骨骼结构信息,正是SMAL+模型解决姿态歧义所需要的;其二,遮罩提示由SAM自动生成,在细薄肢体或严重遮挡的部位往往不够准确,带入了噪声。不过完整模型(含遮罩提示)在APTv2和Animal Kingdom上仍略优于仅含关键点提示的版本,说明在分割质量足够高时,遮罩提示依然提供了少量互补信息。

关键点数量的影响同样被系统研究过。从0个关键点增加到5个,性能出现最大幅度的跃升;从5个增加到10个、再到15个,性能持续提升但增幅递减。这告诉我们,哪怕只是随机挑选的几个关节点,就已经能消除最主要的姿态歧义,后续增加的关键点则用于精修次要关节。从用户体验角度看,这个特性非常友好——用户只需花费极少的标注工作量,就能获得大部分的提示收益。

九、遮挡越严重,提示越管用

研究团队还专门分析了在不同遮挡程度下,提示的作用如何变化。他们把测试样本按可见关键点数量分成低(遮挡重)、中、高三组,分别对比有GT提示、有ViTPose提示和无提示三种情况。

结果显示出一个清晰的规律:遮挡越严重,提示带来的收益越大。在APTv2的低可见度组,ViTPose提示相对于无提示基线的mAP提升达到57%;中可见度组为40%;高可见度组为26%。Animal Kingdom上的规律相同:低组提升28%,中组16%,高组7%。换句话说,当图像中视觉证据充足时,系统自己就能做出较好的推断,提示带来的边际收益较小;当图像信息严重不足时,提示提供的外部空间先验就变得至关重要,正是在最困难的场景里发挥了最大作用。

ViTPose自动提示在APTv2各可见度组上的表现均接近GT上界,这意味着对于真实应用而言,完全可以用一个现成的关节点检测器替代人工标注,无需额外人力。

十、局限性:没有解决的问题同样值得关注

SAM 3D Animal并非完美无缺。研究团队在论文中坦率地指出了两个主要局限。

第一个是物种覆盖范围的限制。SMAL+模型本质上是为四足哺乳动物设计的,因此SAM 3D Animal目前只对四足动物效果良好,对鸟类、爬行类、鱼类、昆虫等则无法处理。这是底层模型结构带来的根本限制,仅靠训练数据无法克服。

第二个是深度顺序的不确定性。当两只动物前后重叠时,系统对"谁在前面、谁在后面"并没有显式的约束,可能导致输出的三维排列在物理上不合理。比如两只马的三维模型可能在深度方向上发生穿插,而实际上它们不可能占据同一个空间。这个问题在遮挡非常严重时尤为突出。

这两个局限也勾勒出了未来研究的方向:开发更通用的跨物种参数化模型,以及引入显式的深度感知场景约束。

说到底,SAM 3D Animal做了一件听起来简单却极其困难的事:给它一张拍满动物的照片,它能告诉你里面每一只动物的三维姿态和体型,而且如果你愿意多点几个关节位置,它还会做得更好。研究团队不仅造了这个工具,还顺带填上了"多动物三维数据"这个长期空白,提供了Herd3D数据集供后续研究者使用。对于野生动物行为研究、动物医疗、农业监控乃至影视动画制作来说,这套框架都具备直接的应用潜力。当然,它现在还只认四条腿的动物,遇到多只动物严重堆叠时偶尔也会搞错前后顺序,这些问题留给下一代系统去解决——而现在这个版本,已经够用了。

对这项研究感兴趣的读者,可以通过arXiv编号2605.07604查阅完整论文,了解更多技术细节和实验数据。

Q&A

Q1:SAM 3D Animal和普通动物识别软件有什么区别?

A:普通动物识别软件通常只告诉你照片里是什么动物,最多给出二维位置。SAM 3D Animal则能还原出每只动物的完整三维姿态和体型,包括每个关节的空间坐标,并且能同时处理一张照片里的多只动物,无需预先裁切单个动物。

Q2:SMAL+参数化模型为什么不能用在鸟类或爬行类动物上?

A:SMAL+是通过四足哺乳动物的三维扫描数据训练出来的,其骨骼拓扑结构(骨头连接方式)是专门为四足动物设计的,包含35个特定关节。鸟类有翅膀而非前肢,爬行类体型比例和关节数量都与哺乳动物有根本差异,用这套"四足橡皮泥模板"无法合理表达它们的形态。

Q3:Herd3D数据集里的图片是真实拍摄的还是合成的?

A:Herd3D里的图片是合成生成的,由参数化动物模型控制姿态和位置,再通过Qwen-Image-ControlNet-Union图像生成模型渲染出真实感图片,每张图片都附带精确的三维标注。纯靠真实拍摄很难获得多只动物同框且有精确三维标注的图片,合成生成是目前最可行的解决方案。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-