色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何基于OpenVINO 2022.1工具套件部署YOLOv7預訓練模型

英特爾物聯網 ? 來源:英特爾物聯網 ? 作者:英特爾物聯網 ? 2022-08-26 17:02 ? 次閱讀

作為視覺應用中最常見的任務之一,目標檢測一直是各類新模型刷榜的必爭之地,其中就以 YOLO 系列的網絡結構最為突出。YOLO 的全稱是 you only look once,指只通過 one-stage 的方式需要“瀏覽一次”就可以識別出圖中的物體的類別和位置。近期YOLO官方團隊又放出新版本——YOLOv7,速度、精度都超越其他變體。本文將分享如何基于 OpenVINO 2022.1工具套件部署 YOLOv7 官方提供的預訓練模型。附 C++/Python 源碼及使用方法。

OpenVINO 簡介

用于高性能深度學習英特爾發行版 OpenVINO工具套件基于 oneAPI 而開發,以期在從邊緣到云的各種英特爾平臺上,幫助用戶更快地將更準確的真實世界結果部署到生產系統中。通過簡化的開發工作流程,OpenVINO可賦能開發者在現實世界中部署高性能應用程序和算法

在推理后端,得益于 OpenVINO 工具套件提供的“一次編寫,隨處部署”特性,轉換后的模型能夠在不同的英特爾硬件平臺上運行,無需重新構建,有效簡化了構建與遷移過程。此外,為了支持更多的異構加速單元,OpenVINO的 runtime api 底層采用了插件式的開發架構,基于oneAPI 中的 MKL-DNN、oneDNN 等函數計算加速庫,針對 AVX-512 等通用指令集進行優化,為不同的硬件執行單元分別實現了一套完整的高性能算子庫,提升模型在推理運行時的整體性能表現。

YOLOv7 簡介

官方版的 YOLOv7 相同體量下比 YOLOv5 精度更高,速度快120%(FPS),比 YOLOX 快180%(FPS),比 Dual-Swin-T 快1200%(FPS),比 ConvNext 快550%(FPS),比 SWIN-L快500%(FPS)。在5FPS 到160FPS 的范圍內,無論是速度或是精度,YOLOv7 都超過了目前已知的檢測器,并且在GPU V100 上進行測試, 精度為56.8% AP的模型可達到30 FPS(batch=1)以上的檢測速率,與此同時,這是目前唯一一款在如此高精度下仍能超過 30FPS 的檢測器。

任務開發流程

我們先整體來看下 YOLOv7 的輸入輸出結構,首先對輸入的圖片 resize 為 640x640 大小,輸入到 backbone 網絡中,然后經 head 層網絡輸出三層不同 size 大小的 feature map,并輸出預測結果,這里以 coco 數據集為例子,輸出為 80 個類別,然后每個輸出(x ,y, w, h, o) 即坐標位置和是否存在物體的置信度,3 是指的 anchor 數量,因此每一層的輸出為 (80+5)x3 = 255再乘上 feature map 的大小就是最終的輸出了。整個開發流程可以分為數據處理模塊定義、前處理任務、推理任務、后處理任務四部分組成。

95734dfa-2455-11ed-ba43-dac502259ad0.png

圖:YOLOv7官方預訓練模型的輸入輸出結構

1. 數據處理模塊

定義 Object 結構體用來存放模型的輸出數據,包含 boundingbox 信息,類別標簽,以及是否存在物體和類別的累計置信度。

定義 class_names 向量,用于存放 coco 數據集的所有標簽。

