ytfeng commited on
Commit
bbe6825
·
1 Parent(s): e363419

add benchmark results for object detection (#106)

Browse files
README.md CHANGED
@@ -15,11 +15,13 @@ Guidelines:
15
 
16
  ## Models & Benchmark Results
17
 
18
- | Model | Task | Input Size | INTEL-CPU (ms) | RPI-CPU (ms) | JETSON-GPU (ms) | KV3-NPU (ms) | D1-CPU (ms) |
19
- | ---------------------------------------------------- | ----------------------------- | ---------- | -------------- | ------------ | --------------- | ------------ | ----------- |
20
  | [YuNet](./models/face_detection_yunet) | Face Detection | 160x120 | 1.45 | 6.22 | 12.18 | 4.04 | 86.69 |
21
  | [SFace](./models/face_recognition_sface) | Face Recognition | 112x112 | 8.65 | 99.20 | 24.88 | 46.25 | --- |
22
- | [LPD-YuNet](./models/license_plate_detection_yunet/) | License Plate Detection | 320x240 | --- | 168.03 | 56.12 | 29.53 | |
 
 
23
  | [DB-IC15](./models/text_detection_db) | Text Detection | 640x480 | 142.91 | 2835.91 | 208.41 | --- | --- |
24
  | [DB-TD500](./models/text_detection_db) | Text Detection | 640x480 | 142.91 | 2841.71 | 210.51 | --- | --- |
25
  | [CRNN-EN](./models/text_recognition_crnn) | Text Recognition | 100x32 | 50.21 | 234.32 | 196.15 | 125.30 | --- |
@@ -68,6 +70,12 @@ Some examples are listed below. You can find more in the directory of each model
68
 
69
  ![license plate detection](./models/license_plate_detection_yunet/examples/lpd_yunet_demo.gif)
70
 
 
 
 
 
 
 
71
  ### Object Tracking with [DaSiamRPN](./models/object_tracking_dasiamrpn/)
72
 
73
  ![webcam demo](./models/object_tracking_dasiamrpn/examples/dasiamrpn_demo.gif)
 
15
 
16
  ## Models & Benchmark Results
17
 
18
+ | Model | Task | Input Size | INTEL-CPU (ms) | RPI-CPU (ms) | JETSON-GPU (ms) | KV3-NPU (ms) | D1-CPU (ms) |
19
+ | ------------------------------------------------------- | ----------------------------- | ---------- | -------------- | ------------ | --------------- | ------------ | ----------- |
20
  | [YuNet](./models/face_detection_yunet) | Face Detection | 160x120 | 1.45 | 6.22 | 12.18 | 4.04 | 86.69 |
21
  | [SFace](./models/face_recognition_sface) | Face Recognition | 112x112 | 8.65 | 99.20 | 24.88 | 46.25 | --- |
22
+ | [LPD-YuNet](./models/license_plate_detection_yunet/) | License Plate Detection | 320x240 | --- | 168.03 | 56.12 | 29.53 | --- |
23
+ | [YOLOX](./models/object_detection_yolox/) | Object Detection | 640x640 | 176.68 | 1496.70 | 388.95 | 420.98 | --- |
24
+ | [NanoDet](./models/object_detection_nanodet/) | Object Detection | 416x416 | 157.91 | 220.36 | 64.94 | 116.64 | --- |
25
  | [DB-IC15](./models/text_detection_db) | Text Detection | 640x480 | 142.91 | 2835.91 | 208.41 | --- | --- |
26
  | [DB-TD500](./models/text_detection_db) | Text Detection | 640x480 | 142.91 | 2841.71 | 210.51 | --- | --- |
27
  | [CRNN-EN](./models/text_recognition_crnn) | Text Recognition | 100x32 | 50.21 | 234.32 | 196.15 | 125.30 | --- |
 
70
 
71
  ![license plate detection](./models/license_plate_detection_yunet/examples/lpd_yunet_demo.gif)
72
 
73
+ ### Object Detection with [NanoDet](./models/object_detection_nanodet/) & [YOLOX](./models/object_detection_yolox/)
74
+
75
+ ![nanodet demo](./models/object_detection_nanodet/samples/1_res.jpg)
76
+
77
+ ![yolox demo](./models/object_detection_yolox/samples/3_res.jpg)
78
+
79
  ### Object Tracking with [DaSiamRPN](./models/object_tracking_dasiamrpn/)
80
 
81
  ![webcam demo](./models/object_tracking_dasiamrpn/examples/dasiamrpn_demo.gif)
benchmark/config/object_detection_nanodet.yaml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Benchmark:
2
+ name: "Object Detection Benchmark"
3
+ type: "Detection"
4
+ data:
5
+ path: "benchmark/data/object_detection"
6
+ files: ["1.png", "2.png", "3.png"]
7
+ sizes:
8
+ - [416, 416]
9
+ metric:
10
+ warmup: 30
11
+ repeat: 10
12
+ reduction: "median"
13
+ backend: "default"
14
+ target: "cpu"
15
+
16
+ Model:
17
+ name: "NanoDet"
18
+ modelPath: "models/object_detection_nanodet/object_detection_nanodet_2022nov.onnx"
19
+ prob_threshold: 0.35
20
+ iou_threshold: 0.6
21
+
benchmark/config/object_detection_yolox.yaml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Benchmark:
2
+ name: "Object Detection Benchmark"
3
+ type: "Detection"
4
+ data:
5
+ path: "benchmark/data/object_detection"
6
+ files: ["1.png", "2.png", "3.png"]
7
+ sizes:
8
+ - [640, 640]
9
+ metric:
10
+ warmup: 30
11
+ repeat: 10
12
+ reduction: "median"
13
+ backend: "default"
14
+ target: "cpu"
15
+
16
+ Model:
17
+ name: "YoloX"
18
+ modelPath: "models/object_detection_yolox/object_detection_yolox_2022nov.onnx"
19
+ confThreshold: 0.35
20
+ nmsThreshold: 0.5
21
+ objThreshold: 0.5
22
+
benchmark/download_data.py CHANGED
@@ -205,6 +205,10 @@ data_downloaders = dict(
205
  url='https://drive.google.com/u/0/uc?id=1cf9MEyUqMMy8lLeDGd1any6tM_SsSmny&export=download',
206
  sha='997acb143ddc4531e6e41365fb7ad4722064564c',
207
  filename='license_plate_detection.zip'),
 
 
 
 
208
  )
