{"library":"retina-face","title":"RetinaFace Deep Face Detection","description":"RetinaFace is a deep learning-based, cutting-edge facial detector for Python, providing high-precision face localization and facial landmarks. It's built on a TensorFlow re-implementation of the original RetinaFace model from the InsightFace project. The library simplifies the underlying C dependencies and handles pre-trained weight downloads automatically, making it pip-compatible and easy to use. The current version is 0.0.17, with a moderately active release cadence addressing compatibility and performance improvements.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install retina-face"],"cli":null},"imports":["from retinaface import RetinaFace"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import cv2\nimport os\nfrom retinaface import RetinaFace\n\n# Create a dummy image for demonstration if it doesn't exist\nimage_path = \"test_image.jpg\"\nif not os.path.exists(image_path):\n    # Create a blank white image\n    dummy_image = 255 * (1 + 0 * range(100)).reshape(100, 100, 1) # White image\n    dummy_image = cv2.cvtColor(dummy_image, cv2.COLOR_GRAY2BGR)\n    cv2.imwrite(image_path, dummy_image)\n    print(f\"Created a dummy image at {image_path}\")\n\ntry:\n    # Detect faces in an image\n    # The detect_faces function can accept an image path or a NumPy array.\n    faces = RetinaFace.detect_faces(image_path)\n\n    if isinstance(faces, dict):\n        for face_name, face_data in faces.items():\n            print(f\"--- {face_name} ---\")\n            print(f\"  Score: {face_data['score']}\")\n            print(f\"  Facial Area: {face_data['facial_area']}\")\n            print(f\"  Landmarks: {face_data['landmarks']}\")\n    elif faces is None:\n        print(f\"No faces detected in {image_path}\")\n    else:\n        print(\"Unexpected output format from RetinaFace.detect_faces\")\n\n    # Optional: Draw detections on the image and display (requires opencv-python-headless or opencv-python)\n    # img = cv2.imread(image_path)\n    # if img is not None:\n    #     result_img = RetinaFace.draw_landmarks(img, faces)\n    #     cv2.imshow(\"Detected Faces\", result_img)\n    #     cv2.waitKey(0)\n    #     cv2.destroyAllWindows()\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n","lang":"python","description":"This quickstart demonstrates how to import `RetinaFace` and use its `detect_faces` function to find faces and facial landmarks in an image. It includes a placeholder to create a dummy image if one isn't present, making the code immediately runnable. The output includes confidence scores, bounding box coordinates (`facial_area`), and five key facial landmarks (eyes, nose, mouth corners).","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.0.17","pypi_latest":"0.0.17","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":34.7,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"retina-face","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"retina-face","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":36.7,"import_time_s":null,"mem_mb":null,"disk_size":"2.3G"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"retina-face","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"retina-face","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":33.4,"import_time_s":null,"mem_mb":null,"disk_size":"2.3G"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"retina-face","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"retina-face","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":32.1,"import_time_s":null,"mem_mb":null,"disk_size":"2.3G"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"retina-face","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"retina-face","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":30.9,"import_time_s":null,"mem_mb":null,"disk_size":"2.3G"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"retina-face","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"retina-face","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":40.4,"import_time_s":null,"mem_mb":null,"disk_size":"2.3G"}]}}