《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > 用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺應(yīng)用開發(fā)

用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺應(yīng)用開發(fā)

2013-07-04
作者:Fernando Martinez Vallina
來源:賽靈思公司HLS設(shè)計(jì)方法工程師
關(guān)鍵詞: 開發(fā)工具 Vivado opencv Zynq SOC

作者:Fernando Martinez Vallina

賽靈思公司HLS設(shè)計(jì)方法工程師

Vallina@xilinx.com

José Roberto Alvarez

賽靈思公司視頻技術(shù)工程設(shè)計(jì)總監(jiān) jalvarez@xilinx.com

Vivado HLS與OpenCV庫(kù)配合使用,既能實(shí)現(xiàn)快速原型設(shè)計(jì),又能加快基于Zynq All Programmable SoC的Smarter Vision系統(tǒng)的開發(fā)進(jìn)度。

計(jì)算機(jī)視覺技術(shù)幾年來已發(fā)展成為學(xué)術(shù)界一個(gè)相當(dāng)成熟的科研領(lǐng)域,目前許多視覺算法來自于數(shù)十年的科研成果。不過,我們最近發(fā)現(xiàn)計(jì)算機(jī)視覺技術(shù)正快速滲透到我們生活的方方面面。現(xiàn)在我們擁有能自動(dòng)駕駛的汽車、能根據(jù)我們的每個(gè)動(dòng)作做出反應(yīng)的游戲機(jī)、自動(dòng)工作的吸塵器、能根據(jù)我們的手勢(shì)做出響應(yīng)的手機(jī),以及其它等視覺產(chǎn)品。

今天我們面臨的挑戰(zhàn)就是如何高效實(shí)現(xiàn)上述這些及未來的各種視覺系統(tǒng),同時(shí)滿足嚴(yán)格的功耗和上市要求。此類產(chǎn)品可以Zynq™ All Programmable SoC為基礎(chǔ),并結(jié)合廣泛使用的計(jì)算機(jī)視覺庫(kù)OpenCV和高層次綜合(HLS)工具,以實(shí)現(xiàn)關(guān)鍵功能的硬件加速。這種強(qiáng)強(qiáng)組合能為設(shè)計(jì)和實(shí)現(xiàn)Smarter Vision系統(tǒng)提供強(qiáng)大的平臺(tái)。

嵌入式系統(tǒng)在當(dāng)今的市場(chǎng)中無所不在。不過,計(jì)算功能方面的局限性,尤其是在處理大型圖片、高幀率時(shí)計(jì)算能力低下嚴(yán)重限制了嵌入式系統(tǒng)在計(jì)算機(jī)/機(jī)器視覺實(shí)際實(shí)現(xiàn)方面的應(yīng)用。圖像傳感器技術(shù)的發(fā)展猶如為嵌入式器件裝上了慧眼,能幫助該器件通過計(jì)算機(jī)視覺算法與環(huán)境互動(dòng)。嵌入式系統(tǒng)和計(jì)算機(jī)/機(jī)器視覺的融合催生了嵌入式視覺技術(shù),這是一個(gè)快速發(fā)展的領(lǐng)域,正成為設(shè)計(jì)能夠觀看并了解周邊環(huán)境的設(shè)備的基礎(chǔ)所在。

嵌入式視覺系統(tǒng)的開發(fā)

嵌入式視覺技術(shù)要在計(jì)算平臺(tái)上運(yùn)行智能計(jì)算機(jī)視覺算法。對(duì)許多用戶來說,標(biāo)準(zhǔn)的桌面計(jì)算處理平臺(tái)即可方便地滿足需求。不過,一般性計(jì)算平臺(tái)或許無法滿足高度嵌入式產(chǎn)品的生產(chǎn)需求,這種產(chǎn)品要做到小型化、高效性、低功耗,而且要處理龐大的圖像數(shù)據(jù)集,比如同時(shí)處理多個(gè)每秒60幀的實(shí)時(shí)高清視頻流。

