ONNX
簡(jiǎn)述
ONNX是一種AI神經(jīng)網(wǎng)絡(luò)模型的通用中間文件保存方法(可以理解成AI世界的XML)齐鲤,各種AI框架昆码,Inference引擎湿镀,甚至OpenCV里面的dnn onnx相關(guān)的模塊都可以解析ONNX文件并生成特定平臺(tái)和運(yùn)行框架所支持的神經(jīng)網(wǎng)絡(luò)模型椎侠。ONNX本身不是AI神經(jīng)網(wǎng)絡(luò)運(yùn)行框架憔四,只是AI神經(jīng)網(wǎng)絡(luò)模型通用中間描述文件格式GitHub鏈接
https://github.com/onnx/onnx編程語(yǔ)言
C++ / Python熱度
5星
TensorRT
簡(jiǎn)述
TensorRT是NVIDIA家的開(kāi)源AI神經(jīng)網(wǎng)絡(luò)Inference引擎愈涩,支持解析和轉(zhuǎn)換ONNX格式的神經(jīng)網(wǎng)絡(luò)模型部署到支持CUDA的GPU上運(yùn)行。目前TensorRT僅支持在NVIDIA家的產(chǎn)品部署AI神經(jīng)網(wǎng)絡(luò)模型加矛,支持的平臺(tái)有NVIDIA各種支持CUDA 9.0以上的顯卡履婉,嵌入式SOC平臺(tái)(Jetson TX1/TX2/Nano/Xavier 等)GitHub鏈接
https://github.com/NVIDIA/TensorRT編程語(yǔ)言
C++熱度
3星
MNN
簡(jiǎn)述
MNN是阿里家開(kāi)源的一款嵌入式Linux/Android平臺(tái)的嵌入式AI神經(jīng)網(wǎng)絡(luò)Inference引擎。它在系統(tǒng)底層對(duì)ARM CPU代碼進(jìn)行系統(tǒng)級(jí)優(yōu)化斟览,可以調(diào)配ARM CPU + GPU的算力資源進(jìn)行AI神經(jīng)網(wǎng)絡(luò)Inference運(yùn)算毁腿。由于后發(fā)優(yōu)勢(shì),加上賈揚(yáng)清大神入職阿里的加成,目前業(yè)界評(píng)價(jià)MNN對(duì)很多AI神經(jīng)網(wǎng)絡(luò)在性能上的優(yōu)化目前要優(yōu)于ncnn, 這是后發(fā)優(yōu)勢(shì)已烤,也許ncnn會(huì)進(jìn)一步升級(jí)趕上鸠窗。目前由于MNN開(kāi)源時(shí)間還不長(zhǎng),star數(shù)目小于ncnnGitHub鏈接
https://github.com/alibaba/MNN編程語(yǔ)言
C++ / 少量 C語(yǔ)言熱度
4星
ncnn
簡(jiǎn)述
ncnn是騰訊家開(kāi)源的一款嵌入式跨平臺(tái)平臺(tái)的嵌入式AI神經(jīng)網(wǎng)絡(luò)Inference引擎胯究。它在系統(tǒng)底層對(duì)ARM CPU代碼進(jìn)行系統(tǒng)級(jí)優(yōu)化稍计,可以調(diào)配ARM CPU + GPU的算力資源進(jìn)行AI神經(jīng)網(wǎng)絡(luò)Inference運(yùn)算。ncnn比MNN開(kāi)源更早裕循,不過(guò)它看起來(lái)更專注于Android平臺(tái)臣嚣,對(duì)Android系統(tǒng)平臺(tái)優(yōu)化得更好GitHub鏈接
https://github.com/Tencent/ncnn編程語(yǔ)言
三分之二 C++ / 三分之一 C語(yǔ)言熱度
5星
TVM
簡(jiǎn)述
TVM是青年學(xué)者陳天奇主導(dǎo)的跨平臺(tái)基于編譯方法部署的AI神經(jīng)網(wǎng)絡(luò)部署的方法。TVM項(xiàng)目的想法是做AI神經(jīng)網(wǎng)絡(luò)界的LLVM神經(jīng)網(wǎng)絡(luò)編譯器剥哑,通過(guò)跨平臺(tái)交叉編譯的方法硅则,將AI神經(jīng)網(wǎng)絡(luò)編譯成目標(biāo)平臺(tái)的運(yùn)行庫(kù),然后在tvm runtime運(yùn)行株婴。tvm runtime本身不依賴其它第三方庫(kù)怎虫。GitHub鏈接
https://github.com/dmlc/tvm編程語(yǔ)言
C++ / Python熱度
4星半
TensorFlow Lite
簡(jiǎn)述
TensorFlow Lite是一款用于部署在移動(dòng)設(shè)備上基于TensorFlow框架訓(xùn)練的的AI神經(jīng)網(wǎng)絡(luò)模型的一個(gè)工具。由于Android TensorFlow TensorFlow Lite都是Google家的產(chǎn)品困介,所以TensorFlow對(duì)Google家的Android設(shè)備有天然兼容性和生態(tài)大审,目前在Android平臺(tái)使用比較多鏈接
https://www.tensorflow.org/lite
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite編程語(yǔ)言
C++ / Python熱度
6星
ArmNN
簡(jiǎn)述
ArmNN是Arm公司開(kāi)源的基于arm嵌入式設(shè)備的inference框架,在Arm Cortex-A CPUs座哩、Arm Mali GPUs饥努、Arm Machine Learning processor都可以達(dá)到很高的加速效果。不過(guò)可惜的是八回,由于缺乏文檔及教程酷愧,該框架在國(guó)內(nèi)推廣的程度不高,目前Github的更新迭代速度也不快缠诅。相對(duì)于其他AI神經(jīng)網(wǎng)絡(luò)Inference框架如NCNN溶浴、Tengine、MNN等等管引,ArmNN的知名度顯得很小士败。不過(guò)有用戶反饋ArmNN對(duì)ARM芯片上的算力進(jìn)行統(tǒng)一管理和加速的效果很好,是一個(gè)被低估的框架編程語(yǔ)言
C++熱度
2星
Tengine
簡(jiǎn)述
Tengine 是OPEN AI LAB公司開(kāi)發(fā)的針對(duì)ARM公司中高端應(yīng)用級(jí)CPU Cortex-A系列(參考CPU Cortex-A72) 開(kāi)發(fā)的AI神經(jīng)網(wǎng)絡(luò)Inference引擎褥伴。同時(shí)支持Linux和Android系統(tǒng)谅将,目前項(xiàng)目更新迭代速度并不快GitHub鏈接
https://github.com/OAID/Tengine編程語(yǔ)言
C++ / 少量 C語(yǔ)言熱度
2星半
Tengine-lite
簡(jiǎn)述
Tengine 是OPEN AI LAB公司開(kāi)發(fā)的針對(duì)ARM公司中低端實(shí)時(shí)控制級(jí) Cortex-M 開(kāi)發(fā)的AI神經(jīng)網(wǎng)絡(luò)Inference引擎,純C語(yǔ)言打造重慢,支持RTOS系統(tǒng)饥臂,是目前少有的支持嵌入式裸機(jī)和RTOS系統(tǒng)的AI神經(jīng)網(wǎng)絡(luò)Inference引擎GitHub鏈接
https://github.com/OAID/Tengine-lite編程語(yǔ)言
C語(yǔ)言熱度
1星
Mace
簡(jiǎn)述
Mace是小米公司開(kāi)發(fā)的一款支持ARM Cortex-A 系列手機(jī)級(jí)CPU的神經(jīng)網(wǎng)絡(luò)AI Inference引擎。能夠同時(shí)管理調(diào)度CPU 和 GPU的算力似踱,支持Windows, Linux, Android等多個(gè)系統(tǒng)隅熙,對(duì)高通手機(jī)開(kāi)發(fā)平臺(tái)的支持和優(yōu)化做得比較出色稽煤。編程語(yǔ)言
C++ / 少量 Python和C語(yǔ)言GitHub鏈接
https://github.com/XiaoMi/mace熱度
3星半
Paddle-Mobile
簡(jiǎn)述
Paddle-Mobile是百度家的一款嵌入式AI神經(jīng)網(wǎng)絡(luò)Infrence框架, 中文名叫飛槳囚戚,高性能支持ARM CPU酵熙,支持Mali GPU, 支持Andreno GPU驰坊, 支持蘋(píng)果設(shè)備的GPU Metal實(shí)現(xiàn)匾二,支持ZU5、ZU9等FPGA開(kāi)發(fā)板拳芙,支持樹(shù)莓派等arm-linux開(kāi)發(fā)板察藐。目前在中文開(kāi)源資料比較豐富編程語(yǔ)言
C++ / 少量 C語(yǔ)言熱度
4星
OpenCV dnn
簡(jiǎn)述
dnn 是opencv里面用于deep learning AI神經(jīng)網(wǎng)絡(luò)inference的一個(gè)模塊(據(jù)說(shuō)有training的功能,但是一般不用)态鳖。dnn模塊從opencv 3.1開(kāi)始就在opencv_contrib庫(kù)里面,在3.3版中恶导,它被提到了主倉(cāng)庫(kù)中浆竭。新版OpenCV dnn模塊目前支持Caffe、TensorFlow惨寿、Torch邦泄、PyTorch等深度學(xué)習(xí)框架。從3.4開(kāi)始裂垦,dnn模塊開(kāi)始支持onnx格式的AI神經(jīng)網(wǎng)絡(luò)模型部署顺囊。
opencv dnn模塊相比于其它AI神經(jīng)網(wǎng)絡(luò) Inference引擎優(yōu)點(diǎn)在于它依托于Opencv這個(gè)傳統(tǒng)的計(jì)算機(jī)視覺(jué)庫(kù),有大量的傳統(tǒng)視覺(jué)蕉拢,圖像預(yù)處理和后處理相關(guān)的api函數(shù)可以用特碳,并且格式兼容。另外dnn只依賴于opencv, 不依賴其它的庫(kù)晕换,所以可以和opencv一起部署的嵌入式Linux(不是Ubuntu, Debian, Android這種發(fā)行版系統(tǒng))最小系統(tǒng)上午乓,可以運(yùn)用到各種更細(xì)分的領(lǐng)域。
當(dāng)然opencv dnn趕上時(shí)代潮流闸准,進(jìn)入opencv主倉(cāng)庫(kù)的時(shí)間比較晚益愈,支持的AI神經(jīng)網(wǎng)絡(luò)模型并不算多,速度和計(jì)算精度性能優(yōu)化不是特別好夷家,版本迭代速度也不快蒸其,相比于其它家互聯(lián)網(wǎng)公司主推的AI Inference引擎,其對(duì)gpu, cpu統(tǒng)一計(jì)算資源管理優(yōu)化程度可能也不算特別好库快。不過(guò)從Opencv 4.x以后的版本看摸袁,dnn模塊越來(lái)越受官方重視,建議大家嘗試4.x以后的版本义屏。GitHub鏈接
https://github.com/opencv/opencv/tree/master/modules/dnn編程語(yǔ)言
C++ / 少量 C語(yǔ)言熱度
3星半
Dlib
簡(jiǎn)述
Dlib是一個(gè)現(xiàn)代C++語(yǔ)言編寫(xiě)的工具包但惶,包含機(jī)器學(xué)習(xí)算法和工具耳鸯,用于用C++創(chuàng)建復(fù)雜的軟件來(lái)解決現(xiàn)實(shí)世界中的問(wèn)題。它被廣泛應(yīng)用于工業(yè)和學(xué)術(shù)界膀曾,包括機(jī)器人县爬、嵌入式設(shè)備、移動(dòng)電話和大型高性能計(jì)算環(huán)境添谊。
Dlib 在傳統(tǒng)機(jī)器學(xué)習(xí)領(lǐng)域的算法庫(kù)非常豐富财喳,但是深度學(xué)習(xí)領(lǐng)域進(jìn)入比較晚,支持的模型不算最新斩狱。不過(guò)Dlib在人臉識(shí)別領(lǐng)域耳高,關(guān)鍵點(diǎn)識(shí)別做得還是不錯(cuò),并且可以和OpenCV的Mat格式進(jìn)行轉(zhuǎn)換兼容所踊,這樣配合Opencv做人臉識(shí)別應(yīng)該是不錯(cuò)的選擇泌枪。不過(guò)Dlib的中文資料略少。GitHub鏈接
https://github.com/davisking/dlib編程語(yǔ)言
C++熱度
3星半