本發明涉及圖像處理技術領域,更具體地涉及一種實例分割方法及裝置。
背景技術:
物體檢測和圖像分割是兩種不同的計算機視覺基礎任務。物體檢測要求算法把各種物體從圖像中識別并定位出來,圖像分割要求算法把圖像的每一個像素加上類別標注。將物體檢測和圖像分割兩者結合起來稱為實例分割,實例分割要求算法找到每一個待檢測的物體并把物體所在的像素標注出來。
現有的物體分割方法(例如DeepMask、SharpMask、Instance FCN等)在對圖片中的實例(指圖片中的待分割對象,例如人、車等)進行分割時通常包括如下步驟:首先,對待處理圖像的尺度(scale)進行調整以形成包括多張不同尺度圖片的圖片金字塔;然后,利用神經網絡(例如DeepMask網絡)的身體網絡(body module)從每個調整后的圖片中提取全特征張量(full feature map),從而得到多個尺度不同的特征張量;最后,利用固定尺度的滑動窗口(fixed-size sliding window)對該多個尺度不同的特征圖進行操作得到對應數目的窗口特征張量,利用神經網絡的頭網絡(head module)確定每個窗口特征張量的置信度并基于置信度完成分割操作。
現有的上述方法在解決實例分割時存在著兩個問題:其一,在不依靠圖片金字塔的情況下,無法解決多尺度問題,即,不能對同一輸入圖片中的不同尺度的物體同時進行分割而只能分割出圖片中給定大小的物體;其二,由于待檢測物體之間和背景對于待檢測物體存在噪聲的原因,在待分割物體十分擁擠的圖片上分割效果表現不佳。
技術實現要素:
為了解決上述問題中的至少一個而提出了本發明。根據本發明一方面,提供了一種實例分割方法,所述實例分割方法包括:接收待處理圖像;通過第一神經網絡對所述待處理圖像進行處理以生成第一特征張量;通過第二神經網絡對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像;以及通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割。
在本發明的一個實施例中,所述第二神經網絡包括至少兩個子網絡,每個子網絡用于生成一種預定尺度的所述第二特征張量。
在本發明的一個實施例中,所述子網絡之間是殘余連接并共享參數的,后一個子網絡基于前一個子網絡的輸出生成另一種預定尺度的所述第二特征張量。
在本發明的一個實施例中,基于所述后一個子網絡生成的第二特征張量的尺度小于基于所述前一個子網絡生成的第二特征張量的尺度。
在本發明的一個實施例中,所述子網絡包括卷積層和池化層。
在本發明的一個實施例中,所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度;以及基于所述置信度和所述窗口特征張量生成所述待處理圖像的實例分割。
在本發明的一個實施例中,所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度,選擇存在物體的置信度大于預定閾值的窗口特征張量作為有效窗口特征張量;基于每個所述有效窗口特征張量生成相應的注意力矩陣,其中所述注意力矩陣包括相應的所述有效窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述有效窗口特征張量以生成第三特征張量;以及基于所述第三特征張量生成所述待處理圖像的實例分割。
在本發明的一個實施例中,所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于每個所述窗口特征張量生成相應的注意力矩陣和所述滑動窗口中存在物體的置信度,其中所述注意力矩陣包括相應的所述窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述窗口特征張量以生成第三特征張量;以及基于所述第三特征張量以及所述滑動窗口中存在物體的置信度生成所述待處理圖像的實例分割。
在本發明的一個實施例中,所述注意力矩陣通過由全連接層組成的注意力生成器而生成。
在本發明的一個實施例中,所述第三神經網絡中還包括上采樣層,所述上采樣層用于提高所生成的實例分割結果的分辨率。
根據本發明另一方面,提供了一種實例分割裝置,所述實例分割裝置包括:接收模塊,用于接收待處理圖像;第一神經網絡模塊,用于對所述待處理圖像進行處理以生成第一特征張量;第二神經網絡模塊,用于對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像;以及第三神經網絡模塊,用于對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割。
在本發明的一個實施例中,所述第二神經網絡模塊包括至少兩個子網絡,每個子網絡用于生成一種預定尺度的所述第二特征張量。
在本發明的一個實施例中,所述子網絡之間是殘余連接并共享參數的,后一個子網絡基于前一個子網絡的輸出生成另一種預定尺度的所述第二特征張量。
在本發明的一個實施例中,基于所述后一個子網絡生成的第二特征張量的尺度小于基于所述前一個子網絡生成的第二特征張量的尺度。
在本發明的一個實施例中,所述子網絡包括卷積層和池化層。
在本發明的一個實施例中,所述第三神經網絡模塊進一步用于:通過滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度;以及基于所述置信度和所述窗口特征張量生成所述待處理圖像的實例分割。
在本發明的一個實施例中,所述第三神經網絡模塊進一步用于:通過滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度,選擇存在物體的置信度大于預定閾值的窗口特征張量作為有效窗口特征張量;基于每個所述有效窗口特征張量生成相應的注意力矩陣,其中所述注意力矩陣包括相應的所述有效窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述有效窗口特征張量以生成第三特征張量;以及基于所述第三特征張量生成所述待處理圖像的實例分割。
在本發明的一個實施例中,所述第三神經網絡模塊進一步用于:通過滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于每個所述窗口特征張量生成相應的注意力矩陣和所述滑動窗口中存在物體的置信度,其中所述注意力矩陣包括相應的所述窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述窗口特征張量以生成第三特征張量;以及基于所述第三特征張量以及所述滑動窗口中存在物體的置信度生成所述待處理圖像的實例分割。
在本發明的一個實施例中,所述第三神經網絡模塊包括由全連接層組成的注意力生成器,所述注意力矩陣通過所述注意力生成器而生成。
在本發明的一個實施例中,所述第三神經網絡模塊包括上采樣層,所述上采樣層用于提高所生成的實例分割結果的分辨率。
根據本發明又一方面,提供了一種實例分割裝置,所述實例分割裝置包括處理器、存儲器以及存儲于所述存儲器中的計算機程序,其中,所述計算機程序在被所述處理器運行時執行如下步驟:接收待處理圖像;通過第一神經網絡對所述待處理圖像進行處理以生成第一特征張量;通過第二神經網絡對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像;以及通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割。
根據本發明實施例的實例分割方法及裝置基于包括新的網絡組件的新的網絡架構同時進行物體檢測與圖像分割,使得不需要使用圖片金字塔就能夠一次生成所有的物體分割,解決了多尺度問題,同時提高了算法的速度。
附圖說明
通過結合附圖對本發明實施例進行更詳細的描述,本發明的上述以及其它目的、特征和優勢將變得更加明顯。附圖用來提供對本發明實施例的進一步理解,并且構成說明書的一部分,與本發明實施例一起用于解釋本發明,并不構成對本發明的限制。在附圖中,相同的參考標號通常代表相同部件或步驟。
圖1示出用于實現根據本發明實施例的實例分割方法和裝置的示例電子設備的示意性框圖;
圖2示出根據本發明實施例的實例分割方法的流程圖;
圖3示出根據本發明實施例的實例分割方法的示意圖;
圖4示出根據本發明實施例的第二神經網絡所包括的子網絡及其操作的示意圖;
圖5示出根據本發明另一實施例的實例分割方法的流程圖;
圖6示出根據本發明實施例的第三神經網絡的部分操作的示意圖;
圖7示出根據本發明又一實施例的實例分割方法的流程圖;
圖8示出根據本發明實施例的實例分割裝置的示意性框圖;以及
圖9示出根據本發明實施例的實例分割系統的示意性框圖。
具體實施方式
為了使得本發明的目的、技術方案和優點更為明顯,下面將參照附圖詳細描述根據本發明的示例實施例。顯然,所描述的實施例僅僅是本發明的一部分實施例,而不是本發明的全部實施例,應理解,本發明不受這里描述的示例實施例的限制。基于本發明中描述的本發明實施例,本領域技術人員在沒有付出創造性勞動的情況下所得到的所有其它實施例都應落入本發明的保護范圍之內。
首先,參照圖1來描述用于實現本發明實施例的實例分割方法和裝置的示例電子設備100。
如圖1所示,電子設備100包括一個或多個處理器102、一個或多個存儲裝置104、輸入裝置106、輸出裝置108以及圖像傳感器110,這些組件通過總線系統112和/或其它形式的連接機構(未示出)互連。應當注意,圖1所示的電子設備100的組件和結構只是示例性的,而非限制性的,根據需要,所述電子設備也可以具有其他組件和結構。
所述處理器102可以是中央處理單元(CPU)或者具有數據處理能力和/或指令執行能力的其它形式的處理單元,并且可以控制所述電子設備100中的其它組件以執行期望的功能。
所述存儲裝置104可以包括一個或多個計算機程序產品,所述計算機程序產品可以包括各種形式的計算機可讀存儲介質,例如易失性存儲器和/或非易失性存儲器。所述易失性存儲器例如可以包括隨機存取存儲器(RAM)和/或高速緩沖存儲器(cache)等。所述非易失性存儲器例如可以包括只讀存儲器(ROM)、硬盤、閃存等。在所述計算機可讀存儲介質上可以存儲一個或多個計算機程序指令,處理器102可以運行所述程序指令,以實現下文所述的本發明實施例中(由處理器實現)的客戶端功能以及/或者其它期望的功能。在所述計算機可讀存儲介質中還可以存儲各種應用程序和各種數據,例如所述應用程序使用和/或產生的各種數據等。
所述輸入裝置106可以是用戶用來輸入指令的裝置,并且可以包括鍵盤、鼠標、麥克風和觸摸屏等中的一個或多個。
所述輸出裝置108可以向外部(例如用戶)輸出各種信息(例如圖像或聲音),并且可以包括顯示器、揚聲器等中的一個或多個。
所述圖像傳感器110可以拍攝用戶期望的圖像(例如照片、視頻等),并且將所拍攝的圖像存儲在所述存儲裝置104中以供其它組件使用。
示例性地,用于實現根據本發明實施例的實例分割方法和裝置的示例電子設備可以被實現為諸如智能手機、平板電腦等。
下面,將參考圖2所示的根據本發明實施例的實例分割方法的流程圖以及圖3所示的根據本發明實施例的實例分割方法的示意圖描述根據本發明實施例的實例分割方法200。
在步驟S210,接收待處理圖像。
在一個實施例中,所接收的待處理圖像(如圖3的示意圖中所示的待處理圖像)為用于進行物體檢測和圖像分割的圖像。在一個示例中,所接收的待處理圖像可以為實時采集的圖像。在其他示例中,所接收的待處理圖像也可以為來自任何源的圖像。此處,所接收的待處理圖像可以為視頻數據,也可以為圖片數據。
在步驟S220,通過第一神經網絡對所述待處理圖像進行處理以生成第一特征張量。
在一個實施例中,第一神經網絡可以為實例分割網絡架構中的身體網絡(如圖3的示意圖中所示的身體網絡),例如Deepmask的網絡架構中的身體網絡,其例如可以包括經典圖像分類深度神經網絡的卷積部分。身體網絡的結構為本領域普通技術人員所已知的,因此為了簡潔,此處不再贅述。基于在步驟S210所接收的待處理圖像,通過第一神經網絡(身體網絡)生成第一特征張量(feature map),該第一特征張量為第一神經網絡對待處理圖像進行處理后所輸出的特征張量,將其稱為第一特征張量僅是為了與后續將描述的第二特征張量、第三特征張量等相區別,并不起到任何限定作用。類似地,將第一神經網絡(身體網絡)稱為第一神經網絡也僅為了與后續將描述的第二神經網絡、第三神經網絡等相區別,并不起到任何限定作用。
在步驟S230,通過第二神經網絡對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像。
在一個實施例中,第二神經網絡為本發明提出的新的網絡組件,為了與前面描述的身體網絡與后面將描述的頭部網絡相對應,可以將第二神經網絡稱為脖子網絡(如圖3的示意圖中所示的脖子網絡)。通過該脖子網絡,可在不需要圖片金字塔的情況下將身體網絡所生成的特征張量生成不同尺度的多個(指至少兩個)特征張量,為了與身體網絡所生成的第一特征張量相區別(而非起到任何限定作用),將通過第二神經網絡(脖子網絡)所生成的不同尺度的多個特征張量稱為多個第二特征張量。
此處,每個第二特征張量表示一種相應尺度的待處理圖像。例如,每個第二特征張量是為待處理圖像的大小的N倍的特征張量。在一個示例中,N為0到1之間的實數。在該示例中,可以將第二神經網絡(脖子網絡)所生成的第二特征張量看作是以任何尺度縮放的待處理圖像。在一個示例中,N也可以等于1,即第二特征張量也包括未經任何尺度變換的待處理圖像本身,或者說在生成的多個第二特征張量中存在一個與第一特征張量完全相同的第二特征張量。基于第二神經網絡所生成的多尺度特征張量,可在不需要圖片金字塔的情況下實現多尺度的物體分割,即對同一圖像的不同尺度的物體實例進行分割。
在一個示例中,第二神經網絡(脖子網絡)可以包括至少兩個子網絡,每個子網絡可以生成一種尺度的待處理圖像。例如,第一子網絡可以生成待處理圖像的二分之一大小的特征張量,第二子網絡可以生成第一特征張量的待處理圖像大小的特征張量,第三子網絡可以生成待處理圖像的八分之一大小的特征張量等等。在其他示例中,第二神經網絡(脖子網絡)所包括的子網絡可以生成任何期望尺度的待處理圖像。雖然在圖3中將第二神經網絡(脖子網絡)示出為包括3個子網絡,但其僅是示例性的,第二神經網絡(脖子網絡)可以根據需要包括任意數目的子網絡。
在一個示例中,第二神經網絡(脖子網絡)所包括的子網絡之間可以是殘余連接并共享參數的,后一個子網絡基于前一個子網絡的輸出生成另一種尺度的所述第一特征張量。示例性地,基于后一個子網絡生成的第二特征張量的尺度小于基于前一個子網絡生成的第二特征張量的尺度。例如,在上一個示例中,第一子網絡可以生成待處理圖像的二分之一大小的特征張量,第二子網絡可以基于第一子網絡的輸出生成待處理圖像的四分之一大小的特征張量,第三子網絡可以基于第二子網絡的輸出生成待處理圖像的八分之一大小的特征張量等。這樣使得每個子網絡可通過相同或相似的結構實現相同或相似的操作,結構簡單,易于實現。
圖4示出了根據本發明實施例的第二神經網絡(脖子網絡)所包括的一個子網絡的示例性結構示意圖。如圖4所示,根據本發明實施例的第二神經網絡(脖子網絡)所包括的一個子網絡可以包括卷積層和池化層,第一神經網絡(身體網絡)所生成的第一特征張量輸入到3×3卷積層中和池化層1中,3×3卷積層的輸出再輸入到1×1卷積層中,1×1卷積層的輸出輸入到池化層2中,池化層1和池化層2的輸出再經組合生成第二特征張量。雖然在圖4中將卷積層示出為3×3卷積層和1×1卷積層,但其僅是示例性的,還可以采用其他尺度的卷積層。此外,圖4所示出的子網絡僅是一個示例,第二神經網絡(脖子網絡)所包括的子網絡也可以是其他任何合適的可以生成不同尺度特征張量的結構。
現在回到圖2繼續描述根據本發明實施例的實例分割方法200的步驟。
在步驟S240,通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割。
在一個實施例中,第三神經網絡可以為實例分割網絡架構中的頭部網絡(如圖3的示意圖中所示的),例如Deepmask的網絡架構中的頭部網絡,其例如可以包括滑動窗口和全連接層。頭部網絡的結構為本領域普通技術人員所已知的,因此為了簡潔,此處不再贅述。此處,將第三神經網絡(頭部網絡)稱為第三神經網絡也僅為了與前面描述的第一神經網絡(身體網絡)、第二神經網絡(脖子網絡)等相區別,并不起到任何限定作用。
基于在步驟S230所生成的第二特征張量,通過第三神經網絡(頭部網絡)生成待處理圖像的實例分割。在一個示例中,通過第三神經網絡對多個第二特征張量進行處理以實現對待處理圖像的實例分割的步驟可以包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度;以及基于所述置信度和所述窗口特征張量生成所述待處理圖像的實例分割。在該示例中,通過第三神經網絡(頭部網絡)的滑動窗口(如圖3的示意圖中所示的)從第二特征張量中提取窗口特征張量;基于窗口特征張量生成滑動窗口中存在物體的置信度;當所述置信度大于預定閾值,即確定滑動窗口中存在物體時,生成物體的實例分割。
在另一個示例中,通過第三神經網絡對多個第二特征張量進行處理以實現對待處理圖像的實例分割的步驟可以包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于每個所述窗口特征張量生成相應的注意力矩陣和所述滑動窗口中存在物體的置信度,其中所述注意力矩陣包括相應的所述窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述窗口特征張量以生成第三特征張量;以及基于所述第三特征張量以及所述滑動窗口中存在物體的置信度生成所述待處理圖像的實例分割。該示例將在下面結合圖5和圖6進行描述。
在又一個示例中,通過第三神經網絡對多個第二特征張量進行處理以實現對待處理圖像的實例分割的步驟可以包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度,選擇存在物體的置信度大于預定閾值的窗口特征張量作為有效窗口特征張量;基于每個所述有效窗口特征張量生成相應的注意力矩陣,其中所述注意力矩陣包括相應的所述有效窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述有效窗口特征張量以生成第三特征張量;以及基于所述第三特征張量生成所述待處理圖像的實例分割。該示例將在下面結合圖7進行描述。
在一個示例中,第三神經網絡(頭部網絡)還可以包括上采樣層(如圖3的示意圖中所示的),所述上采樣層可用于提高所生成的實例分割結果的分辨率。
基于上面的描述,根據本發明實施例的實例分割方法200基于包括新的網絡組件(脖子網絡)的新的網絡架構(“身體-脖子-頭部”的網絡架構)同時進行物體檢測與圖像分割,使得不需要使用圖片金字塔就能夠一次生成所有的物體分割,解決了多尺度問題,同時提高了算法的速度。
示例性地,根據本發明實施例的實例分割方法可以在具有存儲器和處理器的設備、裝置或者系統中實現。
根據本發明實施例的實例分割方法可以部署在個人終端處,諸如智能電話、平板電腦、個人計算機等。替代地,根據本發明實施例的實例分割方法還可以部署在服務器端(或云端)。替代地,根據本發明實施例的實例分割方法還可以分布地部署在服務器端(或云端)和個人終端處。
在其他實施例中,根據本發明的實例分割方法還可包括其他的操作,下面結合圖5進行描述。
圖5示出了根據本發明另一實施例的實例分割方法500的示意性流程圖。如圖5所示,實例分割方法500可以包括如下步驟:
在步驟S510,接收待處理圖像。
在步驟S520,通過第一神經網絡對所述待處理圖像進行處理以生成第一特征張量。
在步驟S530,通過第二神經網絡對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像。
此處,步驟S510、S520和S530分別與圖2中所描述的實例分割方法200的步驟S210、S220和S230類似,為了簡潔,此處不再贅述。
下面將描述的步驟S540到S570可以看作是步驟S240在圖5所示實施例中的具體細化,與圖2所示的實施例相比,圖5所示的實施例中增加了注意力機制,下面結合圖5和圖6詳細描述這些步驟。
在步驟S540,通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量。
在步驟S550,基于每個所述窗口特征張量生成相應的注意力矩陣和所述滑動窗口中存在物體的置信度,其中所述注意力矩陣包括相應的所述窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值。
在步驟S560,將每個所述注意力矩陣廣播乘相應的所述窗口特征張量以生成第三特征張量。
在步驟S570,基于所述第三特征張量以及所述滑動窗口中存在物體的置信度生成所述待處理圖像的實例分割。
在圖5所示的實施例中,可以首先通過第三神經網絡(頭部網絡)的滑動窗口從多個第二特征張量中的每個提取窗口特征張量。然后,對于每個窗口特征張量,生成滑動窗口中存在物體的置信度(如圖6所示的,可通過由全連接層構成的置信度解碼器來生成置信度分數)。同時,對于每個窗口特征張量,可以將其輸入到一個由全連接層組成的注意力生成器中(如圖6所示的),由該注意力生成器生成注意力矩陣(如圖6所示的)。注意力矩陣可以包括窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值。用這個注意力矩陣對滑動窗口特征張量進行廣播乘(broadcast product),可得到過濾噪聲后的特征張量(即第三特征張量)。該第三特征張量為將第一神經網絡(身體網絡)所生成的特征張量(第一特征張量)經由第二神經網絡(脖子網絡)變為多尺度(第二特征張量)后、再經由增加注意力機制的第三神經網絡(頭部網絡)生成的新的特征張量,為了與前述第一特征張量、第二特征張量相區別,稱其為第三特征張量,“第三”同樣不起到任何限定作用。
如上所述,第三特征張量為去掉了背景以及待檢測物體以外的物體產生的噪聲的特征張量,因此有助于第三神經網絡生成更準確的實例分割。基于該第三特征張量以及滑動窗口中存在物體的置信度可生成待處理圖像的實例分割。如圖6中所示的,通過由全連接層構成的掩碼解碼器生成最終的掩碼分數張量(mask score map),與最右側的相對應的圖片小塊相比,可知最終的實例分割非常精確。
基于上面的描述,根據本發明實施例的實例分割方法500基于包括新的網絡組件(脖子網絡)的新的網絡架構(“身體-脖子-頭部”的網絡架構)同時進行物體檢測與圖像分割,使得不需要使用圖片金字塔就能夠一次生成所有的物體分割,解決了多尺度問題,同時提高了算法的速度。此外,在本發明的一個具體實現方式中,實例分割方法500通過增加注意力機制可以消除物體周圍的背景以及物體與物體之間的噪聲,從而在物體十分擁擠的圖片上也依然可以實現精確的實例分割。
此外,也可以將S550到S570的步驟稍作改動,形成另一種實施方式,下面結合圖7描述該實施方式。
圖7示出了根據本發明又一實施例的實例分割方法700的示意性流程圖。如圖7所示,實例分割方法700可以包括如下步驟:
在步驟S710,接收待處理圖像。
在步驟S720,通過第一神經網絡對所述待處理圖像進行處理以生成第一特征張量。
在步驟S730,通過第二神經網絡對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像。
此處,步驟S710、S720和S730分別與圖2中所描述的實例分割方法200的步驟S210(或S510)、S220(或S520)和S230(或S530)類似,為了簡潔,此處不再贅述。
下面將描述的步驟S740到S780可以看做是步驟S240在圖7所示實施例中的具體細化,與圖2所示的實施例相比,圖7所示的實施例中增加了注意力機制,下面結合圖7詳細描述這些步驟。
在步驟S740,通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量。
在步驟S750,基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度,選擇存在物體的置信度大于預定閾值的窗口特征張量作為有效窗口特征張量。
在步驟S760,基于每個所述有效窗口特征張量生成相應的注意力矩陣,其中所述注意力矩陣包括相應的所述有效窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值。
在步驟S770,將每個所述注意力矩陣廣播乘相應的所述有效窗口特征張量以生成第三特征張量。
在步驟S780,基于所述第三特征張量生成所述待處理圖像的實例分割。
在圖7所示的實施例中,基于從多個第二特征張量中提取的相應的窗口特征張量,可以首先確定這些窗口特征張量中的有效窗口特征張量。示例性地,有效窗口特征張量可以定義為窗口特征張量中存在物體的置信度大于預定閾值的窗口特征張量。在一個示例中,可以基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度,并且選擇置信度大于預定閾值的窗口特征張量作為有效窗口特征張量以用于生成注意力矩陣。然后,將注意力矩陣與有效窗口特征張量進行廣播乘來生成第三特征張量,最后基于第三特征張量生成待處理圖像的示例分割。在該實施例中,先確定滑動窗口中是否存在物體,可去除不存在物體的情況,減小運算量,提高運算速度。
基于上面的描述,根據本發明實施例的實例分割方法700基于包括新的網絡組件(脖子網絡)的新的網絡架構(“身體-脖子-頭部”的網絡架構)同時進行物體檢測與圖像分割,使得不需要使用圖片金字塔就能夠一次生成所有的物體分割,解決了多尺度問題,同時提高了算法的速度。此外,根據本發明實施例的實例分割方法700通過增加注意力機制可以消除背景以及物體與物體之間的噪聲,從而在物體十分擁擠的圖片上也依然可以實現精確的實例分割。此外,根據本發明實施例的實例分割方法700先確定有效窗口張量以用于注意力矩陣的計算,可減小運算量,提高運算速度。
以上示例性地描述了根據本發明實施例的實例分割方法所包括的示例性步驟流程。值得注意的是,根據本發明實施例的實例分割方法可以不包括上述的步驟全部而得以實現。例如,根據本發明實施例的實例分割方法500(或700)可以不包括步驟S530(或S730),且后續步驟S540(或S740)中的第二特征張量由第一特征張量代替。在這樣的實施例中的實例分割方法可僅解決背景以及物體與物體之間的噪聲問題,忽略多尺度問題,即注意力機制可用在沒有脖子網絡的“身體-頭部”的網絡架構中。
下面結合圖8描述本發明另一方面提供的實例分割裝置。圖8示出了根據本發明實施例的實例分割裝置800的示意性框圖。
如圖8所示,根據本發明實施例的實例分割裝置800包括接收模塊810、第一神經網絡模塊820、第二神經網絡模塊830以及第三神經網絡模塊840。所述各個模塊可分別執行上文中結合圖2、圖5和圖7描述的實例分割方法的各個步驟/功能。以下僅對實例分割裝置800的各單元的主要功能進行描述,而省略以上已經描述過的細節內容。
接收模塊810用于接收待處理圖像。第一神經網絡模塊820用于對所述待處理圖像進行處理以生成第一特征張量。第二神經網絡模塊830用于對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像。第三神經網絡模塊840用于對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割。接收模塊810、第一神經網絡模塊820、第二神經網絡模塊830以及第三神經網絡模塊840均可以由圖1所示的電子設備中的處理器102運行存儲裝置104中存儲的程序指令來實現。
在一個實施例中,第一神經網絡模塊820的第一神經網絡可以為實例分割網絡架構中的身體網絡,例如Deepmask的網絡架構中的身體網絡,其例如可以包括經典圖像分類深度神經網絡的卷積部分。
在一個實施例中,第二神經網絡模塊830的第二神經網絡為本文提出的新的網絡組件,為了與前面描述的身體網絡與后面將描述的頭部網絡相對應,可以將第二神經網絡稱為脖子網絡。通過該脖子網絡,可在不需要圖片金字塔的情況下將身體網絡所生成的特征張量生成不同尺度的特征張量。
在一個示例中,第二神經網絡模塊830的第二神經網絡(脖子網絡)可以包括至少兩個子網絡,每個子網絡可以生成一種尺度的待處理圖像。例如,第一子網絡可以生成待處理圖像的二分之一大小的特征張量,第二子網絡可以生成待處理圖像的四分之一大小的特征張量,第三子網絡可以生成待處理圖像的八分之一大小的特征張量等等。在其他示例中,第二神經網絡模塊830的第二神經網絡(脖子網絡)所包括的子網絡可以生成任何期望尺度的待處理圖像。
在一個示例中,第二神經網絡模塊830的第二神經網絡(脖子網絡)所包括的子網絡之間可以是殘余連接并共享參數的,后一個子網絡基于前一個子網絡的輸出生成另一種尺度的所述第一特征張量。示例性地,基于后一個子網絡生成的第二特征張量的尺度小于基于前一個子網絡生成的第二特征張量的尺度。例如,在上一個示例中,第一子網絡可以生成待處理圖像的二分之一大小的特征張量,第二子網絡可以基于第一子網絡的輸出生成待處理圖像的四分之一大小的特征張量,第三子網絡可以基于第二子網絡的輸出生成待處理圖像的八分之一大小的特征張量等。這樣使得每個子網絡可通過相同或相似的結構實現相同或相似的操作,結構簡單,易于實現。第二神經網絡(脖子網絡)所包括的子網絡可以包括卷積層和池化層,如圖4所示的。
在一個實施例中,第三神經網絡模塊840的第三神經網絡可以為實例分割網絡架構中的頭部網絡,例如Deepmask的網絡架構中的頭部網絡,其例如可以包括滑動窗口和全連接層。
在一個實施例中,第三神經網絡模塊840可進一步用于:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度;以及基于所述置信度和所述窗口特征張量生成所述待處理圖像的實例分割。
在另一個實施例中,第三神經網絡模塊840還可以用于:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于每個所述窗口特征張量生成相應的注意力矩陣和所述滑動窗口中存在物體的置信度,其中所述注意力矩陣包括相應的所述窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述窗口特征張量以生成第三特征張量;以及基于所述第三特征張量以及所述滑動窗口中存在物體的置信度生成所述待處理圖像的實例分割。在該實施例中,第三神經網絡模塊840的操作可以參考上文中結合圖5和圖6所描述的,為了簡潔,此處不再贅述。在該實施例中,第三神經網絡模塊可包括由全連接層組成的注意力生成器,所述注意力矩陣通過所述注意力生成器而生成。
在又一個實施例中,第三神經網絡模塊840還可以用于:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度,選擇存在物體的置信度大于預定閾值的窗口特征張量作為有效窗口特征張量;基于每個所述有效窗口特征張量生成相應的注意力矩陣,其中所述注意力矩陣包括相應的所述有效窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述有效窗口特征張量以生成第三特征張量;以及基于所述第三特征張量生成所述待處理圖像的實例分割。在該實施例中,第三神經網絡模塊840的操作可以參考上文中結合圖7所描述的,為了簡潔,此處不再贅述。在該實施例中,第三神經網絡模塊可包括由全連接層組成的注意力生成器,所述注意力矩陣通過所述注意力生成器而生成。
在一個實施例中,第三神經網絡模塊840的第三神經網絡(頭部網絡)還可以包括上采樣層,所述上采樣層可用于提高所生成的實例分割結果的分辨率。
基于上面的描述,根據本發明實施例的實例分割裝置基于包括新的網絡組件(脖子網絡)的新的網絡架構(“身體-脖子-頭部”的網絡架構)同時進行物體檢測與圖像分割,使得不需要使用圖片金字塔就能夠一次生成所有的物體分割,解決了多尺度問題,同時提高了算法的速度。此外,根據本發明實施例的實例分割裝置通過增加注意力機制可以消除背景以及物體與物體之間的噪聲,從而在物體十分擁擠的圖片上也依然可以實現精確的實例分割。
圖9示出了根據本發明實施例的實例分割系統900的示意性框圖。實例分割系統900包括存儲裝置910以及處理器920。
其中,存儲裝置910存儲用于實現根據本發明實施例的實例分割方法中的相應步驟的程序代碼。處理器920用于運行存儲裝置910中存儲的程序代碼,以執行根據本發明實施例的實例分割方法的相應步驟,并且用于實現根據本發明實施例的實例分割裝置中的相應模塊。此外,實例分割系統900還可以包括圖像采集裝置(未在圖8中示出),其可以用于采集待處理圖像。當然,圖像采集裝置不是必需的,可直接接收來自其他源的待處理圖像。
在一個實施例中,在所述程序代碼被處理器920運行時使得實例分割系統900執行以下步驟:接收待處理圖像;通過第一神經網絡對所述待處理圖像進行處理以生成第一特征張量;通過第二神經網絡對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像;以及通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割。
在一個實施例中,所述第二神經網絡包括至少兩個子網絡,每個子網絡用于生成一種預定尺度的所述第二特征張量。
在一個實施例中,所述子網絡之間是殘余連接并共享參數的,后一個子網絡基于前一個子網絡的輸出生成另一種預定尺度的所述第二特征張量。
在一個實施例中,基于所述后一個子網絡生成的第二特征張量的尺度小于基于所述前一個子網絡生成的第二特征張量的尺度。
在一個實施例中,所述子網絡包括卷積層和池化層。
在一個實施例中,在所述程序代碼被處理器920運行時使得實例分割系統900執行的所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割的步驟包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度;以及基于所述置信度和所述窗口特征張量生成所述待處理圖像的實例分割。
在一個實施例中,在所述程序代碼被處理器920運行時使得實例分割系統900執行的所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割的步驟包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度,選擇存在物體的置信度大于預定閾值的窗口特征張量作為有效窗口特征張量;基于每個所述有效窗口特征張量生成相應的注意力矩陣,其中所述注意力矩陣包括相應的所述有效窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述有效窗口特征張量以生成第三特征張量;以及基于所述第三特征張量生成所述待處理圖像的實例分割。
在一個實施例中,在所述程序代碼被處理器920運行時使得實例分割系統900執行的所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割的步驟包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于每個所述窗口特征張量生成相應的注意力矩陣和所述滑動窗口中存在物體的置信度,其中所述注意力矩陣包括相應的所述窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述窗口特征張量以生成第三特征張量;以及基于所述第三特征張量以及所述滑動窗口中存在物體的置信度生成所述待處理圖像的實例分割。
在一個實施例中,所述注意力矩陣通過由全連接層組成的注意力生成器而生成。
在一個實施例中,所述第三神經網絡中還包括上采樣層,所述上采樣層用于提高所生成的實例分割結果的分辨率。
此外,根據本發明實施例,還提供了一種存儲介質,在所述存儲介質上存儲了程序指令,在所述程序指令被計算機或處理器運行時用于執行本發明實施例的實例分割方法的相應步驟,并且用于實現根據本發明實施例的實例分割裝置中的相應模塊。所述存儲介質例如可以包括智能電話的存儲卡、平板電腦的存儲部件、個人計算機的硬盤、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM)、便攜式緊致盤只讀存儲器(CD-ROM)、USB存儲器、或者上述存儲介質的任意組合。所述計算機可讀存儲介質可以是一個或多個計算機可讀存儲介質的任意組合,例如一個計算機可讀存儲介質包含接收待處理圖像的計算機可讀的程序代碼,另一個計算機可讀存儲介質包含通過第一神經網絡生成第一特征張量的計算機可讀的程序代碼,再一個計算機可讀存儲介質包含通過第二神經網絡生成第二特征張量的計算機可讀的程序代碼,又一個計算機可讀存儲介質包含通過第三神經網絡生成待處理圖像的實例分割的計算機可讀的程序代碼。
在一個實施例中,所述計算機程序指令在被計算機運行時可以實現根據本發明實施例的實例分割裝置的各個功能模塊,并且/或者可以執行根據本發明實施例的實例分割方法。
在一個實施例中,所述計算機程序指令在被計算機或處理器運行時使計算機或處理器執行以下步驟:接收待處理圖像;通過第一神經網絡對所述待處理圖像進行處理以生成第一特征張量;通過第二神經網絡對所述第一特征張量進行處理以生成不同尺度的多個第二特征張量,其中每個所述第二特征張量表示相應尺度的所述待處理圖像;以及通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割。
在一個實施例中,所述第二神經網絡包括至少兩個子網絡,每個子網絡用于生成一種預定尺度的所述第二特征張量。
在一個實施例中,所述子網絡之間是殘余連接并共享參數的,后一個子網絡基于前一個子網絡的輸出生成另一種預定尺度的所述第二特征張量。
在一個實施例中,基于所述后一個子網絡生成的第二特征張量的尺度小于基于所述前一個子網絡生成的第二特征張量的尺度。
在一個實施例中,所述子網絡包括卷積層和池化層。
在一個實施例中,所述計算機程序指令在被計算機或處理器運行時使計算機或處理器執行的所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割的步驟包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度;以及基于所述置信度和所述窗口特征張量生成所述待處理圖像的實例分割。
在一個實施例中,所述計算機程序指令在被計算機或處理器運行時使計算機或處理器執行的所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割的步驟包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于所述窗口特征張量生成所述滑動窗口中存在物體的置信度,選擇存在物體的置信度大于預定閾值的窗口特征張量作為有效窗口特征張量;基于每個所述有效窗口特征張量生成相應的注意力矩陣,其中所述注意力矩陣包括相應的所述有效窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述有效窗口特征張量以生成第三特征張量;以及基于所述第三特征張量生成所述待處理圖像的實例分割。
在一個實施例中,所述計算機程序指令在被計算機或處理器運行時使計算機或處理器執行的所述通過第三神經網絡對所述多個第二特征張量進行處理以實現對所述待處理圖像的實例分割的步驟包括:通過所述第三神經網絡的滑動窗口分別從所述多個第二特征張量中提取相應的窗口特征張量;基于每個所述窗口特征張量生成相應的注意力矩陣和所述滑動窗口中存在物體的置信度,其中所述注意力矩陣包括相應的所述窗口特征張量上的每一點位于待檢測物體所在區域內的置信度值;將每個所述注意力矩陣廣播乘相應的所述窗口特征張量以生成第三特征張量;以及基于所述第三特征張量以及所述滑動窗口中存在物體的置信度生成所述待處理圖像的實例分割。
在一個實施例中,所述注意力矩陣通過由全連接層組成的注意力生成器而生成。
在一個實施例中,所述第三神經網絡中還包括上采樣層,所述上采樣層用于提高所生成的實例分割結果的分辨率。
根據本發明實施例的實例分割裝置中的各模塊可以通過根據本發明實施例的實例分割的電子設備的處理器運行在存儲器中存儲的計算機程序指令來實現,或者可以在根據本發明實施例的計算機程序產品的計算機可讀存儲介質中存儲的計算機指令被計算機運行時實現。
根據本發明實施例的實例分割方法、裝置、系統以及存儲介質基于包括新的網絡組件(脖子網絡)的新的網絡架構(“身體-脖子-頭部”的網絡架構)同時進行物體檢測與圖像分割,使得不需要使用圖片金字塔就能夠一次生成所有的物體分割,解決了多尺度問題,同時提高了算法的速度。此外,根據本發明實施例的實例分割方法、裝置、系統以及存儲介質通過增加注意力機制可以消除背景以及物體與物體之間的噪聲,從而在物體十分擁擠的圖片上也依然可以實現精確的實例分割。
盡管這里已經參考附圖描述了示例實施例,應理解上述示例實施例僅僅是示例性的,并且不意圖將本發明的范圍限制于此。本領域普通技術人員可以在其中進行各種改變和修改,而不偏離本發明的范圍和精神。所有這些改變和修改意在被包括在所附權利要求所要求的本發明的范圍之內。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
在本申請所提供的幾個實施例中,應該理解到,所揭露的設備和方法,可以通過其它的方式實現。例如,以上所描述的設備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個設備,或一些特征可以忽略,或不執行。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本發明并幫助理解各個發明方面中的一個或多個,在對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該本發明的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如相應的權利要求書所反映的那樣,其發明點在于可以用少于某個公開的單個實施例的所有特征的特征來解決相應的技術問題。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域的技術人員可以理解,除了特征之間相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發明實施例的物品分析設備中的一些模塊的一些或者全部功能。本發明還可以實現為用于執行這里所描述的方法的一部分或者全部的裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
以上所述,僅為本發明的具體實施方式或對具體實施方式的說明,本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。本發明的保護范圍應以權利要求的保護范圍為準。