openvinotoolkit/openvino

[Good First Issue]: Extend C API interface

Open

#22.001 aperta il 6 gen 2024

Vedi su GitHub
 (37 commenti) (0 reazioni) (1 assegnatario)C++ (3229 fork)auto 404
category: C APIgood first issueno_stale

Metriche repository

Star
 (10.286 star)
Metriche merge PR
 (Merge medio 14g 3h) (305 PR mergiate in 30 g)

Descrizione

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

Guida contributor