Luxonis
    Our new model ZOO works with DepthAI V3. Find out more in our documentation.
    Model Details
    Model Description
    Head pose estimation model is a lightweight, simple, and handmade convolutional neural network. The model works on cropped-face images and predicts how the face is oriented. This let us detect where the specific person is looking. It outputs 3 values yaw, pitch and roll.
    • Developed by: OpenVINO
    • Shared by:
    • Model type: Computer Vision
    • License:
    • Resources for more information:
    Training Details
    Training Data
    The training dataset is not provided. For the evaluation dataset dataset is used.
    Testing Details
    Metrics
    The get more information about evaluation, please check
    AngleMean ± std. of absolute error
    Yaw5.4 ± 4.4
    Pitch5.5 ± 5.3
    Roll4.6 ± 5.6
    Technical Specifications
    Input/Output Details
    • Input:
      • Name: data
      • Info: NCHW BGR un-normalized image
    • Output:
      • Name: Multiple (please consult NN archive config.json)
      • Info: The three predicted values - yaw, pitch, roll.
    Model Architecture
    Head pose estimation network is based on simple, handmade CNN architecture. Angle regression layers are convolutions + ReLU + batch normalization + fully connected layer with one output.
    Throughput
    Model variant: head-pose-estimation:60x60
    • Input shape: [1, 3, 60, 60] • Output shapes: [[1, 1], [1, 1], [1, 1]]
    • Params (M): 1.912 • GFLOPs: 0.053
    PlatformPrecisionThroughput (infs/sec)Power Consumption (W)
    RVC2FP16638.64N/A
    RVC4FP16670.092.29
    * Benchmarked with , using 2 threads (and the DSP runtime in balanced mode for RVC4).
    * Parameters and FLOPs are obtained from the package.
    Quantization
    The model is only supported in floating-point 16 and it is fast enough. It can still run on DSP.
    Utilization
    Models converted for RVC Platforms can be used for inference on OAK devices. DepthAI pipelines are used to define the information flow linking the device, inference model, and the output parser (as defined in model head(s)). Below, we present the most crucial utilization steps for the particular model. Please consult the docs for more information.
    Install DAIv3 and depthai-nodes libraries:
    pip install depthai
    pip install depthai-nodes
    
    Define model:
    model_description = dai.NNModelDescription(
        "luxonis/head-pose-estimation:60x60"
    )
    
    nn = pipeline.create(ParsingNeuralNetwork).build(
        <CameraNode>, model_description
    )
    
    Inspect model head(s):
    • RegressionParser that outputs message (yaw).
    • RegressionParser that outputs message (pitch).
    • RegressionParser that outputs message (roll).
    The model is multi-headed. You can set up the queues as follows:
    yaw_parser_output_queue = nn.getOutput(0).createOutputQueue()
    pitch_parser_output_queue = nn.getOutput(1).createOutputQueue()
    roll_parser_output_queue = nn.getOutput(2).createOutputQueue()
    
    Get parsed output(s):
    while pipeline.isRuning():
        yaw_parser_output: Predictions = yaw_parser_output_queue.get()
        pitch_parser_output: Predictions = pitch_parser_output_queue.get()
        roll_parser_output: Predictions = roll_parser_output_queue.get()
    
    Example
    You can quickly run the model using script. It detects the face using model and then runs head pose detection model on the crops. To try it out, run:
    python3 main.py
    
    Head pose estimation
    Lightweight CNN model predicting head pose.
    License
    Apache 2.0
    Commercial use
    Downloads
    6483
    Tasks
    Regression
    Model Types
    ONNX
    Model Variants
    NameVersionAvailable ForCreated AtDeploy
    RVC2, RVC3, RVC4Almost 2 years ago
    Luxonis - Robotic vision made simple.
    XYouTubeLinkedInGitHub