Segment as Points for Efficient Online Multi-Object Tracking and Segmentation

 

Segment as Points for Efficient Online Multi-Object Tracking and Segmentation

Segment as Points for Efficient Online Multi-Object Tracking and Segmentation

Motivation

Methods

Experiments


Paper URL

TL;DR

当前的主流的多目标检测分割方法都是采用tracking-by-detection的范式,这种采用卷积进行特征提取会受固有感受野的影响,会不可避免地将前景特征和背景特征混合在一起,从而在MOT后续实例关联任务中产生歧义。 本文提出了一种tracking-by-points的新范式,PointTracker ,通过将紧凑的图像表示转换为无序的2D点云表示,从而方便地将多模态的数据(颜色、位置、类别等)转换为点状向量表示,以更丰富的特征学习关联匹配的embedding。在KITTI MOTS,MOTS Challenge和本文提出的Appolo MOTS上都取得了SOTA的成绩,并且能够达到22FPS的实时性。

TL;DR

Motivation

  • 由于实例分割精确地描绘了可见实例的边界,并自然地分开了邻接实例,因此MOTS与基于边界框(bbox)的方法相比,不仅提供像素级分析,也有利于学习到更多的区分性实例的embedding特征。

  • 采用卷积进行特征提取embedding会受固有感受野的影响,会不可避免地将前景特征和背景特征混合在一起,从而在MOT后续实例关联任务中产生歧义,所以本文提出了再将有序的二维图像转化为无序的二维点云表示,从前景背景分别采样不同点云提取前景背景特征,避免前/背景信息混合。

Methods

1.Context-aware instance embeddings extraction

Embedding 特征提取总体思路:将带有上下文的Bbox中的像素按照分割mask分为前景F和背景E,分别在前景和背景中采样,以颜色、位置、类别组合构建采样点特征,所有采样点构成无序点云通过MLP提取embeding特征。

实现细节:对于一个分割实例$C$ ​,它的分割记为$C_s$​,外接矩形记为$C_b$​,为了让bbox中包含上下文信息,通常bbox向上下左右按照尺度因子(k=0.2)扩大一定区域,记为$\widehat{C_b}$​,通过分割mask可以确定$\widehat{C_b}$​​内的前景点​和背景点​.每个样本点的有6个维度特征$(u,v,R,G,B,C)$​,其中​$(u,v)$是图像平面上的相对于实例中心的偏移量,​

### 如何运行 Multi-Scale and Detail-Enhanced Segment Anything Model 进行显著对象检测 为了成功运行用于显著性目标检测的多尺度和细节增强的Segment Anything模型,需遵循特定的环境配置与代码执行流程。该过程涉及安装依赖库、下载预训练权重以及编写或调用测试脚本。 #### 安装必要的软件包 首先,在本地环境中设置Python虚拟环境并激活它。接着,通过`requirements.txt`文件来安装所需的第三方库: ```bash pip install -r requirements.txt ``` 此命令会自动解析并安装所有必需的Python包[^1]。 #### 下载预训练模型参数 访问官方GitHub仓库页面获取最新的预训练模型权重文件。通常这些权重会被托管于Google Drive或其他云存储服务上。按照README文档中的指示完成下载,并将其放置到指定目录下以便后续加载使用[^2]。 #### 准备输入图像数据集 创建一个新的文件夹用来存放待处理图片集合。确保每张图片都符合预期格式(如JPEG),并且尺寸适合网络输入需求。如果有必要的话,可以先对原始素材做一些简单的预处理操作,比如裁剪、缩放等。 #### 编写推理脚本 基于给定的例子或者模板,开发一段能够读取单幅或多帧静态画面作为输入,并输出相应分割掩码结果的小程序。这里给出一个简化版的PyTorch风格伪代码片段供参考: ```python import torch from model import MSDetailEnhanceSAM # 假设这是自定义类名 def main(image_path, checkpoint_path='path/to/checkpoint.pth'): device = 'cuda' if torch.cuda.is_available() else 'cpu' # 初始化模型实例并将之移动至GPU/CPU设备端 sam_model = MSDetailEnhanceSAM().to(device) # 加载已保存的最佳性能状态字典 sam_model.load_state_dict(torch.load(checkpoint_path,map_location=device)) sam_model.eval() with torch.no_grad(): img_tensor = preprocess_image(image_path).unsqueeze(0).to(device) pred_mask = sam_model(img_tensor)[0].squeeze() visualize_result(pred_mask.cpu().numpy()) if __name__ == '__main__': from argparse import ArgumentParser parser = ArgumentParser(description="Run inference using SAM.") parser.add_argument('img', type=str, help='Path to input image') args = parser.parse_args() main(args.img) ``` 上述代码展示了如何加载预训练好的MSDetailEnhanceSAM架构,并针对单一路径下的图片执行预测任务。注意实际应用时可能还需要额外考虑批量处理逻辑以及其他优化措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值