文章目录
一.前言
利用Ultra-Light-Fast-Generic-Face-Detector-1MB模型完成人脸检测。该模型是针对边缘计算设备或低算力设备(如用ARM推理)设计的实时超轻量级通用人脸检测模型,可以在低算力设备中如用ARM进行实时的通用场景的人脸检测推理。
二.定义数据
# 待预测图片 test_img_path = ["./test.jpg"] import matplotlib.pyplot as plt import matplotlib.image as mpimg img = mpimg.imread(test_img_path[0]) # 展示待预测图片 plt.figure(figsize=(10,10)) plt.imshow(img) plt.axis('off') plt.show()
首先展示如下:
若是待预测图片存放在一个文件中,如左侧文件夹所示的test.txt。每一行是待预测图片的存放路径。
例如我创建一个ren.txt
读取则代码为:
with open('ren.txt', 'r') as f: test_img_path=[] for line in f: test_img_path.append(line.strip()) print(test_img_path)
返回:
三.加载预训练模型
Ultra-Light-Fast-Generic-Face-Detector-1MB提供了 两种预训练模型。**ultra_light_fast_generic_face_detector_1mb_320ultra_light_fast_generic_face_detector_1mb_640。
- ultra_light_fast_generic_face_detector_1mb_320,在预测时会将图片输入缩放为320 * 240,预测速度更快。
- ultra_light_fast_generic_face_detector_1mb_640,在预测时会将图片输入缩放为640 * 480,预测精度更高.
用户根据需要,选择具体模型。利用PaddleHub使用该模型时,只需更改指定name,即可实现无缝切换。
代码为:
import paddlehub as hub module = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_640") # module = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_320")
四、预测
PaddleHub对于支持一键预测的module,可以调用module的相应预测API,完成预测功能。
input_dict = {"image": test_img_path} # execute predict and print the result results = module.face_detection(data=input_dict, visualization=True) for result in results: print(result) # 预测结果展示 img = mpimg.imread("face_detector_640_predict_output/test_face_detection.jpg") plt.figure(figsize=(10,10)) plt.imshow(img) plt.axis('off') plt.show()
返回如下:
预测结果保存到了相应的文件夹中,打开一个看看:
验证没有问题!ye
五.完整源码
# coding=gbk """ 作者:川川 @时间 : 2021/8/29 22:28 群:970353786 """ #待预测图片 # test_img_path = ["./test.jpg"] # import matplotlib.pyplot as plt import matplotlib.image as mpimg # # img = mpimg.imread(test_img_path[0]) # # # 展示待预测图片 # plt.figure(figsize=(10,10)) # plt.imshow(img) # plt.axis('off') # plt.show() with open('ren.txt', 'r') as f: test_img_path=[] for line in f: test_img_path.append(line.strip()) print(test_img_path) import paddlehub as hub module = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_640") # module = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_320") ## 预测 input_dict = {"image": test_img_path} # execute predict and print the result results = module.face_detection(data=input_dict, visualization=True) for result in results: print(result) # 预测结果展示 img = mpimg.imread("./test.jpg") plt.figure(figsize=(10,10)) plt.imshow(img) plt.axis('off') plt.show()
如果你多人工智能也感兴趣,关注我吧,给个三连哦!