999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于可編程SOC的圖像邊緣檢測系統(tǒng)

2020-05-28 09:36:21胡龍寶李丕丁
軟件導刊 2020年3期

胡龍寶 李丕丁

摘 要:隨著人工智能的不斷發(fā)展,云計算面臨數(shù)據(jù)量大、實時性低等問題。為了解決該問題,一種新的計算方式——邊緣計算進入了人們的視野。邊緣計算推動人工智能走向嵌入式系統(tǒng),與傳統(tǒng)嵌入系統(tǒng)相比,邊緣人工智能要復雜得多,傳統(tǒng)嵌入式設(shè)備計算能力弱、效率低的問題更為突出。基于Xilinx公司Zynq-7000系列的全可編程SOC完成系統(tǒng)設(shè)計,實現(xiàn)對視頻的邊緣檢測。測試結(jié)果顯示,硬件邊緣檢測速度比純軟件邊緣檢測速度快10倍,為邊緣人工智能在嵌入式應用方面提供了可行方向。

關(guān)鍵詞:邊緣人工智能;邊緣計算;可編程SOC;軟硬件協(xié)同;邊緣檢測;嵌入式應用

DOI:10. 11907/rjdk. 191606

中圖分類號:TP317.4?? 文獻標識碼:A??????????????? 文章編號:1672-7800(2020)003-0244-04

Image Edge Detection System Based on Programmable SOC

HU Long-bao, LI Pi-ding

(School of Medical Devices and Food Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

Abstract: With the continuous development of artificial intelligence, cloud computing is facing the problems of large amount of data and low real-time. To solve this problem, a new computing method, edge computing, has come into peoples vision. Edge computing drives AI to embedded systems. Compared with traditional embedded systems, edge AI is much more complex. Traditional embedded devices have weak computing power and low efficiency. In this paper, based on Xilinx Zynq-7000 series of fully programmable SOC to complete the system design, to achieve video edge detection. The test results show that the speed of hardware edge detection is 10 times faster than that of software edge detection, which provides a feasible direction for the application of edge artificial intelligence in embedded system.

Key Words: edge artificial intelligence; edge computing; programmable SOC; software and hardware cooperation; edge detection; embedded applications

0 引言

云計算技術(shù)能夠?qū)⒋罅坑嬎阗Y源、存儲資源與軟件資源鏈接在一起, 形成巨大規(guī)模的共享虛擬IT資源池, 為遠程計算機用戶提供強大的計算能力和大量存儲空間[1-2],但隨著網(wǎng)絡(luò)邊緣檢測設(shè)備的迅速增加,云計算很難實現(xiàn)如此龐大規(guī)模數(shù)量的即時計算,無法保證應用的實時性[3]。如一輛自動駕駛的汽車每秒會產(chǎn)生1GB以上的數(shù)據(jù)[4],并且還要求對這些數(shù)據(jù)進行實時處理。大量自動駕駛的汽車同時向云服務器請求計算會占用大量內(nèi)存、計算資源和帶寬[5],而且在數(shù)據(jù)傳輸過程中任何延時都可能導致車禍發(fā)生。

因此,邊緣計算的重要性尤為突出。邊緣計算是指將計算任務在接近本地數(shù)據(jù)源的計算資源上運行, 實現(xiàn)數(shù)據(jù)就近處理[6-7]。邊緣計算有以下3個優(yōu)點:①減輕了網(wǎng)絡(luò)帶寬和數(shù)據(jù)中心功耗的壓力;②更快的傳輸和響應速度;③擺脫了網(wǎng)絡(luò)環(huán)境制約,也更加安全[8-9]。

邊緣計算使用的嵌入式處理器大致分為ARM、FPGA、DSP和GPU。4種嵌入式處理器優(yōu)缺點如表1所示。

面向視頻監(jiān)控、汽車駕駛輔助、航空與國防等市場領(lǐng)域的新型應用,ARM具有比較強的事務管理功能,可以用于運行界面及應用程序等,其優(yōu)勢主要體現(xiàn)在控制方面,但在計算方面比較吃力;DSP主要是用來計算,比如進行加密解密、調(diào)制解調(diào)等,優(yōu)勢是強大的數(shù)據(jù)處理能力和較高的運行速度;FPGA適合于控制功能算法簡單且含有大量重復計算的工程使用,面對復雜控制實現(xiàn)難度大;GPU主要用于圖像處理,不適用于控制。單一種類處理器的嵌入式方案已無法滿足邊緣人工智能計算量大、低延時的要求。

