github上面scrfd模型修改其中部分代码输出1中要求的json文件,与1中模型差别在于模型输出的bounding boxs未作规划
if__name__ == '__main__':
data = []
wname = 'data.json'
detector = SCRFD(model_file = R'')
detector.prepare(-1)
for image_path in Path(R'')
data1 = {}
data1["image_path"] = str(image_path)
img = cv2.imread(str(image_path))
bboxes, kpss = detector.detect(img, 0.5, input_size = (640, 640))
result = list()
for i in range(bboxes.shape[0])
bbox = bboxes[i]
x1,y1,x2,y2 = bbox[:4].astype(int)
ascore = float(bbox[4])
cv2.rectangle(img, (x1,y1), (x2,y2), (255,0,0), 2)
img_w, img_h = img.shape[1], img.shape[0]
x1 = float(x1/img_w)
x2 = float(x2/img_w)
y1 = float(y1/img_h)
y2 = float(y2/img_h)
box = [x1,y1,x2,y2,ascore,0]
result.append(box)
data1["results"] = result
data.append(data1)
print('output:' filename)
cv2.imwrite(R''%filename, img)
with open(wname, 'w', encoding = 'utf-8') as f:
json.dump(data, f, indent = 4)