圖1給出了設(shè)計(jì)人員通常用來創(chuàng)建嵌入式視覺應(yīng)用的流程。算法設(shè)計(jì)是整個(gè)流程中最重要的一環(huán),因?yàn)樗惴▽Q定我們能否滿足任何特定計(jì)算機(jī)視覺任務(wù)的處理和質(zhì)量標(biāo)準(zhǔn)要求。首先,設(shè)計(jì)人員在MATLAB®等數(shù)字計(jì)算環(huán)境中搜索算法選項(xiàng),明確高級(jí)處理選項(xiàng)。一旦確定了適當(dāng)?shù)乃惴ǎO(shè)計(jì)人員通常用C/C++等高級(jí)語言來為算法建模,以便快速執(zhí)行,并滿足最終比特精度實(shí)現(xiàn)方案的要求。

圖1 嵌入式視覺系統(tǒng)開發(fā)流程

圖1 嵌入式視覺系統(tǒng)開發(fā)流程

系統(tǒng)分區(qū)是開發(fā)過程中的重要步驟。在此,設(shè)計(jì)人員通過算法性能分析,可明確他們要對(duì)算法的哪些部分進(jìn)行硬件加速,從而滿足處理代表性輸入數(shù)據(jù)集的實(shí)時(shí)要求。同樣重要的是對(duì)目標(biāo)平臺(tái)中的整個(gè)系統(tǒng)進(jìn)行原型設(shè)計(jì),從而實(shí)際地檢測(cè)性能預(yù)期。一旦原型設(shè)計(jì)過程說明設(shè)計(jì)滿足了所有性能和質(zhì)量目標(biāo)要求,那么設(shè)計(jì)人員就能在實(shí)際的目標(biāo)器件中啟動(dòng)最終系統(tǒng)實(shí)現(xiàn)。最后一步就是測(cè)試運(yùn)行在芯片上的設(shè)計(jì)在各種用例場(chǎng)景下的表現(xiàn)。一切檢查完成后,設(shè)計(jì)團(tuán)隊(duì)就能發(fā)布最終產(chǎn)品。

ZYNQ SOC:嵌入式視覺的最明智的選擇

在開發(fā)機(jī)器視覺應(yīng)用過程中,設(shè)計(jì)團(tuán)隊(duì)必須選擇高度靈活的器件,這一點(diǎn)至關(guān)重要。設(shè)計(jì)團(tuán)隊(duì)所需的計(jì)算平臺(tái)應(yīng)提供強(qiáng)大的通用處理功能,以支持多種不同的軟件生態(tài)系統(tǒng),此外還要有穩(wěn)健可靠的數(shù)字信號(hào)處理功能,以便實(shí)現(xiàn)計(jì)算強(qiáng)度高、存儲(chǔ)高效的計(jì)算機(jī)視覺算法。芯片的高度集成對(duì)實(shí)現(xiàn)高效、完整的系統(tǒng)至關(guān)重要。

賽靈思All Programmable SoC是以處理器為中心的器件,在單芯片上提供了軟/硬件和I/O可編程性。Zynq SoC在單個(gè)器件中集成了一個(gè)ARM®雙核Cortex™-A9 MPCore™處理系統(tǒng)、FPGA邏輯和一些關(guān)鍵外設(shè)。這樣,該器件就能幫助設(shè)計(jì)人員實(shí)現(xiàn)極為高效的嵌入式視覺系統(tǒng)。

處理子系統(tǒng)、FPGA邏輯和外設(shè)在Zynq SoC中的高度集成能確保相對(duì)于采用分立式組件設(shè)計(jì)而成的系統(tǒng)而言提高數(shù)據(jù)傳輸速率,降低功耗和材料清單成本。我們能用Zynq SoC實(shí)現(xiàn)實(shí)時(shí)處理支持1080p60視頻序列(1,920 x 1,080 RGB圖像,每秒60幀)的系統(tǒng),達(dá)到每秒數(shù)千億次運(yùn)算的處理功能。

