Spaces:
Runtime error
Runtime error
| detect_conditions = [ | |
| "left most", | |
| "right most", | |
| "top most", | |
| "bottom most", | |
| "most width", | |
| "most height", | |
| ] | |
| def analyse_face(image, model, return_single_face=True, detect_condition="left most"): | |
| faces = model.get(image) | |
| if not return_single_face: | |
| return faces | |
| total_faces = len(faces) | |
| if total_faces == 1: | |
| return faces[0] | |
| print(f"{total_faces} face detected. Using {detect_condition} face.") | |
| if detect_condition == "left most": | |
| return sorted(faces, key=lambda face: face["bbox"][0])[0] | |
| elif detect_condition == "right most": | |
| return sorted(faces, key=lambda face: face["bbox"][0])[-1] | |
| elif detect_condition == "top most": | |
| return sorted(faces, key=lambda face: face["bbox"][1])[0] | |
| elif detect_condition == "bottom most": | |
| return sorted(faces, key=lambda face: face["bbox"][1])[-1] | |
| elif detect_condition == "most width": | |
| return sorted(faces, key=lambda face: face["bbox"][2])[-1] | |
| elif detect_condition == "most height": | |
| return sorted(faces, key=lambda face: face["bbox"][3])[-1] | |