Resumen del blog: Python | Sistema de reconocimiento facial — Índice del blog
Dirección de GitHub: Su-Reconocimiento facial
Nota: consulte antes de leer este blog
Instalación de herramientas, configuración del entorno: Python | Sistema de reconocimiento facial—Introducción
Diseño de interfaz de usuario: Python | Sistema de reconocimiento facial — Diseño de interfaz de usuario
Procesamiento de eventos de interfaz de usuario: Python | Sistema de reconocimiento facial: procesamiento de eventos de interfaz de usuario
Visualización de la pantalla de la cámara: Python | Sistema de reconocimiento facial - visualización de la pantalla de la cámara
1. Juicio
Primero juzgue si encender la cámara y luego juzgue si self.isAttitudeDetection_flag enciende la detección de actitud. Si no, llame al método de detección_actitudes para desenfocar el fondo.
# 主界面
class UserMainWindow(QMainWindow, UserMainUi):
def __init__(self, parent=None):
super(UserMainWindow, self).__init__(parent)
self.setupUi(self)
self.show_image = None
self.cap = cv2.VideoCapture() # 相机
self.source = CAPTURE_SOURCE # 相机标号
self.WIN_WIDTH = 800 # 相机展示画面宽度
self.WIN_HEIGHT = 500 # 相机展示画面高度
self.isAttitudeDetection_flag = False # 是否打开姿态检测标志
... ...
# 姿态检测判别器
def criticalPoint_detection_judge(self):
if not self.cap.isOpened():
QMessageBox.information(self, "提示", self.tr("请先打开摄像头"))
else:
if not self.isAttitudeDetection_flag:
self.isAttitudeDetection_flag = True
self.attitude_detection_button.setText("关闭姿态检测")
self.attitude_detection()
self.attitude_detection_button.setText("姿态检测")
self.isAttitudeDetection_flag = False
elif self.isAttitudeDetection_flag:
self.isAttitudeDetection_flag = False
self.attitude_detection_button.setText("姿态检测")
self.show_camera()
2. Detección de actitud
# 姿态检测
def attitude_detection(self):
mp_pose = mp.solutions.pose # 姿态识别方法
pose = mp_pose.Pose(static_image_mode=False, smooth_landmarks=True,
min_detection_confidence=0.5, min_tracking_confidence=0.5)
mp_draw = mp.solutions.drawing_utils
while self.cap.isOpened():
ret, frame = self.cap.read()
QApplication.processEvents()
imgRGB = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = pose.process(imgRGB)
if results.pose_landmarks: # 如果检测到体态
mp_draw.draw_landmarks(frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS) # 绘制姿态坐标点
show_video = cv2.cvtColor(cv2.resize(frame, (self.WIN_WIDTH, self.WIN_HEIGHT)), cv2.COLOR_BGR2RGB)
self.show_image = QImage(show_video.data, show_video.shape[1], show_video.shape[0],
QImage.Format_RGB888)
self.camera_label.setPixmap(QPixmap.fromImage(self.show_image))
sigue leyendo:
Visualización de la pantalla de la cámara: sistema de reconocimiento facial - visualización de la pantalla de la cámara
Lógica del lado del cliente:
- Reconocimiento facial: Python | Sistema de reconocimiento facial: reconocimiento facial
- Detección de vida: Python | Sistema de reconocimiento facial - Detección de vida
- Desenfoque de fondo: Python | Sistema de reconocimiento facial - Desenfoque de fondo
- Detección de poses: Python | Sistema de reconocimiento facial - Detección de poses
- Comparación de rostros: Python | Sistema de reconocimiento facial - comparación de rostros
- Operaciones de usuario: Python | Sistema de reconocimiento facial—Operaciones de usuario
Lógica del lado del administrador:
- Operaciones del administrador: Python | Sistema de reconocimiento facial——Operaciones del administrador
Nota: El código anterior es solo de referencia. Para ejecutarlo, consulte el código fuente de GitHub: Su-Face-Recognition