為了全面利用Zynq SoC的諸多功能與特性,賽靈思推出了以IP和系統(tǒng)為中心的設(shè)計(jì)環(huán)境Vivado™設(shè)計(jì)套件。該套件可加速集成和實(shí)現(xiàn),從而可幫助設(shè)計(jì)人員提高開發(fā)生產(chǎn)力,進(jìn)而動(dòng)態(tài)開發(fā)出Smater嵌入式產(chǎn)品。Vivado HLS作為該套件的一個(gè)組件,能幫助設(shè)計(jì)人員將采用C/C++語言開發(fā)的算法編譯為RTL,以便在FPGA邏輯中運(yùn)行。

Vivado HLS工具非常適用于嵌入式視覺設(shè)計(jì)。在此流程中,您用C/C++創(chuàng)建您的算法,再用Vivado HLS將算法或算法的一部分編譯為RTL,進(jìn)而確定哪些函數(shù)更適合在FPGA邏輯中運(yùn)行,哪些函數(shù)更適合在ARM處理器上運(yùn)行。這樣,您的設(shè)計(jì)團(tuán)隊(duì)就能集中精力打造出最佳性能的基于Zynq SoC的視覺系統(tǒng)。

為了進(jìn)一步幫助嵌入式視覺開發(fā)人員創(chuàng)建Smarter Vision系統(tǒng),賽靈思在Vivado中增加了對(duì)OpenCV計(jì)算機(jī)視覺算法庫(kù)的支持。賽靈思還推出了最新IP Integrator工具和SmartCORE™ IP以支持此類設(shè)計(jì)(參見封面報(bào)道的第8頁(yè))。

OPENCV推廣計(jì)算機(jī)視覺技術(shù)

OpenCV開辟了一條開發(fā)智能計(jì)算機(jī)視覺算法的途徑,而且能預(yù)測(cè)實(shí)時(shí)性能。該庫(kù)為設(shè)計(jì)人員提供了用于算法試驗(yàn)和快速原型設(shè)計(jì)的環(huán)境。

OpenCV設(shè)計(jì)框架得到多平臺(tái)支持。不過在許多情況下,要提高庫(kù)對(duì)嵌入式產(chǎn)品的效率,就需要在嵌入式平臺(tái)上實(shí)現(xiàn),而且該平臺(tái)要能夠加速高強(qiáng)度例程,滿足實(shí)時(shí)性能要求。

雖然OpenCV在設(shè)計(jì)時(shí)就考慮到計(jì)算效率問題,不過它源自傳統(tǒng)計(jì)算環(huán)境,可支持多核處理。這種計(jì)算平臺(tái)或許對(duì)高度強(qiáng)調(diào)效率、成本和功耗的嵌入式應(yīng)用來說并不是最佳選擇。

OPENCV的特性

OpenCV是一款基于BSD許可證授權(quán)發(fā)行的開源計(jì)算機(jī)視覺庫(kù),這就意味著它可免費(fèi)用于學(xué)術(shù)和商業(yè)應(yīng)用中。它最初設(shè)計(jì)旨在提高通用多處理系統(tǒng)的計(jì)算效率,側(cè)重于實(shí)時(shí)應(yīng)用。此外,OpenCV還提供C/C++和Python等多種編程接口。

開源項(xiàng)目的優(yōu)勢(shì)在于,用戶能持續(xù)改進(jìn)算法,并將算法擴(kuò)展用于多種不同應(yīng)用領(lǐng)域。目前用OpenCV可現(xiàn)實(shí)2,500多種功能,其中包括:

• 矩陣數(shù)學(xué)

• 公用設(shè)施和數(shù)據(jù)結(jié)構(gòu)

• 通用圖像處理功能

• 圖像轉(zhuǎn)換

• 圖像金字塔

• 幾何描述符函數(shù)

• 特性識(shí)別、提取和跟蹤

• 圖像分割與擬合

• 攝像頭校準(zhǔn)、立體化和3D處理

• 機(jī)器學(xué)習(xí):檢測(cè)、識(shí)別

有關(guān)OpenCV的更多詳情,敬請(qǐng)?jiān)L問以下網(wǎng)址: opencv.org 和 opencv.willowgarage.com 。

用HLS加速OPENCV函數(shù)

一旦完成了嵌入式視覺系統(tǒng)架構(gòu)的分區(qū),找到了計(jì)算強(qiáng)度最大的部分,HLS工具就能幫助您加速這些函數(shù),同時(shí)仍能繼續(xù)使用C++編寫。Vivado HLS用C、C++或SystemC代碼生成高效的RTL實(shí)現(xiàn)方案。

