人工智能导论:人脸识别——Dlib人脸检测
2021/12/25 23:39:50
本文主要是介绍人工智能导论:人脸识别——Dlib人脸检测,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题外话
我牙齿好痛啊!我牙齿好痛啊!我牙齿好痛啊!
注意:本博客仅供参考!
第一关:HOG特征描述方法
任务描述
本关任务:学习HOG特征的描述方法,并计算一张图片的HOG特征。
编程任务
请在右侧编辑器中的BEGIN-END之间编写代码,完成如下要求:
1.声明OpenCV中的HOG特征描述方法;
2.调用该方法计算指定图片的HOG特征。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
代码
import cv2 import numpy as np '''****************BEGIN****************''' img = cv2.imread("step1/image/girl1.jpg") # 计算图片的HOG特征 hog = cv2.HOGDescriptor() feature = hog.compute(img) print(feature) '''**************** END ****************'''
第二关:训练人脸检测模型
任务描述
本关任务:使用Dlib,自己动手训练一个人脸检测模型。
编程要求
恭喜你学习完如何训练自己的人脸检测器,现在,请根据提示,在右侧编辑器中的BEGIN-END之间编写代码,完成如下要求:
·定义模型训练需要的参数, 其中:add_left_right_image_flips设置为True,SVM的惩罚因子C设置为5,CPU核数num_threads设置为4,be_verbose属性设置为假(False);
·训练模型,将模型保存到step2/my-detector.svm中;
·在测试集上测试模型的效果。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
代码
import dlib import os # 数据集路径 faces_folder = "step2/data/dlib_example_faces" '''****************BEGIN****************''' # 1. 定义模型训练需要的参数 # 2.参数设定 options = dlib.simple_object_detector_training_options() options.C = 5 options.add_left_right_image_flips = True options.be_verbose = False options.num_threads = 4 '''**************** END ****************''' # 3. 调用训练模型函数 # 训练集xml路径 training_xml_path = os.path.join( faces_folder, "training.xml") '''****************BEGIN****************''' # save_model_path记录模型保存的位置,请不要修改 save_model_path ="step2/my-detector.svm" # 训练模型 dlib.train_simple_object_detector(training_xml_path, save_model_path, options) '''**************** END ****************''' # 在测试集上检验测试结果 testing_xml_path = os.path.join(faces_folder, "testing.xml") print("Testing accuracy: {}".format(dlib.test_simple_object_detector(testing_xml_path, save_model_path)))
第三关:检测并绘制人脸区域
任务描述
本关任务:绘制图片中的人脸区域并保存绘制后的图片。
编程要求
根据提示,在右侧编辑器补充代码,完成人脸检测并使用OpenCV绘制人脸区域,并保存图片到指定路径。具体任务如下:
·加载官方dlib人脸检测器;
·调用检测器检测指定图片中的人脸;
·使用OpenCV绘制人脸区域。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
代码
import cv2 import dlib # 读取图片 img = cv2.imread('step3/image/faces.jpg') '''****************BEGIN****************''' # 加载官方dlib人脸检测器 detector = dlib.get_frontal_face_detector() # 获取到图片中所有的人脸的区域,保存在dets中 dets = detector(img, 1) '''**************** END ****************''' print("检测到的人脸数目: {}".format(len(dets))) for i, d in enumerate(dets): print("所在区域: {}: Left: {} Top: {} Right: {} Bottom: {}".format(i, d.left(), d.top(), d.right(), d.bottom())) '''****************BEGIN****************''' # 绘制人脸区域 cv2.rectangle(img,(d.left(), d.top()),(d.right(), d.bottom()),(0,0,255),2) '''**************** END ****************''' # 保存图片 cv2.imwrite("step3/out/new_image.jpg",img)
这篇关于人工智能导论:人脸识别——Dlib人脸检测的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22程序员出海做 AI 工具:如何用 similarweb 找到最佳流量渠道?
- 2024-12-20自建AI入门:生成模型介绍——GAN和VAE浅析
- 2024-12-20游戏引擎的进化史——从手工编码到超真实画面和人工智能
- 2024-12-20利用大型语言模型构建文本中的知识图谱:从文本到结构化数据的转换指南
- 2024-12-20揭秘百年人工智能:从深度学习到可解释AI
- 2024-12-20复杂RAG(检索增强生成)的入门介绍
- 2024-12-20基于大型语言模型的积木堆叠任务研究
- 2024-12-20从原型到生产:提升大型语言模型准确性的实战经验
- 2024-12-20啥是大模型1
- 2024-12-20英特尔的 Lunar Lake 计划:一场未竟的承诺