0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從神經(jīng)網(wǎng)絡(luò)入門嵌入式視覺應(yīng)用的機(jī)器學(xué)習(xí)

YCqV_FPGA_EETre ? 來源:未知 ? 作者:佚名 ? 2018-01-07 09:37 ? 次閱讀

作者:Nick Ni 和 Adam Taylor

目前嵌入式視覺領(lǐng)域最熱門的話題之一就是機(jī)器學(xué)習(xí)。機(jī)器學(xué)習(xí)涵蓋多個行業(yè)大趨勢,不僅在嵌入式視覺 (EV) ,而且在工業(yè)物聯(lián)網(wǎng) (IIoT) 和云計算中均發(fā)揮著極為顯赫的作用。對不熟悉機(jī)器學(xué)習(xí)的人來說,很多時候機(jī)器學(xué)習(xí)是通過神經(jīng)網(wǎng)絡(luò)創(chuàng)建和訓(xùn)練來實現(xiàn)的。神經(jīng)網(wǎng)絡(luò)一語極為寬泛,包含相當(dāng)數(shù)量的截然不同的子類別。這些子類別的名稱一般用于識別被實現(xiàn)的網(wǎng)絡(luò)的具體類型。這些網(wǎng)絡(luò)均在大腦皮層上建模,在大腦皮層中每個神經(jīng)元接收輸入、處理輸入并將其傳達(dá)給另一個神經(jīng)元。因此神經(jīng)元一般由輸入層、多個隱藏內(nèi)部層和一個輸出層組成。

圖1:簡單的神經(jīng)網(wǎng)絡(luò)

在最簡單的層面上,神經(jīng)元獲得輸入,施加權(quán)重給輸入,然后在加權(quán)輸入總和上執(zhí)行傳遞函數(shù)。結(jié)果隨后傳遞給隱藏層中的另一個層,或傳遞給輸出層。將一級的輸出傳遞給另一級且不構(gòu)成循環(huán)的神經(jīng)網(wǎng)絡(luò)被稱為前饋神經(jīng)網(wǎng)絡(luò) (FNN),而那些有反饋、內(nèi)含定向循環(huán)的神經(jīng)網(wǎng)絡(luò)則被稱為遞歸神經(jīng)網(wǎng)絡(luò) (RNN)。在眾多機(jī)器學(xué)習(xí)應(yīng)用中極為常用的神經(jīng)網(wǎng)絡(luò)是深度神經(jīng)網(wǎng)絡(luò) (DNN)。這類神經(jīng)網(wǎng)絡(luò)擁有多個隱藏層,能實現(xiàn)更復(fù)雜的機(jī)器學(xué)習(xí)任務(wù)。為確定每層使用的權(quán)重和偏差值,需要對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。在訓(xùn)練過程中,該神經(jīng)網(wǎng)絡(luò)施加有一定數(shù)量的正確輸入和錯誤輸入,并使用誤差函數(shù)教授網(wǎng)絡(luò)所需的性能。訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)可能需要龐大的數(shù)據(jù)集來正確訓(xùn)練所需性能。

機(jī)器學(xué)習(xí)最重要的應(yīng)用之一是嵌入式視覺領(lǐng)域,各類系統(tǒng)正在從視覺使能系統(tǒng)演進(jìn)為視覺引導(dǎo)自動化系統(tǒng)。嵌入式視覺應(yīng)用與其他更簡單的機(jī)器學(xué)習(xí)應(yīng)用的區(qū)別在于它們采用二維輸入格式。因此,在機(jī)器學(xué)習(xí)實現(xiàn)方案中,通過使用稱為卷積神經(jīng)網(wǎng)絡(luò) (CNN) 的網(wǎng)絡(luò)結(jié)構(gòu),因為它們能夠處理二維輸入。CNN 是一類前饋網(wǎng)絡(luò),內(nèi)置多個卷積層和子采樣層以及一個單獨的全連通網(wǎng)絡(luò),以執(zhí)行最終分類。鑒于 CNN 的復(fù)雜性,它們也歸屬深度學(xué)習(xí)類別。在卷積層中,輸入圖像被細(xì)分為一系列重疊的小模塊。在進(jìn)行進(jìn)一步的子采樣和其它階段之前,該卷積的結(jié)果先通過激活層創(chuàng)建激活圖,然后應(yīng)用到最終的全連通網(wǎng)絡(luò)上。CNN 網(wǎng)絡(luò)的具體定義因?qū)崿F(xiàn)的網(wǎng)絡(luò)架構(gòu)而異,但它一般會包含至少下列元:● 卷積 – 用于識別圖像中的特征● 修正線性單元(reLU)- 用于在卷積后創(chuàng)建激活圖的激活層● 最大池化 – 在層間進(jìn)行子采樣● 全連通 - 執(zhí)行最終分類