針對以上問題,本文采用Zynq-7000系列的全可編程SOC芯片完成軟硬件協(xié)同設(shè)計[10],以雙核ARM為核心 ,高性能FPGA為外設(shè),將復雜算法通過Vivado高層次綜合(High-level Synthesis,HLS)工具優(yōu)化,將優(yōu)化后的算法生成硬件模塊在ARM上加載,通過AXI4總線實現(xiàn)兩者數(shù)據(jù)交互[11-12]。

1 系統(tǒng)硬件結(jié)構(gòu)設(shè)計

本系統(tǒng)在ARM處理器上搭建Linux系統(tǒng),使用AXI4總線實現(xiàn)Zynq的可編程邏輯(Progarmmable Logic,PL)和處理器系統(tǒng)(Processing System,PS)之間的大量數(shù)據(jù)傳輸[13]。使用Xilinx公司的FPGA開發(fā)工具Vivado2017.4設(shè)計硬件模塊并搭建系統(tǒng)。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。

其中,PL部分負責圖像采集、邊緣檢測、圖像顯示,PS部分負責內(nèi)存單元DDR3的數(shù)據(jù)存取和人機交互界面。

硬件系統(tǒng)包括3個模塊:圖像采集模塊、邊緣檢測模塊、圖像顯示模塊。

1.1 圖像采集模塊

圖像采集模塊包括OV7725攝像頭及其周圍電路。OV7725攝像頭通過CEP(Cmos Expand Port)與ZYNQ-7000系列的開發(fā)板連接,可輸出640×480分辨率、16位色彩深度的圖像信息[14];OV7725攝像頭一個時鐘周期只能寫入8位數(shù)據(jù),因此在視頻格式轉(zhuǎn)換IP中將前后兩個8位數(shù)據(jù)合并成16位數(shù)據(jù),得到RGB565類型數(shù)據(jù),再將數(shù)據(jù)擴充為RGB888格式方便轉(zhuǎn)成AXI4-Stream協(xié)議,最后通過VDMA1模塊通過AXI_HP接口將數(shù)據(jù)存入PS端的DDR3緩存。

1.2 基于HLS的邊緣檢測模塊

Vivado HLS工具是Xilinx推出的高層次綜合工具,能夠?qū)、C++、System C代碼綜合成硬件電路,支持浮點運算,并封裝多種圖像處理函數(shù)核數(shù)學運算函數(shù),相對于Verilog實現(xiàn)硬件邊緣檢測模塊,開發(fā)過程更簡單[15-16]。HLS工具還提供了OpenCV的函數(shù)庫,可以直接調(diào)用其中的圖像處理函數(shù)[17]。

邊緣檢測模塊的工作流程如圖2所示。

在邊緣檢測IP 中,將數(shù)據(jù)轉(zhuǎn)換成Mat格式,將圖像灰度化后調(diào)用hls::Duplicate函數(shù)將灰度圖復制成兩路圖像,對兩路圖像分別進行橫向和縱向Sobel邊緣檢測,將兩路圖像結(jié)果相加,得到更加明顯的邊緣檢測圖像。

Sobel算子根據(jù)像素點上、下、左、右鄰點灰度加權(quán)差,在邊緣處達到極值這一現(xiàn)象時檢測邊緣。它對噪聲具有平滑作用,能提供較為精確的邊緣方向信息,但邊緣定位精度不夠高。當對精度要求不是很高時,是一種較為常用的邊緣檢測方法。

1.3 圖像顯示模塊

該部分包括HDMI輸出模塊和相應輸出時序控制模塊。輸出時序控制模塊由Vivado自帶的IP核VTC(Video Timing Controller)實現(xiàn),通過配置VTC的輸出視頻分辨率和時鐘,可以輸出行同步信號和場同步信號,輸出模塊按照同步信號將視頻傳輸?shù)紿DMI顯示器上。

2 軟件系統(tǒng)設(shè)計

2.1 嵌入式Linux系統(tǒng)搭建

為了在ARM處理器上進行人機交互界面程序開發(fā)以及其它邏輯控制,需要在ARM上移植嵌入式Linux系統(tǒng)和QT函數(shù)庫[18]。

系統(tǒng)移植包含以下7個步驟:①搭建編譯環(huán)境;②編譯u-boot啟動引導文件;③配置設(shè)備樹文件;④編譯內(nèi)核;⑤制作文件系統(tǒng);⑥生成BOOT.bin文件;⑦編譯Qt庫,生成Qt鏡像文件;⑧將BOOT.bin、uImage、devicetree.dtb、uramdisk.image.gz、Qt.img文件拷貝至啟動SD卡。

