openvinotoolkit/openvino

[Good First Issue]: Extend ONNX Frontend with `DeformConv` operator

Open

#24,649 opened on May 23, 2024

View on GitHub
 (17 comments) (0 reactions) (1 assignee)C++ (3,229 forks)auto 404
good first issueno_stale

Repository metrics

Stars
 (10,286 stars)
PR merge metrics
 (Avg merge 14d 3h) (305 merged PRs in 30d)

Description

Context

Neural networks are graphs consisting of nodes called operators. Each operator corresponds to a mathematical function, usually described in framework's documentation or an AI standard, such as ONNX.

OpenVINO ONNX Frontend is a component responsible for working with ONNX graphs and requires implementation of different ONNX operators in order to use ONNX models. Usually the operator is already implemented in OpenVINO and ONNX Frontend serves as an API translation layer.

This task requires extending OpenVINO ONNX Frontend with DeformConv-19 operator.

Necessary help will be provided by ONNX Fronted team.

What needs to be done?

  1. Create .hpp and .cpp files for DeformConv here
  2. Prepare an implementation of this operator in form of a function. It should be placed in opset 1 namespace. You can use the implementation of standard ONNX Pad operator as a reference
  3. Register the function in ops_bridge.cpp while keeping alphabetical order
  4. Create test model(s) in ONNX models directory. OpenVINO test infrastructure then converts prototxt files to ONNX models - you will use those models later in tests
  5. Add tests covering all use cases here

More details on adding operators to ONNX Frontend guide

Note: Since the only difference between DeformConv19 and DeformConv22 is new datatype, maybe ONNX can be expanded with both in the same PR?

Example Pull Requests

Resources

Contact points

@gkrivor @p-wysocki @mitruska

Ticket

CVS-119903

Contributor guide