24
24
[--nanotrack_backbone NANOTRACK_BACKBONE]
25
25
[--nanotrack_headneck NANOTRACK_TARGET]
26
26
[--vittrack_net VITTRACK_MODEL]
27
+ [--vittrack_net VITTRACK_MODEL]
28
+ [--tracking_score_threshold TRACKING SCORE THRESHOLD FOR ONLY VITTRACK]
29
+ [--backend CHOOSE ONE OF COMPUTATION BACKEND]
30
+ [--target CHOOSE ONE OF COMPUTATION TARGET]
27
31
'''
28
32
29
33
# Python 2/3 compatibility
37
41
38
42
from video import create_capture , presets
39
43
44
+ backends = (cv .dnn .DNN_BACKEND_DEFAULT , cv .dnn .DNN_BACKEND_HALIDE , cv .dnn .DNN_BACKEND_INFERENCE_ENGINE , cv .dnn .DNN_BACKEND_OPENCV ,
45
+ cv .dnn .DNN_BACKEND_VKCOM , cv .dnn .DNN_BACKEND_CUDA )
46
+ targets = (cv .dnn .DNN_TARGET_CPU , cv .dnn .DNN_TARGET_OPENCL , cv .dnn .DNN_TARGET_OPENCL_FP16 , cv .dnn .DNN_TARGET_MYRIAD ,
47
+ cv .dnn .DNN_TARGET_VULKAN , cv .dnn .DNN_TARGET_CUDA , cv .dnn .DNN_TARGET_CUDA_FP16 )
48
+
40
49
class App (object ):
41
50
42
51
def __init__ (self , args ):
@@ -57,15 +66,22 @@ def createTracker(self):
57
66
params .model = self .args .dasiamrpn_net
58
67
params .kernel_cls1 = self .args .dasiamrpn_kernel_cls1
59
68
params .kernel_r1 = self .args .dasiamrpn_kernel_r1
69
+ params .backend = args .backend
70
+ params .target = args .target
60
71
tracker = cv .TrackerDaSiamRPN_create (params )
61
72
elif self .trackerAlgorithm == 'nanotrack' :
62
73
params = cv .TrackerNano_Params ()
63
74
params .backbone = args .nanotrack_backbone
64
75
params .neckhead = args .nanotrack_headneck
76
+ params .backend = args .backend
77
+ params .target = args .target
65
78
tracker = cv .TrackerNano_create (params )
66
79
elif self .trackerAlgorithm == 'vittrack' :
67
80
params = cv .TrackerVit_Params ()
68
81
params .net = args .vittrack_net
82
+ params .tracking_score_threshold = args .tracking_score_threshold
83
+ params .backend = args .backend
84
+ params .target = args .target
69
85
tracker = cv .TrackerVit_create (params )
70
86
else :
71
87
sys .exit ("Tracker {} is not recognized. Please use one of three available: mil, goturn, dasiamrpn, nanotrack." .format (self .trackerAlgorithm ))
@@ -141,6 +157,24 @@ def run(self):
141
157
parser .add_argument ("--nanotrack_backbone" , type = str , default = "nanotrack_backbone_sim.onnx" , help = "Path to onnx model of NanoTrack backBone" )
142
158
parser .add_argument ("--nanotrack_headneck" , type = str , default = "nanotrack_head_sim.onnx" , help = "Path to onnx model of NanoTrack headNeck" )
143
159
parser .add_argument ("--vittrack_net" , type = str , default = "vitTracker.onnx" , help = "Path to onnx model of vittrack" )
160
+ parser .add_argument ('--tracking_score_threshold' , type = float , help = "Tracking score threshold. If a bbox of score >= 0.3, it is considered as found " )
161
+ parser .add_argument ('--backend' , choices = backends , default = cv .dnn .DNN_BACKEND_DEFAULT , type = int ,
162
+ help = "Choose one of computation backends: "
163
+ "%d: automatically (by default), "
164
+ "%d: Halide language (http://halide-lang.org/), "
165
+ "%d: Intel's Deep Learning Inference Engine (https://software.intel.com/openvino-toolkit), "
166
+ "%d: OpenCV implementation, "
167
+ "%d: VKCOM, "
168
+ "%d: CUDA" % backends )
169
+ parser .add_argument ("--target" , choices = targets , default = cv .dnn .DNN_TARGET_CPU , type = int ,
170
+ help = "Choose one of target computation devices: "
171
+ '%d: CPU target (by default), '
172
+ '%d: OpenCL, '
173
+ '%d: OpenCL fp16 (half-float precision), '
174
+ '%d: VPU, '
175
+ '%d: VULKAN, '
176
+ '%d: CUDA, '
177
+ '%d: CUDA fp16 (half-float preprocess)' % targets )
144
178
145
179
args = parser .parse_args ()
146
180
App (args ).run ()
0 commit comments