此外,以IP為中心的Vivado設(shè)計(jì)環(huán)境提供豐富的處理IP SmartCORE,能簡(jiǎn)化到圖像傳感器、網(wǎng)絡(luò)及其它必要I/O接口的連接,簡(jiǎn)化OpenCV庫(kù)中這些函數(shù)的實(shí)現(xiàn)。這相對(duì)于其它實(shí)現(xiàn)方案而言是一種明顯的優(yōu)勢(shì),因?yàn)槠渌桨改呐率亲罨镜腛penCV I/O功能都需要加速。

為什么需要高層次綜合?

賽靈思推出的Vivado HLS是一款軟件編譯器,旨在將C、C++或SystemC編寫的算法轉(zhuǎn)變?yōu)獒槍?duì)用戶定義時(shí)鐘頻率和賽靈思產(chǎn)品系列器件優(yōu)化的RTL。在C/C++程序解釋、分析和優(yōu)化方面,它與x86處理器的編譯器具有相同的核心技術(shù)基礎(chǔ)。這種相似性有助于從臺(tái)式機(jī)開發(fā)環(huán)境快速移植到FPGA實(shí)現(xiàn)。您選擇目標(biāo)時(shí)鐘頻率和器件后,無需用戶輸入,Vivado HLS會(huì)默認(rèn)生成RTL實(shí)現(xiàn)。此外,Vivado HLS與其它任何編譯器一樣,也分不同的優(yōu)化級(jí)別。由于算法最終執(zhí)行目標(biāo)是定制的微型架構(gòu),因此Vivado HLS可實(shí)現(xiàn)的優(yōu)化級(jí)別比傳統(tǒng)的編譯器具有更精細(xì)的粒度。傳統(tǒng)的針對(duì)處理器的軟件設(shè)計(jì)O1 – O3優(yōu)化理念被架構(gòu)探索要求所取代,這些要求與用戶技術(shù)相結(jié)合,指導(dǎo)Vivado HLS創(chuàng)建盡可能出色的實(shí)現(xiàn)方案,滿足特定算法的功耗、面積占用和性能要求。

圖2給出了HLS編譯器的用戶設(shè)計(jì)流程。從理念上講,用戶提供C/C++/SystemC算法描述,編譯器就能生成RTL實(shí)現(xiàn)。程序代碼轉(zhuǎn)化為RTL的過程分為四大階段:算法規(guī)范、微型架構(gòu)探索、RTL實(shí)現(xiàn)和IP封裝。

加速算法C到IP集成

圖2 高層次綜合設(shè)計(jì)流程

圖2 高層次綜合設(shè)計(jì)流程

算法規(guī)范階段是指將針對(duì)FPGA架構(gòu)的軟件應(yīng)用開發(fā)。該規(guī)范可在標(biāo)準(zhǔn)桌面軟件開發(fā)環(huán)境中,全面利用賽靈思提供的OpenCV等軟件庫(kù)進(jìn)行開發(fā)。除了支持以軟件為中心的開發(fā)流程外,Vivado HLS還提升了從RTL到C/C++的提取驗(yàn)證速度。用戶能用原軟件進(jìn)行全面的算法功能驗(yàn)證。通過Vivado HLS生成RTL后,生成的設(shè)計(jì)代碼類似于傳統(tǒng)軟件編譯器生成的處理器匯編代碼。用戶可在匯編代碼級(jí)進(jìn)行調(diào)試,但這一步并不是必需的。

雖然Vivado HLS能處理幾乎所有針對(duì)其它軟件編譯器的C/C++代碼,但代碼有一個(gè)限制。在用Vivado HLS編譯代碼到FPGA過程中,用戶代碼不能包含任何運(yùn)行時(shí)動(dòng)態(tài)存儲(chǔ)器分配。與算法綁定于單個(gè)存儲(chǔ)器架構(gòu)的處理器不同,F(xiàn)PGA實(shí)現(xiàn)采用特定算法的存儲(chǔ)器架構(gòu)。通過分析陣列和變量的使用模式,Vivado HLS能確定哪些物理存儲(chǔ)器布局和存儲(chǔ)器類型最適合算法的存儲(chǔ)和帶寬要求。這種分析工作的唯一要求就是在C/C++代碼中明確描述算法使用的所有存儲(chǔ)器陣列。

