作者:黃明明
英特爾邊緣計(jì)算創(chuàng)新大使
![wKgaombVFymAcNyZAEM0bgEcC7E118.png](https://file1.elecfans.com/web2/M00/05/C9/wKgaombVFymAcNyZAEM0bgEcC7E118.png)
前言
OpenVINO 工具套件基于OneAPI開發(fā),可以加快高性能計(jì)算機(jī)視覺和深度學(xué)習(xí)應(yīng)用開發(fā)速度的工具套件,適用于從邊緣到云的各種英特爾計(jì)算平臺(tái)上,幫助用戶更快地將更準(zhǔn)確的真實(shí)世界數(shù)據(jù)的AI推理結(jié)果部署到生產(chǎn)系統(tǒng)中。通過簡(jiǎn)化的開發(fā)工作流程,OpenVINO可賦能開發(fā)者在現(xiàn)實(shí)世界中部署高性能應(yīng)用程序和算法。
今天我們將基于哪吒開發(fā)者套件平臺(tái)來快速部署OpenVINO Java。
OpenVINO Java API 所在的GitHub 倉(cāng)庫(kù)地址:https://github.com/Hmm466/OpenVINO-Java-API (復(fù)制鏈接到瀏覽器打開)
英特爾開發(fā)者套件-哪吒
1.1 產(chǎn)品介紹
哪吒(Nezha)開發(fā)套件以信用卡大?。?5 x 56mm)的開發(fā)板-哪吒(Nezha)為核心,哪吒采用Intel N97處理器(Alder Lake-N),最大睿頻3.6GHz,Intel UHD Graphics內(nèi)核GPU,可實(shí)現(xiàn)高分辨率顯示;板載LPDDR5內(nèi)存、eMMC存儲(chǔ)及TPM 2.0,配備GPIO接口(與樹莓派兼容),支持Windows和Linux操作系統(tǒng),這些功能和無風(fēng)扇散熱方式相結(jié)合,為各種應(yīng)用程序構(gòu)建高效的解決方案,適用于如自動(dòng)化、物聯(lián)網(wǎng)網(wǎng)關(guān)、數(shù)字標(biāo)牌和機(jī)器人等應(yīng)用。
![wKgZombVH1WAFTv4AAGCYBjX6v0134.png](https://file1.elecfans.com/web2/M00/04/E0/wKgZombVH1WAFTv4AAGCYBjX6v0134.png)
![wKgaombVH1-AOeGsAANAL3en4Xg802.png](https://file1.elecfans.com/web2/M00/05/CC/wKgaombVH1-AOeGsAANAL3en4Xg802.png)
![wKgZombVH4OAbjXIAAMXN30mzco203.png](https://file1.elecfans.com/web2/M00/04/E0/wKgZombVH4OAbjXIAAMXN30mzco203.png)
![wKgaombVH4OAYRCsAAFvKgQisj8703.png](https://file1.elecfans.com/web2/M00/05/CC/wKgaombVH4OAYRCsAAFvKgQisj8703.png)
![wKgZombVH42AEszDAAJCfvVMCQw526.png](https://file1.elecfans.com/web2/M00/04/E0/wKgZombVH42AEszDAAJCfvVMCQw526.png)
1.2 系統(tǒng)安裝
由于默認(rèn)的開發(fā)版使用的Ubuntu 18的系統(tǒng),但是系統(tǒng)存在一個(gè)顯示器只有800*600的Bug,為此我們需要燒錄一個(gè)新系統(tǒng)進(jìn)去。我們進(jìn)入U(xiǎn)buntu intel-iot系統(tǒng)的下載網(wǎng)址(https://ubuntu.com/download/iot/intel-iot)然后下載Intel Atom X7000E Series Processors (former codename Alder Lake N) 即可,因?yàn)槟倪钙脚_(tái)是Alder Lake N 架構(gòu),所以下載對(duì)應(yīng)平臺(tái)的鏡像即可(實(shí)際上下載正常的桌面版本即可)。將下載后的鏡像文件刻錄到U盤,按照正常的Ubuntu 系統(tǒng)安裝即可。
1.3 GPU驅(qū)動(dòng)安裝
由于默認(rèn)的Ubuntu 安裝之后不會(huì)帶有Intel GPU驅(qū)動(dòng),為了讓推理的速度能過更加快一點(diǎn),所以我們這里需要額外安裝一下,首先進(jìn)入
https://docs.openvino.ai/archive/2023.1/openvino_docs_install_guides_configurations_for_intel_gpu.html
這里官網(wǎng)給出了兩種安裝方式:
A:通過deb安裝
B:通過apt存儲(chǔ)庫(kù)。然后安裝ocl-icd-libopencl1、intel-opencl-icd、intel-level-zero-gpu和level-zero apt軟件包:
由于apt包需要配置倉(cāng)庫(kù),所以我們直接通過deb方式安裝。
1.3.1 創(chuàng)建一個(gè)臨時(shí)文件夾
1 mkdir neo
1.3.2 下載所有的deb包
1 cd neo
2 wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-core_1.0.15985.7_amd64.deb
3 wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-opencl_1.0.15985.7_amd64.deb
4 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu-dbgsym_1.3.28454.6_amd64.ddeb
5 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu_1.3.28454.6_amd64.deb
6 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd-dbgsym_24.05.28454.6_amd64.ddeb
7 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd_24.05.28454.6_amd64.deb
8 wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/libigdgmm12_22.3.11_amd64.deb
1.3.3 通過root安裝所有的包
1 sudo dpkg -i *.deb
這個(gè)時(shí)候我們就可以使用GPU來推理了。
2 準(zhǔn)備工作
2.1 配置Java環(huán)境
2.1.1 下載并配置JDK
JDK(Java Development Kit)稱為Java開發(fā)包或Java開發(fā)工具,是一個(gè)編寫Java的Applet小程序和應(yīng)用程序的程序開發(fā)環(huán)境。JDK是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境(Java Runtime Environment),一些Java工具和Java的核心類庫(kù)(Java API)。不論什么Java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某個(gè)版本的JDK。主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK.
2.1.2 添加api到本地maven
添加OpenVINO Java API 至Maven(目前沒有在meven中央倉(cāng)庫(kù)發(fā)布,所以需要手動(dòng)安裝)
2.1.3 clone OpenVINO Java API 項(xiàng)目到本地
git clone https://github.com/Hmm466/OpenVINO-Java-API
2.1.4 通過IDEA 或 Eclipse 打開
通過maven install 到本地maven 庫(kù)中
1 [INFO] ------------------------------------------------------------------------
2 [INFO] BUILD SUCCESS
3 [INFO] ------------------------------------------------------------------------
4 [INFO] Total time: 14.647 s
5 [INFO] Finished at: 2023-11-02T21:34:49+08:00
6 [INFO] ------------------------------------------------------------------------
jar包會(huì)放置在
/{userHome}/.m2/repository/org/openvino/java-api/1.0-SNAPSHOT/java-api-1.0-SNAPSHOT.pom
2.2 安裝 OpenVINO Runtime
OpenVINO 有兩種安裝方式: OpenVINO Runtime 和OpenVINO Development Tools。OpenVINO Runtime 包含用于在處理器設(shè)備上運(yùn)行模型部署推理的核心庫(kù)。OpenVINO Development Tools 是一組用于處理 OpenVINO 和 OpenVINO 模型的工具,包括模型優(yōu)化器、OpenVINO Runtime、模型下載器等。在此處我們只需要安裝 OpenVINO Runtime 即可。
2.2.1 下載 OpenVINO Runtime
訪問 Download the Intel Distribution of OpenVINO Toolkit[5] 頁(yè)面,按照下面流程選擇相應(yīng)的安裝選項(xiàng),在下載頁(yè)面,由于哪吒使用的是 Ubuntu22.04,因此下載時(shí)按照指定的編譯版本下載即可。
![wKgaombVG56AZnP1AAKlVmoblvo466.png](https://file1.elecfans.com/web2/M00/05/CA/wKgaombVG56AZnP1AAKlVmoblvo466.png)
2.2.2 解壓縮安裝包
我們所下載的 OpenVINO Runtime 本質(zhì)是一個(gè) C++ 依賴包,因此我們把它放到我們的系統(tǒng)目錄下,這樣在編譯時(shí)會(huì)根據(jù)設(shè)置的系統(tǒng)變量獲取依賴項(xiàng)。
1 cd ~/Downloads/
2 tar -xvzf l_openvino_toolkit_ubuntu22_2023.3.0.13775.ceeafaf64f3_x86_64.tgz
3 sudo mv l_openvino_toolkit_ubuntu22_2023.3.0.13775.ceeafaf64f3_x86_64/runtime/lib/intel64/* /usr/lib/
3 在哪吒平臺(tái)上進(jìn)行測(cè)試
3.1 源代碼直接測(cè)試
git clone https://github.com/Hmm466/OpenVINO-Java-API
使用IDEA打開OpenVINO-Java-API項(xiàng)目
創(chuàng)建src/test/java/org.openvino.java.test.OpenVINOTest
編寫測(cè)試代碼:
1 OpenVINO vino = OpenVINO.load();
2 OvVersion version = vino.getVersion();
3 Console.println("---- OpenVINO INFO----");
4 Console.println("Description : %s", version.description);
5 Console.println("Build number: %s", version.buildNumber);
結(jié)果將輸出
1 ---- OpenVINO INFO----
2 Description : OpenVINO Runtime
3 Build number: 2023.3.0-13775-ceeafaf64f3-releases/2023/3
3.2 運(yùn)行YoloV8模型演示效果
![wKgZombVHvCATl94AApJ_9zNzyg613.png](https://file1.elecfans.com/web2/M00/04/DF/wKgZombVHvCATl94AApJ_9zNzyg613.png)
4 總結(jié)
在該項(xiàng)目中,我們基于英特爾開發(fā)套件哪吒為硬件基礎(chǔ)實(shí)現(xiàn)了Java在 Ubuntu 22.04 系統(tǒng)上成功使用OpenVINO Java API,并且成功允許了Yolov8模型,驗(yàn)證了Java可以在各種硬件平臺(tái)上快速部署和運(yùn)行,同時(shí)簡(jiǎn)化了Java開發(fā)者對(duì)于AI類項(xiàng)目的上手難度。后續(xù)我還會(huì)將繼續(xù)使用 OpenVINO Java API 在 英特爾開發(fā)套件上部署更多的深度學(xué)習(xí)模型。
-
英特爾
+關(guān)注
關(guān)注
61文章
10014瀏覽量
172382 -
JAVA
+關(guān)注
關(guān)注
19文章
2975瀏覽量
105180 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5124瀏覽量
98276
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于英特爾開發(fā)板開發(fā)ROS應(yīng)用
![基于<b class='flag-5'>英特爾</b><b class='flag-5'>開發(fā)</b>板<b class='flag-5'>開發(fā)</b>ROS應(yīng)用](https://file1.elecfans.com/web3/M00/03/26/wKgZPGdk3PWALRA3AAA4G4kd2fM449.png)
NVIDIA發(fā)布小巧高性價(jià)比的Jetson Orin Nano Super開發(fā)者套件
使用英特爾開發(fā)板部署YOLOv5完成透明物體目標(biāo)檢測(cè)
![使用<b class='flag-5'>英特爾</b><b class='flag-5'>開發(fā)</b>板<b class='flag-5'>部署</b><b class='flag-5'>YOLOv</b>5完成透明物體目標(biāo)檢測(cè)](https://file1.elecfans.com/web3/M00/02/34/wKgZO2dbr1WAEfoGAAAjOMHexiE613.png)
使用英特爾哪吒開發(fā)套件部署YOLOv5完成透明物體目標(biāo)檢測(cè)
![使用<b class='flag-5'>英特爾</b><b class='flag-5'>哪吒</b><b class='flag-5'>開發(fā)套件</b><b class='flag-5'>部署</b><b class='flag-5'>YOLOv</b>5完成透明物體目標(biāo)檢測(cè)](https://file1.elecfans.com/web2/M00/0D/3E/wKgaomdEQQmAcfF4AAB6yHq2BWc795.png)
基于哪吒開發(fā)板部署YOLOv8模型
![基于<b class='flag-5'>哪吒</b><b class='flag-5'>開發(fā)</b>板<b class='flag-5'>部署</b><b class='flag-5'>YOLOv8</b>模型](https://file1.elecfans.com/web2/M00/0C/93/wKgaomc26BaAWn_pAABb4ZQ4M0o168.png)
YOLOv8中的損失函數(shù)解析
![<b class='flag-5'>YOLOv8</b>中的損失函數(shù)解析](https://file1.elecfans.com/web2/M00/0B/CA/wKgaomcp4mOAWXxdAAAAZMZaAdw759.png)
OpenVINO? C++ 在哪吒開發(fā)板上推理 Transformer 模型|開發(fā)者實(shí)戰(zhàn)
![OpenVINO? C++ 在<b class='flag-5'>哪吒</b><b class='flag-5'>開發(fā)</b>板上推理 Transformer 模型|<b class='flag-5'>開發(fā)者</b><b class='flag-5'>實(shí)戰(zhàn)</b>](https://file1.elecfans.com/web1/M00/F4/FB/wKgaoWc0TKiAEKYmAACQrFY_nwY571.png)
從運(yùn)動(dòng)員到開發(fā)者: 英特爾以開放式AI系統(tǒng)應(yīng)對(duì)多重挑戰(zhàn)
![從運(yùn)動(dòng)員到<b class='flag-5'>開發(fā)者</b>: <b class='flag-5'>英特爾</b>以開放式AI系統(tǒng)應(yīng)對(duì)多重挑戰(zhàn)](https://file1.elecfans.com//web2/M00/FF/1E/wKgaomag5PuAIKaiAA0pVKztLqE032.png)
在英特爾酷睿Ultra處理器上優(yōu)化和部署YOLOv8模型
![在<b class='flag-5'>英特爾</b>酷睿Ultra處理器上優(yōu)化和<b class='flag-5'>部署</b><b class='flag-5'>YOLOv8</b>模型](https://file1.elecfans.com/web2/M00/EA/69/wKgZomZYRJWACNdKAABqb7EcGWg260.png)
英特爾開發(fā)套件『哪吒』在Java環(huán)境實(shí)現(xiàn)ADAS道路識(shí)別演示 | 開發(fā)者實(shí)戰(zhàn)
![<b class='flag-5'>英特爾</b><b class='flag-5'>開發(fā)套件</b>『<b class='flag-5'>哪吒</b>』在<b class='flag-5'>Java</b>環(huán)境實(shí)現(xiàn)ADAS道路識(shí)別演示 | <b class='flag-5'>開發(fā)者</b><b class='flag-5'>實(shí)戰(zhàn)</b>](https://file1.elecfans.com/web2/M00/05/66/wKgZombZanCAW8XjAAEIdtytdjQ129.png)
英特爾面向AI PC軟件開發(fā)者與硬件供應(yīng)商新增助力計(jì)劃
英特爾宣布AI PC加速計(jì)劃新增兩項(xiàng)AI舉措
基于英特爾哪吒開發(fā)者套件平臺(tái)來快速部署OpenVINO Java實(shí)戰(zhàn)
![基于<b class='flag-5'>英特爾</b><b class='flag-5'>哪吒</b><b class='flag-5'>開發(fā)者</b><b class='flag-5'>套件</b>平臺(tái)來<b class='flag-5'>快速</b><b class='flag-5'>部署</b>OpenVINO <b class='flag-5'>Java</b><b class='flag-5'>實(shí)戰(zhàn)</b>](https://file1.elecfans.com/web2/M00/C6/3A/wKgaomX8C3eAcDboAAAbg6PGr-s511.png)
OpenVINO? Java API應(yīng)用RT-DETR做目標(biāo)檢測(cè)器實(shí)戰(zhàn)
![OpenVINO? <b class='flag-5'>Java</b> API應(yīng)用RT-DETR做目標(biāo)檢測(cè)器<b class='flag-5'>實(shí)戰(zhàn)</b>](https://file1.elecfans.com/web2/M00/C4/CA/wKgZomX35-mAKonkAABDEyajpq8920.png)
基于OpenCV DNN實(shí)現(xiàn)YOLOv8的模型部署與推理演示
![基于OpenCV DNN實(shí)現(xiàn)<b class='flag-5'>YOLOv8</b>的模型<b class='flag-5'>部署</b>與推理演示](https://file1.elecfans.com/web2/M00/C2/4A/wKgZomXhidOAS5bgAAA85lM3BAY512.png)
評(píng)論