简体中文| English
OpenVINO™ 是一个用于优化和部署 AI 推理的开源工具包。
- 提升深度学习在计算机视觉、自动语音识别、自然语言处理和其他常见任务中的性能
- 使用流行框架(如TensorFlow,PyTorch等)训练的模型
- 减少资源需求,并在从边缘到云的一系列英特尔®平台上高效部署
目前有开发者以实现Ubuntu下使用OpenVINO™方法,但是却需要通过C++编译等,带来一些使用困惑,不能达到开箱即用的效果,所以该项目才用JNA实现基于OpenVINO™工具套件推出的OpenVINO™ Java API,旨在推动 OpenVINO™在Java领域的应用。OpenVINO™ Java API 由于是基于 OpenVINO™ 开发,所支持的平台与OpenVINO™ 一致,具体信息可以参考 OpenVINO™。
以下文章提供了OpenVINO™ Java API在不同平台的安装方法,可以根据自己使用平台进行安装。 简短安装既要:
- 在OpenVINO官网下载对应平台的runtime库
- 将Runtime库加入环境变量
- Windows: 放在
- Linux/Mac OS: 将库文件放入/usr/lib/
详细使用文档
由于本项目未上传的Maven,请git clone [email protected]:Hmm466/OpenVINO-Java-API.git
- 使用IDEA 打开OpenVINO-Java-API
- Maven -> Lifecycle -> install
(或者将本项目dataset、model、src、libs拷贝至OpenVINO-Java-API 项目中即可体验)
public class OpenVINOTest {
public static void main(String[] args) {
//实现OpenVINO 库加载.
OpenVINO vino = OpenVINO.load("libopenvino_c.dylib");
//如果将库放置path目录(/usr/lib)可以这样简写
//OpenVINO vino = OpenVINO.load();
Core core = new Core(); // 初始化 Core 核心
Model model = core.readModel("./model.xml"); // 读取模型文件
CompiledModel compiledModel = core.compiledModel(model, "AUTO"); // 将模型加载到设备
InferRequest inferRequest = compiledModel.createInferRequest(); // 创建推理通道
Tensor inputTensor = inferRequest.getTensor("images"); // 获取输入节点Tensor
inferRequest.infer(); // 模型推理
Tensor output_tensor = inferRequest.getTensor("output0"); // 获取输出节点Tensor
//清理 Core 非托管内存
core.free();
}
}
OpenVINO-Java-API-Examples 仓库包含使用 OpenVINO-Java-API 库的示例。您可以点击此处进行运行。
# | 模型名称 | 描述 | Link |
---|---|---|---|
1 | HelloOpenVINO | 打印OpenVINO的版本信息,验证OpenVINO 是否能够正常加载 | OpenVINOTest.java |
2 | YoloV8 | 使用YoloV8模型进行seg/pose/cls 推理 | YoloV8Test.java |
如果您对OpenVINO™ 在Java使用感兴趣,有兴趣对开源社区做出自己的贡献,欢迎加入我们,一起开发OpenVINO™ Java API。
如果你对该项目有一些想法或改进思路,欢迎联系我们,指导下我们的工作。
本项目的发布受Apache 2.0 license许可认证。