209
 
210
  if __name__ == '__main__':
 
205
  url='https://drive.google.com/u/0/uc?id=1cf9MEyUqMMy8lLeDGd1any6tM_SsSmny&export=download',
206
  sha='997acb143ddc4531e6e41365fb7ad4722064564c',
207
  filename='license_plate_detection.zip'),
208
+ object_detection=Downloader(name='object_detection',
209
+ url='https://drive.google.com/u/0/uc?id=1LUUrQIWYYtiGoNAL_twZvdw5NkC39Swe&export=download',
210
+ sha='4161a5cd3b0be1f51484abacf19dc9a2231e9894',
211
+ filename='object_detection.zip'),
212
  )
213
 
214
  if __name__ == '__main__':
models/__init__.py CHANGED
@@ -12,6 +12,8 @@ from .image_classification_mobilenet.mobilenet_v2 import MobileNetV2
12
  from .palm_detection_mediapipe.mp_palmdet import MPPalmDet
13
  from .handpose_estimation_mediapipe.mp_handpose import MPHandPose
14
  from .license_plate_detection_yunet.lpd_yunet import LPD_YuNet
 
 
15
 
16
  class Registery:
17
  def __init__(self, name):
@@ -39,3 +41,6 @@ MODELS.register(MobileNetV2)
39
  MODELS.register(MPPalmDet)
40
  MODELS.register(MPHandPose)
41
  MODELS.register(LPD_YuNet)
 
 
 
 
12
  from .palm_detection_mediapipe.mp_palmdet import MPPalmDet
13
  from .handpose_estimation_mediapipe.mp_handpose import MPHandPose
14
  from .license_plate_detection_yunet.lpd_yunet import LPD_YuNet
15
+ from .object_detection_nanodet.nanodet import NanoDet
16
+ from .object_detection_yolox.yolox import YoloX
17
 
18
  class Registery:
19
  def __init__(self, name):
 
41
  MODELS.register(MPPalmDet)
42
  MODELS.register(MPHandPose)
43
  MODELS.register(LPD_YuNet)
44
+ MODELS.register(NanoDet)
45
+ MODELS.register(YoloX)
46
+
models/object_detection_nanodet/README.md CHANGED
@@ -24,7 +24,9 @@ Here are some of the sample results that were observed using the model,
24
 
25
  ![test1_res.jpg](./samples/1_res.jpg)
26
  ![test2_res.jpg](./samples/2_res.jpg)
27
-
 
 
28
  Video inference result,
29
  ![WebCamR.gif](./samples/WebCamR.gif)
30
 
 
24
 
25
  ![test1_res.jpg](./samples/1_res.jpg)
26
  ![test2_res.jpg](./samples/2_res.jpg)
27
+
28
+ Check [benchmark/download_data.py](../../benchmark/download_data.py) for the original images.
29
+
30
  Video inference result,
31
  ![WebCamR.gif](./samples/WebCamR.gif)
32
 
models/object_detection_nanodet/nanodet.py CHANGED
@@ -37,7 +37,7 @@ class NanoDet:
37
  def name(self):
38
  return self.__class__.__name__
39
 
40
- def setBackend(self, backenId):
41
  self.backend_id = backendId
42
  self.net.setPreferableBackend(self.backend_id)
43
 
 
37
  def name(self):
38
  return self.__class__.__name__
39
 
40
+ def setBackend(self, backendId):
41
  self.backend_id = backendId
42
  self.net.setPreferableBackend(self.backend_id)
43
 
models/object_detection_yolox/README.md CHANGED
@@ -33,10 +33,7 @@ Here are some of the sample results that were observed using the model (**yolox_
33
  ![2_res.jpg](./samples/2_res.jpg)
34
  ![3_res.jpg](./samples/3_res.jpg)
35
 
36
- <!--
37
- Video inference result,
38
- ![WebCamR.gif](./examples/results/WebCamR.gif)
39
- -->
40
 
41
  ## Model metrics:
42
 
 
33
  ![2_res.jpg](./samples/2_res.jpg)
34
  ![3_res.jpg](./samples/3_res.jpg)
35
 
36
+ Check [benchmark/download_data.py](../../benchmark/download_data.py) for the original images.
 
 
 
37
 
38
  ## Model metrics:
39