前言
深度學習不不僅僅是理論創新,更重要的是應用于工程實際,
關于深度學習人工智能落地,已經有有很多的解決方案,不論是電腦端、手機端還是嵌入式端,將已經訓練好的神經網路權重在各個平臺跑起來,應用起來才是最實在的,

(caffe2-ios:https://github.com/KleinYuan/Caffe2-iOS)
這里簡單談談就在2018年我們一般深度學習落地的近況,
Opencv
Opencv相比大家都比較了解,很流行很火的開源影像處理庫,人工智能深度學習大伙,Opencv自然不能落下,早在去年Opencv開始加入Dnn模塊,并且一直更新,但是有點需要注意,Opencv的深度學習模塊是用來inference推斷而不是用來訓練的,
為什么,因為現在已經存在很多優秀的深度學習框架了(TensorFlow、Pytorch),Opencv只需要管好可以讀取訓練好的權重模型進行推斷就足夠了,

(opencv-4.0.0已經發布)
自己試著跑了一下Opencv版的yolov3,利用yolo官方訓練好的權重,讀取權重并且利用Opencv的前向網路運行——速度還可以,在i5-7400 CPU上推斷用了600+ms,

而我用2017版MacBookPro-2.3GHz版本的CPU(i5-7260u)則跑了500ms,要知道這是完全版本的yolo-v3,如果進一步優化的話,在稍微好點的CPU端是可以跑到10fps!
另外在learnopencv相關文章中,也有詳盡的評測:

在6核12執行緒的CPU中可以跑到200ms,速度相當快了,而且優化的空間還是有的,
為什么Opencv版的比Darknet版的速度快那么多,是因為Opencv的Cpu端的op撰寫程序中利用了CPU-MKL等很多優化庫,針對英特爾有著很好的優化,充分利用了多執行緒的優勢(多執行緒很重要,并行計算比串行計算快很多),
當然這些優化還不是盡頭,Opencv也在一直更新:

Opencv可以作為一個不錯的落地的深度學習推斷平臺,只要安裝好Opencv,就可以跑深度學習代碼了,不需要安裝其他深度學習框架了,但是有點需要注意,Opencv最好的實踐是CPU端,GPU端Opencv對cuda的支持不是很好,Opencv只有利用OpenCL支持GPU,但速度沒有cuda庫快,
Pytorch-v1.0
Pytorch-v1.0的預覽版已經發布了,正式版應該是在國慶節的第一天發布,

但我們在觀察Pytorch的1.0檔案中已經可以熟知,為什么Pytorch-v1.0稱為從研究到生產:

最重要的三點:
- 分布式應用
- ONNX的完全支持
- 利用C++部署生成環境
簡單談談第三個要點,看了官方的說明檔案,Pytorch也做了類似于Opencv作業,新的Pytorch支持直接應用Pytorch的C++部分從而編譯可以單獨執行Pytorch的推斷部分而不需要安裝所有Pytorch的組件,
近期會測驗一下Pytorh和Opencv相比在Cpu端的速度,看看哪個對CPU端的優化更好些,
IOS、安卓
IOS最大的看點就是:Iphone最新出來的A12仿生處理器!

5W億次每秒運行速度,跟專業顯卡比起來可能不算什么,但是在手機端,意思可想而知,
只是不知道具體的速度如何,跑Yolo的話可不可以實時,期待之后的測評吧,

不過在HomeCourt這款APP中(中國目前還不可以使用),憑借A12強大的性能,貌似可以實時追蹤人體骨架,還是很值得期待的,
至于安卓端,因為華為的芯片還沒有具體公布,目前在移動端上的神經網路框架大部分是用CPU跑,
速度快慢就看在arm端的優化如何了,
比較流行的兩個框架是ncnn(主要是cpu)和mace(也支持Gpu),都在發展階段,前者出世1年左右,后者出世半年不到,
也期待一下吧!
后記
深度學習落地,最繁瑣的莫過于配置各種環境,希望之后各大深度學習框架能夠在落地這塊加大投入,實作快速方便地部署吧!
配一張Openpose的配置資訊:

(OpenPose中對Windows的要求較為苛刻)
撩我吧
- 如果你與我志同道合于此,老潘很愿意與你交流;
- 如果你喜歡老潘的內容,歡迎關注和支持,
- 如果你喜歡我的文章,希望點贊?? 收藏 ?? 評論 ?? 三連一下~
想知道老潘是如何學習踩坑的,想與我交流問題~請關注公眾號「oldpan博客」,
老潘也會整理一些自己的私藏,希望能幫助到大家,點擊神秘傳送門獲取,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262004.html
標籤:其他