這些元中每一個元的權(quán)重通過訓(xùn)練決定,同時 CNN 的優(yōu)勢之一在于訓(xùn)練網(wǎng)絡(luò)相對容易。通過訓(xùn)練生成權(quán)重需要龐大的圖像集,其中既有需要檢測的對象,也有偽圖像。這樣能讓我們?yōu)?CNN 創(chuàng)建所需的權(quán)重。由于訓(xùn)練流程中所涉及的處理要求,訓(xùn)練流程一般運行在提供高性能計算的云處理器上。

框架

機(jī)器學(xué)習(xí)是一個復(fù)雜的課題,尤其是在每次不得不從頭開始,定義網(wǎng)絡(luò)、網(wǎng)絡(luò)架構(gòu)和生成訓(xùn)練算法的時候。為幫助工程師實現(xiàn)網(wǎng)絡(luò)和訓(xùn)練網(wǎng)絡(luò),有一些行業(yè)標(biāo)準(zhǔn)框架可供使用,例如 Caffe 和 Tensor Flow。Caffe 框架為機(jī)器學(xué)習(xí)開發(fā)人員提供各種庫、模型和 C++ 庫內(nèi)的預(yù)訓(xùn)練權(quán)重,同時提供 PythonMatlab 綁定。該框架能讓用戶無需從頭開始即能創(chuàng)建網(wǎng)絡(luò)并訓(xùn)練網(wǎng)絡(luò),以開展所需的運算。為便于重復(fù)使用,Caffe 用戶能通過 model zoo 共享自己的模型。Model Zoo 提供多種能根據(jù)所需的專門任務(wù)實現(xiàn)和更新的模型。這些網(wǎng)絡(luò)和權(quán)重定義在 prototxt 文件中。在用于機(jī)器學(xué)習(xí)環(huán)境時,prototxt 文件是用于定義推斷引擎的文件。

圖2:定義網(wǎng)絡(luò)的 Prototxt 文件實例

實現(xiàn)嵌入式視覺和機(jī)器學(xué)習(xí)

基于可編程邏輯的解決方案,例如異構(gòu)賽靈思 All Programmable Zynq? -7000 SoC(片上系統(tǒng))和 Zynq? UltraScale+? MPSoC 等多處理器片上系統(tǒng) (MPSoC) 越來越廣泛地用于嵌入式視覺應(yīng)用。這些器件將可編程邏輯 (PL) 架構(gòu)與處理系統(tǒng) (PS) 中的高性能ARM? 內(nèi)核完美組合在一起。這種組合形成的系統(tǒng)擁有更快的響應(yīng)速度,極為靈活便于未來修改,并且提供了高能效解決方案。對許多應(yīng)用來說低時延決策與響應(yīng)循環(huán)極為重要。例如視覺引導(dǎo)自主機(jī)器人,響應(yīng)時間對避免給人員造成傷害、給環(huán)境造成破壞至關(guān)重要??s短響應(yīng)時間的具體方法是使用可編程邏輯實現(xiàn)視覺處理流水線和使用機(jī)器學(xué)習(xí)推斷引擎實現(xiàn)機(jī)器學(xué)習(xí)。在這方面使用可編程邏輯,與傳統(tǒng)解決方案相比可減少系統(tǒng)瓶頸問題。在使用基于 CPU/GPU 的方法時,運算每一階段都需要使用外部 DDR,因為圖像不能在有限內(nèi)部緩存內(nèi)的功能間傳遞??删幊踢壿嫹椒ㄊ褂脙?nèi)部 ARM 按需提供緩存,允許采用流媒體方法。避免在 DDR 內(nèi)存儲中間元不僅可降低圖像處理的時延,而且還能降低功耗,甚至提高確定性,因為無需與其他系統(tǒng)資源共享訪問。