設(shè)置開發(fā)板為SD卡啟動模式,啟動開發(fā)板可以看到Linux啟動界面,完成嵌入式系統(tǒng)移植。

2.2 圖像采集驅(qū)動

圖像采集驅(qū)動主要功能是通過SCCB協(xié)議初始化OV7725攝像頭,通過GPIO接口對圖像采集模塊寄存器進行配置。系統(tǒng)中采用Platform驅(qū)動模型,Platform總線是虛擬平臺總線,是Linux設(shè)備驅(qū)動模型為了保持設(shè)備驅(qū)動的統(tǒng)一性而虛擬出來的總線。

總線將設(shè)備和驅(qū)動綁定,系統(tǒng)每注冊一個設(shè)備時,會尋找與之匹配的驅(qū)動;相應地,系統(tǒng)每注冊一個驅(qū)動時,會尋找與之匹配的設(shè)備,而匹配由總線完成。驅(qū)動包含以下幾個主要函數(shù):①probe函數(shù):也被稱為探針函數(shù),用于檢測總線上該驅(qū)動對應的設(shè)備;②remove函數(shù):用于移除總線上驅(qū)動;③read函數(shù):從模塊寄存器讀取數(shù)據(jù);④write函數(shù):向模塊寄存器寫入數(shù)據(jù)。

2.3 邊緣檢測模塊驅(qū)動

用戶空間I/O框架(Userspace I/O Framework)可直接映射物理地址,文中圖像預處理模塊驅(qū)動將模塊的AXI Lite寄存器基地址映射出來,對寄存器進行操作;通過Vivado HLS綜合的IP,會自動生成Linux下UIO用戶端的驅(qū)動代碼,可以直接使用。

邊緣檢測模塊驅(qū)動主要包括幾個函數(shù):①XEdge_detection_Initialize:初始化模塊,從/dev下找到邊緣檢測模塊對應設(shè)備,并獲得句柄,將模塊的寄存器地址映射到內(nèi)存;②XEdge_detection_Release:釋放句柄和取消內(nèi)存映射;③XEdge_detection_IsReady:檢測模塊是否準備好處理下一張圖片;④XEdge_detection_SetRows:設(shè)置圖像高度;⑤XEdge_detection_SetCols:設(shè)置圖像寬度;⑥XEdge_detection_Start:開始運行邊緣檢測模塊。

2.4 VDMA Framebuffer驅(qū)動

AXI VDMA是Xilinx提供的IP,用于將AXI Stream格式數(shù)據(jù)流轉(zhuǎn)換為Memory Map格式,或?qū)emory Map格式的數(shù)據(jù)轉(zhuǎn)換為AXI Stream數(shù)據(jù)流,從而實現(xiàn)與DDR3通信[19]。AXI VDMA結(jié)構(gòu)框架如圖3所示。

可以看出,VDMA的主要接口有3個,分別為AXI4 Memory Map、AXI4-Lite、AXI4-Stream。

AXI4-Lite:用于讀寫VDMA內(nèi)部寄存器,從而實現(xiàn)對VDMA的控制和狀態(tài)獲取。

AXI4-Stream:寫通道(s2mm):VDMA獲取來自axis接口的數(shù)據(jù)并將之寫入幀存;讀通道(mm2s):VDMA從幀存讀取數(shù)據(jù),然后送至axis接口輸出。

AXI4 Memory Map:用于操作DDR,通過互聯(lián)模塊連接至Zynq的HP接口[20]。

本系統(tǒng)通過VDMA3實現(xiàn)Framebuffer的顯示功能,因此需要VDMA3從DDR3中讀取數(shù)據(jù),輸出到HDMI顯示器上。

3 系統(tǒng)測試及結(jié)果分析

為了對搭建的視頻處理系統(tǒng)進行功能及性能測試,對采集到的視頻圖像分別用純軟件和軟硬件結(jié)合的方式進行邊緣檢測處理。邊緣檢測是圖像處理和計算機視覺中,尤其是特征提取中的一個研究領(lǐng)域[21]。Soble邊緣檢測算法比較簡單,雖然Soble邊緣檢測準確度低于Canny邊緣檢測,但是實際應用中,Sobel邊緣效率比Canny邊緣檢測效率要高。在要求效率、忽視細節(jié)紋理時,Sobel邊緣檢測成為首選。

