资源简介

目标跟踪算法的代码实现,精度在vot2018排名第一,鲁棒性很强.

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
“““
Created on Wed Jun 27 11:42:36 2018
@author: ZK
“““

def x1y1x2y2_to_xywh(gtbox):
    return list(map(round [(gtbox[0]+gtbox[2])/2. (gtbox[1]+gtbox[3])/2. gtbox[2]-gtbox[0] gtbox[3]-gtbox[1]]))

def xywh_to_x1y1x2y2(gtbox):
    return list(map(round [gtbox[0]-gtbox[2]/2. gtbox[1]-gtbox[3]/2. gtbox[0]+gtbox[2]/2. gtbox[1]+gtbox[3]/2.]))

def x1y1wh_to_xywh(gtbox):
    x1 y1 w h = gtbox
    return [round(x1 + w/2.) round(y1 + h/2.) w h]

def x1y1wh_to_x1y1x2y2(gtbox):
    x1 y1 w h = gtbox
    return [x1 y1 x1+w y1+h]
#%%
import torch
from torch.nn import Module
from torch.nn import functional as F
#%%
class SmoothL1Loss(Module):
    def __init__(self use_gpu):
        super (SmoothL1Loss self).__init__()
        self.use_gpu = use_gpu
        return
    
    def forward(self clabel target routput rlabel):
        
#        rloss = F.smooth_l1_loss(routput rlabel)
        rloss = F.smooth_l1_loss(routput rlabel size_average=False reduce=False)
        
            
        e = torch.eq(clabel.float() target) 
        e = e.squeeze()
        e0e1e2e3e4 = e[0].unsqueeze(0)e[1].unsqueeze(0)e[2].unsqueeze(0)e[3].unsqueeze(0)e[4].unsqueeze(0)
        eq = torch.cat([e0e0e0e0e1e1e1e1e2e2e2e2e3e3e3e3e4e4e4e4] dim=0).float()
        
        rloss = rloss.squeeze()
        rloss = torch.mul(eq rloss)
        rloss = torch.sum(rloss)
        rloss = torch.div(rloss eq.nonzero().shape[0]+1e-4)
        return rloss
#%%
class Myloss(Module):
    def __init__(self):
        super (Myloss self).__init__()
        return 
    
    def forward(self coutput clabel target routput rlabel lmbda):
        closs = F.cross_entropy(coutput clabel)

#        rloss = F.smooth_l1_loss(routput rlabel)
        rloss = F.smooth_l1_loss(routput rlabel size_average=False reduce=False)
        
            
        e = torch.eq(clabel.float() target) 
        e = e.squeeze()
        e0e1e2e3e4 = e[0].unsqueeze(0)e[1].unsqueeze(0)e[2].unsqueeze(0)e[3].unsqueeze(0)e[4].unsqueeze(0)
        eq = torch.cat([e0e0e0e0e1e1e1e1e2e2e2e2e3e3e3e3e4e4e4e4] dim=0).float()
        
        rloss = rloss.squeeze()
        rloss = torch.mul(eq rloss)
        rloss = torch.sum(rloss)
        rloss = torch.div(rloss eq.nonzero().shape[0]+1e-4)
        
        loss = torch.add(closs lmbda rloss)
        return loss
#%%
import math
from PIL import ImageStat Image
from torchvision.transforms import functional as F2
#%%
def resize(img size interpolation=Image.BILINEAR):
    assert img.size[0] == img.size[1]
    return img.resize((size size) interpolation) img.size[0] / size
#%%
def point_center_crop(img gtbox area):
    x y dw dh = gtbox
    p = (dw + dh) / 2.
    a = math.sqrt((dw + p) * (dh + p))
    a *= area
    i = round(x - a/2.)
    j = round(y - a/2.)
    mean = tup

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-29 01:13  Siamese-RPN-master\
     文件          66  2018-08-29 01:13  Siamese-RPN-master\.gitattributes
     文件         743  2018-08-29 01:13  Siamese-RPN-master\README.md
     文件        2881  2018-08-29 01:13  Siamese-RPN-master\SRPN.py
     文件       12530  2018-08-29 01:13  Siamese-RPN-master\axis.py
     文件        7933  2018-08-29 01:13  Siamese-RPN-master\data_otb.py
     文件        2360  2018-08-29 01:13  Siamese-RPN-master\download.py
     文件        8828  2018-08-29 01:13  Siamese-RPN-master\test_otb.py
     文件       10245  2018-08-29 01:13  Siamese-RPN-master\train.py
     文件        2978  2018-08-29 01:13  Siamese-RPN-master\video2pic.py

评论

共有 条评论