语义分割后MOT多目标追踪的方法

针对荧光细胞的实时追踪挑战,本文介绍了一种方法:首先进行语义分割,接着使用反向卡尔曼滤波追踪,通过匈牙利算法匹配,最后应用卡尔曼滤波更新。在匈牙利算法中,可以加入多种特征(如重心坐标、面积、周长、IOU等)计算代价矩阵。虽然马氏距离在某些情况下可选,但根据具体需求决定是否使用。文章提供了基本的函数实现,包括匈牙利匹配算法。
摘要由CSDN通过智能技术生成

对于荧光细胞来说实时追踪是很困难的,

光信号非常弱的缘故

所以先进行语义分割,然后对时间序列进行倒序追踪

顺序是这样的

1. 语义分割

2. 反向卡尔曼滤波追踪 predict、

3. 匈牙利算法match

4.卡尔曼滤波update 进入下一帧

如图所示(画的很清晰明确了哈)

 

 在匈牙利算法的时候计算cost matrix 可以把一切乱七八糟想加的东西加进去

我这里加入了重心坐标,面积,周长,IOU,总之感觉有关的连续变量都可以加进去

,注意权重赋值就行。

马氏距离的问题和导师讨论了一下,感觉我们的情况用不用都可以

根据需求加吧

基本的function在这里:

# kalman

"""
Kalmanfilter
输入:一张图的信息,一个细胞序号
input one frame, one cell number each time
use new frame for iteration
"""

class Kalmanfilter(object):
    
    def __init__(self, preds_info_one_frame,cell_num,Z_Null=False): #输入一个图的信息,一个细胞序号
        """
        timelist for later use
        """
        self.preds_info = preds_info_one_frame  
        self.cell_num = cell_num  
        
        self.skipped_frames = 0  # number of frames skipped undetected
        self.trace = []  # trace path
        self.cx=int(self.preds_info[self.cell_num][3][0]) # centroid x
        self.cy=int(self.preds_info[self.cell_num][3][1]) # centroid y
        self.area=int(self.preds_info[self.cell_num][1])  # area 面积
        self.hh = self.preds_info[self.cell_num][7].shape[0]
        self.ww = self.preds_info[self.cell_nu
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值