是的,AWS Rekognition可以分析视频流中的人脸,并提供有关每个人脸的情绪、年龄、性别等信息。以下是使用AWS SDK for Python(Boto3)的示例代码,演示如何分析视频流中的人脸情绪。
首先,确保您已安装了Boto3库,并正确配置了AWS凭证。接下来,您需要创建一个AWS Rekognition客户端,并使用start_face_detection
方法来启动人脸分析。
import boto3
def analyze_faces(video_stream):
rekognition = boto3.client('rekognition', region_name='us-east-1')
response = rekognition.start_face_detection(
Video={
'S3Object': {
'Bucket': 'your-bucket-name',
'Name': video_stream
}
},
FaceAttributes='ALL',
NotificationChannel={
'SNSTopicArn': 'your-sns-topic-arn',
'RoleArn': 'your-iam-role-arn'
}
)
job_id = response['JobId']
return job_id
在上述代码中,您需要将your-bucket-name
替换为您存储视频流的S3存储桶的名称,video_stream
替换为您要分析的视频流的文件名。your-sns-topic-arn
和your-iam-role-arn
分别是您SNS主题和IAM角色的ARN。
接下来,您可以使用describe_face_detection
方法来获取人脸分析的结果。
def get_faces_analysis(job_id):
rekognition = boto3.client('rekognition', region_name='us-east-1')
response = rekognition.describe_face_detection(JobId=job_id)
faces = response['Faces']
for face in faces:
emotions = face['FaceDetail']['Emotions']
for emotion in emotions:
print('Emotion:', emotion['Type'])
print('Confidence:', emotion['Confidence'])
在上述代码中,job_id
是您之前启动人脸分析任务时返回的作业ID。代码将打印出每个人脸的情绪类型和置信度。
请注意,人脸分析是一项长时间运行的任务,可能需要一些时间来完成。您可以使用describe_face_detection
方法的响应中的Status
字段来检查任务是否已完成。