in broadcast-monitoring/src/team_detection/app/text_in_image.py [0:0]
def lambda_handler(event, context):
"""
:param event: e.g.
{
"parsed": {...
},
"config": {
"audio_check_enabled": true,
"station_logo_check_enabled": true,
"language_detect_check_enabled": false,
"team_detect_check_enabled": true
},
"frame": {
...
"S3_Bucket": "aws-rnd-broadcast-maas-video-processing-dev",
"S3_Key": "frames/test_video_single_pipeline/test_1/original/2020/02/10/23/42:43:646000.jpg",
"Resized_S3_Key": "frames/test_video_single_pipeline/test_1/resized/2020/02/10/23/42:43:646000.jpg"
}
}
:param context:
:return:
"""
frame_info = event['frame']
s3_bucket = frame_info['S3_Bucket']
s3_key = frame_info['S3_Key']
detected_text_response = detect_text_from_image(s3_bucket, s3_key)
logger.debug(f'detect text response: {detected_text_response}')
detected_lines = [entry['DetectedText'] for entry in detected_text_response if entry['Type'] == 'LINE']
detected_words = [entry['DetectedText'] for entry in detected_text_response if entry['Type'] == 'WORD']
check = TeamCheck()
result = check.execute(event['parsed']['expectedProgram'], detected_text_response)
with DDBUpdateBuilder(key={'Stream_ID': frame_info['Stream_ID'], 'DateTime': frame_info['DateTime']},
table_name=DDB_FRAME_TABLE) as ddb_update_builder:
ddb_update_builder.update_attr('Detected_Lines', detected_lines)
ddb_update_builder.update_attr('Detected_Words', detected_words)
if result:
for name, value in result.items():
ddb_update_builder.update_attr(name, value)