in slot_detection/score.py [0:0]
def __get_context_metadata(slot_timestamp, asset_metadata):
rek_operator_keys = {
"celebrityRecognition": ["Celebrities", "Celebrity"],
"faceDetection": ["Faces", "Face"],
"labelDetection": ["Labels", "Label"],
"contentModeration": ["ModerationLabels", "ModerationLabel"]
}
context = {}
for operator in rek_operator_keys:
list_key = rek_operator_keys[operator][0]
before = {}
after = {}
for result in asset_metadata[operator][list_key]:
result_timestamp = result["Timestamp"] / 1000.0
item_key = rek_operator_keys[operator][1]
if slot_timestamp - context_interval <= result_timestamp <= slot_timestamp:
for label in __labels_from_result(result, item_key):
if label["Name"] in before:
if before[label["Name"]]["Confidence"] < label["Confidence"]:
before[label["Name"]] = label
else:
before[label["Name"]] = label
elif slot_timestamp <= result_timestamp <= slot_timestamp + context_interval:
for label in __labels_from_result(result, item_key):
if label["Name"] in after:
if after[label["Name"]]["Confidence"] < label["Confidence"]:
after[label["Name"]] = label
else:
after[label["Name"]] = label
elif result_timestamp > slot_timestamp + context_interval:
break
context[list_key] = {
"Before": list(before.values()),
"After": list(after.values())
}
return context