圖 3:可編程邏輯實現(xiàn)的好處

使用賽靈思提供的 reVISION? 堆棧,在異構(gòu) SoC 中能輕松實現(xiàn)圖像處理算法和機(jī)器學(xué)習(xí)網(wǎng)絡(luò)?;?SDSoC? 工具,reVISION 能同時支持傳統(tǒng)圖像應(yīng)用和機(jī)器學(xué)習(xí)應(yīng)用。在 reVISION 內(nèi)部,同時支持 OpenVX 和 Caffe 框架。為支持 OpenVX 框架,內(nèi)核圖像處理功能可被加速到可編程邏輯中,以創(chuàng)建圖像處理流水線。同時機(jī)器學(xué)習(xí)推斷環(huán)境支持可編程邏輯中的硬件優(yōu)化庫,以實現(xiàn)執(zhí)行機(jī)器學(xué)習(xí)實現(xiàn)方案的推斷引擎。

圖4:reVISION 堆棧

reVISION 提供與 Caffe 的集成,這樣實現(xiàn)機(jī)器學(xué)習(xí)推斷引擎就如同提供 prototxt 文件和經(jīng)訓(xùn)練的權(quán)重一樣簡單,框架負(fù)責(zé)處理其余工作。然后使用 prototxt 文件對運行在處理系統(tǒng)上的 C/C++ 調(diào)度器進(jìn)行配置,以加速可編程邏輯中硬件優(yōu)化庫上的神經(jīng)網(wǎng)絡(luò)推斷??删幊踢壿嬘糜趯崿F(xiàn)推斷引擎,內(nèi)含 Conv、ReLu 和 Pooling 等功能。

圖5:Caffe 流程集成

機(jī)器學(xué)習(xí)推斷引擎實現(xiàn)方案中使用的數(shù)值表示系統(tǒng)也對機(jī)器學(xué)習(xí)性能有重要作用。機(jī)器學(xué)習(xí)應(yīng)用正越來越多地使用更高效的降精度定點數(shù)值系統(tǒng),例如 INT8 表達(dá)式。與傳統(tǒng)的浮點 32 (FP32) 方法相比,使用定點降精度數(shù)值系統(tǒng)不會造成顯著的精度下降。因為與浮點相比,定點數(shù)學(xué)在實現(xiàn)難度上也明顯更低,轉(zhuǎn)而采用 INT8 能在一些實現(xiàn)中提供更高效、更快速的解決方案。使用定點數(shù)值系統(tǒng)對在可編程邏輯解決方案中的實現(xiàn)方案而言相當(dāng)理想,reVISION 在可編程邏輯中能與 INT8 表達(dá)式協(xié)同工作。這些 INT8 表達(dá)式方便在可編程邏輯中使用專門的 DSP 模塊。在使用相同的內(nèi)核權(quán)重時,這些 DSP 模塊架構(gòu)能實現(xiàn)最多兩個并發(fā) INT8 乘法累加運算供執(zhí)行。這樣不僅能提供高性能實現(xiàn)方案,而且還能夠降低功耗。只要采用,可編程邏輯的靈活性也還便于實現(xiàn)進(jìn)一步降精度定點數(shù)值表達(dá)系統(tǒng)。

圖6:不同權(quán)重表達(dá)的網(wǎng)絡(luò)精度。

資料來源:https://arxiv.org/pdf/1510.00149v5.pdf

真實性能

在真實環(huán)境中,reVISION 堆棧能帶來明顯優(yōu)勢。在嵌入式視覺應(yīng)用中使用機(jī)器學(xué)習(xí)的應(yīng)用實例之一,如車輛避碰系統(tǒng)。在 reVISION 中針對賽靈思 UltraScale+ MPSoC 并開發(fā)相關(guān)應(yīng)用,使用 SDSoC 在可編程邏輯中按需為各項功能加速以達(dá)到優(yōu)化性能,能明顯改善響應(yīng)性。在都用于實現(xiàn) GoogLeNet 解決方案的條件下,將 reVISION MPSoC 的響應(yīng)時間與基于 GPU 的方法進(jìn)行對比,差異相當(dāng)明顯。reVISION 設(shè)計能在 2.7ms 內(nèi)發(fā)現(xiàn)潛在的碰撞事件并啟動車輛制動(使用的批量規(guī)模為 1),而基于 GPU 的方法則需要用時49ms-320ms(具體取決于其實現(xiàn)方案)(對大批量規(guī)模)。GPU 架構(gòu)需要大批量規(guī)模才能實現(xiàn)合理的吞吐量,但會以犧牲響應(yīng)時間為代價,而 Zynq 在批量規(guī)模為 1 的情況下也能以極低時延實現(xiàn)高性能。這種反應(yīng)時間上的差異可以決定碰撞發(fā)生與否。

