From 1b8cebe48529af168aadf56a816a494c1d736bcf Mon Sep 17 00:00:00 2001 From: haotian <2421912570@qq.com> Date: Sat, 11 Oct 2025 17:06:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=B9=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E5=88=A4=E6=96=AD,=20=E5=BD=93=E8=A7=92=E8=89=B2=E4=B8=BA?= =?UTF-8?q?=E5=B1=95=E5=8E=85=E8=AE=B2=E8=A7=A3=E5=91=98=E6=97=B6,?= =?UTF-8?q?=E4=B8=8D=E8=BF=9B=E8=A1=8C=E4=BA=BA=E8=84=B8=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yaml | 2 +- face_rec.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/config.yaml b/config.yaml index d50932a..bd85767 100644 --- a/config.yaml +++ b/config.yaml @@ -36,7 +36,7 @@ face_recognition: # 角色映射配置 role_mapping: - stranger_threshold: 0.98 # 员工识别阈值 + stranger_threshold: 0.98 # 人脸识别阈值 # visitor_threshold: 0.70 # 访客识别阈值 # 低于visitor_threshold视为陌生人 diff --git a/face_rec.py b/face_rec.py index eea6e53..f9d815a 100644 --- a/face_rec.py +++ b/face_rec.py @@ -43,7 +43,8 @@ class FaceRecognitionSystem: self.robot_status = { 'is_speaking': False, 'is_thinking': False, - 'listening': False + 'listening': False, + 'role_name': '' } # 人脸检测状态 @@ -589,6 +590,7 @@ class FaceRecognitionSystem: f"WebSocket: {ws_status}", f"机器人说话: {'是' if self.robot_status['is_speaking'] else '否'}", f"机器人思考: {'是' if self.robot_status['is_thinking'] else '否'}", + f"机器人角色: {self.robot_status['role_name']}" ] # 如果人脸持续出现,显示倒计时 @@ -684,6 +686,7 @@ class FaceRecognitionSystem: self.robot_status['is_speaking'] = status.get('is_speaking', False) self.robot_status['is_thinking'] = status.get('is_thinking', False) self.robot_status['listening'] = status.get('listening', False) + self.robot_status['role_name'] = status.get('role_name', '访客引导者') self.logger.debug(f"机器人状态: {self.robot_status}") @@ -777,7 +780,7 @@ class FaceRecognitionSystem: def can_perform_detection(self) -> bool: """检查是否可以进行人脸检测""" - return not self.robot_status['is_speaking'] and not self.robot_status['is_thinking'] + return not self.robot_status['is_speaking'] and not self.robot_status['is_thinking'] and self.robot_status['role_name'] != "展厅讲解员" async def process_video_stream(self): """处理视频流"""