色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 業(yè)界動(dòng)態(tài) > 將機(jī)器視覺(jué)提速20倍!瑞薩DRP是怎么做到的?

          將機(jī)器視覺(jué)提速20倍!瑞薩DRP是怎么做到的?

          作者:瑞薩電子中國(guó) MPU產(chǎn)品部 趙豐 時(shí)間:2021-09-03 來(lái)源:電子產(chǎn)品世界 收藏

          工業(yè)生產(chǎn)要實(shí)現(xiàn)自動(dòng)化,必然離不開(kāi)的幫忙。

          本文引用地址:http://cafeforensic.com/article/202109/427997.htm

          RZ/A2M集成了瑞薩特有的(動(dòng)態(tài)可重新配置處理器)技術(shù),擁有超高性能的圖形圖像處理能力。在擁有硬件級(jí)別運(yùn)算能力的同時(shí),也能夠從軟件層面對(duì)運(yùn)算邏輯進(jìn)行實(shí)時(shí)修改,保證了靈活性的同時(shí)也擁有不俗的圖像處理能力。本文中,我們將重點(diǎn)介紹RZ/A2M在工業(yè)自動(dòng)化領(lǐng)域應(yīng)用的優(yōu)勢(shì),包括更高的圖像處理能力以及超低的功耗。

          1631169198414176.png

          視頻中的機(jī)械臂之所以能夠如此靈活的識(shí)別并抓取目標(biāo)物體,是因?yàn)橛蠷Z/A2M獨(dú)有的模塊對(duì)的圖像處理過(guò)程進(jìn)行加速。外接的顯示器上可以看到,整個(gè)圖像處理流程(包括bayer轉(zhuǎn)RGB、陰影校正&白平衡、RGB轉(zhuǎn)二值化圖像、尋找輪廓、圖像降噪、Bayer轉(zhuǎn)灰階送顯示等)只用了不到3ms,最終達(dá)到VGA(640x480)分辨率下60fps的優(yōu)良性能。

          image.png

          什么是DRP?

          DRP全稱(chēng)是Dynamically Reconfigurable Processer,即動(dòng)態(tài)可重配置處理器。是瑞薩獨(dú)創(chuàng)的體系結(jié)構(gòu),能夠動(dòng)態(tài)的調(diào)整硬件運(yùn)算單元邏輯電路,實(shí)現(xiàn)各式各樣運(yùn)算功能。

          DRP有6個(gè)獨(dú)立的單元稱(chēng)為“Tile”,它們可以加載多個(gè)配置數(shù)據(jù)(即算法庫(kù))并且并行的執(zhí)行,這些算法庫(kù)存放在系統(tǒng)內(nèi)存中,在需要的時(shí)候由CPU下發(fā)指令將其加載到各個(gè)Tile中。

          任何時(shí)候都可以修改各個(gè)Tile中的算法庫(kù),并且在修改過(guò)程中不會(huì)影響其它Tile的運(yùn)行。

          DRP采用動(dòng)態(tài)加載的方法可以在極小的硬件資源上實(shí)現(xiàn)應(yīng)用對(duì)不同圖像處理算法高速處理的需求。

          image.png

          DRP憑什么這么優(yōu)秀?

          DRP是一個(gè)硬件資源,所有的運(yùn)算邏輯都在硬件層面實(shí)現(xiàn),每個(gè)Tile都是一個(gè)獨(dú)立的運(yùn)算單元,Tile擁有的硬件資源是一定的,所以當(dāng)有算法庫(kù)用到的硬件資源較多的時(shí)候,就需要兩個(gè)甚至更多的Tile來(lái)協(xié)同配合,以下是DRP所擁有的硬件資源。

          Tile No.

          Tile0

          Tile1

          Tile2

          Tile3

          Tile4

          Tile5

          PE(Processer Element)

          48

          48

          48

          48

          48

          48

          MUL16(16bit Multiplier)

          3

          3

          3

          3

          3

          3

          MUL32(32bit Multiplier)

          1

          1

          1

          1

          1

          1

          DIV32(32bit Divider)

          1

          -

          -

          1

          -

          -

          CNT(Loop Counter)

          1

          1

          1

          1

          1

          1

          Hmem(Large Memory, 4Kb)

          1

          1

          1

          1

          1

          1

          Vmem(Small Memory, 512B)

          1

          1

          1

          1

          1

          1

          DRP在運(yùn)行的過(guò)程中,會(huì)自動(dòng)的根據(jù)算法庫(kù)的復(fù)雜程度,靈活的對(duì)硬件資源進(jìn)行一些整合,比如在一個(gè)Tile內(nèi),將兩個(gè)16bit的乘法器合并一個(gè)32bit的乘法器使用;或者將一個(gè)16bit的乘法器與一個(gè)計(jì)數(shù)器組合使用等。進(jìn)一步擴(kuò)大了DRP的運(yùn)算能力。

          硬件的運(yùn)算能力我們都非常清楚,比如目前應(yīng)用非常廣泛的FPGA的算力就和CPU完全不在一個(gè)量級(jí),然而FPGA的缺陷也很明顯,就是運(yùn)算規(guī)模直接和門(mén)電路數(shù)量掛鉤,需要實(shí)現(xiàn)復(fù)雜的算法就必須用更多的門(mén)數(shù),而且一旦算法要求的門(mén)數(shù)超出了項(xiàng)目初期的FPGA選型,則不得不更換更大規(guī)模的FPGA,非常的不方便。

          這個(gè)時(shí)候,DRP的靈活性就體現(xiàn)出來(lái)了,它不僅可以在庫(kù)與庫(kù)之間靈活切換,在同一個(gè)庫(kù)的內(nèi)部,也能在不同的時(shí)鐘周期內(nèi),動(dòng)態(tài)調(diào)整運(yùn)算電路之間的邏輯,來(lái)實(shí)現(xiàn)各種各樣的運(yùn)算方式。通過(guò)這種分時(shí)復(fù)用的方式,最大限度的提升了運(yùn)算性能,給小體積發(fā)揮大能力提供了無(wú)限可能。

          1630637345438913.png

          動(dòng)態(tài)可重配置的性能可以在1個(gè)時(shí)鐘周期內(nèi)內(nèi)修改運(yùn)算電路的組合方式,動(dòng)態(tài)加載可以在1ms內(nèi)重新裝載整個(gè)新的算法庫(kù)。

          DRP甚至可以通過(guò)多個(gè)Tile運(yùn)行同一個(gè)算法庫(kù)來(lái)提高處理速度。比如將一張圖片等分為6份,交給6個(gè)Tile進(jìn)行圖像處理,性能直接在原有的基礎(chǔ)上提升6倍!

          1630637364749664.png

          一般來(lái)說(shuō),性能提升往往會(huì)伴隨著功耗的增加。但是用DRP來(lái)提升圖像處理能力是一種另辟蹊徑的優(yōu)化方式,而且這種方式的能耗要遠(yuǎn)遠(yuǎn)低于CPU的能耗。

          如何使用DRP?

          前邊介紹了諸多DRP的優(yōu)勢(shì),大家可能對(duì)于DRP的使用方法有諸多猜測(cè),可能會(huì)擔(dān)心難以上手。但是!不用擔(dān)心!瑞薩電子為大家提供了完整的服務(wù),目前我們開(kāi)發(fā)了大約50個(gè)算法庫(kù)供大家使用,大部分算法庫(kù)與opencv庫(kù)的功能和接口相似,非常方便即可在一個(gè)普通的工程中使用DRP。

          1630637403251464.png

          圖為cv庫(kù)和DRP庫(kù)的切換

          下面我們以Bayer轉(zhuǎn)RGB的庫(kù)為例,看看在使用DRP的時(shí)候需要做哪些事情。

          首先是函數(shù)接口,需要提供的參數(shù)包括輸入地址、輸出地址、圖像寬高以及是否使用tinning(在轉(zhuǎn)換過(guò)程中可以同時(shí)對(duì)圖像尺寸進(jìn)行壓縮)。

          image.png

          在函數(shù)內(nèi)部,需要先將DRP的庫(kù)load到DRP硬件去,g_drp_lib_bayer_binning2rgb這個(gè)數(shù)組中存放的就是編譯好的二進(jìn)制格式DRP庫(kù)。我們使用6個(gè)Tile并行處理一張圖片的方式,因此給6個(gè)Tile都load此庫(kù)。

          image.png

          Load之后,依次給每個(gè)Tile傳入計(jì)算參數(shù)并啟動(dòng)它。由于這里是同一張圖裁成6份,所以每個(gè)Tile只負(fù)責(zé)一張圖的1/6,因此在這里需要分別計(jì)算每個(gè)Tile的起始位置和輸出位置。計(jì)算完畢后下發(fā)Start命令讓這個(gè)Tile開(kāi)始運(yùn)行。

          image.png

          最后等待6個(gè)Tile全部運(yùn)算完即可。

          image.png

          下面我們來(lái)具體看看,機(jī)械臂是如何借助DRP的強(qiáng)大功能,實(shí)現(xiàn)了如此快速的物體檢測(cè)與跟蹤的。

          在機(jī)械臂上電初始化以后,暫時(shí)沒(méi)有找到目標(biāo),所以工作在物體檢測(cè)模式。這個(gè)模式的工作流程如下:

          1630637478361462.png

          可以看到camera采集到一幀圖像后,

          ①  由DRP做了一次Bayer到RGB的轉(zhuǎn)換,這個(gè)轉(zhuǎn)換同時(shí)將圖像的寬高壓縮到了原來(lái)的1/4,可以在不丟失準(zhǔn)確率的前提下加快后續(xù)流程的速度;這個(gè)庫(kù)只占用1個(gè)tile,所以可以將圖片拆分成6份同時(shí)進(jìn)行,耗時(shí)0.4ms。

          ②  給DRP中l(wèi)oad陰影校正&白平衡的庫(kù),對(duì)上一步的結(jié)果做矯正,這個(gè)庫(kù)由于使用的資源較多,占用兩個(gè)tile,所以需要把圖像拆分成3份操作,耗時(shí)0.8ms。

          ③  由RGB圖轉(zhuǎn)換為HSV圖并提取其中V的值。方便后續(xù)的移動(dòng)物體檢測(cè)以及輪廓提取,耗時(shí)0.2ms。

          ④  使用“加權(quán)移動(dòng)平均法”提取運(yùn)動(dòng)的物體,此算法耗時(shí)0.6ms。

          ⑤  根據(jù)上一步得出的物體信息,尋找輪廓和中心點(diǎn)。(由CPU完成)

          ⑥  如果找到目標(biāo),則轉(zhuǎn)入物體跟蹤的流程,否則重復(fù)這個(gè)過(guò)程。

          ⑦  其它一些顯示相關(guān)的處理流程。

          假如上述流程中找到了目標(biāo),那么就會(huì)進(jìn)入物體跟蹤的流程,物體跟蹤模式的工作流程如下

          1630637498125369.png

          ①  可以看到前兩步處理方式都是一樣的,Bayer轉(zhuǎn)RGB + 陰影校正&白平衡共消耗1.2ms。

          ②  由于這個(gè)模式中已經(jīng)確定畫(huà)面中存在物體,所以直接對(duì)圖像進(jìn)行二值化處理,調(diào)用DRP中RGB轉(zhuǎn)Binary的庫(kù)進(jìn)行轉(zhuǎn)換操作,耗時(shí)0.8ms。

          ③  由CPU尋找輪廓并計(jì)算中心點(diǎn)坐標(biāo)和角度。 CPU分別計(jì)算坐標(biāo)、角度與畫(huà)面中心的偏差值,并根據(jù)此值調(diào)整各個(gè)電機(jī)的控制量,耗時(shí)0.7ms。

          ④  由于前序?qū)D像尺寸做了壓縮,所以上一步計(jì)算的坐標(biāo)并不是實(shí)際坐標(biāo),還需要進(jìn)行一次標(biāo)換算。

          ⑤  用于顯示的Bayer轉(zhuǎn)灰階圖的庫(kù),以及其他顯示相關(guān)的流程,耗時(shí)0.3ms。

          目前我們可以提供的約50個(gè)庫(kù)都能實(shí)現(xiàn)2~80倍不等的性能提升,這些性能提升是相對(duì)于RZ/A2M 528MHz Cortex A9 CPU做的對(duì)比。DRP庫(kù)對(duì)性能的提升普遍在10~20倍之間,10倍以下的庫(kù)提升效果不明顯的原因是這些算法本身過(guò)于簡(jiǎn)單,優(yōu)化空間太小。以下列舉了部分現(xiàn)有的庫(kù)以及運(yùn)算能力對(duì)比供大家參考。

          1630637522376512.png

          當(dāng)然,如果客戶有想要的庫(kù)是我們暫時(shí)沒(méi)有的,也可以給瑞薩電子提需求,我們會(huì)綜合考慮后安排到后續(xù)開(kāi)發(fā)計(jì)劃中。

          或者,如果客戶有一些自有的比較機(jī)密的算法想移植到DRP中使用,我們也可以提供DRP庫(kù)開(kāi)發(fā)的相關(guān)培訓(xùn),手把手教你開(kāi)發(fā)DRP庫(kù)。

          1631172792130630.png



          關(guān)鍵詞: 機(jī)器視覺(jué) DRP

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