添加对角色判断, 当角色为展厅讲解员时,不进行人脸识别

This commit is contained in:
haotian 2025-10-11 17:06:10 +08:00
parent b78237af5b
commit 1b8cebe485
2 changed files with 6 additions and 3 deletions

View File

@ -36,7 +36,7 @@ face_recognition:
# 角色映射配置
role_mapping:
stranger_threshold: 0.98 # 员工识别阈值
stranger_threshold: 0.98 # 人脸识别阈值
# visitor_threshold: 0.70 # 访客识别阈值
# 低于visitor_threshold视为陌生人

View File

@ -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):
"""处理视频流"""