一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英特爾開發(fā)套件在Java環(huán)境實現(xiàn)ADAS道路識別演示

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 2024-04-20 10:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡介

本文使用來自O(shè)pen Model Zoo的預(yù)訓(xùn)練的 road-segmentation-adas-0001模型。ADAS 代表高級駕駛輔助服務(wù)。該模型識別四個類別:背景、道路、路緣和標(biāo)記。

硬件環(huán)境

此文使用了英特爾開發(fā)套件家族里的哪吒(Nezha)開發(fā)板,其為研揚科技針對邊緣 AI 行業(yè)開發(fā)者推出的開發(fā)板,雖只有信用卡大小(85 x 56mm),但哪吒采用 Intel N97 處理器(Alder Lake-N),最大睿頻 3.6GHz,Intel UHD Graphics 內(nèi)核GPU,可實現(xiàn)高分辨率顯示;板載 LPDDR5 內(nèi)存、eMMC 存儲及 TPM 2.0,配備 GPIO 接口,支持 Windows 和 Linux 操作系統(tǒng),這些功能和無風(fēng)扇散熱方式相結(jié)合,為各種應(yīng)用程序構(gòu)建高效的解決方案,如您是樹莓派開發(fā)者又需要更好的AI算力, 強力推薦此產(chǎn)品, 其適用于如自動化、物聯(lián)網(wǎng)網(wǎng)關(guān)、數(shù)字標(biāo)牌和機器人等應(yīng)用。售價 RMB 999起, 哪吒開發(fā)套件Nezha intel x86開發(fā)板板載Alder N97 可Win10/Ubuntu N97 4G+32G。

模型下載

首先進(jìn)入

https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/road-segmentation-adas-0001/FP32/

下載指定版本的segmentation 模型文件

571e07ce-fe39-11ee-a297-92fbcf53809c.png

搭建OpenVINO Java環(huán)境

由于之前文章都介紹過Java環(huán)境的搭建,而這篇文章主要講述代碼怎么寫的,所以對于環(huán)境的搭建不做過多的說明,大家可以進(jìn)入

https://github.com/Hmm466/OpenVINO-Java-API/tree/main/docs/cn

查看各個系統(tǒng)的安裝文檔:

5742ccf8-fe39-11ee-a297-92fbcf53809c.png

編寫測試代碼

大致上分為四步:

加載OpenVINO Runtime

加載模型

加載圖片并推理

處理結(jié)果

加載OpenVINO Runtime

OpenVINO vino = OpenVINO.load();
//加載OpenCV Dll
vino.loadCvDll();
OvVersion version = vino.getVersion();
Console.println("---- OpenVINO INFO----");
Console.println("Description : %s", version.description);
Console.println("Build number: %s", version.buildNumber);

結(jié)果將輸出當(dāng)前系統(tǒng)OpenVINO版本:

---- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.2.0-13089-cfd42bd2cb0-HEAD

加載模型

String modelPath = "model/road-segmentation-adas-0001.xml";
Core core = new Core();
// -------- Step 2. Read a model --------
Console.println("[INFO] Loading model files: %s", modelPath);
Model model = core.readModel(modelPath);
CompiledModel compiledModel = core.compileModel(model, "AUTO");

加載圖片并處理

Input inputLayerIr = compiledModel.input(0);
Tensor inputTensor = inferRequest.getInputTensor();
Mat rgbImage = new Mat();
Imgproc.cvtColor(mat, rgbImage, Imgproc.COLOR_BGR2RGB);
int imageH = mat.height();
int imageW = mat.width();
int channels = mat.channels();
Shape shape = inputLayerIr.getShape();
long N = shape.getDims().get(0);
long C = shape.getDims().get(1);
long H = shape.getDims().get(2);
long W = shape.getDims().get(3);


Mat resizedImage = new Mat();
Imgproc.resize(mat,resizedImage, new Size(W, H));
int[] data = matToIntArray(resizedImage)
NDArray array = manager.create(data,new Shape(H,W,C));
NDArray inputImage = array.transpose(2,0,1).expandDims(0);
float[] floats = intToFloatArray(inputImage.toIntArray());

開始推理&處理結(jié)果