從C/C++轉(zhuǎn)為優(yōu)化的FPGA實(shí)現(xiàn)的第二步就是微型架構(gòu)探索。在這一階段,您可運(yùn)用Vivado HLS編譯器優(yōu)化來測(cè)試不同的設(shè)計(jì),以找到適當(dāng)?shù)拿娣e和性能組合。您可在不同性能點(diǎn)實(shí)現(xiàn)相同的C/C++代碼,無需修改源代碼。Vivado HLS編譯器優(yōu)化或要求規(guī)定了算法不同部分的性能如何描述。

Vivado HLS編譯器流程的最后兩步就是RTL實(shí)現(xiàn)和IP封裝。這是Vivado HLS編譯器中自動(dòng)進(jìn)行的兩步,不需要用戶具備RTL方面的知識(shí)。針對(duì)賽靈思產(chǎn)品組合中不同器件的RTL創(chuàng)建優(yōu)化細(xì)節(jié)內(nèi)置在編譯器中。在此階段,為滿足需求,我們提供了經(jīng)過全面測(cè)試和驗(yàn)證的按鈕式工具,能生成基于時(shí)序和基于FPGA架構(gòu)的RTL。Vivado HLS編譯器的輸出自動(dòng)封裝為IP-XACT等其它賽靈思工具能接受的格式,因此無需進(jìn)行其它操作,就可在Vivado中使用HLS生成的IP核。

賽靈思的OpenCV庫(kù)為用Vivado HLS進(jìn)行設(shè)計(jì)優(yōu)化提供了捷徑。這些庫(kù)預(yù)先特性描述后能提供1080p分辨率的像素處理功能。引導(dǎo)Vivado HLS編譯器進(jìn)行優(yōu)化的細(xì)節(jié)已嵌入在這些庫(kù)中。這樣,您就能快速自如地將桌面環(huán)境中的OpenCV理念應(yīng)用迭代為Zynq SoC上運(yùn)行的OpenCV應(yīng)用,均可在ARM處理器和FPGA架構(gòu)上操作。

圖3概述了用OpenCV進(jìn)行運(yùn)動(dòng)檢測(cè)應(yīng)用開發(fā)流程。該設(shè)計(jì)的目的就是通過比較當(dāng)前幀和前一幀來檢測(cè)視頻流中的移動(dòng)物體。算法的第一階段要檢測(cè)前后兩幀的邊緣。數(shù)據(jù)縮減運(yùn)算(data-reduction operation)便于分析連續(xù)幀之間的相對(duì)變化。邊緣信息提取出來后,通過邊緣對(duì)比可以檢測(cè)出當(dāng)前圖像中出現(xiàn)而前一圖像中不存在的邊緣。檢測(cè)出來的新邊緣則構(gòu)成運(yùn)動(dòng)檢測(cè)掩膜圖像。最新邊緣檢測(cè)結(jié)果在當(dāng)前圖像上凸顯前,應(yīng)考慮到圖像傳感器噪聲的影響。各幀的噪聲可能不同,會(huì)導(dǎo)致運(yùn)動(dòng)檢測(cè)掩膜圖像中出現(xiàn)隨機(jī)錯(cuò)誤邊緣。因此我們必須過濾圖像,減少噪聲對(duì)算法質(zhì)量的影響。

圖3 OpenCV算法庫(kù)開發(fā)的運(yùn)動(dòng)檢測(cè)應(yīng)用實(shí)例

圖3 OpenCV算法庫(kù)開發(fā)的運(yùn)動(dòng)檢測(cè)應(yīng)用實(shí)例