struct Object{  cv::Rect_ rect;  int label;  float prob;};
const std::vector class_names = {  "person", "bicycle", "car", "motorcycle", "airplane", "bus", "train", "truck", "boat", "traffic light",  "fire hydrant", "stop sign", "parking meter", "bench", "bird", "cat", "dog", "horse", "sheep", "cow",  "elephant", "bear", "zebra", "giraffe", "backpack", "umbrella", "handbag", "tie", "suitcase", "frisbee",  "skis", "snowboard", "sports ball", "kite", "baseball bat", "baseball glove", "skateboard", "surfboard",  "tennis racket", "bottle", "wine glass", "cup", "fork", "knife", "spoon", "bowl", "banana", "apple",  "sandwich", "orange", "broccoli", "carrot", "hot dog", "pizza", "donut", "cake", "chair", "couch",  "potted plant", "bed", "dining table", "toilet", "tv", "laptop", "mouse", "remote", "keyboard", "cell phone",  "microwave", "oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors", "teddy bear",  "hair drier", "toothbrush"};

定義 letterbox 與 scale_box 模塊,分別用于在圖像前處理任務中為輸入數據添加 letterbox,以及在后處理任務還原 letterbox 帶來坐標位置變換。這里特別值得注意的是我們增加了一個 padd 向量,用于存放在添加 letterbox 過程中 letterbox 的 size 信息以及相較原始圖片的縮放比例信息,該組數據會用于在后處理任務中還原刪除 letterbox 以后的結果。

cv::Mat letterbox(cv::Mat &src, int h, int w, std::vector &padd){  // Resize and pad image while meeting stride-multiple constraints  int in_w = src.cols;  int in_h = src.rows;  int tar_w = w;  int tar_h = h;  float r = min(float(tar_h) / in_h, float(tar_w) / in_w);  int inside_w = round(in_w * r);  int inside_h = round(in_h * r);  int padd_w = tar_w - inside_w;  int padd_h = tar_h - inside_h;  cv::Mat resize_img;
  // resize  resize(src, resize_img, cv::Size(inside_w, inside_h));
  // divide padding into 2 sides  padd_w = padd_w / 2;  padd_h = padd_h / 2;  padd.push_back(padd_w);  padd.push_back(padd_h);
  // store the ratio  padd.push_back(r);  int top = int(round(padd_h - 0.1));  int bottom = int(round(padd_h + 0.1));  int left = int(round(padd_w - 0.1));  int right = int(round(padd_w + 0.1));
  // add border  copyMakeBorder(resize_img, resize_img, top, bottom, left, right, 0, cv::Scalar(114, 114, 114));  return resize_img;}
cv::Rect scale_box(cv::Rect box, std::vector &padd){    // remove the padding area  cv::Rect scaled_box;  scaled_box.x = box.x - padd[0];  scaled_box.y = box.y - padd[1];  scaled_box.width = box.width;  scaled_box.height = box.height;  return scaled_box;}

定義 generate_proposal 模塊,該模塊具體有以下幾個功能:

01

根據定義的 anchors,在輸入圖像中生成各類 feature map 的先驗框;

02

根據輸出結果調整先驗框位置和大小,并將其作為 bounding box 還原到輸入圖像的坐標系中;

03

過濾置信度較低的分類結果,獲取類別結果。

static void generate_proposals(int stride, const float *feat, float prob_threshold, std::vector &objects){    // get the results from proposals  float anchors[18] = {12, 16, 19, 36, 40, 28, 36, 75, 76, 55, 72, 146, 142, 110, 192, 243, 459, 401};  int anchor_num = 3;  int feat_w = 640 / stride;  int feat_h = 640 / stride;  int cls_num = 80;  int anchor_group = 0;  if (stride == 8)    anchor_group = 0;  if (stride == 16)    anchor_group = 1;  if (stride == 32)    anchor_group = 2;
  // 3 x h x w x (80 + 5)  for (int anchor = 0; anchor <= anchor_num - 1; anchor++) ? ?{ ? ? ? ?for (int i = 0; i <= feat_h - 1; i++) ? ? ? ?{ ? ? ? ? ? ?for (int j = 0; j <= feat_w - 1; j++) ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?float box_prob = feat[anchor * feat_h * feat_w * (cls_num + 5) + i * feat_w * (cls_num + 5) + j * (cls_num + 5) + 4]; ? ? ? ? ? ? ? ?box_prob = sigmoid(box_prob);
 ? ? ? ? ? ? ? ?// filter the bounding box with low confidence ? ? ? ? ? ? ? ?if (box_prob < prob_threshold) ? ? ? ? ? ? ? ? ? ?continue; ? ? ? ? ? ? ? ?float x = feat[anchor * feat_h * feat_w * (cls_num + 5) + i * feat_w * (cls_num + 5) + j * (cls_num + 5) + 0]; ? ? ? ? ? ? ? ?float y = feat[anchor * feat_h * feat_w * (cls_num + 5) + i * feat_w * (cls_num + 5) + j * (cls_num + 5) + 1]; ? ? ? ? ? ? ? ?float w = feat[anchor * feat_h * feat_w * (cls_num + 5) + i * feat_w * (cls_num + 5) + j * (cls_num + 5) + 2]; ? ? ? ? ? ? ? ?float h = feat[anchor * feat_h * feat_w * (cls_num + 5) + i * feat_w * (cls_num + 5) + j * (cls_num + 5) + 3];
 ? ? ? ? ? ? ? ?double max_prob = 0; ? ? ? ? ? ? ? ?int idx = 0;
 ? ? ? ? ? ? ? ?// get the class id with maximum confidence ? ? ? ? ? ? ? ?for (int t = 5; t < 85; ++t) ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ?double tp = feat[anchor * feat_h * feat_w * (cls_num + 5) + i * feat_w * (cls_num + 5) + j * (cls_num + 5) + t]; ? ? ? ? ? ? ? ? ? ?tp = sigmoid(tp); ? ? ? ? ? ? ? ? ? ?if (tp > max_prob)          {            max_prob = tp;            idx = t;          }        }
        // filter the class with low confidence        float cof = box_prob * max_prob;        if (cof < prob_threshold) ? ? ? ? ? ? ? ? ? ?continue; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// convert results to xywh ? ? ? ? ? ? ? ?x = (sigmoid(x) * 2 - 0.5 + j) * stride; ? ? ? ? ? ? ? ?y = (sigmoid(y) * 2 - 0.5 + i) * stride; ? ? ? ? ? ? ? ?w = pow(sigmoid(w) * 2, 2) * anchors[anchor_group * 6 + anchor * 2]; ? ? ? ? ? ? ? ?h = pow(sigmoid(h) * 2, 2) * anchors[anchor_group * 6 + anchor * 2 + 1];
 ? ? ? ? ? ? ? ?float r_x = x - w / 2; ? ? ? ? ? ? ? ?float r_y = y - h / 2;
 ? ? ? ? ? ? ? ?// store the results ? ? ? ? ? ? ? ?Object obj; ? ? ? ? ? ? ? ?obj.rect.x = r_x; ? ? ? ? ? ? ? ?obj.rect.y = r_y; ? ? ? ? ? ? ? ?obj.rect.width = w; ? ? ? ? ? ? ? ?obj.rect.height = h; ? ? ? ? ? ? ? ?obj.label = idx - 5; ? ? ? ? ? ? ? ?obj.prob = cof; ? ? ? ? ? ? ? ?objects.push_back(obj); ? ? ? ? ? ?} ? ? ? ?} ? ?}}

2. 前處理任務

前處理主要包含以下幾個步驟:

01

使用 OpenCV 讀取圖片文件

02

對于原始圖片進行 resize 并添加 letterbox

03

將色彩通道從 BGR 轉化為 RGB

04

將輸入數據進行 layout 轉置(NHWC

=>NCHW), 與歸一化操作(見模型推理部分代碼)

cv::Mat src_img = cv::imread(image_path);  cv::Mat img;
  std::vector padd;  cv::Mat boxed = letterbox(src_img, img_h, img_w, padd);  cv::cvtColor(boxed, img, cv::COLOR_BGR2RGB);

3. 推理任務

958ed3a4-2455-11ed-ba43-dac502259ad0.png

圖:OpenVINO工具套件 runtime 開發流程

模型推理部分主要調用 OpenVINO的 C++ API 進行實現,OpenVINO推理接口的調用流程如上圖所示

可參考官方說明:

https://docs.openvino.ai/latest/openvino_docs_OV_UG_Integrate_OV_with_your_application.html

在這里第2步 ComplieModel 亦可分為模型讀取與模型編譯兩個步驟執行,同時可以發現相較2021.4之前的版本,OpenVINO 2022.1在輸入以及輸出數據的接口調用方式上有了極大的簡化,可以通過 Tensor 相關的構造函數,輕松實現模型數據的載入和讀取。在整個過程中開發者需要將輸入數據進行layout轉置(NHWC=>NCHW),并填充到 inputtensor 所對應的數據指針地址中。在結果數據提取部分,由于該模型有3個不同尺度 featuremapoutput,因此我們需要逐一獲取他們結果數據指針。

// -------- Step 1. Initialize OpenVINO Runtime Core --------  ov::Core core;
  // -------- Step 2. Read a model --------  std::shared_ptr model = core.read_model(model_path);
  // -------- Step 3. Loading a model to the device --------  ov::CompiledModel compiled_model = core.compile_model(model, device_name);
  // Get input port for model with one input  auto input_port = compiled_model.input();  // Create tensor from external memory  // ov::Tensor input_tensor(input_port.get_element_type(), input_port.get_shape(), input_data.data());  // -------- Step 4. Create an infer request --------  ov::InferRequest infer_request = compiled_model.create_infer_request();
  // -------- Step 5. Prepare input --------  ov::Tensor input_tensor1 = infer_request.get_input_tensor(0);  // NHWC => NCHW  auto data1 = input_tensor1.data();  for (int h = 0; h < img_h; h++) ? ?{ ? ? ? ?for (int w = 0; w < img_w; w++) ? ? ? ?{ ? ? ? ? ? ?for (int c = 0; c < 3; c++) ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?// int in_index = h * img_w * 3 + w * 3 + c; ? ? ? ? ? ? ? ?int out_index = c * img_h * img_w + h * img_w + w; ? ? ? ? ? ? ? ?data1[out_index] = float(img.at(h, w)[c]) / 255.0f;      }    }  }
  // -------- Step 6. Start inference --------  infer_request.infer();
  // -------- Step 7. Process output --------  auto output_tensor_p8 = infer_request.get_output_tensor(0);  const float *result_p8 = output_tensor_p8.data();  auto output_tensor_p16 = infer_request.get_output_tensor(1);  const float *result_p16 = output_tensor_p16.data();  auto output_tensor_p32 = infer_request.get_output_tensor(2);  const float *result_p32 = output_tensor_p32.data();

4. 后處理任務

后處理部分需要調用我們之前定義的 generate_proposals 用于還原每一個 featuremap 的結果數據,并進行堆疊,最后使用 OpenCVDNN 模塊中自帶的 NMS 方法,完成對結果 boundingbox 的非極大抑制過濾,獲取我們在原始 inputimage 中的目標位置與類別信息。

 generate_proposals(8, result_p8, prob_threshold, objects8);  proposals.insert(proposals.end(), objects8.begin(), objects8.end());  generate_proposals(16, result_p16, prob_threshold, objects16);  proposals.insert(proposals.end(), objects16.begin(), objects16.end());  generate_proposals(32, result_p32, prob_threshold, objects32);  proposals.insert(proposals.end(), objects32.begin(), objects32.end());
  std::vector classIds;  std::vector confidences;  std::vector boxes;
  for (size_t i = 0; i < proposals.size(); i++) ? ?{ ? ? ? ?classIds.push_back(proposals[i].label); ? ? ? ?confidences.push_back(proposals[i].prob); ? ? ? ?boxes.push_back(proposals[i].rect); ? ?}
 ? ?std::vector picked; 
  // do non maximum suppression for each bounding boxx  cv::NMSBoxes(boxes, confidences, prob_threshold, nms_threshold, picked);

此外,我們還需要進一步調整模型 inputdata 對應的結果數據,將其還原到原始尺寸的圖片上進行展示。

 int idx = picked[i];    cv::Rect box = boxes[idx];    cv::Rect scaled_box = scale_box(box, padd);    drawPred(classIds[idx], confidences[idx], scaled_box, padd[2], raw_h, raw_w, src_img, class_names);

參考示例使用方法

該示例分別提供了 C++和 Python 的參考實現,具體使用方法如下:

1. 依賴安裝

# 下載示例倉庫$ git clone https://github.com/OpenVINO-dev-contest/YOLOv7_OpenVINO_cpp-python.git

C++ 環境依賴

由于本示例的 C++ 版本只依賴OpenVINO和OpenCV 的運行庫,所以需要開發者提前完成對這兩個工具組件的安裝:

OpenVINO C++ runtime 安裝地址:

https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_linux.html#install-openvino

OpenCV 環境安裝地址:

https://docs.opencv.org/4.x/d7/d9f/tutorial_linux_install.html

注:由于該示例中提供的 CMakeList 使用 OpenCV 的默認路徑,因此需要在完成 OpenCV 的編譯后,執行 makeinstall 命令。

Python 環境依賴

Python 環境的安裝相對簡單,只需通過 pip 命令行工具進行依賴安裝:

$ pip install -r python/requirements

2. 預訓練模型下載

可以從官方 github 倉庫提供的鏈接中下載基于 COCO 數據集的 YOLOv7 預訓練模型權重:

https://github.com/WongKinYiu/yolov7

95af2f5a-2455-11ed-ba43-dac502259ad0.png

3. 模型轉換

目前 OpenVINO runtime 可以直接支持 onnx 格式的模型部署,所以我們在得到.pt權重文件后,只需使用官方自帶 export.py 腳本,就可將其導出為 onnx 格式模型,具體過程如下:

# 下載YOLOv7官方倉庫:$ git clone git@github.com:WongKinYiu/yolov7.git$ cd yolov7/models$ python export.py --weights yolov7.pt

4. 測試運行

C++ 示例

編譯 C++ 示例源碼,編譯完成后會在 build 目錄下生成 YOLOv7 可執行文件:

 $ cd cpp $ mkdir build && cd build $ source '~/intel/openvino_2022.1.0.643/bin/setupvars.sh' $ cmake .. $ make

執行推理任務:

 $ yolov7 yolov7.onnx data/horses.jpg 'CPU' 

Python 示例

執行推理任務:

 $ python python/main.py -m yolov7.onnx -i data/horse.jpg

5. 測試結果

運行推理示例后,會在本地目錄下生成代 boundingbox 以及 label 的圖片,這里我們用到官方倉庫中附帶的馬匹數據進行測試,具體結果如下:

圖:推理運行結果

Benchmark App 介紹

OpenVINO提供了性能測試工具Benchmark App ,方便開發者快速測試OpenVINO模型在不同的硬件平臺上的性能。我們以下面的例子,簡單介紹benchmarkapp 的使用方法和相關參數,更多內容請參考BenchmarkApp 官方文檔。

$ benchmark_app -m yolov7.onnx -hint throughput

-m: 指定模型路徑。由于目前OpenVINO runtime是支持直接讀取 onnx 格式文件的,所以這里我們設置為導出以后 onnx 模型。

-hint: 指定性能測試的優先策略,以自動選擇底層性能優化相關參數。這里我們選擇 throughput 模式來提升系統整體吞吐量。如果應用對延遲比較敏感,推薦使用 latency 模式來減少推理延遲。

結論

YOLOv7 由于其出色的精度和性能表現,在推出第一時就受到了極大的關注,目前 github 上的 star 已超過5K。本示例通過OpenVINO2022.1新版本的 C++ API 接口,實現對 YOLOv7 官方預訓練模型的部署。最后使用 OpenVINO自帶的 benchmark_app 工具進一步對模型的性能進行驗證測試。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 英特爾
    +關注

    關注

    61

    文章

    9985

    瀏覽量

    171975
  • 源碼
    +關注

    關注

    8

    文章

    648

    瀏覽量

    29298
  • 訓練模型
    +關注

    關注

    1

    文章

    36

    瀏覽量

    3871

原文標題:基于 OpenVINO? 2022.1 C++ API 部署 YOLOv7 預訓練模型 | 開發者實戰

文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    YOLOV7網絡架構解讀

    繼美團發布YOLOV6之后,YOLO系列原作者也發布了YOLOV7
    的頭像 發表于 11-29 10:00 ?1883次閱讀
    <b class='flag-5'>YOLOV7</b>網絡架構解讀

    怎樣使用PyTorch Hub去加載YOLOv5模型

    PyTorch Hub 加載訓練YOLOv5s 模型,model并傳遞圖像進行推理。'yolov5s'是最輕最快的
    發表于 07-22 16:02

    yolov7 onnx模型在NPU上太慢了怎么解決?

    我將 yolov7tiny.pt(yolov7-tiny 模型)轉換為具有 uint8 權重的 yolov7tiny.onnx,然后在 i.MX 8M Plus NPU 上運行
    發表于 04-04 06:13

    為什么無法通過Heroku部署OpenVINO?工具套件

    無法通過 Heroku 部署OpenVINO?工具套件: Importeror:libpython3.9.so.1.0:無法打開共享對象文件:無此類文件或目錄
    發表于 08-14 08:58

    無法使用MYRIAD在OpenVINO trade中運行YOLOv7自定義模型怎么解決?

    無法確定如何將 YOLOv7 模型的重量(.pt 文件)轉換為OpenVINO?中間表示 (IR) 并推斷有 MYRIAD 的 IR。 分辨率 轉換使用此 GitHub* 存儲庫
    發表于 08-15 08:29

    深度解析YOLOv7的網絡結構

    最近,Scaled-YOLOv4的作者(也是后來的YOLOR的作者)和YOLOv4的作者AB大佬再次聯手推出了YOLOv7,目前來看,這一版的YOLOv7是一個比較正統的YOLO續作,
    的頭像 發表于 09-14 11:16 ?7644次閱讀

    使用 NVIDIA TAO 工具套件訓練模型加快 AI 開發

    NVIDIA 發布了 TAO 工具套件 4.0 。該工具套件通過全新的 AutoML 功能、與第三方 MLOPs 服務的集成以及新的
    的頭像 發表于 12-15 19:40 ?1045次閱讀

    在C++中使用OpenVINO工具部署YOLOv5模型

    下載并轉換YOLOv5訓練模型的詳細步驟,請參考:《基于OpenVINO?2022.2和蝰蛇峽谷優化并
    的頭像 發表于 02-15 16:53 ?4802次閱讀

    在AI愛克斯開發板上用OpenVINO?加速YOLOv8目標檢測模型

    《在 AI 愛克斯開發板上用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發板上使用 OpenVINO 開發套件
    的頭像 發表于 05-12 09:08 ?1345次閱讀
    在AI愛克斯開發板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv</b>8目標檢測<b class='flag-5'>模型</b>

    AI愛克斯開發板上使用OpenVINO加速YOLOv8目標檢測模型

    《在AI愛克斯開發板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發板上使用OpenVINO 開發套件
    的頭像 發表于 05-26 11:03 ?1266次閱讀
    AI愛克斯開發板上使用<b class='flag-5'>OpenVINO</b>加速<b class='flag-5'>YOLOv</b>8目標檢測<b class='flag-5'>模型</b>

    YOLOv7訓練自己的數據集包括哪些

    ? YOLOv7訓練自己的數據集整個過程主要包括:環境安裝—制作數據集—模型訓練模型測試—模型
    的頭像 發表于 05-29 15:18 ?1104次閱讀
    <b class='flag-5'>YOLOv7</b><b class='flag-5'>訓練</b>自己的數據集包括哪些

    在AI愛克斯開發板上用OpenVINO?加速YOLOv8-seg實例分割模型

    《在 AI 愛克斯開發板上用 OpenVINO 加速 YOLOv8 目標檢測模型》介紹了在 AI 愛克斯開發板上使用 OpenVINO 開發套件
    的頭像 發表于 06-05 11:52 ?1033次閱讀
    在AI愛克斯開發板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv</b>8-seg實例分割<b class='flag-5'>模型</b>

    在AI愛克斯開發板上用OpenVINO?加速YOLOv8-seg實例分割模型

    《在 AI 愛克斯開發板上用 OpenVINO 加速 YOLOv8 目標檢測模型》介紹了在 AI 愛克斯開發板上使用 OpenVINO 開發套件
    的頭像 發表于 06-30 10:43 ?964次閱讀
    在AI愛克斯開發板上用<b class='flag-5'>OpenVINO</b>?加速<b class='flag-5'>YOLOv</b>8-seg實例分割<b class='flag-5'>模型</b>

    使用OpenVINO優化并部署訓練好的YOLOv7模型

    在《英特爾銳炫 顯卡+ oneAPI 和 OpenVINO 實現英特爾 視頻 AI 計算盒訓推一體-上篇》一文中,我們詳細介紹基于英特爾 獨立顯卡搭建 YOLOv7 模型訓練環境,并
    的頭像 發表于 08-25 11:08 ?1543次閱讀
    使用<b class='flag-5'>OpenVINO</b>優化并<b class='flag-5'>部署</b><b class='flag-5'>訓練</b>好的<b class='flag-5'>YOLOv7</b><b class='flag-5'>模型</b>

    OpenVINO C# API在intel平臺部署YOLOv10目標檢測模型

    模型設計策略,從效率和精度兩個角度對YOLOs的各個組成部分進行了全面優化,大大降低了計算開銷,增強了性能。在本文中,我們將結合OpenVINO C# API使用最新發布的OpenVINO 2024.1
    的頭像 發表于 06-21 09:23 ?1064次閱讀
    用<b class='flag-5'>OpenVINO</b> C# API在intel平臺<b class='flag-5'>部署</b><b class='flag-5'>YOLOv</b>10目標檢測<b class='flag-5'>模型</b>
    主站蜘蛛池模板: 日本乱hd高清videos| 精品国产在线观看福利| 纯肉小黄文高H| 久久99国产精品自在自在| 日本伦子欲| 夜夜狂射影院欧美极品| 国产精品99久久久久久WWW| 免费乱理伦片在线观看夜| 亚洲日产2020乱码草莓毕| 国产91综合| 奶水四溅54p| 最近中文字幕mv手机免费高清| 好大好爽CAO死我了BL| 特级毛片内射WWW无码| qvod免费电影| 麻豆精品无码久久久久久久久| 亚洲欧美综合在线中文| 国产精品久久久久影院色| 日韩成人在线视频| 办公室里做好紧好爽H| 女人张开腿让男人桶爽免| 在线观看国产日韩| 精品伊人久久| 亚洲在线成色综合网站| 国产综合在线观看| 小寡妇水真多好紧| 国产精品亚洲视频在线观看| 十分钟免费视频大全在线观看| poronovideos动物狗猪| 欧美zzzoooxxx| 99久热这里精品免费| 奶水太多h室友| qvod 电影| 日韩欧美中文字幕在线| videos gratis欧美另类| 让男人玩尿道的女人| 百性阁论坛首页| 日韩一级精品久久久久| 草莓国产视频免费观看| 色就色 综合偷拍区欧美| 国产乱人伦AV麻豆网|