inputTensor.setData(floats);
inferRequest.infer();
Tensor outputTensor = inferRequest.getOutputTensor(0);
int outputLength = (int) outputTensor.getSize();
float[] outputData = outputTensor.getData(float[].class, outputLength);
NDArray ndArray = manager.create(outputData,new Shape(1,4,H,W));
ndArray = ndArray.argMax(1);
if (ndArray.getShape().get(0) == 1){
  ndArray = ndArray.squeeze(0);
}
ndArray = ndArray.toType(DataType.UINT8, true);
NDArray mask = manager.zeros(new Shape(ndArray.getShape().get(0),ndArray.getShape().get(1),3),DataType.UINT8);
Mat _mat = new Mat((int)ndArray.getShape().get(0),(int)ndArray.getShape().get(1), CvType.CV_8UC3);
byte[] b = mask.toByteArray();
_mat.put(0,0,b);
double[][] colors = new double[][]{{255, 44, 255}, {48, 255, 141}, {53, 255, 120}, {199, 216, 52}};
for (int i = 0 ; i < colors.length;i++) {
 ? ?NDArray labelIndexMap = ndArray.eq(i);
 ? ?labelIndexMap = labelIndexMap.toType(DataType.UINT8,true).mul(255);
 ? ?Mat mat1 = new Mat((int) labelIndexMap.getShape().get(0), (int) labelIndexMap.getShape().get(1),CvType.CV_8UC1);
 ? ?mat1.put(0,0,labelIndexMap.toByteArray());
 ? ?List contours = new ArrayList<>();
  Mat hierarchies = new Mat();
  Imgproc.findContours(mat1,contours,hierarchies,Imgproc.RETR_EXTERNAL,Imgproc.CHAIN_APPROX_SIMPLE);
  Imgproc.drawContours(_mat,contours,-1,new Scalar(colors[i][0], colors[i][1], colors[i][2]),Imgproc.FILLED);
}
Mat resized_mask = new Mat();
Imgproc.resize(_mat,resized_mask, new Size(imageW, imageH));
Core.addWeighted(resized_mask,0.2F,mat,0.8F,0,resized_mask);

結(jié)果展示

這里將背景、道路、路緣和標(biāo)記都分別標(biāo)記了出來,我們可以根據(jù)各個類別做自己想做的事情,比如分割出道路,將背景去除等等。

575c1db6-fe39-11ee-a297-92fbcf53809c.png

結(jié)語

整體步驟是這樣,在該項目中,基于N97的哪吒平臺通過Java API實現(xiàn)了基于segmentation 模型的分割代碼,并且成功處理圖片并展示。后續(xù)筆者將基于OpenVINO 實現(xiàn)OCR,背景扣除等模型實現(xiàn)。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    61

    文章

    10196

    瀏覽量

    174671
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2930

    文章

    46237

    瀏覽量

    392350
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

    109608
  • ADAS系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    228

    瀏覽量

    26092
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    115

    瀏覽量

    483

原文標(biāo)題:英特爾開發(fā)套件在Java環(huán)境實現(xiàn)ADAS道路識別演示 | 開發(fā)者實戰(zhàn)

