Spaces:
Running on Zero
Running on Zero
three-face-swap-zero-gpu / methods /alphaface /facexlib_src /facexlib /visualization /vis_detection.py
| 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) | |