aboutsummaryrefslogtreecommitdiffstats
path: root/anime-face-detector/nms/py_cpu_nms.py
diff options
context:
space:
mode:
authorcarp <25677564+carp@users.noreply.github.com>2020-07-13 13:27:55 -0400
committercarp <25677564+carp@users.noreply.github.com>2020-07-13 13:27:55 -0400
commitcb961ed0d6896309336159bda34ed2f75fb60a84 (patch)
tree6d75fcd9bd32b2e884e299ea97e361513036b3a2 /anime-face-detector/nms/py_cpu_nms.py
parente78f351e06e432a607ebadc8de3ea6d27315c088 (diff)
downloadyaoi-communism-cb961ed0d6896309336159bda34ed2f75fb60a84.tar.gz
yaoi-communism-cb961ed0d6896309336159bda34ed2f75fb60a84.zip
add face detection
Diffstat (limited to 'anime-face-detector/nms/py_cpu_nms.py')
-rw-r--r--anime-face-detector/nms/py_cpu_nms.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/anime-face-detector/nms/py_cpu_nms.py b/anime-face-detector/nms/py_cpu_nms.py
new file mode 100644
index 0000000..54e7b25
--- /dev/null
+++ b/anime-face-detector/nms/py_cpu_nms.py
@@ -0,0 +1,38 @@
+# --------------------------------------------------------
+# Fast R-CNN
+# Copyright (c) 2015 Microsoft
+# Licensed under The MIT License [see LICENSE for details]
+# Written by Ross Girshick
+# --------------------------------------------------------
+
+import numpy as np
+
+def py_cpu_nms(dets, thresh):
+ """Pure Python NMS baseline."""
+ x1 = dets[:, 0]
+ y1 = dets[:, 1]
+ x2 = dets[:, 2]
+ y2 = dets[:, 3]
+ scores = dets[:, 4]
+
+ areas = (x2 - x1 + 1) * (y2 - y1 + 1)
+ order = scores.argsort()[::-1]
+
+ keep = []
+ while order.size > 0:
+ i = order[0]
+ keep.append(i)
+ xx1 = np.maximum(x1[i], x1[order[1:]])
+ yy1 = np.maximum(y1[i], y1[order[1:]])
+ xx2 = np.minimum(x2[i], x2[order[1:]])
+ yy2 = np.minimum(y2[i], y2[order[1:]])
+
+ w = np.maximum(0.0, xx2 - xx1 + 1)
+ h = np.maximum(0.0, yy2 - yy1 + 1)
+ inter = w * h
+ ovr = inter / (areas[i] + areas[order[1:]] - inter)
+
+ inds = np.where(ovr <= thresh)[0]
+ order = order[inds + 1]
+
+ return keep