Skip to content
CAI
Software that uses CAICheck a score

ageitgey/face_recognition

63.3

Adequate · 26 September 2026

2.1k

lines of production code

Python

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Major CLI and API overhaul with new face detection tool

The command-line interface has been split into two distinct tools: face\_recognition\_cli.py for identifying known people and face\_detection\_cli.py for detecting faces. The API has been significantly expanded to support the CNN-based face detection model (in addition to the existing HOG method) and batch processing of images for improved performance. Additionally, the library now exposes the face\_distance function and batch\_face\_locations for advanced usage, while removing the old single-image processing approach in favor of more flexible, batched operations.

_face\recognition · high confidence

New Dockerfiles for CPU, GPU, and Jupyter environments

Added new Dockerfiles to build and run the face recognition library in various environments: a standard CPU-based image, a GPU-accelerated image, and Jupyter-based images for both CPU and GPU. The CPU image installs dlib v19.21 and face\_recognition from source, while the GPU image additionally compiles dlib with CUDA support. Documentation in the README explains prerequisites for GPU usage and provides an example Dockerfile for custom applications.

docker · high confidence

New Jupyter Notebook example for real-time face tracking in video

Added a new Jupyter Notebook example demonstrating how to detect and track faces in video in real-time using OpenCV and matplotlib. The notebook includes code for importing necessary libraries and displaying the results interactively.

_examples/ipynb\examples · high confidence

New face recognition examples and tools

Added several new example scripts to the examples directory, including face recognition using KNN and SVM classifiers, blink detection, face blurring, and performance benchmarking. Also added a face distance utility and a web service example.

examples · high confidence

Behavioural changes

Major release 1.4.0: Python 2 removal, CLI enhancements, and Docker support

This release drops support for Python 2.x and adds support for Python 3.8 and 3.9. The CLI is enhanced with a new \face\_detection\ command alongside the existing \face\_recognition\ tool, and the \--upsample\ parameter is added to the face recognition CLI. The project also introduces official Docker support with \Dockerfile\ and \Dockerfile.gpu\ for containerized deployment, alongside a \docker-compose.yml\ for easy setup. Additionally, the library's dependencies are updated to require \face\_recognition\_models\ and \Pillow\, while removing the \scikit-image\ dependency.

(repo-wide) · high confidence

Test coverage

Expanded test coverage for face recognition API

Added and updated tests for the face recognition module, including validation for 32-bit images, CNN-based face detection, batched face location detection, and face distance calculations. The test suite now also covers the small face model for landmarks and verifies the face\_distance function returns the correct numpy array type.

tests · high confidence

Dependencies

Update project dependencies and add build system configuration

The project now includes a pyproject.toml file specifying setuptools and wheel as build-system requirements. The requirements\_dev.txt file has been updated to upgrade pip from 8.1.2 to 21.1, cryptography from 1.7 to 3.3.2, and PyYAML to a newer version, while also adding face\_recognition\_models, Click, dlib, numpy, and scipy to the development dependencies.

(dependencies) · medium confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 44 → 63 (+19.2)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 98 → 99 (+0.4)
  • Architecture 94 → 95 (+0.4)
  • Maturity 54 → 54 (+0.0)
  • Readiness 19 → 58 (+39.6)
  • Security 66 → 76 (+9.6)

Resolved (24)

  • Coverage not measured — test suite did not build
  • Dimension evaluation failed
  • Duplicated block (6 lines × 3) (tests/test_face_recognition.py)
  • High IaC: DS-0029 (docker/gpu/Dockerfile)
  • High IaC: DS-0029 (docker/gpu/Dockerfile)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Low IaC: DS-0026 (Dockerfile)
  • Low IaC: DS-0026 (Dockerfile.gpu)
  • Low IaC: DS-0026 (docker/cpu-jupyter-kubeflow/Dockerfile)
  • Low IaC: DS-0026 (docker/cpu/Dockerfile)
  • Low IaC: DS-0026 (docker/gpu-jupyter-kubeflow/Dockerfile)
  • Low IaC: DS-0026 (docker/gpu/Dockerfile)
  • Medium IaC: DS-0013 (Dockerfile)
  • Medium IaC: DS-0013 (Dockerfile)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • …and 4 more

New (54)

  • Dependency hygiene PARTLY measured — Python dependencies read, no exact pin to grade for currency
  • Duplicated block (12 lines × 2) (examples/face_recognition_knn.py)
  • Duplicated block (16 lines × 2) (face_recognition/face_detection_cli.py)
  • Duplicated block (23 lines × 2) (examples/web_service_example.py)
  • Duplicated block (23 lines × 2) (examples/web_service_example.py)
  • Duplicated block (62 lines × 2) (examples/face_recognition_knn.py)
  • Duplicated block (9 lines × 2) (examples/face_recognition_knn.py)
  • High CVE: [GHSA redacted] (requirements_dev.txt)
  • High CVE: [GHSA redacted] (requirements_dev.txt)
  • High IaC: DS-0029 (docker/gpu/Dockerfile)
  • High IaC: DS-0029 (docker/gpu/Dockerfile)
  • High IaC: WD-DOCKER-0006 (docker/Dockerfile-python-example)
  • High IaC: WD-DOCKER-0013 (docker/cpu/Dockerfile)
  • High IaC: WD-DOCKER-0013 (docker/cpu/Dockerfile)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium CVE: [GHSA redacted] (requirements_dev.txt)
  • Medium IaC: CKV_DOCKER_9 (Dockerfile.gpu)
  • Medium IaC: DS-0013 (Dockerfile)
  • …and 34 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ageitgey/face_recognition was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 9f3061aaeed9a8756d2c970f5dfe066617a8281d — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-09659c52afae.