Skip to content

Hmm466/OpenVINO-Java-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenVINO™ Java API

简体中文| English

📚 简介

OpenVINO™ 是一个用于优化和部署 AI 推理的开源工具包。

  • 提升深度学习在计算机视觉、自动语音识别、自然语言处理和其他常见任务中的性能
  • 使用流行框架(如TensorFlow,PyTorch等)训练的模型
  • 减少资源需求,并在从边缘到云的一系列英特尔®平台上高效部署

目前有开发者以实现Ubuntu下使用OpenVINO™方法,但是却需要通过C++编译等,带来一些使用困惑,不能达到开箱即用的效果,所以该项目才用JNA实现基于OpenVINO™工具套件推出的OpenVINO™ Java API,旨在推动 OpenVINO™在Java领域的应用。OpenVINO™ Java API 由于是基于 OpenVINO™ 开发,所支持的平台与OpenVINO™ 一致,具体信息可以参考 OpenVINO™。

版本计划:

  • 1.0: 实现基本函数,并提供Yolov8范例
  • 1.1: 实现maven 在线安装
  • 2.0: 实现库本地加载,告别复杂安装.
  • 3.0: 实现在线加载

Java库公示:

  • JNA:
  • OpenCV:
  • OpenVINO

⚙ 如何安装

以下文章提供了OpenVINO™ Java API在不同平台的安装方法,可以根据自己使用平台进行安装。 简短安装既要:

  • 在OpenVINO官网下载对应平台的runtime库
  • 将Runtime库加入环境变量
  • Windows: 放在
  • Linux/Mac OS: 将库文件放入/usr/lib/

详细使用文档

🏷开始使用

  • 快速体验

  • 使用方法

如果你不知道如何使用,通过下面代码简单了解使用方法。

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.read_model("./model.xml");  // 读取模型文件
        CompiledModel compiled_model = core.compiled_model(model, "AUTO");  // 将模型加载到设备
        InferRequest infer_request = compiled_model.create_infer_request();  // 创建推理通道
        Tensor input_tensor = infer_request.get_tensor("images");  // 获取输入节点Tensor
        infer_request.infer();  // 模型推理
        Tensor output_tensor = infer_request.get_tensor("output0");  // 获取输出节点Tensor
        //清理 Core 非托管内存
        core.free();  
    }
}

项目中所封装的类、对象例如Core、Model、Tensor等,通过调用 C api 接口实现,具有非托管资源,需要调用**dispose()**方法处理,否则就会出现内存泄漏。

💻 应用案例

  • 爱克斯开发板使用OpenVINO™ Java API部署Yolov8模型
  • 基于Spring Boot 在线AI服务
  • 基于客服端模式运行

测试系统

  • Mac OS:Sonoma
  • Ubuntu:23.04(64)
  • Windows

🗂 API 文档

🔃 更新日志

🎖 贡献

  如果您对OpenVINO™ 在Java使用感兴趣,有兴趣对开源社区做出自己的贡献,欢迎加入我们,一起开发OpenVINO™ Java API。

  如果你对该项目有一些想法或改进思路,欢迎联系我们,指导下我们的工作。

许可证书

本项目的发布受Apache 2.0 license许可认证。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages