點(diǎn)擊下方卡片,關(guān)注“自動(dòng)駕駛之心”公眾號
ADAS巨卷干貨,即可獲取
今天自動(dòng)駕駛之心很榮幸邀請到邏輯牛分享深度學(xué)習(xí)部署的入門介紹,帶大家盤一盤ONNX、NCNN、OpenVINO等框架的使用場景、框架特點(diǎn)及代碼示例。如果您有相關(guān)工作需要分享,請?jiān)谖哪┞?lián)系我們!
>>點(diǎn)擊進(jìn)入→自動(dòng)駕駛之心【模型部署】技術(shù)交流群
后臺回復(fù)【模型部署工程】獲取基于TensorRT的分類、檢測任務(wù)的部署源碼!
費(fèi)盡心血訓(xùn)練好的深度學(xué)習(xí)模型如何給別人展示?只在服務(wù)器上運(yùn)行demo怎么吸引別人的目光?怎么才能讓自己的成果落地?這篇文章帶你進(jìn)入模型部署的大門。
0 前言
模型部署的步驟:
訓(xùn)練一個(gè)深度學(xué)習(xí)模型;
使用不同的推理框架對模型進(jìn)行推理轉(zhuǎn)換;
在應(yīng)用平臺運(yùn)行轉(zhuǎn)換好的模型。
步驟看起來比較簡單,但是牽扯的到的知識還是比較多。在實(shí)際應(yīng)用過程中,我們使用的模型通常不會太簡單,因?yàn)橐_保模型的精度。但是,實(shí)際應(yīng)用場景往往需要模型速度與精度能達(dá)到一個(gè)較好的平衡。因此這就需要在算法(剪枝,壓縮等)與底層(手寫加速算作)去優(yōu)化模型。但是,我們現(xiàn)在可以站在巨人的肩膀上去眺望世界,因此,該文章會給大家介紹一些常用的開源推理框架,大家一起參考學(xué)習(xí)。畢竟大牛團(tuán)隊(duì)做出來的好用一些。。。
1 ONNX、NCNN、OpenVINO、 TensorRT、Mediapipe模型部署那家強(qiáng)?
1.1 ONNX
簡介:
開放神經(jīng)網(wǎng)絡(luò)交換ONNX(Open Neural Network Exchange)是一套表示深度神經(jīng)網(wǎng)絡(luò)模型的開放格式,由微軟和Facebook于2017推出,然后迅速得到了各大廠商和框架的支持。通過短短幾年的發(fā)展,已經(jīng)成為表示深度學(xué)習(xí)模型的實(shí)際標(biāo)準(zhǔn),并且通過ONNX-ML,可以支持傳統(tǒng)非神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)模型,大有一統(tǒng)整個(gè)AI模型交換標(biāo)準(zhǔn)。ONNX定義了一組與環(huán)境和平臺無關(guān)的標(biāo)準(zhǔn)格式,為AI模型的互操作性提供了基礎(chǔ),使AI模型可以在不同框架和環(huán)境下交互使用。硬件和軟件廠商可以基于ONNX標(biāo)準(zhǔn)優(yōu)化模型性能,讓所有兼容ONNX標(biāo)準(zhǔn)的框架受益,簡單來說,ONNX就是模型轉(zhuǎn)換的中間人。
使用場景:

無論你使用什么樣的訓(xùn)練框架來訓(xùn)練模型(比如TensorFlow/Pytorch/OneFlow/Paddle),你都可以在訓(xùn)練后將這些框架的模型統(tǒng)一轉(zhuǎn)為ONNX存儲。ONNX文件不僅存儲了神經(jīng)網(wǎng)絡(luò)模型的權(quán)重,還存儲了模型的結(jié)構(gòu)信息、網(wǎng)絡(luò)中各層的輸入輸出等一些信息。目前,ONNX主要關(guān)注在模型預(yù)測方面(inferring),將轉(zhuǎn)換后的ONNX模型,轉(zhuǎn)換成我們需要使用不同框架部署的類型,可以很容易的部署在兼容ONNX的運(yùn)行環(huán)境中。
使用方法:
[代碼示例]在 ONNX 模型上運(yùn)行形狀推理:https://github.com/onnx/onnx
import?onnx
from?onnx?import?helper,?shape_inference
from?onnx?import?TensorProto
#?預(yù)處理:創(chuàng)建一個(gè)包含兩個(gè)節(jié)點(diǎn)的模型,Y是未知的
node1?=?helper.make_node("Transpose",?["X"],?["Y"],?perm=[1,?0,?2])
node2?=?helper.make_node("Trans
?????????????????????????
?????????????????????????
?????????????????????????
?????????????????????????pose",?["Y"],?["Z"],?perm=[1,?0,?2])
graph?=?helper.make_graph(
????[node1,?node2],
????"two-transposes",
????[helper.make_tensor_value_info("X",?TensorProto.FLOAT,?(2,?3,?4))],
????[helper.make_tensor_value_info("Z",?TensorProto.FLOAT,?(2,?3,?4))],
)
original_model?=?helper.make_model(graph,?producer_name="onnx-examples")
#?檢查模型并打印Y的信息
onnx.checker.check_model(original_model)
print(f"Before?shape?inference,?the?shape?info?of?Y?is:\n{original_model.graph.value_info}")
#?在模型上進(jìn)行推理
inferred_model?=?shape_inference.infer_shapes(original_model)
#?檢查模型并打印Y的信息
onnx.checker.check_model(inferred_model)
print(f"After?shape?inference,?the?shape?info?of?Y?is:\n{inferred_model.graph.value_info}")
1.2 NCNN
簡介:
ncnn 是一個(gè)為手機(jī)端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡(luò)前向計(jì)算框架,也是騰訊優(yōu)圖實(shí)驗(yàn)室成立以來的第一個(gè)開源項(xiàng)目。ncnn 從設(shè)計(jì)之初深刻考慮手機(jī)端的部署和使用,無第三方依賴,跨平臺,手機(jī)端 CPU 的速度快于目前所有已知的開源框架?;?ncnn,開發(fā)者能夠?qū)⑸疃葘W(xué)習(xí)算法輕松移植到手機(jī)端高效執(zhí)行,開發(fā)出人工智能 App。ncnn 目前已在騰訊多款應(yīng)用中使用,如 QQ、Qzone、微信、天天P圖等。
使用場景:

從NCNN的發(fā)展矩陣可以看出,NCNN覆蓋了幾乎所有常用的系統(tǒng)平臺,尤其是在移動(dòng)平臺上的適用性更好,在Linux、Windows和Android、以及iOS、macOS平臺上都可以使用GPU來部署模型。
框架特點(diǎn):
支持卷積神經(jīng)網(wǎng)絡(luò),支持多輸入和多分支結(jié)構(gòu),可計(jì)算部分分支
無任何第三方庫依賴,不依賴 BLAS/NNPACK 等計(jì)算框架
純 C++ 實(shí)現(xiàn),跨平臺,支持 Android / iOS 等
ARM Neon 匯編級良心優(yōu)化,計(jì)算速度極快
精細(xì)的內(nèi)存管理和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),內(nèi)存占用極低
支持多核并行計(jì)算加速,ARM big.LITTLE CPU 調(diào)度優(yōu)化
支持基于全新低消耗的 Vulkan API GPU 加速
可擴(kuò)展的模型設(shè)計(jì),支持 8bit 量化和半精度浮點(diǎn)存儲,可導(dǎo)入 caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir) 模型
支持直接內(nèi)存零拷貝引用加載網(wǎng)絡(luò)模型
可注冊自定義層實(shí)現(xiàn)并擴(kuò)展
使用方法:
[代碼示例]輸入數(shù)據(jù)并推理輸出:https://github.com/Tencent/ncnn/wiki
#include?<opencv2/core/core.hpp>
#include?<opencv2/highgui/highgui.hpp>
#include?"net.h"
int?main()
{
?//?opencv讀取輸入圖片
????cv::Mat?img?=?cv::imread("image.ppm",?CV_LOAD_IMAGE_GRAYSCALE);
????int?w?=?img.cols;
????int?h?=?img.rows;
????//?減均值以及縮放操作,最后輸入數(shù)據(jù)的值域?yàn)閇-1,1]
????ncnn::Mat?in?=?ncnn::Mat::from_pixels_resize(img.data,?ncnn::Mat::PIXEL_GRAY,?w,?h,?60,?60);
????float?mean[1]?=?{?128.f?};
????float?norm[1]?=?{?1/128.f?};
????in.substract_mean_normalize(mean,?norm);
?
?//?構(gòu)建NCNN的net,并加載轉(zhuǎn)換好的模型
????ncnn::Net?net;
????net.load_param("model.param");
????net.load_model("model.bin");
?//?創(chuàng)建網(wǎng)絡(luò)提取器,設(shè)置網(wǎng)絡(luò)輸入,線程數(shù),light模式等等
????ncnn::Extractor?ex?=?net.create_extractor();
????ex.set_light_mode(true);
????ex.set_num_threads(4);
????ex.input("data",?in);
?//?調(diào)用extract接口,完成網(wǎng)絡(luò)推理,獲得輸出結(jié)果
????ncnn::Mat?feat;
????ex.extract("output",?feat);
????return?0;
1.3 OpenVINO
簡介:
OpenVINO是一種可以加快高性能計(jì)算機(jī)視覺和深度學(xué)習(xí)視覺應(yīng)用開發(fā)速度的工具套件,支持各種英特爾平臺的硬件加速器上進(jìn)行深度學(xué)習(xí),并且允許直接異構(gòu)執(zhí)行。OpenVINO?工具包是用于快速開發(fā)應(yīng)用程序和解決方案的綜合工具包,可解決各種任務(wù),包括模擬人類視覺,自動(dòng)語音識別,自然語言處理,推薦系統(tǒng)等。該工具包基于最新一代的人工神經(jīng)網(wǎng)絡(luò),包括卷積神經(jīng)網(wǎng)絡(luò)(CNN),循環(huán)和基于注意力的網(wǎng)絡(luò),可在英特爾?硬件上擴(kuò)展計(jì)算機(jī)視覺和非視覺工作負(fù)載,從而最大限度地提高性能。它通過從邊緣到云的高性能,人工智能和深度學(xué)習(xí)推理來加速應(yīng)用程序。
使用場景:

框架特點(diǎn):
OpenVINO在模型部署前,首先會對模型進(jìn)行優(yōu)化,模型優(yōu)化器會對模型的拓?fù)浣Y(jié)構(gòu)進(jìn)行優(yōu)化,去掉不需要的層,對相同的運(yùn)算進(jìn)行融合、合并以加快運(yùn)算效率,減少內(nèi)存拷貝;FP16、INT8量化也可以在保證精度損失很小的前提下減小模型體積,提高模型的性能。在部署方面,OpenVIVO的開發(fā)也是相對比較簡單的,提供了C、C++和python3種語言編程接口。它最大的優(yōu)勢呢,其實(shí)還是在Intel的不同硬件平臺上進(jìn)行部署的時(shí)候,移植會很方便。推理引擎對不同的硬件提供統(tǒng)一的接口,底層實(shí)現(xiàn)直接調(diào)用硬件指令集的加速庫,應(yīng)用程序開發(fā)人員不需要關(guān)心底層的硬件實(shí)現(xiàn),即可在不同的硬件平臺上加速模型推理。
在邊緣啟用基于CNN的深度學(xué)習(xí)推理
支持通過英特爾?Movidius?VPU在英特爾?CPU,英特爾?集成顯卡,英特爾?神經(jīng)計(jì)算棒2和英特爾?視覺加速器設(shè)計(jì)之間進(jìn)行異構(gòu)執(zhí)行
通過易于使用的計(jì)算機(jī)視覺功能庫和預(yù)先優(yōu)化的內(nèi)核加快上市時(shí)間
包括對計(jì)算機(jī)視覺標(biāo)準(zhǔn)(包括OpenCV *和OpenCL?)的優(yōu)化調(diào)用
使用方法:
[代碼示例]在應(yīng)用程序中實(shí)現(xiàn)典型的 OpenVINO? 運(yùn)行推理:https://docs.openvino.ai/latest/openvino_docs_OV_UG_Integrate_OV_with_your_application.html
#include?<openvino/openvino.hpp>
//?1.創(chuàng)建?OpenVINO??核心以管理可用設(shè)備和讀取模型對象
ov::Core?core;
//?2.為特定設(shè)備編譯模型
ov::CompiledModel?compiled_model?=?core.compile_model("model.onnx",?"AUTO");
//?3.創(chuàng)建推理請求
ov::InferRequest?infer_request?=?compiled_model.create_infer_request();
//?4.設(shè)置輸入
//?獲取模型的輸入端口
auto?input_port?=?compiled_model.input();
//?從外部存儲器創(chuàng)建張量
ov::Tensor?input_tensor(input_port.get_element_type(),?input_port.get_shape(),?memory_ptr);
//?為模型設(shè)置一個(gè)輸入張量
infer_request.set_input_tensor(input_tensor);
//?5.開始推理
infer_request.start_async();
infer_request.wait();
//?6.處理推理結(jié)果
//?通過tensor_name獲取輸出張量
auto?output?=?infer_request.get_tensor("tensor_name");
const?float?\*output_buffer?=?output.data<const?float>();
//?output_buffer[]?-?訪問輸出張量數(shù)據(jù)
//?7.釋放分配的對象(僅適用于C)
ov_shape_free(&input_shape);
ov_tensor_free(output_tensor);
ov_output_const_port_free(input_port);
ov_tensor_free(tensor);
ov_infer_request_free(infer_request);
ov_compiled_model_free(compiled_model);
ov_model_free(model);
ov_core_free(core);
//?為項(xiàng)目創(chuàng)建結(jié)構(gòu)
project/
???├──?CMakeLists.txt??-?CMake?file?to?build
???├──?...?????????????-?Additional?folders?like?includes/
???└──?src/????????????-?source?folder
???????└──?main.cpp
build/??????????????????-?build?directory
???...
//?創(chuàng)建?Cmake?腳本
cmake_minimum_required(VERSION?3.10)
set(CMAKE_CXX_STANDARD?11)
find_package(OpenVINO?REQUIRED)
add_executable(${TARGET_NAME}?src/main.cpp)
target_link_libraries(${TARGET_NAME}?PRIVATE?openvino::runtime)
//?構(gòu)建項(xiàng)目
cd?build/
cmake?../project
cmake?--build?.
1.4 TensorRT
簡介:
NVIDIA TensorRT? 是用于高性能深度學(xué)習(xí)推理的 SDK。此 SDK 包含深度學(xué)習(xí)推理優(yōu)化器和運(yùn)行時(shí)環(huán)境,可為深度學(xué)習(xí)推理應(yīng)用提供低延遲和高吞吐量。
在推理過程中,基于 TensorRT 的應(yīng)用程序的執(zhí)行速度可比 CPU 平臺的速度快 40 倍。借助 TensorRT,您可以優(yōu)化在所有主要框架中訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,精確校正低精度,并最終將模型部署到超大規(guī)模數(shù)據(jù)中心、嵌入式或汽車產(chǎn)品平臺中。
TensorRT 以 NVIDIA 的并行編程模型 CUDA 為基礎(chǔ)構(gòu)建而成,可幫助您利用 CUDA-X 中的庫、開發(fā)工具和技術(shù),針對人工智能、自主機(jī)器、高性能計(jì)算和圖形優(yōu)化所有深度學(xué)習(xí)框架中的推理。
TensorRT 針對多種深度學(xué)習(xí)推理應(yīng)用的生產(chǎn)部署提供 INT8 和 FP16 優(yōu)化,例如視頻流式傳輸、語音識別、推薦和自然語言處理。推理精度降低后可顯著減少應(yīng)用延遲,這恰巧滿足了許多實(shí)時(shí)服務(wù)、自動(dòng)和嵌入式應(yīng)用的要求。
使用場景:

框架特點(diǎn):
1. 權(quán)重與激活精度校準(zhǔn)
通過將模型量化為 INT8 來更大限度地提高吞吐量,同時(shí)保持高準(zhǔn)確度
2. 層與張量融合
通過融合內(nèi)核中的節(jié)點(diǎn),優(yōu)化 GPU 顯存和帶寬的使用
3. 內(nèi)核自動(dòng)調(diào)整
基于目標(biāo) GPU 平臺選擇最佳數(shù)據(jù)層和算法
4. 動(dòng)態(tài)張量顯存
更大限度減少顯存占用,并高效地為張量重復(fù)利用內(nèi)存
5. 多流執(zhí)行
用于并行處理多個(gè)輸入流的可擴(kuò)展設(shè)計(jì)

圖片取自TensorRT的官網(wǎng),里面列出了TensorRT使用的一些技術(shù)??梢钥吹侥P土炕?、動(dòng)態(tài)內(nèi)存優(yōu)化、層的融合等技術(shù)均已經(jīng)在TensorRT中集成了,這也是它能夠極大提高模型推斷速度的原因。總體來說TensorRT將訓(xùn)練好的模型通過一系列的優(yōu)化技術(shù)轉(zhuǎn)化為了能夠在特定平臺(GPU)上以高性能運(yùn)行的代碼,也就是最后圖中生成的Inference Engine。
使用方法:
1.導(dǎo)出模型
2.選擇批次大小
3.選擇精度
4.轉(zhuǎn)換模型:
使用 TF-TRT
從文件自動(dòng)轉(zhuǎn)換 ONNX
使用 TensorRT API 手動(dòng)構(gòu)建網(wǎng)絡(luò)(C++或python)
5.部署模型:
在 TensorFlow 中部署
使用獨(dú)立的 TensorRT 運(yùn)行時(shí) API
使用 NVIDIA Triton 推理服務(wù)器
具體模型轉(zhuǎn)換部署方法詳見:[Quick Start Guide :: NVIDIA Deep Learning TensorRT Documentation]:https://docs.nvidia.com/deeplearning/tensorrt/quick-start-guide/index.html
1.5 Mediapipe
簡介:
MediaPipe是一款由 Google Research 開發(fā)并開源的多媒體機(jī)器學(xué)習(xí)模型應(yīng)用框架。在谷歌,一系列重要產(chǎn)品,如 YouTube、Google Lens、ARCore、Google Home 以及 Nest,都已深度整合了 MediaPipe。作為一款跨平臺框架,MediaPipe 不僅可以被部署在服務(wù)器端,更可以在多個(gè)移動(dòng)端 (安卓和蘋果 iOS)和嵌入式平臺(Google Coral 和樹莓派)中作為設(shè)備端機(jī)器學(xué)習(xí)推理 (On-device Machine Learning Inference)框架。
除了上述的特性,MediaPipe 還支持 TensorFlow 和 TF Lite 的推理引擎(Inference Engine),任何 TensorFlow 和 TF Lite 的模型都可以在 MediaPipe 上使用。同時(shí),在移動(dòng)端和嵌入式平臺,MediaPipe 也支持設(shè)備本身的 GPU 加速。
使用場景:

框架特點(diǎn):
端到端加速:內(nèi)置快速 ML 推理和處理,即使在普通硬件上也能加速
一次構(gòu)建,隨處部署:統(tǒng)一解決方案適用于安卓、iOS、桌面/云、Web 和物聯(lián)網(wǎng)
即用型解決方案:展示框架全部功能的尖端 ML 解決方案
免費(fèi)和開源:Apache 2.0下的框架和解決方案,完全可擴(kuò)展和可定制
使用方法:
[代碼示例]以人臉檢測為例:https://google.github.io/mediapipe/solutions/face_detection
import?cv2
import?mediapipe?as?mp
mp_face_detection?=?mp.solutions.face_detection
mp_drawing?=?mp.solutions.drawing_utils
#?對于靜態(tài)圖像:
IMAGE_FILES?=?[]
with?mp_face_detection.FaceDetection(
????model_selection=1,?min_detection_confidence=0.5)?as?face_detection:
??for?idx,?file?in?enumerate(IMAGE_FILES):
????image?=?cv2.imread(file)
????#?將BGR圖像轉(zhuǎn)換為RGB并使用MediaPipe人臉檢測對其進(jìn)行處理.
????results?=?face_detection.process(cv2.cvtColor(image,?cv2.COLOR_BGR2RGB))
????#?繪制每張人臉的人臉檢測.
????if?not?results.detections:
??????continue
????annotated_image?=?image.copy()
????for?detection?in?results.detections:
??????print('Nose?tip:')
??????print(mp_face_detection.get_key_point(
??????????detection,?mp_face_detection.FaceKeyPoint.NOSE_TIP))
??????mp_drawing.draw_detection(annotated_image,?detection)
????cv2.imwrite('/tmp/annotated_image'?+?str(idx)?+?'.png',?annotated_image)
#?用于網(wǎng)絡(luò)攝像頭輸入:
cap?=?cv2.VideoCapture(0)
with?mp_face_detection.FaceDetection(
????model_selection=0,?min_detection_confidence=0.5)?as?face_detection:
??while?cap.isOpened():
????success,?image?=?cap.read()
????if?not?success:
??????print("Ignoring?empty?camera?frame.")
??????#?如果加載視頻,請使用“中斷”而不是“繼續(xù)”.
??????continue
????#?若要提高性能,可以選擇將圖像標(biāo)記為不可寫以通過引用傳遞.
????image.flags.writeable?=?False
????image?=?cv2.cvtColor(image,?cv2.COLOR_BGR2RGB)
????results?=?face_detection.process(image)
????#?在圖像上繪制人臉檢測注釋.
????image.flags.writeable?=?True
????image?=?cv2.cvtColor(image,?cv2.COLOR_RGB2BGR)
????if?results.detections:
??????for?detection?in?results.detections:
????????mp_drawing.draw_detection(image,?detection)
????#?水平翻轉(zhuǎn)圖像以獲得自拍視圖顯示.
????cv2.imshow('MediaPipe?Face?Detection',?cv2.flip(image,?1))
????if?cv2.waitKey(5)?&?0xFF?==?27:
??????break
cap.release()
2.框架對比
應(yīng)用平臺:
模型推理部署框架 | 應(yīng)用平臺 |
---|---|
NCNN | 移動(dòng)端 |
OpenVINO | CPU,GPU,嵌入式平臺都可以使用,尤其是在CPU上首選OPenVINO。DepthAI嵌入式空間AI平臺。 |
TensorRT | 只能用在NIVDIA的GPU上的推理框架。NIVDIA的Jetson平臺。 |
Mediapipe | 服務(wù)端,移動(dòng)端,嵌入式平臺,TPU。 |
研發(fā)單位:
騰訊公司開發(fā)的移動(dòng)端平臺部署工具——NCNN;
Intel公司針對自家設(shè)備開開發(fā)的部署工具——OpenVINO;
NVIDIA公司針對自家GPU開發(fā)的部署工具——TensorRT;
Google針對自家硬件設(shè)備和深度學(xué)習(xí)框架開發(fā)的部署工具——Mediapipe;
由微軟、亞馬遜 、Facebook 和 IBM 等公司共同開發(fā)的開放神經(jīng)網(wǎng)絡(luò)交換格式——ONNX;
如何選擇:
ONNXRuntime 是可以運(yùn)行在多平臺 (Windows,Linux,Mac,Android,iOS) 上的一款推理框架,它接受 ONNX 格式的模型輸入,支持 GPU 和 CPU 的推理。唯一不足就是 ONNX 節(jié)點(diǎn)粒度較細(xì),推理速度有時(shí)候比其他推理框架如 TensorRT 較低。
NCNN是針對手機(jī)端的部署。優(yōu)勢是開源較早,有非常穩(wěn)定的社區(qū),開源影響力也較高。
OpenVINO 是 Intel 家出的針對 Intel 出品的 CPU 和 GPU 友好的一款推理框架,同時(shí)它也是對接不同訓(xùn)練框架如 TensorFlow,Pytorch,Caffe 等。不足之處可能是只支持 Intel 家的硬件產(chǎn)品。
TensorRT 針對 NVIDIA 系列顯卡具有其他框架都不具備的優(yōu)勢,如果運(yùn)行在 NVIDIA 顯卡上, TensorRT 一般是所有框架中推理最快的。一般的主流的訓(xùn)練框架如TensorFlow 和 Pytorch 都能轉(zhuǎn)換成 TensorRT 可運(yùn)行的模型。當(dāng)然了,TensorRT 的限制就是只能運(yùn)行在 NVIDIA 顯卡上,同時(shí)不開源 kernel。
MediaPipe 不支持除了tensorflow之外的其他深度學(xué)習(xí)框架。MediaPipe 的主要用例是使用推理模型和其他可重用組件對應(yīng)用機(jī)器學(xué)習(xí)管道進(jìn)行快速原型設(shè)計(jì)。MediaPipe 還有助于將機(jī)器學(xué)習(xí)技術(shù)部署到各種不同硬件平臺上的演示和應(yīng)用程序中,為移動(dòng)、桌面/云、web和物聯(lián)網(wǎng)設(shè)備構(gòu)建世界級ML解決方案和應(yīng)用程序。
3.小結(jié)
本文主要介紹了5種推理框架,目的是使大家更加直觀的了解這幾種框架的特點(diǎn),應(yīng)用場景以及如何選擇,為大家之后的學(xué)習(xí)提供有限的幫助,不足之處請大家多多指正。
參考資料
https://learn.microsoft.com/zh-cn/windows/ai/
https://github.com/Tencent/ncnn
https://zhuanlan.zhihu.com/p/344442534
https://github.com/google/mediapipe
https://www.zhihu.com/question/346965029/answer/2395418101
【自動(dòng)駕駛之心】全棧技術(shù)交流群
自動(dòng)駕駛之心是首個(gè)自動(dòng)駕駛開發(fā)者社區(qū),聚焦目標(biāo)檢測、語義分割、全景分割、實(shí)例分割、關(guān)鍵點(diǎn)檢測、車道線、目標(biāo)跟蹤、3D目標(biāo)檢測、BEV感知、多傳感器融合、SLAM、光流估計(jì)、深度估計(jì)、軌跡預(yù)測、高精地圖、NeRF、規(guī)劃控制、模型部署落地、自動(dòng)駕駛仿真測試、硬件配置、AI求職交流等方向;
添加汽車人助理微信邀請入群文章來源:http://www.zghlxwxcb.cn/news/detail-721469.html
備注:學(xué)校/公司+方向+昵稱文章來源地址http://www.zghlxwxcb.cn/news/detail-721469.html
到了這里,關(guān)于深度學(xué)習(xí)模型部署綜述(ONNX/NCNN/OpenVINO/TensorRT)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!