資源簡介
目標跟蹤算法的代碼實現,精度在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
評論
共有 條評論