OpenCV 例項解讀:深度學習的計算與加速
OpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺庫,有進行物體識別、影像分割、人臉識別、動作識別等多種功能,可以在Linux、Windows、Android、Mac OS等作業系統上執行,以輕量級、高效著稱,且提供多種語言介面。今年加入了深度學習DNN模組,那麼如何理解,它的加入又帶來了什麼樣的價值?
嘉賓簡介
趙娟,Intel亞太研發有限公司資深軟體工程師、專案經理,她來自Intel 開源技術中心(Opensource Technology Center OTC)。Intel OTC幫助Intel打造開源社群促進企業數字化轉型,並利用開源新技術激發全產業創新活力。在OTC, 她主要帶領Media Processing和Media Framework團隊,主要關注開源專案中影片處理和編解碼的演算法與加速。
今年2018年10月17日~19日,由IT168旗下ITPUB企業社群平臺主辦的第十屆中國系統架構師大會(SACC2018)上趙娟老師將會針對如何便利的使用OpenCV深度學習模組更快的搭建出使用者的程式、深度學習的瓶頸和應用、OpenCV 的架構、深度學習庫的介紹和應用、如何理解OpenCV的深度學習模組等問題展開深度討論,今天小編先帶大家一塊兒探探路。以下為採訪實錄。
AI在各業務範圍內開枝散葉
ITPUB:您認為人工智慧現在處在一個什麼樣的階段?
趙娟:我認為人工智慧已經經歷這麼多年的發展,在framework領域已經逐漸成熟。而在各業務範圍的開枝散葉,是目前大的趨勢。舉一個例子,人工智慧和AR,VR都有結合。在車載360度環視環境中,可以進行行人和障礙物檢測。
ITPUB: 未來的發展方向如何?
趙娟:目前我們看到的人工智慧的應用,相對而言還比較窄,在未來,針對同一場景,做各種不同的智慧檢測,反饋會是一個趨勢。目前在車載的智慧應用,在機器人的系統開發中已經有了一些前沿的討論和研發。比如今年CVPR的最佳論文,taskonomy研究遷移學習,提供含室內環境20幾個的任務的bank。雖然文章討論的亮點是在於節約樣本,但是這也是為同時做多工處理提供了非常好的樣例。
還是以車載為例,在同一時間,它需要分析周邊環境,需要同時進行多方面的分析,包括路線、行人、障礙物。目前,我們大部分是使用高分率雷達和鐳射雷達結合深度完成,現在已經有一些純粹基於影片的方案了。
至於如何在各業務領域落地,一時間也不會有一個統一的方法,看各巨頭和新興企業之間的對客戶的博弈。比如在邊緣計算領域會提供一些低成本低功耗快速精減服務,而云計算也會在提高準確性、處理速度和低延時方面向邊緣計算提供補充。最終的目的,是改善各層次消費者的生活,降低社會成本。
ITPUB:您認為影片行業會在哪些關鍵部分和階段與AI技術產生“火花”?
趙娟:如果說火花,其實現在就已經非常火了。我認為目前最大的火花,還在於車載和機器人兩個領域,結合邊緣和雲端計算,會更多的深度應用。同時對影片處理的效率、效能、延時提出了高要求。
ITPUB: 當初AI技術是如何與現有的系統進行融合的?
趙娟:我們接觸AI源於四年前Michael Fu (Intel,我們base在JF的老闆,帶Audio/Videol團隊 )的OpenCL的策略的一部分,到今年的Vulkan為DNN加速一切很自然。和Pisarevsky Vadim的合作非常順暢。
ITPUB :這之間遇到什麼挑戰您能談談麼?
趙娟:說起挑戰,是Google平臺(特別是Android)的加速引發,隨著Google也在推進Vulkan,所以我們迎接這個趨勢,也開始了一些path finding,目前也有1萬6千多行程式碼和Vadim的團隊review。
OpenCV 的深度學習魅力
ITPUB:今年OpenCV增加了深度學習模組,您能否簡單介紹下最新的進展情況和應用實踐?
趙娟:OpenCV是一個非常有歷史的開源專案,受益群眾特別廣。它在3.3時開始將深度學習模組從opencv_contrib移到OpenCV repo。它主要關注於inference。在framework層面,有caffe, caffe2, tensorflow,那為什麼還會有OpenCV DNN呢?設計初衷是在inference時,方便不同框架透過同一個interface來做inference。同時OpenCV在影像預處理和後處理中已經提供了非常豐富的方法。
目前它的DNN的模組加入了Intel的OpenVino的加速,來滿足Intel不同平臺的需要。 OpenVINO的全稱是Open Visual Inference & Neural Network Optimization。除此之外,OpenCV DNN也包含其他的backend, 比如Halide backend,經過最佳化的CPU和OpenCL backend以及目前正在進行中的Vulkan backend。OpenCV DNN中有提供非常多的sample,比如人臉檢測、影像風格轉換,等等。 這裡面有很多的工作來自於俄羅斯團隊。我們團隊前赴後繼的在OpenCV DNN 的Framework以及Backend方面提供最佳化和加速演算法。
ITPUB: 在具體的應用過程中,您比較關注哪些效能方面的最佳化?
趙娟:談到應用,以前,我們團隊和Pisarevsky Vadim(OpenCV Maintainer,來自Intel俄羅斯)一起,幫助OpenCV DNN提供了OCL的硬體加速。目前我們更關注於使用新的技術對NN進行加速。比如Vulkan。
ITPUB:處於當前的階段下,您認為深度學習DNN模組的匯入將帶來怎樣的價值?比如開發人員的准入門檻、影片處理的效能最佳化等方面。
趙娟:在我今年和應屆生、學校的老師以及一些論壇中的人有過討論後,驚喜的發現已經有人在使用OpenCV DNN。OpenCV DNN使用起來非常簡單,也有和Java, python結合。這降低了研發人員的准入門檻。結合OpenCV的本身的影像預處理、後處理,讓整個pipeline更簡潔。
ITPUB:您目前帶開源技術中心media framework和media processing,專注於Intel的開源生態,服務於Intel各產品部門的需求,據您經驗,在影片處理方面有哪些坑?
趙娟:談起影片處理裡的坑,有一個訴求是經久不變的,0-Copy。這個需要深入理解整個pipeline中對buffer的管理和傳遞。另一個坑是忘記開啟硬體加速。使用者有時並不是直接使用FFmpeg/gstreamer,OpenCV,而是透過上層如HandBrake,JavaCV。這時需要檢查所依賴的FFmpeg/gstreamer,OpenCV是否已經開啟了硬體加速。
有關SACC
ITPUB:今年是SACC大會的第十年,作為《機器學習與深度學習》專場的演講專家,在您看來,本次專場,能幫助聽眾解決企業哪些方面的問題?能為聽會者帶來哪些收益?
趙娟:其實,這是我第一年參加SACC。令我特別高興的是,我在來參會嘉賓中看到了很多熟人。如果大家有對各種影片處理,360影像拼接,與深度學習相結合方面,或者硬體加速的問題,我樂意答疑解惑。
ITPUB:對於本屆大會,您有什麼想對參會者說的嗎?
趙娟:我還是套用習大大的話吧,擼起袖子加油幹。目前我們團隊打算寫一本OpenCV深度學習有關的書,來幫助大家。
舊時王謝堂前燕,飛入尋常百姓家。深度學習在近兩年的發展中,走出學術圈,逐步應用在各行各業,更多關於深度學習的技術乾貨快來參加IT168 旗下 ITPUB 企業社群平臺主辦的第十屆中國系統架構師大會(SACC2018)。2018 年 10 月 18 日上午,機器學習與深度學習專場,盡享技術饕餮大餐。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31509949/viewspace-2217177/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【深度學習篇】---CNN和RNN結合與對比,例項講解深度學習CNNRNN
- 簡單介紹python深度學習tensorflow例項資料下載與讀取Python深度學習
- 例項解讀類比電子技術完全學習與應用
- 深度學習中的Normalization模型(附例項&公式)深度學習ORM模型公式
- 計算機視覺與深度學習公司計算機視覺深度學習
- 深度學習高效計算與處理器設計深度學習
- 【讀書1】【2017】MATLAB與深度學習——深度學習(2)Matlab深度學習
- 最新SS園設計模式例項剖析與深入解讀教程設計模式
- 【深度學習基礎-15】非監督學習-用K-mean演算法聚類如何使用及例項計算深度學習演算法聚類
- 深度學習在計算機視覺各項任務中的應用深度學習計算機視覺
- 【深度學習】--DCGAN從入門到例項應用深度學習
- 深度學習中需要的矩陣計算深度學習矩陣
- 計算機視覺中的深度學習計算機視覺深度學習
- 計算機視覺與深度學習應用關係計算機視覺深度學習
- 例項分享:深度學習與音樂製作的碰撞能產生怎樣的火花?深度學習
- Macro / Micro / Weighted AUC 如何計算例項講解Mac
- Makefile例項學習
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 【機器學習基礎】GBDT--梯度提升樹例項分析完全解讀機器學習梯度
- 深度學習例項之基於mnist的手寫數字識別深度學習
- tail命令學習例項AI
- Python 3 學習筆記之類與例項Python筆記
- C++學習隨筆——簡單的單例設計模式例項C++單例設計模式
- C# 位運算及例項計算C#
- 例項講解:我的強化學習初體驗!強化學習
- 讀懂深度學習,走進“深度學習+”階段深度學習
- 【讀書1】【2017】MATLAB與深度學習——消失的梯度(1)Matlab深度學習梯度
- 深度:如何從系統層面優化深度學習計算?優化深度學習
- 拜讀為什麼深度學習幾乎成了計算機視覺研究的標配深度學習計算機視覺
- 計算機視覺與深度學習,看這本書就夠了計算機視覺深度學習
- 計算機視覺1->opencv4學習指南1 | 環境配置與例程計算機視覺OpenCV
- 史丹佛—深度學習和計算機視覺深度學習計算機視覺
- 通過例項學習 PyTorchPyTorch
- CSS學習摘要-定位例項CSS
- Python學習:類和例項Python
- Alluxio 助力 Kubernetes,加速雲端深度學習UX深度學習
- 深度學習很難?一文讀懂深度學習!深度學習
- 原生javascript開發計算器例項JavaScript