openvinotoolkit/openvino

[Good First Issue]: Extend C API interface

Open

#22,001 opened on Jan 6, 2024

View on GitHub
 (37 comments) (0 reactions) (1 assignee)C++ (3,229 forks)auto 404
category: C APIgood first issueno_stale

Repository metrics

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

Description

Context

  Thank you very much to OpenVINO for providing the C API interface, which has been very helpful for us to use OpenVINO in C language. The dynamic link library files encapsulated by the C language interface can be called in C # language.

  In previous development, I have also launched the OpenVINO CSharp API project, whose underlying implementation is to call the C API interface provided by OpenVINO and encapsulate it in the upper layer.

  However, currently the C API provided by OpenVINO only implements most of the interfaces, some of which have not yet been implemented, so we are unable to experience all the features of OpenVINO in C # and C language.

  So I hope to work together with the help of all developers to improve the unimplemented C API interface.

What needs to be done?

  For example, in the currently released C API, interfaces for setting "scale" and "mean" are provided, but currently only support setting all channels to the same parameter, and cannot set each channel parameter to be different, as shown below: https://github.com/openvinotoolkit/openvino/blob/b85c329554ddba68f760dbdb10882eac85d6bf68/src/bindings/c/include/openvino/c/ov_prepostprocess.h#L208-L226   In the C++interface, it provides interfaces that set the same parameters as all channels, as well as interfaces that set different parameters for different channels, as shown below: https://github.com/openvinotoolkit/openvino/blob/b85c329554ddba68f760dbdb10882eac85d6bf68/src/core/include/openvino/core/preprocess/preprocess_steps.hpp#L53-L81

  The above is just an example to illustrate a situation, and other interfaces also have the same situation, such as "InputTensorInfo&set_shape (const ov:: PartialShape&shape)" and other interfaces that have not been implemented. So I hope that through the efforts of all developers, we can implement interfaces that are not currently implemented in the C API.

Example Pull Requests

No response

Resources

Contact points

Ticket

No response

Contributor guide