Skip to content

Conversation

@JakubFara
Copy link
Collaborator

@JakubFara JakubFara changed the base branch from main to develop November 18, 2025 09:54
@JakubFara JakubFara force-pushed the feature/vpp_node branch 4 times, most recently from 9dda8e1 to 4c899d0 Compare November 18, 2025 15:05
@aljazkonec1 aljazkonec1 requested a review from Copilot November 19, 2025 12:55
Copy link
Contributor

@aljazkonec1 aljazkonec1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! Just left some comment about missing setter functions and their docstrings and pybindings.

If possible, add an example to its easier to interprit the results. Otherwise LGTM

InjectionParameters injectionParameters;
int maxNumThreads = 8;
int maxFPS = 0;

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In other configs we have setter functions with docstrings and pybindings to make it easier to understand what each parameter does. It will also make it easier to set InjectionParameters if we add their setters to the VppConfig class instead of having to acces the struct itself.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added here: 030b0e5 Add setters and docstrings for VppConfig

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Looks good, just found some typos. You can resolve this comment once they are fixed.

// Node
vpp.def_readonly("inputConfig", &Vpp::inputConfig, DOC(dai, node, Vpp, inputConfig))
.def_property_readonly(
"left", [](Vpp& node) { return node.left; }, py::return_value_policy::reference_internal)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add docstrings to all Inputs and bindings.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done here: 844ef2f Add docstrings to python bindings.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a new VPP (Virtual Projection Pattern) node to the DepthAI pipeline, enabling virtual projection pattern application to stereo images based on disparity maps.

Key changes:

  • Introduces the Vpp node with configuration capabilities for patch size, blending, coloring types, and injection parameters
  • Adds comprehensive test coverage for different image types (RAW8, GRAY8) and dynamic configuration updates
  • Includes Python bindings for the new node and configuration datatype

Reviewed Changes

Copilot reviewed 24 out of 25 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
include/depthai/pipeline/node/Vpp.hpp Defines the Vpp node class with inputs for left/right images, disparity, and confidence maps
include/depthai/pipeline/datatype/VppConfig.hpp Declares VppConfig datatype with algorithm parameters and injection settings
include/depthai/properties/VppProperties.hpp Defines properties structure for Vpp node configuration
src/pipeline/node/Vpp.cpp Implements Vpp node construction and internal pipeline building
src/pipeline/datatype/VppConfig.cpp Provides VppConfig destructor implementation
tests/src/ondevice_tests/vpp_test.cpp Adds comprehensive tests for RAW8/GRAY8 formats and multi-config scenarios
bindings/python/src/pipeline/node/VppBindings.cpp Python bindings for Vpp node
bindings/python/src/pipeline/datatype/VppConfigBindings.cpp Python bindings for VppConfig datatype
Various integration files Updates to enums, serialization, CMake files to integrate the new node

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@JakubFara
Copy link
Collaborator Author

All comments/suggestions were resolved.
After accepting the Vpp on the fw side, I will change the commit in cmake/Depthai/DepthaiDeviceRVC4Config.cmake.

[](Vpp& node) { return node.confidence; },
py::return_value_policy::reference_internal,
"Confidence of the dispatiry (in integers - 16 times bigger).")
.def_readonly("syncedInputs", &Vpp::syncedInputs, DOC(dai, node, Vpp, syncedInputs), "Synchronised Left Img, Right Img, Dispatiy and confidence input.")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this compile with bindings enabled? DOC(dai, node, Vpp, syncedInputs) pulls the docstrings from the function dai::node::Vpp::syncedInputs So you can just update the docstrings there.

@JakubFara JakubFara force-pushed the feature/vpp_node branch 2 times, most recently from 56d2059 to fe677ac Compare November 25, 2025 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants