Standard library of video processing functions

Face Detection


Pose Detection


Object Detection


Simple Python API

import scannerpy as sp
import scannertools.face_detection
import scannertools.vis

def main():
  # Compute face bounding boxes and draw them on a sample video
  with sp.util.sample_video() as video_path:
    cl = sp.Client()
    video = sp.NamedVideoStream(cl, 'example', path=video_path)
    frames =[video])
    faces = cl.ops.MTCNNDetectFaces(frame=frames)
    drawn_faces = cl.ops.DrawBboxes(frame=frames, bboxes=faces)
    output_video = sp.NamedVideoStream(cl, 'example_faces')
    output_op =, [output_video]), sp.PerfParams.estimate())
    # output video is saved to 'example_faces.mp4'

if __name__ == "__main__":

Designed for Performance

1. Never convert your videos into images again

Scanner provides native compressed video support, which enables directly accessing compressed videos to keep your storage and bandwidth costs low.

2. First-class support for GPUs

Scanner supports machines with CPUs and GPUs out of the box so that you can make the most out of your hardware.

3. Cloud & cluster ready

Scanner is integrated with Kubernetes, Google Cloud Platform, and AWS to make it easy to spin up machines to get your results back faster.

Scanner in Production

Analyzing 200,000 hours of TV news

Scanner makes it much easier to analyze large video datasets to extract trends and statistics that rely on the content of the videos, instead of just the metadata. For example, we have been able to use Scanner to analyze every cable TV news show aired for a decade to understand representation in the media.

Facebook's Manifold VR Camera

Scanner is currently being used as the compute engine behind the Manifold 360 video camera from Facebook and RED. Scanner has also been integrated into the open-source version of the previous generation Surround 360 system on GitHub.