在該應(yīng)用中,可通過在運(yùn)動(dòng)檢測(cè)掩膜圖像上采用7x7中值濾波器來降噪。中值濾波器的主要就是取7x7相鄰像素窗口的中值,然后將中值作為窗口中心像素的最終值進(jìn)行報(bào)告。降噪后,運(yùn)動(dòng)檢測(cè)掩膜圖像結(jié)合于實(shí)時(shí)輸入圖像并用紅色凸顯出運(yùn)動(dòng)邊緣。

您可全面實(shí)現(xiàn)應(yīng)用,運(yùn)行在ARM處理子系統(tǒng)上,采用Zynq SoC源代碼映射,如圖4所示。實(shí)現(xiàn)過程中僅有的硬件元素就是cvget-frame和showimage函數(shù)。這兩個(gè)視頻I/O函數(shù)用FPGA架構(gòu)中的賽靈思視頻I/O子系統(tǒng)實(shí)現(xiàn)的。在cvgetframe函數(shù)調(diào)用時(shí),視頻I/O子系統(tǒng)的輸入端負(fù)責(zé)處理所有細(xì)節(jié),從HDMI接口抓取并解碼視頻流,再把像素?cái)?shù)據(jù)存入DDR存儲(chǔ)器。Showimage函數(shù)調(diào)用時(shí),該子系統(tǒng)負(fù)責(zé)將像素?cái)?shù)據(jù)從DDR存儲(chǔ)器傳輸?shù)揭曨l顯示控制器,以驅(qū)動(dòng)電視機(jī)或其它符合HDMI標(biāo)準(zhǔn)的視頻顯示設(shè)備。

Vivado HLS優(yōu)化的、支持硬件加速的OpenCV庫(kù)能將圖4中的代碼移植到FPGA架構(gòu)中的60fps實(shí)時(shí)像素處理流水線上。OpenCV庫(kù)為需要硬件加速的OpenCV元素提供基礎(chǔ)功能。如果沒有硬件加速,也就是說如果僅在ARM處理器中運(yùn)行所有代碼的話,那么該算法吞吐量?jī)H為每13秒1幀(也就是0.076fps)。圖5顯示了Vivado HLS編譯后的應(yīng)用的新映射。請(qǐng)注意,原系統(tǒng)的視頻I/O映射可重復(fù)使用。此前正在ARM處理器上執(zhí)行的算法的計(jì)算內(nèi)核,現(xiàn)在可編譯到多個(gè)Vivado HLS生成的IP模塊中。這些模塊連接至Vivado IP Integrator中的視頻I/O子系統(tǒng),針對(duì)60fps、1080p的視頻處理進(jìn)行了優(yōu)化。

圖4 Zynq SoC上采用ARM處理器的運(yùn)動(dòng)檢測(cè)

圖4 Zynq SoC上采用ARM處理器的運(yùn)動(dòng)檢測(cè)

圖5 采用可編程架構(gòu)的Zynq SoC上的運(yùn)動(dòng)檢測(cè)

圖5 采用可編程架構(gòu)的Zynq SoC上的運(yùn)動(dòng)檢測(cè)

Zynq SoC和Vivado設(shè)計(jì)套件提供的All Programmable環(huán)境非常適合以最新高分辨率視頻技術(shù)所要求的高數(shù)據(jù)處理速率運(yùn)行的嵌入式視覺系統(tǒng)的設(shè)計(jì)、原型設(shè)計(jì)和測(cè)試。采用OpenCV中的開源庫(kù)集是在較短開發(fā)時(shí)間內(nèi)實(shí)現(xiàn)高標(biāo)準(zhǔn)計(jì)算機(jī)視覺應(yīng)用的最佳選擇。由于OpenCV庫(kù)用C++編寫,因此我們用Vivado HLS創(chuàng)建的源代碼能高效轉(zhuǎn)換為Zynq SoC FPGA架構(gòu)中的硬件RTL,并可用作方便易用的處理加速器,且不影響OpenCV最初設(shè)想的設(shè)計(jì)環(huán)境的靈活性。

如需了解如何用Vivado設(shè)計(jì)套件創(chuàng)建Smarter Vision設(shè)計(jì)方案的更多信息,敬請(qǐng)?jiān)L問以下網(wǎng)址: http://www.xilinx.com/cn/products/design-tools/viva- do/index.htm 。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。