系統(tǒng)實現(xiàn)Sobel邊緣檢測算法,效果對比如圖4所示。

圖4(a)為純軟件使用OpenCV庫實現(xiàn)邊緣檢測算法效果,圖4(b)為使用HLS工具實現(xiàn)邊緣檢測算法效果。

軟硬件兩種邊緣檢測方式處理所需時間如表2所示。

從圖4和表2可以看出,軟硬件結(jié)合方法實現(xiàn)邊緣檢測算法,與純ARM實現(xiàn)圖像處理算法效果基本相同,但處理速度方面有很大提升。本次邊緣檢測實驗中軟硬件協(xié)同處理比純軟件處理速度提高10.89倍。

4 結(jié)語

本文設(shè)計并實現(xiàn)了基于可編程SOC的邊緣檢測系統(tǒng),在系統(tǒng)中使用HLS工具生成一個基于ZYNQ PL部分的硬件Sobel邊緣檢測IP核,并與軟件邊緣檢測進行了比較。結(jié)果表明,硬件邊緣檢測與軟件邊緣檢測效果基本相同,但在耗時上,前者只需要后者的1/10。這使得基于嵌入式系統(tǒng)的圖像處理實時性大幅度提升,為邊緣人工智能中邊緣設(shè)備處理數(shù)據(jù)量大、時間長的問題提供新的方向。該設(shè)計方案可應用于自動駕駛、機器人以及智能監(jiān)控等場景,減少嵌入式系統(tǒng)計算耗時、增強系統(tǒng)運行可靠性、提高數(shù)據(jù)隱私性,同時可以通過網(wǎng)絡(luò)將結(jié)果傳輸至云服務器進行大數(shù)據(jù)分析。

參考文獻:

[1]張玉. 虛擬化技術(shù)在智慧城市建設(shè)中的應用[J]. 中國高新技術(shù)企業(yè), 2014, (34): 43-44.

[2]馮登國, 張敏, 張妍,等. 云計算安全研究[J]. 軟件學報,2011,22(1): 71-83.

[3]CHANDRA S R,YAFENG W. Cloud things construction - the integration of Internet of things and cloud computing[J]. Future Generation Computer Systems,2016,56(C):684-700.

[4]STAUDENMAIER M, HERRMANN S. 基于視覺的駕駛員輔助嵌入式系統(tǒng)[J]. 中國電子商情:基礎(chǔ)電子,2014(9): 38-43.

[5]施巍松,孫輝,陳彥明. 基于邊緣計算的新型視頻監(jiān)控系統(tǒng)展望[J]. 自動化博覽,2018,35(12):60-63.

[6]徐恩慶,董恩然. 云計算與邊緣計算協(xié)同發(fā)展的探索與實踐[J].? 通信世界,2019(9): 46-47.

[7]SHARMAN R,BIOOKAGHAZADEH S,LI BAOXIN, et al. Are existing knowledge transfer techniques effective for deep learning with edge devices?[C]. IEEE International Conference on Edge Computing,2018:42-49.

[8]施巍松,張星洲,王一帆,等. 邊緣計算:現(xiàn)狀與展望[J]. 計算機研究與發(fā)展, 2019,56(1): 69-89.

[9]周知,于帥,陳旭. 邊緣智能:邊緣計算與人工智能融合的新范式[J]. 大數(shù)據(jù),2019,5(2): 53-63.

[10]李朗,張索非,楊浩. 基于Zynq-7000的視頻處理系統(tǒng)框架設(shè)計[J]. 計算機技術(shù)與發(fā)展, 2017,27(5):192-195.

[11]XILINX. Vivado design suite tutorial high-level synthesis[EB/OL]. https://www.xilinx.com/support/doc-umentation/sw_manuals/xilinx 2017_1/ug871-vivado-high-level-synthesis-tutorial.pdf.

[12]XILINX. Vivado design suite user guide high-level synthesis[EB/OL]. https://www.xilinx.com/support/doc-umentation/sw_manuals/xilinx 2017_1/ug902-vivado-high-level-synthesis.pdf.

[13]鄧健峰,謝云. 基于FPGA+ARM的視頻采集平臺設(shè)計與實現(xiàn)[J]. 工業(yè)控制計算機,2017,30(12): 97-98.

[14]曾永西,黃梅紅,陳偉豪. 基于FPGA+OV7725的視頻監(jiān)控系統(tǒng)[J]. 福建電腦, 2015, 31(09): 8-9,39.