總結(jié)

機(jī)器學(xué)習(xí)將繼續(xù)成為眾多應(yīng)用的重要推動因素,尤其是在視覺導(dǎo)向機(jī)器人或所謂的“協(xié)作機(jī)器人”中。將處理器內(nèi)核與可編程邏輯結(jié)合的異構(gòu) SoC, 能創(chuàng)建非常高效、極具響應(yīng)性且可重配置的解決方案。像reVISION 這樣的堆棧的推出,首次將可編程邏輯的好處帶給了更廣闊的開發(fā)者社群,同時還縮短了解決方案的開發(fā)時間。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:嵌入式視覺應(yīng)用中的機(jī)器學(xué)習(xí)

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    神經(jīng)網(wǎng)絡(luò)解決方案讓自動駕駛成為現(xiàn)實

    的越來越大的挑戰(zhàn)。結(jié)論機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)將沿著一條挑戰(zhàn)高效處理性能的發(fā)展道路繼續(xù)闊步前進(jìn)。先進(jìn)的神經(jīng)網(wǎng)絡(luò)架構(gòu)已經(jīng)顯現(xiàn)出優(yōu)于人類的識別精確性。用于生成網(wǎng)
    發(fā)表于 12-21 17:11

    AlexNet到MobileNet,帶你入門深度神經(jīng)網(wǎng)絡(luò)

    俊楠分享了典型模式-深度神經(jīng)網(wǎng)絡(luò)入門。本文詳細(xì)介紹了關(guān)于深度神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程,并詳細(xì)介紹了各個階段模型的結(jié)構(gòu)及特點。直播回顧請點擊以下是精彩視頻內(nèi)容整理:問題引出學(xué)習(xí)知識
    發(fā)表于 05-08 15:57

    嵌入式視覺系統(tǒng)揭秘

    今年嵌入式視覺峰會的論文為以光為輸入的嵌入式系統(tǒng)建議了多種方法,以及使這些輸入發(fā)揮作用所需要的各種算法和硬件實現(xiàn)。應(yīng)用包括了簡單的靜態(tài)機(jī)器視覺
    發(fā)表于 07-17 07:13

    怎么設(shè)計ARM與神經(jīng)網(wǎng)絡(luò)處理器的通信方案?

    人工神經(jīng)網(wǎng)絡(luò)在很多領(lǐng)域得到了很好的應(yīng)用,尤其是具有分布存儲、并行處理、自學(xué)習(xí)、自組織以及非線性映射等特點的網(wǎng)絡(luò)應(yīng)用更加廣泛。嵌入式便攜設(shè)備也越來越多地得到應(yīng)用,多數(shù)是基于ARM內(nèi)核及現(xiàn)
    發(fā)表于 09-20 06:15

    解析深度學(xué)習(xí):卷積神經(jīng)網(wǎng)絡(luò)原理與視覺實踐

    解析深度學(xué)習(xí):卷積神經(jīng)網(wǎng)絡(luò)原理與視覺實踐
    發(fā)表于 06-14 22:21

    嵌入式神經(jīng)網(wǎng)絡(luò)有哪些挑戰(zhàn)

    能?! ∵@些挑戰(zhàn)如果處理不當(dāng),將構(gòu)成重大威脅。一方面,必須要克服硬件限制條件,以在嵌入式平臺上執(zhí)行NN。另一方面,必須要克服挑戰(zhàn)的第二部分,以便快速達(dá)成解決方案,因為上市時間是關(guān)鍵。還原至硬件解決方案以加速上市時間也不是一個明智選擇,因為它無法提供靈活性,并將快速成為發(fā)展進(jìn)化神經(jīng)
    發(fā)表于 06-30 11:01

    針對Arm嵌入式設(shè)備優(yōu)化的神經(jīng)網(wǎng)絡(luò)推理引擎

    專門針對Arm嵌入式設(shè)備優(yōu)化的神經(jīng)網(wǎng)絡(luò)推理引擎Tengine + HCL,不同人群的量身定制
    發(fā)表于 01-15 08:00

    嵌入式中的人工神經(jīng)網(wǎng)絡(luò)的相關(guān)資料分享

    人工神經(jīng)網(wǎng)絡(luò)在AI中具有舉足輕重的地位,除了找到最好的神經(jīng)網(wǎng)絡(luò)模型和訓(xùn)練數(shù)據(jù)集之外,人工神經(jīng)網(wǎng)絡(luò)的另一個挑戰(zhàn)是如何在嵌入式設(shè)備上實現(xiàn)它,同時優(yōu)化性能和功率效率。 使用云計算并不總是一個
    發(fā)表于 11-09 08:06

    機(jī)器學(xué)習(xí)的相關(guān)資料下載

    https://www.toutiao.com/a6712245202418926083/機(jī)器學(xué)習(xí)最重要的應(yīng)用之一是嵌入式機(jī)器視覺領(lǐng)域,各類
    發(fā)表于 12-14 07:03

    輕量化神經(jīng)網(wǎng)絡(luò)的相關(guān)資料下載

    原文鏈接:【嵌入式AI部署&基礎(chǔ)網(wǎng)絡(luò)篇】輕量化神經(jīng)網(wǎng)絡(luò)精述--MobileNet V1-3、ShuffleNet V1-2、NasNet深度神經(jīng)網(wǎng)絡(luò)模型被廣泛應(yīng)用在圖像分類、物體檢測等
    發(fā)表于 12-14 07:35

    如何實現(xiàn)開發(fā)嵌入式神經(jīng)網(wǎng)絡(luò)

    已經(jīng)有很多關(guān)于將人工智能用于日益智能的車輛的文章。但是,您如何將在服務(wù)器群上開發(fā)的神經(jīng)網(wǎng)絡(luò) (NN) 壓縮到量產(chǎn)汽車中資源受限的嵌入式硬件中呢?本文探討了我們應(yīng)該如何授權(quán)汽車生產(chǎn) AI 研發(fā)工程師在
    發(fā)表于 12-23 06:30

    卷積神經(jīng)網(wǎng)絡(luò)簡介:什么是機(jī)器學(xué)習(xí)?

    抽象人工智能 (AI) 的世界正在迅速發(fā)展,人工智能越來越多地支持以前無法實現(xiàn)或非常難以實現(xiàn)的應(yīng)用程序。本系列文章解釋了卷積神經(jīng)網(wǎng)絡(luò) (CNN) 及其在 AI 系統(tǒng)中機(jī)器學(xué)習(xí)中的重要性。CNN 是
    發(fā)表于 02-23 20:11

    目前嵌入式視覺領(lǐng)域最熱門的話題之一就是機(jī)器學(xué)習(xí)

    目前嵌入式視覺領(lǐng)域最熱門的話題之一就是機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)涵蓋多個行業(yè)大趨勢,不僅在
    發(fā)表于 01-06 11:45 ?1129次閱讀

    Facebook神經(jīng)網(wǎng)絡(luò)新研究將造福嵌入式設(shè)備

    人工智能風(fēng)暴襲來,機(jī)器人、自動駕駛汽車這樣的嵌入式設(shè)備也熱度漸長。毫無疑問,現(xiàn)在,嵌入式設(shè)備也需要高效的神經(jīng)網(wǎng)絡(luò)加持。但是,如何在嵌入式設(shè)備
    發(fā)表于 08-07 11:27 ?688次閱讀
    Facebook<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>新研究將造福<b class='flag-5'>嵌入式</b>設(shè)備

    三大廠商推出AI嵌入式視覺入門套件,用于計算機(jī)視覺機(jī)器學(xué)習(xí)設(shè)計

    Toradex,Amazon Web Services(AWS)和NXP Semiconductors合作推出了AI嵌入式視覺入門套件,用于開發(fā)與云連接的計算機(jī)視覺
    的頭像 發(fā)表于 03-11 17:00 ?3687次閱讀