diff --git a/opencv_face_dec/opencv_face_dec.pdf b/opencv_face_dec/opencv_face_dec.pdf new file mode 100644 index 0000000..9f3afef Binary files /dev/null and b/opencv_face_dec/opencv_face_dec.pdf differ diff --git a/paddlehub_dec_face/paddlehub_dec_face.pdf b/paddlehub_dec_face/paddlehub_dec_face.pdf new file mode 100644 index 0000000..662fe67 Binary files /dev/null and b/paddlehub_dec_face/paddlehub_dec_face.pdf differ diff --git a/paddlehub_dec_face/paddlehub_dec_face_demo.py b/paddlehub_dec_face/paddlehub_dec_face_demo.py new file mode 100644 index 0000000..730b825 --- /dev/null +++ b/paddlehub_dec_face/paddlehub_dec_face_demo.py @@ -0,0 +1,69 @@ +import os +import paddlehub as hub +import cv2 + +def draw_img(x,y,w,h,img,save_path): + # # 判断人脸矩形宽高比是否为正脸 + if w / h < 1.2 and w / h > 0.8: + cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2) + label = 'Frontal Face' + else: + cv2.rectangle(img, (x, y), (x+w, y+h), (0, 0, 255), 2) + label = 'Not Frontal' + # 在图片上打标签 + cv2.putText(img, label, (x, y - 5),cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 255), 2) + # cv2.imwrite(save_path, img) + +# 文件夹路径 +dir_path = '/home/dusr/data/xznsh/img/' + +# 文件保存路径 +save_dir = '/home/dusr/data/xznsh/img_result' + +# 获取folder_path下的所有文件 +files = os.listdir(dir_path) +# 遍历所有文件 +for file in files: + # 获取文件路径 + file_path = os.path.join(dir_path, file) + save_path = os.path.join(save_dir, "result_"+file) + img = cv2.imread(file_path) + # 判断是否为图片文件 + if file_path.endswith('.jpg') or file_path.endswith('.png'): + + # face_detector = hub.Module(name="pyramidbox_lite_server") + face_detector = hub.Module(name="pyramidbox_face_detection") + file_path = r'/home/dusr/data/xznsh/img/frame_1640.jpg' + # result = face_detector.face_detection(images=[cv2.imread(file_path)]) + # result = face_detector.face_detection(paths=[file_path]) + result = face_detector.face_detection(paths=[file_path]) + print(file_path) + print(result) + # 获取图片路径 path的值 + path = result[0]['path'] + # 获取data的值 + data = result[0]['data'] + if data != []: + # 获取人脸置信度confidence的值 + confidence = data[0]['confidence'] + + # 获取人脸左上角x坐标 left的值 + lx = data[0]['left'] + + # 获取人脸左上角y坐标 top的值 + ly = data[0]['top'] + + # 获取人脸右下角x坐标 right的值 + rx = data[0]['right'] + + # 获取人脸右下角y坐标 bottom的值 + ry = data[0]['bottom'] + w = rx -lx + h = ry-ly + x = lx + y = ly + + draw_img(x,y,w,h,img,save_path) + else: + cv2.imwrite(save_path, img) + print("No facial information was detected") \ No newline at end of file