for i in range(0, detections.shape[2]):
extract the confidence (i.e., probability) associated with the
prediction
confidence = detections[0, 0, i, 2]
filter out weak detections by ensuring the confidence
is
greater than the minimum confidence
if confidence > args[“confidence”]:
compute the (x, y)-coordinates of the bounding box for the
object
box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
(startX, startY, endX, endY) = box.astype(“int”)
draw the bounding box of the face along with the associated
probability
text = “{:.2f}%”.format(confidence * 100)
y = startY - 10 if startY - 10 > 10 else startY + 10
cv2.rectangle(image, (startX, startY), (endX, endY),
(0, 0, 255), 2)
cv2.putText(image, text, (startX, y),
cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 0, 255), 2)
show the output image
cv2.imshow(“Output”, image)
cv2.waitKey(0)
遍历检测结果。
然后,我们提取置信度并将其与置信度阈值进行比较。 我们执行此检查以过滤掉弱检测。 如果置信度满足最小阈值,我们继续绘制一个矩形以及检测概率。
为此,我们首先计算边界框的 (x, y) 坐标。 然后我们构建包含检测概率的置信文本字符串。 如果我们的文本偏离图像(例如当面部检测发生在图像的最顶部时),我们将其向下移动 10 个像素。 我们的面部矩形和置信文本绘制在图像上。
然后,我们再次循环执行该过程后的其他检测。 如果没有检测到,我们准备在屏幕上显示我们的输出图像)。
打开一个终端并执行以下命令:
python detect_faces.py --image 2.jpg --prototxt deploy.proto.txt