[15]黨宏社,王黎,王曉倩. 基于Vivado HLS的FPGA開發(fā)與應用研究[J]. 陜西科技大學學報:自然科學版,2015,33(1):155-159.

[16]郭豐收. Xilinx FPGA/Zynq設(shè)計中使用HLS實現(xiàn)OpenCV的開發(fā)流程[J]. 電子產(chǎn)品世界,2014,21(Z1):50-52.

[17]趙睿. 基于Xilinx的HLS實現(xiàn)OpenCV的研究與設(shè)計[J]. 科技創(chuàng)新與應用, 2016(21): 56-57.

[18]賀丹丹,張帆,劉峰. 嵌入式Linux系統(tǒng)開發(fā)教程[M]. 北京: 清華大學出版社,2010.

[19]Xilinx. Zynq-7000 SoC Technical reference manual[EB/OL]. https://www.xilinx.com/support/doc-umentation/user_guides/ug585-Zynq- 7000-TRM.pdf.

[20]陸佳華,潘祖龍,彭競宇. 嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計實戰(zhàn)指南[M]. 北京:機械工業(yè)出版社, 2014.

[21]溫建飛,岳鳳英,李永紅. 基于FPGA硬件架構(gòu)的實時高速圖像特征檢測系統(tǒng)[J]. 電子世界,2015(21):124-125.

(責任編輯:孫 娟)

收稿日期:2019-05-09

作者簡介:胡龍寶(1996-),男,上海理工大學醫(yī)療器械與食品學院碩士研究生,研究方向為醫(yī)療電子儀器;李丕丁(1973-),男,博士,上海理工大學醫(yī)療器械與食品學院講師、碩士生導師,研究方向為生物醫(yī)學信號處理、醫(yī)療電子儀器。

主站蜘蛛池模板: 亚洲欧美不卡视频| 中文国产成人精品久久| 国产国语一级毛片在线视频| 亚洲中久无码永久在线观看软件| 老熟妇喷水一区二区三区| 国产激爽大片在线播放| 啊嗯不日本网站| 三级欧美在线| 性做久久久久久久免费看| 婷婷99视频精品全部在线观看| 国产手机在线小视频免费观看| 日韩 欧美 小说 综合网 另类| 青青草国产精品久久久久| 欧美人人干| 人人看人人鲁狠狠高清| 午夜毛片免费观看视频 | 亚洲无码熟妇人妻AV在线| 欧美日本在线播放| 67194在线午夜亚洲| 97青青青国产在线播放| 国产乱子伦视频在线播放| 国产大片喷水在线在线视频| 久久中文字幕不卡一二区| 999精品视频在线| 久久91精品牛牛| 成人日韩精品| 亚洲国产日韩在线成人蜜芽| 午夜啪啪福利| 亚洲精品国偷自产在线91正片| 婷婷色婷婷| 成人精品免费视频| 欧美人在线一区二区三区| 一级毛片视频免费| 婷婷六月综合网| 日本三级黄在线观看| 三级国产在线观看| 亚洲精品无码在线播放网站| 青青青草国产| 91探花在线观看国产最新| 白丝美女办公室高潮喷水视频| 亚洲成人精品久久| 最新国产麻豆aⅴ精品无| 亚洲午夜福利在线| 亚洲日韩精品欧美中文字幕 | 再看日本中文字幕在线观看| 18黑白丝水手服自慰喷水网站| 成人av专区精品无码国产| 中文字幕无码制服中字| 国产黄在线免费观看| 婷婷久久综合九色综合88| 四虎AV麻豆| 久久性妇女精品免费| 高清视频一区| 亚洲第一区在线| 男女性午夜福利网站| 亚洲大尺码专区影院| 国产9191精品免费观看| 国产精品福利尤物youwu | 欧美日本中文| 亚洲中文久久精品无玛| 免费毛片视频| 亚洲国产日韩视频观看| 国内精自线i品一区202| 亚洲嫩模喷白浆| 国产乱子伦一区二区=| 亚洲AⅤ无码日韩AV无码网站| 极品国产一区二区三区| 久久国产热| 亚洲国产一成久久精品国产成人综合| 国产超碰在线观看| 中文字幕伦视频| 日本在线国产| 国产经典免费播放视频| 国产在线观看成人91| 国产中文在线亚洲精品官网| 免费人成视网站在线不卡| 精品久久久久成人码免费动漫| 精品撒尿视频一区二区三区| 最新精品国偷自产在线| 免费在线国产一区二区三区精品| 国产精品美女自慰喷水| 午夜无码一区二区三区在线app|