用于加速對(duì)象檢測(cè)的硬件卷積預(yù)過濾的制作方法
【技術(shù)領(lǐng)域】
[0001] 對(duì)象檢測(cè)具有廣泛的應(yīng)用。例如,面部檢測(cè)可以被用在人類計(jì)算機(jī)交互、相冊(cè)管 理、生物認(rèn)證、視頻監(jiān)視、自動(dòng)聚焦成像以及各種其它視覺系統(tǒng)中。人類檢測(cè)可被用在視頻 監(jiān)視、先進(jìn)的駕駛員輔助系統(tǒng)等等中。其它對(duì)象檢測(cè)示例包含交通監(jiān)控、自動(dòng)化泊車、字符 識(shí)別、制造質(zhì)量控制、對(duì)象計(jì)數(shù)和質(zhì)量監(jiān)控。
[0002] 在一些現(xiàn)有的對(duì)象檢測(cè)系統(tǒng)中,維奧拉-瓊斯(Viola - Jones)級(jí)聯(lián)檢測(cè)框架被 使用。在維奧拉-瓊斯級(jí)聯(lián)檢測(cè)框架中,輸入圖像用滑動(dòng)的窗口來掃描以使用級(jí)聯(lián)分類器 探測(cè)目標(biāo)是否存在窗口中。這樣的方法在計(jì)算上密集?;谲浖陀布膶?shí)施方式已經(jīng)被 提出,然而特別在圖像和視頻分辨率增加時(shí)對(duì)于現(xiàn)有的實(shí)施方式存在一些限制。在軟件實(shí) 施方式中,可以可能實(shí)現(xiàn)實(shí)時(shí)的對(duì)象檢測(cè)。在圖形處理單元(GPU)實(shí)施方式中,這樣的方法 可能消耗大多數(shù)或所有的計(jì)算資源,使得資源不可用于其它任務(wù)。其它硬件實(shí)施方式,諸如 現(xiàn)場(chǎng)可編程門陣列(FPGA)和數(shù)字信號(hào)處理器(DSP)實(shí)施方式在硬件固定時(shí)可能不是可重 構(gòu)的。
[0003] 因?yàn)閷?duì)象檢測(cè)可以被用在這樣廣泛的應(yīng)用中,所以使對(duì)象檢測(cè)更高效地執(zhí)行是可 能所期望的。
【附圖說明】
[0004] 在本文中描述的材料在附圖中通過示例的方式并且不通過限制的方式來圖解。為 了圖解的簡(jiǎn)單和清晰起見,在附圖中圖解的元件不必按比例繪制。例如,一些元件的大小為 了清晰起見可以相對(duì)于其它元件而被放大。進(jìn)一步,在被認(rèn)為適當(dāng)?shù)牡胤?,參考?biāo)記已經(jīng)在 附圖當(dāng)中被重復(fù)以指示對(duì)應(yīng)或類似的元件。附圖中: 圖1是示例對(duì)象檢測(cè)和/或識(shí)別系統(tǒng)的說明圖; 圖2是圖解示例對(duì)象檢測(cè)和/或識(shí)別過程的流程圖; 圖3是操作中的示例對(duì)象檢測(cè)和/或識(shí)別過程的說明圖; 圖4是圖解進(jìn)一步示例對(duì)象檢測(cè)和/或識(shí)別過程的流程圖; 圖5是示例對(duì)象檢測(cè)和/或識(shí)別系統(tǒng)的說明圖; 圖6是進(jìn)一步示例對(duì)象檢測(cè)和/或識(shí)別系統(tǒng)的說明圖; 圖7是不例系統(tǒng)的說明圖;以及 圖8是示例系統(tǒng)的說明圖,所有依據(jù)本公開的至少一些實(shí)施方式來布置。
【具體實(shí)施方式】
[0005] -個(gè)或多個(gè)實(shí)施例或?qū)嵤┓绞浆F(xiàn)在參考附圖來描述。雖然特定配置和布置被討 論,但是應(yīng)當(dāng)理解的是,這樣做僅僅為了說明的目的。相關(guān)領(lǐng)域中的技術(shù)人員將認(rèn)識(shí)到,在 沒有脫離本描述的精神和范圍的情況下,其它配置和布置可以被采用。對(duì)于相關(guān)領(lǐng)域中的 技術(shù)人員將顯而易見的是,在本文中描述的技術(shù)和/或布置也可以被采用在除了在本文中 描述的以外的各種其它系統(tǒng)和應(yīng)用中。
[0006] 雖然下面的描述闡明可以被表明在諸如例如片上系統(tǒng)(SoC)架構(gòu)的架構(gòu)中各種實(shí) 施方式,但是在本文中描述的技術(shù)和/或布置的實(shí)施方式不被約束到特別的架構(gòu)和/或計(jì) 算系統(tǒng)并且可以為了類似的目的被任何架構(gòu)和/或計(jì)算系統(tǒng)實(shí)施。例如,采用例如多個(gè)集 成電路(1C)芯片和/或封裝、和/或各種計(jì)算裝置和/或消費(fèi)者電子(CE)裝置(諸如機(jī)頂 盒、智能電話機(jī))等的各種架構(gòu)可以實(shí)施在本文中描述的技術(shù)和/或布置。進(jìn)一步,雖然下 面描述可以闡明許多特定細(xì)節(jié),諸如系統(tǒng)部件的邏輯實(shí)施方式、類型和相互關(guān)系、邏輯分區(qū) /集成選擇等,但是要求保護(hù)的主題可以在沒有這樣的特定細(xì)節(jié)的情況下被實(shí)踐。在其它實(shí) 例中,為了不使在本文中公開的材料模糊,諸如例如控制結(jié)構(gòu)和全軟件指令序列的一些材 料可以不被詳細(xì)示出。
[0007] 在本文中公開的材料可以以硬件、固件、軟件或其任何組合來實(shí)施。在本文中公開 的材料也可以被實(shí)施為存儲(chǔ)在機(jī)器可讀介質(zhì)上的指令,該指令可以被一個(gè)或多個(gè)處理器讀 取和執(zhí)行。機(jī)器可讀介質(zhì)可以包含用于以由機(jī)器(例如計(jì)算裝置)可讀的形式來存儲(chǔ)或傳送 信息的任何介質(zhì)和/或機(jī)構(gòu)。例如,機(jī)器可讀介質(zhì)可以包含只讀存儲(chǔ)器(ROM);隨機(jī)存取存 儲(chǔ)器(RAM);磁盤存儲(chǔ)介質(zhì);光學(xué)存儲(chǔ)介質(zhì);閃速存儲(chǔ)器裝置;傳播信號(hào)的電的、光學(xué)的、聲 學(xué)的或其它形式(例如載波、紅外信號(hào)、數(shù)字信號(hào)等)等等。
[0008] 在說明書中對(duì)"一個(gè)實(shí)施方式"、"實(shí)施方式"、"示例實(shí)施方式"等的參考指示所描 述的實(shí)施方式可以包含特別特征、結(jié)構(gòu)或特性,但是每個(gè)實(shí)施方式可以不必包含該特別特 征、結(jié)構(gòu)或特性。而且,這樣的短語不必指代相同的實(shí)施方式。進(jìn)一步,在與實(shí)施方式結(jié)合 來描述特別的特征、結(jié)構(gòu)或特性時(shí),要被認(rèn)為的是,與無論是否在本文中被明確描述的其它 實(shí)施方式結(jié)合來實(shí)現(xiàn)這樣的特征、結(jié)構(gòu)或特性是在本領(lǐng)域技術(shù)人員的知識(shí)范圍內(nèi)。
[0009] 與用于加速對(duì)象檢測(cè)的基于硬件的卷積預(yù)過濾相關(guān)的系統(tǒng)、設(shè)備、制品和方法被 描述。
[0010] 如上面描述的,對(duì)象檢測(cè)具有廣泛的應(yīng)用。然而,對(duì)象檢測(cè)的當(dāng)前實(shí)施方式計(jì)算上 密集并且具有限制,諸如不實(shí)現(xiàn)實(shí)時(shí)對(duì)象檢測(cè)和/或識(shí)別,從而消耗大部分或所有的可用 計(jì)算資源并且是功率密集的。
[0011] 如下面更詳細(xì)描述的,基于硬件卷積預(yù)過濾可以加速對(duì)象檢測(cè)并且提供更大效 率,使得實(shí)時(shí)對(duì)象檢測(cè)和/或?qū)ο笞R(shí)別可以被獲得并且計(jì)算資源和功率可以被節(jié)省。例如, 輸入圖像與預(yù)先訓(xùn)練的卷積核的卷積可以提供過濾的圖像??梢詫㈤撝凳┘拥竭^濾的圖像 以生成包含掩蔽和未掩蔽像素的掩蔽圖像。掩蔽像素因?yàn)楹芸赡懿缓P(guān)注的對(duì)象而可能 被丟棄。對(duì)于未掩蔽像素,級(jí)聯(lián)過濾可以被施加,未掩蔽像素可以已經(jīng)通過卷積和閾值預(yù)過 濾。級(jí)聯(lián)過濾可以包含幾個(gè)順序的級(jí)。個(gè)體未掩蔽像素可以去到第一級(jí)并且如果它通過該 級(jí),則繼續(xù)到第二級(jí)。如果像素未通過該級(jí),則它可以被丟棄。用這樣的方式,通過的像素 可以在順序的級(jí)處被測(cè)試。通過所有級(jí)的像素可以與區(qū)域(對(duì)象檢測(cè)區(qū)域)相關(guān),該區(qū)域可 以很可能含關(guān)注的對(duì)象的部分或?qū)ο蟆Mǔ?,?duì)象檢測(cè)區(qū)域可以是與通過的像素相關(guān)的區(qū) 域,使得過程或系統(tǒng)可以在該區(qū)域中已經(jīng)檢測(cè)到對(duì)象或?qū)ο蟮牟糠?。在一些示例中,區(qū)域可 以是在通過的像素周圍的許多像素(例如32X32像素),其中通過的像素在區(qū)域的中心處。 對(duì)象檢測(cè)區(qū)域可以可選地被一起合并和傳遞用于進(jìn)一步處理,諸如對(duì)象識(shí)別處理。
[0012] 通常,如在本文中討論的對(duì)象檢測(cè)可以包含在輸入圖像中檢測(cè)對(duì)象(即關(guān)注的類 別的對(duì)象)可以在輸入圖像中的什么地方。例如,在面部檢測(cè)中,檢測(cè)可以包含檢測(cè)面部。 進(jìn)一步,如在本文中討論的對(duì)象識(shí)別可以包含識(shí)別特別的對(duì)象(即關(guān)注的類別的個(gè)體)。例 如,在面部識(shí)別中,識(shí)別可以包含標(biāo)識(shí)哪個(gè)人與檢測(cè)的面部關(guān)聯(lián)。所描述的基于硬件的卷積 預(yù)過濾可以提供用于對(duì)象檢測(cè)和/或識(shí)別實(shí)施方式的快速、可靠和低計(jì)算和功率成本的過 程。
[0013] 圖1是對(duì)象檢測(cè)和/或識(shí)別的示例系統(tǒng)100的說明圖,該示例系統(tǒng)100依據(jù)本公開 的至少一些實(shí)施方式來布置。如示出的,系統(tǒng)100可以包含經(jīng)由硬件120實(shí)施的卷積模塊 122、閾值模塊130和級(jí)聯(lián)過濾模塊140。在各種實(shí)施方式中,系統(tǒng)100可以被配置成執(zhí)行包 含執(zhí)行對(duì)象檢測(cè)預(yù)過濾的對(duì)象檢測(cè)和/或?qū)ο笞R(shí)別。如下面進(jìn)一步討論的,系統(tǒng)100可以 經(jīng)由各種硬件實(shí)施方式利用卷積模塊122可以經(jīng)由硬件120來實(shí)施的共同性而被采用。通 常,硬件120可以包含專用于或至少部分專用于執(zhí)行卷積126的硬件或硬件的部分(例如, 數(shù)字信號(hào)處理器、現(xiàn)場(chǎng)可編程門陣列、圖形處理單元、或其它硬件加速器)。在各種實(shí)施方式 中,閾值模塊130和/或級(jí)聯(lián)過濾模塊140可以經(jīng)由系統(tǒng)100的硬件120或其它部件(諸如 (多個(gè))中央處理單元或圖形處理單元)來實(shí)施,該其它部件下面被進(jìn)一步討論,但是為了清 晰起見不被示出在圖1中。
[0014] 如下面進(jìn)一步討論的,系統(tǒng)100也可以包含合并模塊和/或?qū)ο笞R(shí)別模塊,其為了 清晰起見不被示出在圖1中。進(jìn)一步,在一些示例中,系統(tǒng)100可以包含附加的項(xiàng)目,其為 了清晰起見不被示出在圖1中。例如,系統(tǒng)100可以包含射頻類型(RF)收發(fā)器、顯示器、天 線、揚(yáng)聲器、麥克風(fēng)、加速度計(jì)、存儲(chǔ)器、路由器、網(wǎng)絡(luò)接口邏輯等。
[0015] 在一些示例中,系統(tǒng)100可以執(zhí)行對(duì)象檢測(cè)操作或?qū)ο髾z測(cè)預(yù)過濾操作。例如,系 統(tǒng)100可以接收輸入圖像110,其可以包含關(guān)注的一個(gè)或多個(gè)對(duì)象112。通常,輸入圖像110 可以是任何合適的圖像或視頻數(shù)據(jù),諸如例如圖像文件或視頻幀等等。關(guān)注的對(duì)象112通 ??梢园槍?duì)對(duì)象檢測(cè)和/或識(shí)別可以是期望的任