|
import torch |
|
import cv2 |
|
import numpy as np |
|
from PIL import Image |
|
from DeDoDe import dedode_detector_L |
|
|
|
|
|
def draw_kpts(im, kpts): |
|
kpts = [cv2.KeyPoint(x, y, 1.0) for x, y in kpts.cpu().numpy()] |
|
im = np.array(im) |
|
ret = cv2.drawKeypoints(im, kpts, None) |
|
return ret |
|
|
|
|
|
detector = dedode_detector_L(weights=torch.load("dedode_detector_l.pth")) |
|
im_path = "assets/im_A.jpg" |
|
im = Image.open(im_path) |
|
out = detector.detect_from_path(im_path, num_keypoints=10_000) |
|
W, H = im.size |
|
kps = out["keypoints"] |
|
kps = detector.to_pixel_coords(kps, H, W) |
|
Image.fromarray(draw_kpts(im, kps[0])).save("demo/keypoints.png") |
|
|