You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
import cv2
|
|
import numpy as np
|
|
|
|
|
|
def visualize_detection(img, bboxes_and_landmarks, save_path=None, to_bgr=False):
|
|
"""Visualize detection results.
|
|
|
|
Args:
|
|
img (Numpy array): Input image. CHW, BGR, [0, 255], uint8.
|
|
"""
|
|
img = np.copy(img)
|
|
if to_bgr:
|
|
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
|
|
|
|
for b in bboxes_and_landmarks:
|
|
# confidence
|
|
cv2.putText(img, f'{b[4]:.4f}', (int(b[0]), int(b[1] + 12)), cv2.FONT_HERSHEY_DUPLEX, 0.5, (255, 255, 255))
|
|
# bounding boxes
|
|
b = list(map(int, b))
|
|
cv2.rectangle(img, (b[0], b[1]), (b[2], b[3]), (0, 0, 255), 2)
|
|
# landmarks (for retinaface)
|
|
cv2.circle(img, (b[5], b[6]), 1, (0, 0, 255), 4)
|
|
cv2.circle(img, (b[7], b[8]), 1, (0, 255, 255), 4)
|
|
cv2.circle(img, (b[9], b[10]), 1, (255, 0, 255), 4)
|
|
cv2.circle(img, (b[11], b[12]), 1, (0, 255, 0), 4)
|
|
cv2.circle(img, (b[13], b[14]), 1, (255, 0, 0), 4)
|
|
# save img
|
|
if save_path is not None:
|
|
cv2.imwrite(save_path, img)
|