在今年上半年的时候提出来了SAM:SegmentAnythingModel,在CV领域可谓是轰动一时,随后基于SAM演变出来了很多有意思的应用成果,前文系列博文如下,感兴趣的话可以自行移步阅读:
《Segment Anything Model (SAM)——卷起来了,那个号称分割一切的CV大模型他来了》
《Segment Anything Model (SAM)——分割一切,具有预测提示输入的图像分割实践》
《SAM-FAST:Accelerating Generative AI with PyTorch: Segment Anything, Fast基于官方PyTorch团队开发原生SAM提速8倍》
上个月也就是11月月底,另一团队发表了一个全新的研究成果,这里我将其称为PAM:PoseAnythingModel,官方原文在这里,如下所示:
传统的2D姿态估计模型受到其特定类别设计的限制,使得它们仅适用于预定义的对象类别。在处理新对象时,由于缺乏相关的训练数据这种限制变得特别具有挑战性。
为了解决这一限制,作者引入了类别不可知的姿态估计(CAPE)。CAPE旨在使用单个模型实现任意对象类别的关键点定位,需要具有注释关键点的最小支持图像。这种方法不仅能够基于任意关键点定义生成对象姿态,而且显著降低了相关成本,为多功能和自适应的姿态估计应用铺平了道路。
文章提出了一种新的CAPE方法,通过新设计的图转换器解码器利用关键点之间固有的几何关系。通过捕获和合并这一关键的结构信息,我们的方法提高了关键点定位的准确性,标志着与将关键点视为孤立实体的传统CAPE技术的显著背离。
作者在MP-100基准上验证了我们的方法,这是一个全面的数据集,包括跨越100多个类别的20000多张图像。我们的方法在很大程度上优于现有技术,在1次拍摄和5次拍摄设置下分别实现了2.16%和1.82%的显著改进。此外,与以前的CAPE方法相比,文章提出的方法的端到端培训展示了可扩展性和效率。
想要进一步了解相关的技术详情可以自行阅读原论文。
作者博客在这里,如下所示:
作者发表论文的同时也开源了项目地址,在这里,如下所示:
目前热度不算高。
如果想要上手体验使用的话作者提供了可以直接使用的镜像,操作方式如下:
docker pull orhir/pose_anything
docker run --name pose_anything -v {DATA_DIR}:/workspace/PoseAnything/PoseAnything/data/mp100 -it orhir/pose_anything /bin/bash
模型的开发训练是基于python3.8的环境下进行的,PyTorch是2.0.1的版本,CUDA是12.1的版本,开发者可以作为参考。
下面两个是基础库需要提前安装:
mmcv-full=1.6.2
mmpose=0.29.0
安装完成后执行:
python setup.py develop
如果想要使用作者论文中使用的预训练Swin Transformer,可以从这里下载对应的权重文件。
训练执行命令如下:
python train.py --config [path_to_config_file] --work-dir [path_to_work_dir]
作者是基于MP-100 数据集完成整体的开发训练评估工作的,相关的模型如下:
1-Shot Models
Setting | split 1 | split 2 | split 3 | split 4 | split 5 |
---|---|---|---|---|---|
Tiny | 91.06 | 88024 | 86.09 | 86.17 | 85.78 |
link / config | link / config | link / config | link / config | link / config | |
Small | 93.66 | 90.42 | 89.79 | 88.68 | 89.61 |
link / config | link / config | link / config | link / config | link / config |
5-Shot Models
Setting | split 1 | split 2 | split 3 | split 4 | split 5 |
---|---|---|---|---|---|
Tiny | 94.18 | 91.46 | 90.50 | 90.18 | 89.47 |
link / config | link / config | link / config | link / config | link / config | |
Small | 96.51 | 92.15 | 91.99 | 92.01 | 92.36 |
link / config | link / config | link / config | link / config | link / config |
评估执行命令如下:
python test.py [path_to_config_file] [path_to_pretrained_ckpt]
后面找时间详细搭建一下环境实地测试使用下。