@@ -22,9 +22,6 @@ class YOLO:
22
22
23
23
@classmethod
24
24
def add_plugin (cls , network ):
25
- """
26
- Adapted from https://github.com/jkjung-avt/tensorrt_demos
27
- """
28
25
def get_plugin_creator (plugin_name ):
29
26
plugin_creators = trt .get_plugin_registry ().plugin_creator_list
30
27
for plugin_creator in plugin_creators :
@@ -107,6 +104,114 @@ class YOLOv4(YOLO):
107
104
INPUT_SHAPE = (3 , 512 , 512 )
108
105
LAYER_FACTORS = [8 , 16 , 32 ]
109
106
SCALES = [1.2 , 1.1 , 1.05 ]
110
- ANCHORS = [[11 , 22 , 24 , 60 , 37 , 116 ],
111
- [54 , 186 , 69 , 268 , 89 , 369 ],
112
- [126 , 491 , 194 , 314 , 278 , 520 ]]
107
+ ANCHORS = [[11 ,22 , 24 ,60 , 37 ,116 ],
108
+ [54 ,186 , 69 ,268 , 89 ,369 ],
109
+ [126 ,491 , 194 ,314 , 278 ,520 ]]
110
+
111
+
112
+ """
113
+ The following models are supported but not provided.
114
+ Modify paths, # classes, input shape, and anchors according to your Darknet cfg for custom model.
115
+ """
116
+
117
+ class YOLOv4CSP (YOLO ):
118
+ ENGINE_PATH = Path (__file__ ).parent / 'yolov4-csp.trt'
119
+ MODEL_PATH = Path (__file__ ).parent / 'yolov4-csp.onnx'
120
+ NUM_CLASSES = 1
121
+ LETTERBOX = True
122
+ NEW_COORDS = True
123
+ INPUT_SHAPE = (3 , 512 , 512 )
124
+ LAYER_FACTORS = [8 , 16 , 32 ]
125
+ SCALES = [2.0 , 2.0 , 2.0 ]
126
+ ANCHORS = [[12 ,16 , 19 ,36 , 40 ,28 ],
127
+ [36 ,75 , 76 ,55 , 72 ,146 ],
128
+ [142 ,110 , 192 ,243 , 459 ,401 ]]
129
+
130
+
131
+ class YOLOv4xMish (YOLO ):
132
+ ENGINE_PATH = Path (__file__ ).parent / 'yolov4x-mish.trt'
133
+ MODEL_PATH = Path (__file__ ).parent / 'yolov4x-mish.onnx'
134
+ NUM_CLASSES = 1
135
+ LETTERBOX = True
136
+ NEW_COORDS = True
137
+ INPUT_SHAPE = (3 , 640 , 640 )
138
+ LAYER_FACTORS = [8 , 16 , 32 ]
139
+ SCALES = [2.0 , 2.0 , 2.0 ]
140
+ ANCHORS = [[12 ,16 , 19 ,36 , 40 ,28 ],
141
+ [36 ,75 , 76 ,55 , 72 ,146 ],
142
+ [142 ,110 , 192 ,243 , 459 ,401 ]]
143
+
144
+
145
+ class YOLOv4P5 (YOLO ):
146
+ ENGINE_PATH = Path (__file__ ).parent / 'yolov4-p5.trt'
147
+ MODEL_PATH = Path (__file__ ).parent / 'yolov4-p5.onnx'
148
+ NUM_CLASSES = 1
149
+ LETTERBOX = True
150
+ NEW_COORDS = True
151
+ INPUT_SHAPE = (3 , 896 , 896 )
152
+ LAYER_FACTORS = [8 , 16 , 32 ]
153
+ SCALES = [2.0 , 2.0 , 2.0 ]
154
+ ANCHORS = [[13 ,17 , 31 ,25 , 24 ,51 , 61 ,45 ],
155
+ [48 ,102 , 119 ,96 , 97 ,189 , 217 ,184 ],
156
+ [171 ,384 , 324 ,451 , 616 ,618 , 800 ,800 ]]
157
+
158
+
159
+ class YOLOv4P6 (YOLO ):
160
+ ENGINE_PATH = Path (__file__ ).parent / 'yolov4-p6.trt'
161
+ MODEL_PATH = Path (__file__ ).parent / 'yolov4-p6.onnx'
162
+ NUM_CLASSES = 1
163
+ LETTERBOX = True
164
+ NEW_COORDS = True
165
+ INPUT_SHAPE = (3 , 1280 , 1280 )
166
+ LAYER_FACTORS = [8 , 16 , 32 , 64 ]
167
+ SCALES = [2.0 , 2.0 , 2.0 , 2.0 ]
168
+ ANCHORS = [[13 ,17 , 31 ,25 , 24 ,51 , 61 ,45 ],
169
+ [61 ,45 , 48 ,102 , 119 ,96 , 97 ,189 ],
170
+ [97 ,189 , 217 ,184 , 171 ,384 , 324 ,451 ],
171
+ [324 ,451 , 545 ,357 , 616 ,618 , 1024 ,1024 ]]
172
+
173
+
174
+ class YOLOv4Tiny (YOLO ):
175
+ ENGINE_PATH = Path (__file__ ).parent / 'yolov4-tiny.trt'
176
+ MODEL_PATH = Path (__file__ ).parent / 'yolov4-tiny.onnx'
177
+ NUM_CLASSES = 1
178
+ INPUT_SHAPE = (3 , 416 , 416 )
179
+ LAYER_FACTORS = [32 , 16 ]
180
+ SCALES = [1.05 , 1.05 ]
181
+ ANCHORS = [[81 ,82 , 135 ,169 , 344 ,319 ],
182
+ [23 ,27 , 37 ,58 , 81 ,82 ]]
183
+
184
+
185
+ class YOLOv3 (YOLO ):
186
+ ENGINE_PATH = Path (__file__ ).parent / 'yolov3.trt'
187
+ MODEL_PATH = Path (__file__ ).parent / 'yolov3.onnx'
188
+ NUM_CLASSES = 1
189
+ INPUT_SHAPE = (3 , 416 , 416 )
190
+ LAYER_FACTORS = [32 , 16 , 8 ]
191
+ SCALES = [1. , 1. ]
192
+ ANCHORS = [[116 ,90 , 156 ,198 , 373 ,326 ],
193
+ [30 ,61 , 62 ,45 , 59 ,119 ],
194
+ [10 ,13 , 16 ,30 , 33 ,23 ]]
195
+
196
+
197
+ class YOLOv3SPP (YOLO ):
198
+ ENGINE_PATH = Path (__file__ ).parent / 'yolov3-spp.trt'
199
+ MODEL_PATH = Path (__file__ ).parent / 'yolov3-spp.onnx'
200
+ NUM_CLASSES = 1
201
+ INPUT_SHAPE = (3 , 608 , 608 )
202
+ LAYER_FACTORS = [32 , 16 , 8 ]
203
+ SCALES = [1. , 1. ]
204
+ ANCHORS = [[116 ,90 , 156 ,198 , 373 ,326 ],
205
+ [30 ,61 , 62 ,45 , 59 ,119 ],
206
+ [10 ,13 , 16 ,30 , 33 ,23 ]]
207
+
208
+
209
+ class YOLOv3Tiny (YOLO ):
210
+ ENGINE_PATH = Path (__file__ ).parent / 'yolov3-tiny.trt'
211
+ MODEL_PATH = Path (__file__ ).parent / 'yolov3-tiny.onnx'
212
+ NUM_CLASSES = 1
213
+ INPUT_SHAPE = (3 , 416 , 416 )
214
+ LAYER_FACTORS = [32 , 16 ]
215
+ SCALES = [1. , 1. ]
216
+ ANCHORS = [[81 ,82 , 135 ,169 , 344 ,319 ],
217
+ [10 ,14 , 23 ,27 , 37 ,58 ]]
0 commit comments