轉載:https://www.jianshu.com/p/d4425b65c6e6
ONNX
-
簡述
ONNX是一種AI神經網絡模型的通用中間文件保存方法(可以理解成AI世界的XML),各種AI框架,Inference引擎,甚至OpenCV裏面的dnn onnx相關的模塊都可以解析ONNX文件並生成特定平臺和運行框架所支持的神經網絡模型。ONNX本身不是AI神經網絡運行框架,只是AI神經網絡模型通用中間描述文件格式 -
GitHub鏈接
https://github.com/onnx/onnx -
編程語言
C++ / Python -
熱度
5星
TensorRT
-
簡述
TensorRT是NVIDIA家的開源AI神經網絡Inference引擎,支持解析和轉換ONNX格式的神經網絡模型部署到支持CUDA的GPU上運行。目前TensorRT僅支持在NVIDIA家的產品部署AI神經網絡模型,支持的平臺有NVIDIA各種支持CUDA 9.0以上的顯卡,嵌入式SOC平臺(Jetson TX1/TX2/Nano/Xavier 等) -
編程語言
C++ -
熱度
3星
MNN
-
簡述
MNN是阿里家開源的一款嵌入式Linux/Android平臺的嵌入式AI神經網絡Inference引擎。它在系統底層對ARM CPU代碼進行系統級優化,可以調配ARM CPU + GPU的算力資源進行AI神經網絡Inference運算。由於後發優勢,加上賈揚清大神入職阿里的加成,目前業界評價MNN對很多AI神經網絡在性能上的優化目前要優於ncnn, 這是後發優勢,也許ncnn會進一步升級趕上。目前由於MNN開源時間還不長,star數目小於ncnn -
GitHub鏈接
https://github.com/alibaba/MNN -
編程語言
C++ / 少量 C語言 -
熱度
4星
ncnn
-
簡述
ncnn是騰訊家開源的一款嵌入式跨平臺平臺的嵌入式AI神經網絡Inference引擎。它在系統底層對ARM CPU代碼進行系統級優化,可以調配ARM CPU + GPU的算力資源進行AI神經網絡Inference運算。ncnn比MNN開源更早,不過它看起來更專注於Android平臺,對Android系統平臺優化得更好 -
GitHub鏈接
https://github.com/Tencent/ncnn -
編程語言
三分之二 C++ / 三分之一 C語言 -
熱度
5星
TVM
-
簡述
TVM是青年學者陳天奇主導的跨平臺基於編譯方法部署的AI神經網絡部署的方法。TVM項目的想法是做AI神經網絡界的LLVM神經網絡編譯器,通過跨平臺交叉編譯的方法,將AI神經網絡編譯成目標平臺的運行庫,然後在tvm runtime運行。tvm runtime本身不依賴其它第三方庫。 -
GitHub鏈接
https://github.com/dmlc/tvm -
編程語言
C++ / Python -
熱度
4星半
TensorFlow Lite
-
簡述
TensorFlow Lite是一款用於部署在移動設備上基於TensorFlow框架訓練的的AI神經網絡模型的一個工具。由於Android TensorFlow TensorFlow Lite都是Google家的產品,所以TensorFlow對Google家的Android設備有天然兼容性和生態,目前在Android平臺使用比較多 -
鏈接
https://www.tensorflow.org/lite
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite -
編程語言
C++ / Python -
熱度
6星
ArmNN
-
簡述
ArmNN是Arm公司開源的基於arm嵌入式設備的inference框架,在Arm Cortex-A CPUs、Arm Mali GPUs、Arm Machine Learning processor都可以達到很高的加速效果。不過可惜的是,由於缺乏文檔及教程,該框架在國內推廣的程度不高,目前Github的更新迭代速度也不快。相對於其他AI神經網絡Inference框架如NCNN、Tengine、MNN等等,ArmNN的知名度顯得很小。不過有用戶反饋ArmNN對ARM芯片上的算力進行統一管理和加速的效果很好,是一個被低估的框架 -
編程語言
C++ -
熱度
2星
Tengine
-
簡述
Tengine 是OPEN AI LAB公司開發的針對ARM公司中高端應用級CPU Cortex-A系列(參考CPU Cortex-A72) 開發的AI神經網絡Inference引擎。同時支持Linux和Android系統,目前項目更新迭代速度並不快 -
GitHub鏈接
https://github.com/OAID/Tengine -
編程語言
C++ / 少量 C語言 -
熱度
2星半
Tengine-lite
-
簡述
Tengine 是OPEN AI LAB公司開發的針對ARM公司中低端實時控制級 Cortex-M 開發的AI神經網絡Inference引擎,純C語言打造,支持RTOS系統,是目前少有的支持嵌入式裸機和RTOS系統的AI神經網絡Inference引擎 -
編程語言
C語言 -
熱度
1星
Mace
-
簡述
Mace是小米公司開發的一款支持ARM Cortex-A 系列手機級CPU的神經網絡AI Inference引擎。能夠同時管理調度CPU 和 GPU的算力,支持Windows, Linux, Android等多個系統,對高通手機開發平臺的支持和優化做得比較出色。 -
編程語言
C++ / 少量 Python和C語言 -
GitHub鏈接
https://github.com/XiaoMi/mace -
熱度
3星半
Paddle-Mobile
-
簡述
Paddle-Mobile是百度家的一款嵌入式AI神經網絡Infrence框架, 中文名叫飛槳,高性能支持ARM CPU,支持Mali GPU, 支持Andreno GPU, 支持蘋果設備的GPU Metal實現,支持ZU5、ZU9等FPGA開發板,支持樹莓派等arm-linux開發板。目前在中文開源資料比較豐富 -
編程語言
C++ / 少量 C語言 -
熱度
4星
OpenCV dnn
-
簡述
dnn 是opencv裏面用於deep learning AI神經網絡inference的一個模塊(據說有training的功能,但是一般不用)。dnn模塊從opencv 3.1開始就在opencv_contrib庫裏面,在3.3版中,它被提到了主倉庫中。新版OpenCV dnn模塊目前支持Caffe、TensorFlow、Torch、PyTorch等深度學習框架。從3.4開始,dnn模塊開始支持onnx格式的AI神經網絡模型部署。
opencv dnn模塊相比於其它AI神經網絡 Inference引擎優點在於它依託於Opencv這個傳統的計算機視覺庫,有大量的傳統視覺,圖像預處理和後處理相關的api函數可以用,並且格式兼容。另外dnn只依賴於opencv, 不依賴其它的庫,所以可以和opencv一起部署的嵌入式Linux(不是Ubuntu, Debian, Android這種發行版系統)最小系統上,可以運用到各種更細分的領域。
當然opencv dnn趕上時代潮流,進入opencv主倉庫的時間比較晚,支持的AI神經網絡模型並不算多,速度和計算精度性能優化不是特別好,版本迭代速度也不快,相比於其它家互聯網公司主推的AI Inference引擎,其對gpu, cpu統一計算資源管理優化程度可能也不算特別好。不過從Opencv 4.x以後的版本看,dnn模塊越來越受官方重視,建議大家嘗試4.x以後的版本。 -
GitHub鏈接
https://github.com/opencv/opencv/tree/master/modules/dnn -
編程語言
C++ / 少量 C語言 -
熱度
3星半
Dlib
-
簡述
Dlib是一個現代C++語言編寫的工具包,包含機器學習算法和工具,用於用C++創建複雜的軟件來解決現實世界中的問題。它被廣泛應用於工業和學術界,包括機器人、嵌入式設備、移動電話和大型高性能計算環境。
Dlib 在傳統機器學習領域的算法庫非常豐富,但是深度學習領域進入比較晚,支持的模型不算最新。不過Dlib在人臉識別領域,關鍵點識別做得還是不錯,並且可以和OpenCV的Mat格式進行轉換兼容,這樣配合Opencv做人臉識別應該是不錯的選擇。不過Dlib的中文資料略少。 -
編程語言
C++ -
熱度
3星半
作者:火哥的簡書
鏈接:https://www.jianshu.com/p/d4425b65c6e6
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。