文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    使用英特爾? NPU 插件C++運行應(yīng)用程序時出現(xiàn)錯誤:“std::Runtime_error at memory location”怎么解決?

    使用OpenVINO?工具套件版本 2024.4.0 構(gòu)建C++應(yīng)用程序 使用英特爾? NPU 插件運行了 C++ 應(yīng)用程序 遇到的錯誤: Microsoft C++ exception: std::runtime_error at memory location
    發(fā)表于 06-25 08:01

    英特爾發(fā)布全新GPU,AI和工作站迎來新選擇

    英特爾推出面向準(zhǔn)專業(yè)用戶和AI開發(fā)者的英特爾銳炫Pro GPU系列,發(fā)布英特爾? Gaudi 3 AI加速器機架級和PCIe部署方案 ? 2025 年 5 月 19 日,北京 ——今日
    發(fā)表于 05-20 11:03 ?1514次閱讀

    英特爾? 具身智能大小腦融合方案發(fā)布:構(gòu)建具身智能落地新范式

    ?今日舉辦的2025英特爾具身智能解決方案推介會上,英特爾正式發(fā)布其具身智能大小腦融合方案(下稱具身智能方案)。該方案基于英特爾? 酷睿? Ultra處理器的強大算力,以及全新的具身
    發(fā)表于 04-18 17:26 ?749次閱讀
    <b class='flag-5'>英特爾</b>? 具身智能大小腦融合方案發(fā)布:構(gòu)建具身智能落地新范式

    運行Open Model Zoo演示時出現(xiàn)錯誤“PdhAddCounterW() 失敗的情況,怎么解決?

    構(gòu)建 Open Model Zoo 演示應(yīng)用程序。 已下載的英特爾預(yù)先訓(xùn)練的模型。 使用此命令運行演示: interactive_face_detection_demo ^ --loop ^ -m
    發(fā)表于 03-05 09:35

    為什么無法檢測到OpenVINO?工具套件中的英特爾?集成圖形處理單元?

    Ubuntu* Desktop 22.04 上安裝了 英特爾? Graphics Driver 版本并OpenVINO? 2023.1。 運行 python 代碼: python -c
    發(fā)表于 03-05 08:36

    請問OpenVINO?工具套件英特爾?Distribution是否與Windows? 10物聯(lián)網(wǎng)企業(yè)版兼容?

    無法基于 Windows? 10 物聯(lián)網(wǎng)企業(yè)版的目標(biāo)系統(tǒng)上使用 英特爾? Distribution OpenVINO? 2021* 版本推斷模型。
    發(fā)表于 03-05 08:32

    安裝OpenVINO?適用于Raspberry Pi64位操作系統(tǒng)的工具套件2022.3.1,配置英特爾?NCS2時出錯怎么解決?

    安裝OpenVINO?適用于 Raspberry Pi* 64 位操作系統(tǒng)的工具套件 2022.3.1。 配置英特爾? NCS2時出錯: CMake Error at CMakeLists.txt
    發(fā)表于 03-05 07:27

    英特爾?獨立顯卡與OpenVINO?工具套件結(jié)合使用時,無法運行推理怎么解決?

    使用英特爾?獨立顯卡與OpenVINO?工具套件時無法運行推理
    發(fā)表于 03-05 06:56

    英特爾?NCS2運行演示時“無法啟動后找到啟動設(shè)備”怎么解決?

    使用 英特爾? NCS2 運行 推斷管道演示腳本 。 首次嘗試中成功運行演示應(yīng)用程序。 從第二次嘗試開始遇到錯誤:E: [ncAPI] [ 150951] [security_ba
    發(fā)表于 03-05 06:48

    英特爾推出全新英特爾銳炫B系列顯卡

    英特爾銳炫B580和B570 GPU以卓越價值為時新游戲帶來超凡表現(xiàn)。 ? > 今日,英特爾發(fā)布全新英特爾銳炫 B系列顯卡(代號Battlemage)。英特爾銳炫 B580和B570
    的頭像 發(fā)表于 12-07 10:16 ?1427次閱讀
    <b class='flag-5'>英特爾</b>推出全新<b class='flag-5'>英特爾</b>銳炫B系列顯卡

    英特爾換帥 英特爾CEO Pat Gelsinger(帕特·基辛格)正式退休

    第八任CEO。 帕特·基辛格離任聲明中表示:“今天對我而言既欣慰又感傷,因為這家公司是我大部分職業(yè)生涯的歸宿。我為我們共同取得的成就感到自豪。這對我們所有人來說都是充滿挑戰(zhàn)的一年,我們做出了艱難但必要的決定,以應(yīng)對當(dāng)前的市場環(huán)境。 據(jù)
    的頭像 發(fā)表于 12-04 14:58 ?928次閱讀

    使用英特爾哪吒開發(fā)套件部署YOLOv5完成透明物體目標(biāo)檢測

    英特爾的哪吒(Nezha)開發(fā)套件是一款專為邊緣AI和物聯(lián)網(wǎng)應(yīng)用設(shè)計的高性能計算平臺,搭載了英特爾 N97處理器、內(nèi)置英特爾 UHD Graphics GPU,并提供高達(dá)8GB LPD
    的頭像 發(fā)表于 11-25 17:15 ?695次閱讀
    使用<b class='flag-5'>英特爾</b>哪吒<b class='flag-5'>開發(fā)套件</b>部署YOLOv5完成透明物體目標(biāo)檢測

    英特爾至強品牌新戰(zhàn)略發(fā)布

    品牌是企業(yè)使命和發(fā)展的象征,也承載著產(chǎn)品特質(zhì)和市場認(rèn)可。英特爾GTC科技體驗中心的英特爾 至強 6 能效核處理器發(fā)布會上,英特爾公司全球副總裁兼首席市場營銷官Brett Hannat
    的頭像 發(fā)表于 10-12 10:13 ?860次閱讀

    英特爾IT的發(fā)展現(xiàn)狀和創(chuàng)新動向

    AI大模型的爆發(fā),客觀上給IT的發(fā)展帶來了巨大的機會。作為把IT發(fā)展上升為戰(zhàn)略高度的英特爾,自然推動IT發(fā)展中注入了強勁動力。英特爾IT不僅專注于創(chuàng)新、AI和優(yōu)化,以及英特爾員工、最
    的頭像 發(fā)表于 08-16 15:22 ?956次閱讀

    英特爾是如何實現(xiàn)玻璃基板的?

    今年9月,英特爾宣布率先推出用于下一代先進(jìn)封裝的玻璃基板,并計劃在未來幾年內(nèi)向市場提供完整的解決方案,從而使單個封裝內(nèi)的晶體管數(shù)量不斷增加,繼續(xù)推動摩爾定律,滿足以數(shù)據(jù)為中心的應(yīng)用的算力需求
    的頭像 發(fā)表于 07-22 16:37 ?650次閱讀