最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

不同等级人脸检测

IT圈 admin 1浏览 0评论

不同等级人脸检测

Pytorch检测人脸和基础版opencv检测人脸对比 

import cv2 as cv
import  mediapipe as mp
import numpy as np
from tqdm import tqdm
import time
import  matplotlib.pyplot as plt# 定义可视化图像函数
def look_img(img):img_RGB=cv.cvtColor(img,cv.COLOR_BGR2RGB)plt.imshow(img_RGB)plt.show()# 导入三维人脸关键点检测模型
mp_face_mesh=mp.solutions.face_mesh
# help(mp_face_mesh.FaceMesh)model=mp_face_mesh.FaceMesh(static_image_mode=True,#TRUE:静态图片/False:摄像头实时读取# refine_landmarks=True,#使用Attention Mesh模型max_num_faces=40,min_detection_confidence=0.2, #置信度阈值,越接近1越准min_tracking_confidence=0.5,#追踪阈值
)# 导入可视化函数和可视化样式
mp_drawing=mp.solutions.drawing_utils
# mp_drawing_styles=mp.solutions.drawing_styles
draw_spec=mp_drawing.DrawingSpec(thickness=2,circle_radius=1,color=[223,155,6])
# 读取图像img=cv.imread('../face import detection/img.png')
# width=img1.shape[1]
# height=img1.shape[0]
# img=cv.resize(img1,(width*10,height*10))
# look_img(img)# 将图像模型输入,获取预测结果# BGR转RGB
img_RGB=cv.cvtColor(img,cv.COLOR_BGR2RGB)# 将RGB图像输入模型,获取预测结果results=model.process(img_RGB)
# # 预测人人脸个数
# len(results.multi_face_landmarks)
#
# print(len(results.multi_face_landmarks))if results.multi_face_landmarks:for face_landmarks  in results.multi_face_landmarks:mp_drawing.draw_landmarks(image=img,landmark_list=face_landmarks,connections=mp_face_mesh.FACEMESH_CONTOURS,landmark_drawing_spec=draw_spec,connection_drawing_spec=draw_spec)
else:print('未检测出人脸')
look_img(img)
mp_drawing.plot_landmarks(results.multi_face_landmarks[0],mp_face_mesh.FACEMESH_TESSELATION)
mp_drawing.plot_landmarks(results.multi_face_landmarks[1],mp_face_mesh.FACEMESH_CONTOURS)
mp_drawing.plot_landmarks(results.multi_face_landmarks[1],mp_face_mesh.FACEMESH_IRISES)

 

 

import cv2 as cvdef fac_detect_demo():gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)# pathf = 'C:\\Users\\余佳琪\\Downloads\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml'# face_detector.load('haarcascade_frontalface_default.xml')face_detector = cv.CascadeClassifier('D:\\Anaconda\\bin\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml')# face_detector.load('D:\\Anaconda\\bin\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml')faces = face_detector.detectMultiScale(gray, 1.1, 5, 0, (100,100))# 第一个是放入图像 第二个遍历之后缩放的倍数 3 检测几次 4 填0 5minsize maxsize最大最小人脸范围for x,y,w,h in faces:cv.rectangle(img, (x, y), (x+w, y+h), color=(0, 255, 0), thickness=2)cv.imshow('img', cv.resize(img, dsize=(1000, 1000)))img = cv.imread('1.jpg')
fac_detect_demo()
cv.waitKey(0)
cv.destroyAllWindows()

 (这张图是学校的领导,并没有冒犯的意思......)

不同等级人脸检测

Pytorch检测人脸和基础版opencv检测人脸对比 

import cv2 as cv
import  mediapipe as mp
import numpy as np
from tqdm import tqdm
import time
import  matplotlib.pyplot as plt# 定义可视化图像函数
def look_img(img):img_RGB=cv.cvtColor(img,cv.COLOR_BGR2RGB)plt.imshow(img_RGB)plt.show()# 导入三维人脸关键点检测模型
mp_face_mesh=mp.solutions.face_mesh
# help(mp_face_mesh.FaceMesh)model=mp_face_mesh.FaceMesh(static_image_mode=True,#TRUE:静态图片/False:摄像头实时读取# refine_landmarks=True,#使用Attention Mesh模型max_num_faces=40,min_detection_confidence=0.2, #置信度阈值,越接近1越准min_tracking_confidence=0.5,#追踪阈值
)# 导入可视化函数和可视化样式
mp_drawing=mp.solutions.drawing_utils
# mp_drawing_styles=mp.solutions.drawing_styles
draw_spec=mp_drawing.DrawingSpec(thickness=2,circle_radius=1,color=[223,155,6])
# 读取图像img=cv.imread('../face import detection/img.png')
# width=img1.shape[1]
# height=img1.shape[0]
# img=cv.resize(img1,(width*10,height*10))
# look_img(img)# 将图像模型输入,获取预测结果# BGR转RGB
img_RGB=cv.cvtColor(img,cv.COLOR_BGR2RGB)# 将RGB图像输入模型,获取预测结果results=model.process(img_RGB)
# # 预测人人脸个数
# len(results.multi_face_landmarks)
#
# print(len(results.multi_face_landmarks))if results.multi_face_landmarks:for face_landmarks  in results.multi_face_landmarks:mp_drawing.draw_landmarks(image=img,landmark_list=face_landmarks,connections=mp_face_mesh.FACEMESH_CONTOURS,landmark_drawing_spec=draw_spec,connection_drawing_spec=draw_spec)
else:print('未检测出人脸')
look_img(img)
mp_drawing.plot_landmarks(results.multi_face_landmarks[0],mp_face_mesh.FACEMESH_TESSELATION)
mp_drawing.plot_landmarks(results.multi_face_landmarks[1],mp_face_mesh.FACEMESH_CONTOURS)
mp_drawing.plot_landmarks(results.multi_face_landmarks[1],mp_face_mesh.FACEMESH_IRISES)

 

 

import cv2 as cvdef fac_detect_demo():gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)# pathf = 'C:\\Users\\余佳琪\\Downloads\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml'# face_detector.load('haarcascade_frontalface_default.xml')face_detector = cv.CascadeClassifier('D:\\Anaconda\\bin\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml')# face_detector.load('D:\\Anaconda\\bin\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml')faces = face_detector.detectMultiScale(gray, 1.1, 5, 0, (100,100))# 第一个是放入图像 第二个遍历之后缩放的倍数 3 检测几次 4 填0 5minsize maxsize最大最小人脸范围for x,y,w,h in faces:cv.rectangle(img, (x, y), (x+w, y+h), color=(0, 255, 0), thickness=2)cv.imshow('img', cv.resize(img, dsize=(1000, 1000)))img = cv.imread('1.jpg')
fac_detect_demo()
cv.waitKey(0)
cv.destroyAllWindows()

 (这张图是学校的领导,并没有冒犯的意思......)

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论