本技術(shù)涉及人臉關(guān)鍵點(diǎn)(landmark)檢測,更具體地,涉及一種檢測人臉圖像的關(guān)鍵點(diǎn)坐標(biāo)的方法和裝置。
背景技術(shù):
1、近年來,由于深度神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,人臉圖像關(guān)鍵點(diǎn)(landmark)檢測技術(shù)取得了顯著的進(jìn)步?,F(xiàn)有的人臉圖像關(guān)鍵點(diǎn)檢測方法主要包括基于熱圖回歸的方法和基于坐標(biāo)回歸的方法。基于熱圖回歸的方法首先根據(jù)給定的關(guān)鍵點(diǎn)坐標(biāo)生成熱圖,其中每個熱圖代表一個關(guān)鍵點(diǎn)位置的概率,然后根據(jù)熱圖上的峰值概率位置獲取關(guān)鍵點(diǎn)。基于熱圖的方法可以保留圖像特征的空間結(jié)構(gòu),從而獲得良好的性能。基于坐標(biāo)回歸的方法直接將輸入圖像映射為關(guān)鍵點(diǎn)坐標(biāo)。在深度學(xué)習(xí)框架中,輸入圖像被輸入cnn模型以獲取圖像特征。然后通過全連接的預(yù)測層直接將特征映射為坐標(biāo)。近來,圖形神經(jīng)網(wǎng)絡(luò)、變換器(transformer)被用于學(xué)習(xí)人臉圖像中的關(guān)鍵點(diǎn)結(jié)構(gòu),從而提高檢測精度。
2、然而,現(xiàn)有方法通過一個模型僅能檢測或預(yù)測一種風(fēng)格或類型的關(guān)鍵點(diǎn)。為了獲得不同風(fēng)格或類型的關(guān)鍵點(diǎn),需要訓(xùn)練不同的模型,這會導(dǎo)致時(shí)間和內(nèi)存的浪費(fèi)。此外,不同的數(shù)據(jù)集具有不同的標(biāo)注類型。在一個數(shù)據(jù)集上訓(xùn)練的模型不能很好地應(yīng)用于其它數(shù)據(jù)集。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種檢測人臉圖像的關(guān)鍵點(diǎn)坐標(biāo)的方法和裝置,以至少解決上述相關(guān)技術(shù)中的問題,也可以不解決任何上述問題。
2、根據(jù)本公開示例性實(shí)施例的一個方面,提供一種檢測人臉圖像的關(guān)鍵點(diǎn)的方法,包括:通過卷積神經(jīng)網(wǎng)絡(luò)層獲取所述人臉圖像的多級特征圖;通過全連接層將所述多級特征圖中的最后一級特征圖進(jìn)行全連接以獲取初始查詢矩陣;通過對多級特征圖進(jìn)行展平和連接操作獲取記憶特征矩陣;以及基于用于指定多個關(guān)鍵點(diǎn)風(fēng)格中的至少一個關(guān)鍵點(diǎn)風(fēng)格的用戶輸入、所述記憶特征矩陣和初始查詢矩陣,利用級聯(lián)的至少一個解碼器層確定所述人臉圖像的與所述至少一個關(guān)鍵點(diǎn)風(fēng)格相應(yīng)的第一關(guān)鍵點(diǎn)的坐標(biāo)。
3、根據(jù)本公開的實(shí)施例,可通過一個模型即可檢測用戶指定的多種風(fēng)格的中至少一種風(fēng)格的關(guān)鍵點(diǎn)的坐標(biāo),相較于現(xiàn)有技術(shù)中的一個模型僅能檢測一種類型的關(guān)鍵點(diǎn),本技術(shù)技術(shù)可以降低訓(xùn)練多個不同模型導(dǎo)致的時(shí)間和內(nèi)存的浪費(fèi)。
4、可選地,每個解碼器層包括級聯(lián)的掩碼模塊、自注意力模塊、可變形注意力模塊和關(guān)鍵點(diǎn)坐標(biāo)預(yù)測塊,以及其中,確定第一關(guān)鍵點(diǎn)的坐標(biāo)的步驟包括:基于所述用戶輸入指定的所述多個關(guān)鍵點(diǎn)風(fēng)格中的所述至少一個關(guān)鍵點(diǎn)風(fēng)格,獲得所述至少一個關(guān)鍵點(diǎn)對應(yīng)的掩碼矩陣;基于所述掩碼矩陣,對輸入到所述自注意力模塊的查詢矩陣、鍵矩陣和值矩陣進(jìn)行掩碼,以用于預(yù)測第一關(guān)鍵點(diǎn)的坐標(biāo)。
5、可選地,初始查詢矩陣中元素的數(shù)量等于n,n指示所述多個關(guān)鍵點(diǎn)風(fēng)格中的各關(guān)鍵點(diǎn)風(fēng)格對應(yīng)的關(guān)鍵點(diǎn)的數(shù)量之和;其中,確定第一關(guān)鍵點(diǎn)的坐標(biāo)的步驟包括:基于所述掩碼矩陣?yán)玫谝唤獯a器層的掩碼模塊將初始查詢矩陣、與初始查詢矩陣相應(yīng)的位置信息進(jìn)行掩碼,以將初始查詢矩陣和所述位置信息中的部分元素置為零,其中,所述部分元素與對應(yīng)于所述多個關(guān)鍵點(diǎn)風(fēng)格的關(guān)鍵點(diǎn)中的除第一關(guān)鍵點(diǎn)之外的關(guān)鍵點(diǎn)相應(yīng);將嵌入了掩碼后的位置信息的掩碼后的初始查詢矩陣、嵌入了掩碼后的位置信息的掩碼后的初始查詢矩陣和掩碼后的初始查詢矩陣作為第一個解碼器層的自注意力模塊的查詢矩陣、鍵矩陣和值矩陣輸入到第一解碼器層的自注意力模塊;將當(dāng)前解碼器層的自注意力模塊的輸出矩陣、所述記憶特征矩陣和掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)輸入到當(dāng)前解碼器層的可變形注意力模塊以獲得當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣,其中,當(dāng)前解碼器層的自注意力模塊的輸出矩陣和所述記憶特征矩陣為當(dāng)前解碼器層的可變形注意力模塊的查詢矩陣和值矩陣,其中,輸入到第一解碼器層的可變形注意力模塊的掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)為基于所述掩碼矩陣對基于初始查詢矩陣獲得的初始關(guān)鍵點(diǎn)坐標(biāo)進(jìn)行掩碼獲得的關(guān)鍵點(diǎn)坐標(biāo),其中,掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)通過所述掩碼模塊基于所述掩碼矩陣對上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)中的部分元素置零獲得,其中,所述部分元素與對應(yīng)于所述多個關(guān)鍵點(diǎn)風(fēng)格的關(guān)鍵點(diǎn)中的除第一關(guān)鍵點(diǎn)之外的關(guān)鍵點(diǎn)相應(yīng);基于所述掩碼矩陣?yán)卯?dāng)前解碼器層的下一解碼器層的掩碼模塊將當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣和與當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣相應(yīng)的位置信息進(jìn)行掩碼以使得當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣和與當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣相應(yīng)的位置信息中的部分元素置零,其中,所述部分元素與對應(yīng)于所述多個關(guān)鍵點(diǎn)風(fēng)格的關(guān)鍵點(diǎn)中的除第一關(guān)鍵點(diǎn)之外的關(guān)鍵點(diǎn)相應(yīng);將掩碼后的當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣、嵌入了掩碼后的位置信息的掩碼后的當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣和嵌入了掩碼后的位置信息的當(dāng)前解碼器層的可變形注意力模塊的掩碼后的輸出矩陣作為下一解碼器層的自注意力模塊的值矩陣、查詢矩陣和鍵矩陣輸入到下一解碼器層的自注意力模塊;以及將當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣以及掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)輸入到當(dāng)前解碼器層的關(guān)鍵點(diǎn)坐標(biāo)預(yù)測模塊以獲得當(dāng)前解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo),其中,所述至少一個解碼器層中的最后一個解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)作為最終的第一關(guān)鍵點(diǎn)的坐標(biāo)。
6、根據(jù)本公開的實(shí)施例,通過執(zhí)行掩碼操作,可以獲取的用戶指定風(fēng)格的關(guān)鍵點(diǎn)的坐標(biāo)。
7、可選地,每個解碼器層的自注意力模塊的輸出矩陣qe通過以下公式獲得:
8、
9、其中,表示輸出矩陣qe中的第i個行向量,αij表示對輸入到自注意力模塊的查詢矩陣的第i個行向量與輸入到自注意力模塊的鍵矩陣的第j個行向量的點(diǎn)積執(zhí)行歸一化獲得的注意力權(quán)重,qj表示掩碼后的初始查詢矩陣或掩碼后的上一解碼器層的可變形注意力模塊的輸出矩陣中的第j個行向量。
10、根據(jù)本公開的實(shí)施例,自注意力模塊學(xué)習(xí)關(guān)鍵點(diǎn)之間的結(jié)構(gòu)依賴性。該信息對于關(guān)鍵點(diǎn)定位是重要的,從而提高關(guān)鍵點(diǎn)坐標(biāo)的預(yù)測準(zhǔn)確度
11、可選地,每個解碼器層的可變形注意力模塊的輸出矩陣qd通過以下公式獲得:
12、
13、其中,fi表示qd中第i個關(guān)鍵點(diǎn)的更新的特征,βik表示對輸入到可變形注意力模塊的查詢矩陣執(zhí)行全連接操作和softmax操作而獲得的注意力權(quán)重,xik表示所述記憶特征矩陣中的與第k個參考點(diǎn)坐標(biāo)相應(yīng)的特征,其中,第k個參考點(diǎn)坐標(biāo)與掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)中的第i個關(guān)鍵點(diǎn)坐標(biāo)之間的位置偏移是通過對輸入到可變形注意力模塊的查詢矩陣執(zhí)行全連接操作得到的,其中,k為預(yù)設(shè)值。
14、可變形注意力模塊不是計(jì)算自注意力模塊的輸出矩陣中的每個元素與記憶特征矩陣之間的關(guān)系,而是僅關(guān)注通過根據(jù)上一層解碼器層預(yù)測的關(guān)鍵點(diǎn)坐標(biāo)對記憶特征進(jìn)行采樣而獲得的一小組特征,這極大地減少了特征搜索的面積,從而加快了模型的收斂速度。
15、可選地,每個解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)通過以下公式獲得:
16、y=σ(yo+σ-1(yr))
17、其中,y表示當(dāng)前解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo),yr表示掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo),yo指示y相對于yr的偏移。
18、根據(jù)本公開示例性實(shí)施例的一個方面,提供了一種檢測人臉圖像的關(guān)鍵點(diǎn)的裝置,包括:編碼器,被配置為通過卷積神經(jīng)網(wǎng)絡(luò)層獲取所述人臉圖像的多級特征圖,通過全連接層將所述多級特征圖中的最后一級特征圖進(jìn)行全連接以獲取初始查詢矩陣,并通過對多級特征圖進(jìn)行展平和連接操作獲取記憶特征矩陣;解碼器,包括級聯(lián)的至少一個解碼器層,其中,所述至少一個解碼器層被配置為基于用于指定多個關(guān)鍵點(diǎn)風(fēng)格中的至少一個關(guān)鍵點(diǎn)風(fēng)格的用戶輸入、記憶特征矩陣和初始查詢矩陣,確定所述人臉圖像的與所述至少一個關(guān)鍵點(diǎn)風(fēng)格相應(yīng)的關(guān)鍵點(diǎn)的坐標(biāo)。
19、可選地,每個解碼器層包括級聯(lián)的掩碼模塊、自注意力模塊、可變形注意力模塊和關(guān)鍵點(diǎn)坐標(biāo)預(yù)測塊,以及其中,所述解碼器被配置為:基于所述用戶輸入指定的所述多個關(guān)鍵點(diǎn)風(fēng)格中的所述至少一個關(guān)鍵點(diǎn)風(fēng)格,獲得所述至少一個關(guān)鍵點(diǎn)對應(yīng)的掩碼矩陣;以及基于所述掩碼矩陣,對輸入到所述自注意力模塊的查詢矩陣、鍵矩陣和值矩陣進(jìn)行掩碼,以用于預(yù)測第一關(guān)鍵點(diǎn)的坐標(biāo)。
20、可選地,初始查詢矩陣中元素的數(shù)量等于n,n指示所述多個關(guān)鍵點(diǎn)風(fēng)格中的各關(guān)鍵點(diǎn)風(fēng)格對應(yīng)的關(guān)鍵點(diǎn)的數(shù)量之和;其中,所述解碼器被配置為:基于所述掩碼矩陣?yán)玫谝唤獯a器層的掩碼模塊將初始查詢矩陣、與初始查詢矩陣相應(yīng)的位置信息進(jìn)行掩碼,以將初始查詢矩陣和所述位置信息中的部分元素置為零,其中,所述部分元素與對應(yīng)于所述多個關(guān)鍵點(diǎn)風(fēng)格的關(guān)鍵點(diǎn)中的除第一關(guān)鍵點(diǎn)之外的關(guān)鍵點(diǎn)相應(yīng);將嵌入了掩碼后的位置信息的掩碼后的初始查詢矩陣、嵌入了掩碼后的位置信息的掩碼后的初始查詢矩陣和掩碼后的初始查詢矩陣作為第一個解碼器層的自注意力模塊的查詢矩陣、鍵矩陣和值矩陣輸入到第一解碼器層的自注意力模塊;將當(dāng)前解碼器層的自注意力模塊的輸出矩陣、所述記憶特征矩陣和掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)輸入到當(dāng)前解碼器層的可變形注意力模塊以獲得當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣,其中,當(dāng)前解碼器層的自注意力模塊的輸出矩陣和所述記憶特征矩陣為當(dāng)前解碼器層的可變形注意力模塊的查詢矩陣和值矩陣,其中,輸入到第一解碼器層的可變形注意力模塊的掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)為基于所述掩碼矩陣對基于初始查詢矩陣獲得的初始關(guān)鍵點(diǎn)坐標(biāo)進(jìn)行掩碼獲得的關(guān)鍵點(diǎn)坐標(biāo),其中,掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)通過所述掩碼模塊基于所述掩碼矩陣對上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)中的部分元素置零獲得,其中,所述部分元素與對應(yīng)于所述多個關(guān)鍵點(diǎn)風(fēng)格的關(guān)鍵點(diǎn)中的除第一關(guān)鍵點(diǎn)之外的關(guān)鍵點(diǎn)相應(yīng);基于所述掩碼矩陣?yán)卯?dāng)前解碼器層的下一解碼器層的掩碼模塊將當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣和與當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣相應(yīng)的位置信息進(jìn)行掩碼以使得當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣和與當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣相應(yīng)的位置信息中的部分元素置零,其中,所述部分元素與對應(yīng)于所述多個關(guān)鍵點(diǎn)風(fēng)格的關(guān)鍵點(diǎn)中的除第一關(guān)鍵點(diǎn)之外的關(guān)鍵點(diǎn)相應(yīng);將掩碼后的當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣、嵌入了掩碼后的位置信息的掩碼后的當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣和嵌入了掩碼后的位置信息的當(dāng)前解碼器層的可變形注意力模塊的掩碼后的輸出矩陣作為下一解碼器層的自注意力模塊的值矩陣、查詢矩陣和鍵矩陣輸入到下一解碼器層的自注意力模塊;以及將當(dāng)前解碼器層的可變形注意力模塊的輸出矩陣以及掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)輸入到當(dāng)前解碼器層的關(guān)鍵點(diǎn)坐標(biāo)預(yù)測模塊以獲得當(dāng)前解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo),其中,所述至少一個解碼器層中的最后一個解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)作為最終的第一關(guān)鍵點(diǎn)的坐標(biāo)。
21、可選地,每個解碼器層的自注意力模塊的輸出矩陣qe通過以下公式獲得:
22、
23、其中,表示輸出矩陣qe中的第i個行向量,αij表示對輸入到自注意力模塊的查詢矩陣的第i個行向量與輸入到自注意力模塊的鍵矩陣的第j個行向量的點(diǎn)積執(zhí)行歸一化獲得的注意力權(quán)重,qj表示掩碼后的初始查詢矩陣或掩碼后的上一解碼器層的可變形注意力模塊的輸出矩陣中的第j個行向量。
24、可選地,每個解碼器層的可變形注意力模塊的輸出矩陣qd通過以下公式獲得:
25、
26、其中,fi表示qd中第i個關(guān)鍵點(diǎn)的更新的特征,βik表示對輸入到可變形注意力模塊的查詢矩陣執(zhí)行全連接操作和softmax操作而獲得的注意力權(quán)重,xik表示所述記憶特征矩陣中的與第k個參考點(diǎn)坐標(biāo)相應(yīng)的特征,其中,第k個參考點(diǎn)坐標(biāo)與掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)中的第i個關(guān)鍵點(diǎn)坐標(biāo)之間的位置偏移是通過對輸入到可變形注意力模塊的查詢矩陣執(zhí)行全連接操作得到的,其中,k為預(yù)設(shè)值。
27、可選地,每個解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo)通過以下公式獲得:
28、y=σ(yo+σ-1(yr))
29、其中,y表示當(dāng)前解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo),yr表示掩碼后的上一解碼器層預(yù)測的第一關(guān)鍵點(diǎn)的坐標(biāo),yo指示y相對于yr的偏移。
30、根據(jù)本公開的實(shí)施例,提供了一種存儲有計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲介質(zhì),其中,當(dāng)所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的檢測人臉圖像的關(guān)鍵點(diǎn)坐標(biāo)的方法。