Mathworks R2017b升級版,加強深度學習轉換CUDA代碼推斷速度再提升
Mathworks 推出了包含 MATLAB 和 Simulink 產(chǎn)品系列的 Release 2017b(R2017b),該版本大大加強了 MATLAB 對深度學習的支持,并簡化了工程師、研究人員及其他領域專家設計、訓練和部署模型的方式。該更新版本從數(shù)據(jù)標注、模型搭建、訓練與推斷還有最后的模型部署方面完整地支持深度學習開發(fā)流程。此外,MATLAB 這次更新最大的亮點是新組件 GPU Coder,它能自動將深度學習模型代碼轉換為 NVIDIA GPU 的 CUDA 代碼,GPU Coder 轉換后的 CUDA 代碼可以脫離 MATLAB 環(huán)境直接高效地執(zhí)行推斷。經(jīng) MATLAB 內部基準測試顯示,GPU Coder 產(chǎn)生的 CUDA 代碼,比 TensorFlow 的性能高 7 倍,比 Caffe2 的性能高 4.5 倍。
媒體采訪了中國資深應用工程師陳建平,陳建平從 MATLAB 中的數(shù)據(jù)標注開始沿著深度學習模型的開發(fā)、訓練、調試到最后使用 GPU Coder 部署高性能模型,為我們介紹了 MATLAB 這一次更新針對深度學習所做的努力。本文將沿著 MATLAB 深度學習開發(fā)過程簡要介紹這次更新的要點,同時重點向大家展示能自動將模型轉化為 CUDA 代碼的 GPU Coder 模塊。
數(shù)據(jù)標注對于計算機視覺來說,Computer Vision System Toolbox 中的 Ground Truth Labeler app 可提供一種交互式的方法半自動地標注一系列圖像。除了目標檢測與定位外,該工具箱現(xiàn)在還支持語義分割,它能對圖像中的像素區(qū)域進行分類。陳建平說:「我們現(xiàn)在的標注工具可以直接半自動地完成任務,它可以像 Photoshop 中的魔棒工具一樣自動標注出像素層級的類別,我們選中圖片后工具會自動將對象摳出來。在我們完成初始化的圖像語義分割后,工具會使用自動化的手段把后續(xù)行駛過程中的其它元素都摳出來。因為中間和后續(xù)過程都是以機器為主導完成的,所以我們只需要在前期使用少量的人力就能完成整個標注過程?!?/p>
這種半自動方法確實可以大大提升標注的效率,特別是標注車道邊界線和汽車邊界框等視覺系統(tǒng)目標。在這種自動標注框架下,算法可以快速地完成整個數(shù)據(jù)集的標注,而隨后我們只需要少量的監(jiān)督與驗證就能構建一個精確的數(shù)據(jù)集。如下所示,MATLAB 文檔向我們展示了如何創(chuàng)建車道線自動標注。
我們可以使用不同的算法,如能自動檢測車道線特征的 Auto Lane DetecTIon、使用聚合通道特征(Aggregate Channel Features/ACF)檢測車輛的 ACF Vehicle Detector 和使用 Kanade-Lucas_Tomasi(KLT)在小間隔內追蹤一個或多個 ROI 的算法等。如果我們選擇自動算法,那么接下來設置 ROI、最大車道數(shù)、車道線寬度等參數(shù)后就可以直接運行自動標注。若視頻經(jīng)過人工微調與校驗,并達到不錯的效果,我們就可以選擇「Accept」完成標注任務。