本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種圖像分類方法、裝置和計(jì)算設(shè)備。
背景技術(shù):
數(shù)碼設(shè)備的快速發(fā)展極大地改變了人們的生活。拍照變得越來越方便,相應(yīng)地,存儲(chǔ)的照片也越來越多,如何高效地對(duì)照片進(jìn)行管理成為一個(gè)現(xiàn)實(shí)問題。例如,當(dāng)存儲(chǔ)的照片很多時(shí),用戶需要按照照片中出現(xiàn)的人臉對(duì)照片進(jìn)行分類,即將出現(xiàn)同一個(gè)人的照片歸為同一類,以便于管理。
照片的歸類可以通過聚類算法來實(shí)現(xiàn)。然而,經(jīng)典的無監(jiān)督聚類算法(例如kmeans)往往需要人為指定聚類的類簇?cái)?shù)量和類簇中心的初值,這在基于人臉的照片自動(dòng)分類的應(yīng)用情景中并不適用。而其他不需要指定類簇?cái)?shù)量的聚類算法,例如DBSCAN算法,雖然能夠?qū)崿F(xiàn)自動(dòng)分類,但是其是一種基于密度的聚類算法,需要預(yù)先將鄰域半徑設(shè)定為一個(gè)固定的值。聚類結(jié)果對(duì)鄰域半徑的值很敏感,當(dāng)數(shù)據(jù)點(diǎn)的密度分布不均勻時(shí)(如圖1所示),會(huì)大大降低算法的聚類效果。此外,對(duì)應(yīng)于人臉特征的聚類,不同人的人臉特征有很大差異,使用固定的鄰域半徑往往容易造成兩種情況:過大的鄰域半徑容易將不同的人歸為一類,過小的鄰域半徑容易造成本應(yīng)被分為同一類的照片被判定為離群或者分為多個(gè)類。此外,DBSCAN算法“先聚先得”的邊界點(diǎn)劃分規(guī)則也使得邊界點(diǎn)的劃分情況不明確,容易出現(xiàn)錯(cuò)誤劃分。
直接使用DBSCAN算法得到的照片分類結(jié)果往往不理想。而現(xiàn)有的對(duì)DBSCAN算法的改進(jìn)中大多需要人為干預(yù),例如,通過多次嘗試,將鄰域半徑設(shè)置為一個(gè)最優(yōu)值來解決聚類結(jié)果對(duì)鄰域半徑敏感的問題,或人為劃定邊界數(shù)據(jù)所屬的類別。這些方法加大了用戶的使用負(fù)擔(dān),降低了用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
為此,本發(fā)明提供一種圖像分類方法、裝置和計(jì)算設(shè)備,以力圖解決或至少緩解上面存在的問題。
根據(jù)本發(fā)明的一個(gè)方面,提供一種圖像分類方法,在計(jì)算設(shè)備中執(zhí)行,適于根據(jù)圖像中的人臉對(duì)圖像進(jìn)行分類,該方法包括:獲取待分類的多個(gè)圖像;識(shí)別每個(gè)圖像中的人臉,每個(gè)人臉對(duì)應(yīng)一個(gè)人臉特征向量;采用基于第一鄰域半徑的DBSCAN算法對(duì)人臉特征向量進(jìn)行聚類,得到第一聚類結(jié)果;根據(jù)第二鄰域半徑對(duì)第一聚類結(jié)果中的類簇進(jìn)行合并,得到第二聚類結(jié)果,其中,第二鄰域半徑大于第一鄰域半徑;若第二聚類結(jié)果中包括離群點(diǎn),則根據(jù)第三鄰域半徑對(duì)離群點(diǎn)進(jìn)行歸類,得到第三聚類結(jié)果,其中,第三鄰域半徑大于第一鄰域半徑;根據(jù)第三聚類結(jié)果對(duì)待分類的多個(gè)圖像進(jìn)行分類。
可選地,在根據(jù)本發(fā)明的圖像分類方法中,識(shí)別每個(gè)圖像中的人臉的步驟包括:檢測每個(gè)圖像的人臉區(qū)域,采用卷積神經(jīng)網(wǎng)絡(luò)模型提取所述人臉區(qū)域的人臉特征向量。
可選地,在根據(jù)本發(fā)明的圖像分類方法中,卷積神經(jīng)網(wǎng)絡(luò)模型的卷積核為16*16,人臉特征向量的維數(shù)為256。
可選地,在根據(jù)本發(fā)明的圖像分類方法中,在采用基于第一鄰域半徑的DBSCAN算法對(duì)人臉特征向量進(jìn)行聚類時(shí),兩個(gè)人臉特征向量的距離按照以下公式計(jì)算:
其中,d為人臉特征向量a、b的距離,‖‖表示求2-范數(shù)。
可選地,在根據(jù)本發(fā)明的圖像分類方法中,根據(jù)第二鄰域半徑對(duì)第一聚類結(jié)果中的類簇進(jìn)行合并的步驟包括:從第一類簇中取出第一數(shù)量的人臉特征向量,構(gòu)成第一向量集;從第二類簇中取出第二數(shù)量的人臉特征向量,構(gòu)成第二向量集;其中,所述第一類簇和第二類簇為第一聚類結(jié)果中的任意兩個(gè)類簇;分別計(jì)算第一向量集的每一個(gè)向量到第二向量集的每一個(gè)向量的距離;若距離小于第二鄰域半徑的向量對(duì)的數(shù)目與向量對(duì)總數(shù)的比值大于閾值,則合并第一類簇和第二類簇。
可選地,在根據(jù)本發(fā)明的圖像分類方法中,根據(jù)第三鄰域半徑對(duì)離群點(diǎn)進(jìn)行歸類的步驟包括:計(jì)算離群點(diǎn)與目標(biāo)類簇中的每一個(gè)人臉特征向量的距離,其中,所述目標(biāo)類簇為第二聚類結(jié)果中的任意一個(gè)類簇;若離群點(diǎn)僅與一個(gè)目標(biāo)類簇中的每一個(gè)人臉特征向量的距離均小于第三鄰域半徑,則將離群點(diǎn)歸類于該目標(biāo)類簇;若離群點(diǎn)與多個(gè)目標(biāo)類簇中的每一個(gè)人臉特征向量的距離均小于第三鄰域半徑,則將離群點(diǎn)歸類于平均距離最小的目標(biāo)類簇。
可選地,在根據(jù)本發(fā)明的圖像分類方法中,在根據(jù)第三聚類結(jié)果對(duì)待分類的多個(gè)圖像進(jìn)行分類的步驟之后,還包括:接收用戶對(duì)于圖像分類結(jié)果的反饋,并根據(jù)該反饋來調(diào)整圖像分類結(jié)果。
根據(jù)本發(fā)明的一個(gè)方面,提供一種圖像分類裝置,駐留于計(jì)算設(shè)備中,適于根據(jù)圖像中的人臉對(duì)圖像進(jìn)行分類,該裝置包括:讀取模塊,適于獲取待分類的多個(gè)圖像;人臉識(shí)別模塊,適于識(shí)別每個(gè)圖像中的人臉,每個(gè)人臉對(duì)應(yīng)一個(gè)人臉特征向量;第一聚類模塊,適于采用基于第一鄰域半徑的DBSCAN算法對(duì)人臉特征向量進(jìn)行聚類,得到第一聚類結(jié)果;第二聚類模塊,適于根據(jù)第二鄰域半徑對(duì)第一聚類結(jié)果中的類簇進(jìn)行合并,得到第二聚類結(jié)果,其中,第二鄰域半徑大于第一鄰域半徑;第三聚類模塊,適于在第二聚類結(jié)果中包括離群點(diǎn)時(shí),根據(jù)第三鄰域半徑對(duì)離群點(diǎn)進(jìn)行歸類,得到第三聚類結(jié)果,以及根據(jù)第三聚類結(jié)果對(duì)待分類的多個(gè)圖像進(jìn)行分類,其中,第三鄰域半徑大于第一鄰域半徑。
可選地,在根據(jù)本發(fā)明的圖像分類裝置中,人臉識(shí)別模塊進(jìn)一步適于:檢測每個(gè)圖像的人臉區(qū)域,采用卷積神經(jīng)網(wǎng)絡(luò)模型提取所述人臉區(qū)域的人臉特征向量。
可選地,在根據(jù)本發(fā)明的圖像分類裝置中,人臉識(shí)別模塊適于將所述卷積神經(jīng)網(wǎng)絡(luò)模型的卷積核設(shè)為16*16,人臉特征向量的維數(shù)為256。
可選地,在根據(jù)本發(fā)明的圖像分類裝置中,第一聚類模塊在采用基于第一鄰域半徑的DBSCAN算法對(duì)人臉特征向量進(jìn)行聚類時(shí),適于按照以下公式計(jì)算兩個(gè)人臉特征向量的距離:
其中,d為人臉特征向量a、b的距離,‖‖表示求2-范數(shù)。
可選地,在根據(jù)本發(fā)明的圖像分類裝置中,第二聚類模塊適于按照以下步驟對(duì)第一聚類結(jié)果中的類簇進(jìn)行合并:從第一類簇中取出第一數(shù)量的人臉特征向量,構(gòu)成第一向量集;從第二類簇中取出第二數(shù)量的人臉特征向量,構(gòu)成第二向量集;其中,所述第一類簇和第二類簇為第一聚類結(jié)果中的任意兩個(gè)類簇;分別計(jì)算第一向量集的每一個(gè)向量到第二向量集的每一個(gè)向量的距離;若距離小于第二鄰域半徑的向量對(duì)的數(shù)目與向量對(duì)總數(shù)的比值大于閾值,則合并第一類簇和第二類簇。
可選地,在根據(jù)本發(fā)明的圖像分類裝置中,第三聚類模塊適于按照以下步驟對(duì)離群點(diǎn)進(jìn)行歸類:計(jì)算離群點(diǎn)與目標(biāo)類簇中每一個(gè)人臉特征向量的距離,其中,所述目標(biāo)類簇為第二聚類結(jié)果中的任意一個(gè)類簇;若離群點(diǎn)僅與一個(gè)目標(biāo)類簇中每一個(gè)人臉特征向量的距離均小于第三鄰域半徑,則將離群點(diǎn)歸類于該目標(biāo)類簇;若離群點(diǎn)與多個(gè)目標(biāo)類簇中的每一個(gè)人臉特征向量的距離均小于第三鄰域半徑,則將離群點(diǎn)歸類于平均距離最小的目標(biāo)類簇。
可選地,在根據(jù)本發(fā)明的圖像分類裝置中,還包括修正模塊,適于在第三聚類模塊得出圖像分類結(jié)果后,接收用戶對(duì)于圖像分類結(jié)果的反饋,并根據(jù)該反饋來調(diào)整圖像分類結(jié)果。
根據(jù)本發(fā)明的一個(gè)方面,提供一種計(jì)算設(shè)備,包括如上所述的圖像分類裝置。
根據(jù)本發(fā)明的技術(shù)方案,識(shí)別出圖像中的人臉,每個(gè)人臉對(duì)應(yīng)于一個(gè)人臉特征向量,根據(jù)人臉特征向量的聚類結(jié)果來確定圖像的分類結(jié)果。
本發(fā)明采用多個(gè)鄰域半徑(即第一鄰域半徑、第二鄰域半徑和第三鄰域半徑)進(jìn)行分階段的聚類,有效地改進(jìn)了DBSCAN算法對(duì)鄰域半徑值敏感以及邊界點(diǎn)劃分不明確的缺點(diǎn),提高了分類的準(zhǔn)確率,降低了某些人臉特征向量被錯(cuò)誤離群(即該人臉特征向量未被歸屬于任何類簇)的概率。此外,在對(duì)人臉特征向量進(jìn)行聚類時(shí),基于兩個(gè)人臉特征向量的余弦相似度來確定兩向量的距離,使得兩向量距離的值域?yàn)閇0,1],因此也使得第一鄰域半徑的值域縮小為[0,1],相對(duì)于其他距離度量(例如歐氏距離,其值域?yàn)閇0,+∞])大大縮小了第一鄰域半徑eps1的取值范圍,在很大程度上緩解了DBSCAN算法對(duì)鄰域半徑值敏感的問題。
此外,本發(fā)明也可以接收用戶對(duì)于圖像分類結(jié)果的反饋,基于該反饋實(shí)時(shí)改進(jìn)聚類效果。
附圖說明
為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實(shí)踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。
圖1示出了一種不適用于DBSCAN算法的數(shù)據(jù)點(diǎn)的分布圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算設(shè)備100的結(jié)構(gòu)圖;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的圖像分類裝置200的結(jié)構(gòu)圖;以及
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的圖像分類方法300的流程圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算設(shè)備100的結(jié)構(gòu)圖。計(jì)算設(shè)備100可以是手機(jī)、平板電腦、個(gè)人數(shù)字助理(PDA)、個(gè)人媒體播放器設(shè)備、無線網(wǎng)絡(luò)瀏覽設(shè)備、裝置專用設(shè)備、或包括上面任何功能的混合設(shè)備。計(jì)算設(shè)備也可以是桌面計(jì)算機(jī)、筆記本電腦、服務(wù)器、工作站等設(shè)備。
如圖2所示,計(jì)算設(shè)備100中駐留有圖像分類裝置200,使得計(jì)算設(shè)備100能夠?qū)崿F(xiàn)圖像分類的功能。圖像分類裝置200可以作為搜索引擎的一個(gè)插件駐留于計(jì)算設(shè)備100的瀏覽器中,或作為一個(gè)獨(dú)立的軟件安裝于計(jì)算設(shè)備100中,本發(fā)明對(duì)圖像分類裝置200在計(jì)算設(shè)備100中的存在形式不做限制。
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的圖像分類裝置200的結(jié)構(gòu)圖。如圖3所示,圖像分類裝置200包括讀取模塊210、人臉識(shí)別模塊220、第一聚類模塊230、第二聚類模塊240和第三聚類模塊250。
讀取模塊210適于獲取待分類的多個(gè)圖像。
人臉識(shí)別模塊220適于識(shí)別每個(gè)圖像中的人臉,每個(gè)人臉對(duì)應(yīng)一個(gè)人臉特征向量。若圖像中僅有一個(gè)人臉,則識(shí)別出該人臉;若圖像中有多個(gè)人臉,則需要對(duì)該圖像中的每一個(gè)人臉均進(jìn)行識(shí)別。因此,一個(gè)圖像可以對(duì)應(yīng)于一個(gè)或多個(gè)人臉特征向量,而一個(gè)人臉特征向量唯一對(duì)應(yīng)于一個(gè)圖像。由于一個(gè)人臉特征向量唯一對(duì)應(yīng)于一個(gè)圖像,人臉特征向量的聚類情況即該人臉特征向量所對(duì)應(yīng)的圖像的分類情況。應(yīng)當(dāng)指出,在準(zhǔn)確分類的情況下,一個(gè)包含多個(gè)人臉的圖像會(huì)同時(shí)屬于多個(gè)類別。
根據(jù)一種實(shí)施例,人臉識(shí)別模塊220可以檢測每個(gè)圖像的人臉區(qū)域,并采用卷積神經(jīng)網(wǎng)絡(luò)模型提取該人臉區(qū)域的人臉特征向量。例如,卷積神經(jīng)網(wǎng)絡(luò)模型的卷積核為16*16,采用該卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)檢測到的人臉區(qū)域做卷積,可以得到一個(gè)16*16的人臉特征圖,將該特征圖轉(zhuǎn)化為向量,即為一個(gè)256維的人臉特征向量。
第一聚類模塊230適于采用基于第一鄰域半徑的DBSCAN算法對(duì)人臉特征向量進(jìn)行聚類,得到第一聚類結(jié)果。
DBSCAN算法是現(xiàn)有算法,其需要設(shè)置兩個(gè)參數(shù):鄰域半徑和密度閾值,為了敘述方便,將鄰域半徑記為eps,密度閾值記為minPts。DBSCAN算法中有以下幾個(gè)基本概念:
鄰域:某個(gè)點(diǎn)的鄰域半徑eps以內(nèi)的區(qū)域?yàn)樵擖c(diǎn)的鄰域。
核心點(diǎn):若某個(gè)點(diǎn)的鄰域內(nèi)所含的點(diǎn)的數(shù)目大于等于minPts,則該點(diǎn)為核心點(diǎn)。
邊界點(diǎn):若某個(gè)點(diǎn)位于核心點(diǎn)的鄰域中,但該點(diǎn)本身不是核心點(diǎn),則該點(diǎn)為邊界點(diǎn)。
離群點(diǎn):既不是核心點(diǎn)也不是邊界點(diǎn)的點(diǎn)。
直接密度可達(dá):若點(diǎn)q在點(diǎn)p的鄰域內(nèi),且點(diǎn)p為核心點(diǎn),則點(diǎn)q由點(diǎn)p處直接密度可達(dá)。
密度可達(dá):給定多個(gè)點(diǎn)p1,p2,p3,…,pn,p1=p,pn=q,若對(duì)于任意i∈[1,n-1],點(diǎn)p(i+1)由點(diǎn)pi處直接密度可達(dá),則點(diǎn)q由點(diǎn)p處密度可達(dá)。
密度相連:若點(diǎn)p和點(diǎn)q均從點(diǎn)o處密度可達(dá),則點(diǎn)p和點(diǎn)q密度相連。
DBSCAN的基本原理是,遍歷每一個(gè)點(diǎn),如果某個(gè)點(diǎn)的鄰域中的點(diǎn)的數(shù)目大于等于minPts,則該點(diǎn)為核心點(diǎn),以該點(diǎn)為中心建立一個(gè)包括該點(diǎn)和其鄰域中的點(diǎn)的類簇。如果一個(gè)類簇中有多個(gè)核心點(diǎn),則合并以這些核心點(diǎn)為中心的類簇,即找到最大的密度相連集合。
在判斷一個(gè)點(diǎn)是否為核心點(diǎn)時(shí),需要計(jì)算其他點(diǎn)到該點(diǎn)的距離,若有某個(gè)點(diǎn)a到該點(diǎn)的距離小于eps,則點(diǎn)a位于該點(diǎn)的鄰域中。顯然,為了實(shí)現(xiàn)基于DBSCAN算法的聚類,首先需要定義兩點(diǎn)距離的計(jì)算方式。對(duì)應(yīng)于本發(fā)明,即需要定義兩個(gè)人臉特征向量的距離的計(jì)算方式。根據(jù)一種實(shí)施例,第一聚類模塊230適于采用以下公式計(jì)算兩個(gè)人臉特征向量的距離:
其中,d為人臉特征向量a、b的距離,‖ ‖表示求2-范數(shù)。對(duì)于n維向量a=[x1,x2,…,xn],b=[y1,y2,…,yn],則a、b之間的距離d為:
由上述距離計(jì)算公式(1)、(2)可知,向量a、b越相似,其夾角余弦越大,相應(yīng)地,其距離d越小。此外,基于上述公式,兩個(gè)人臉特征向量的距離的值域?yàn)閇0,1],因此也使得第一鄰域半徑eps1的值域縮小為[0,1],相對(duì)于其他距離度量(例如歐氏距離,其值域?yàn)閇0,+∞])大大縮小了第一鄰域半徑eps1的取值范圍,在很大程度上緩解了DBSCAN算法對(duì)鄰域半徑值敏感的問題。
基于上述人臉特征向量的距離計(jì)算公式,第一聚類模塊230適于將第一鄰域半徑eps1設(shè)置為一個(gè)[0,1]之間的數(shù)。根據(jù)一種實(shí)施例,為了使本發(fā)明的分階段的聚類方法更準(zhǔn)確,將eps1設(shè)置為一個(gè)較小的數(shù),例如0.2。當(dāng)然,在其他的實(shí)施例中,也可以將eps1設(shè)置為其他數(shù)值,本發(fā)明對(duì)eps1的取值并無限制,本領(lǐng)域技術(shù)人員可以按需求自行設(shè)置eps1的值,只要其位于[0,1]即可。
第一聚類模塊230還適于設(shè)置minPts的值。根據(jù)一種實(shí)施例,minPts的值可以根據(jù)待分類的圖片的數(shù)目進(jìn)行確定。應(yīng)當(dāng)指出,本發(fā)明對(duì)minPts的設(shè)置方法并無限制。
基于已設(shè)置好的第一鄰域半徑eps1和密度閾值minPts,第一聚類模塊230采用DBSCAN算法對(duì)人臉特征向量進(jìn)行聚類,得到第一聚類結(jié)果。一般來說,第一聚類結(jié)果中包括多個(gè)類簇和多個(gè)離群點(diǎn)。
在第一聚類模塊230得出第一聚類結(jié)果后,由第二聚類模塊240對(duì)第一聚類結(jié)果進(jìn)行處理,即進(jìn)行第二階段的聚類。第二聚類模塊240適于根據(jù)第二鄰域半徑eps2對(duì)第一聚類結(jié)果中的類簇進(jìn)行合并,得到第二聚類結(jié)果,其中,eps2>eps1。
根據(jù)一種實(shí)施例,第二聚類模塊240從第一聚類結(jié)果的多個(gè)類簇中隨機(jī)選出兩個(gè)類簇,為了敘述方便,將這兩個(gè)類簇分別記為第一類簇、第二類簇。從第一類簇中取出第一數(shù)量的人臉特征向量,構(gòu)成第一向量集C={c1,c2,...,cm},m為第一數(shù)量;從第二類簇中取出第二數(shù)量的人臉特征向量,構(gòu)成第二向量集E={e1,e2,…,en},n為第二數(shù)量。第二聚類模塊240可以采用隨機(jī)抽取的方式從類簇中取出向量來構(gòu)成向量集,也可以采用其他算法來取出向量以構(gòu)成向量集,本發(fā)明對(duì)向量的抽取方式不做限制。第一數(shù)量和第二數(shù)量的值可以相同,也可以不同。根據(jù)一種實(shí)施例,分別從第一類簇、第二類簇中取出相同數(shù)量的人臉特征向量構(gòu)成第一向量集、第二向量集,第一數(shù)量和第二數(shù)量的值相同。根據(jù)另一種實(shí)施例,分別從第一類簇、第二類簇中抽取相同比例的人臉特征向量,這時(shí)第一數(shù)量和第二數(shù)量的值不一定相同。例如,第一類簇中有10個(gè)向量,第二類簇中有15個(gè)向量,分別從兩個(gè)類簇中取出40%的向量,則第一數(shù)量為10*0.4=4,第二數(shù)量為15*0.4=6。當(dāng)然,也可以采用其他方法來確定第一數(shù)量、第二數(shù)量的值,本發(fā)明對(duì)第一數(shù)量、第二數(shù)量的取值并無限制。
隨后,第二聚類模塊240分別計(jì)算第一向量集中的每一個(gè)向量到第二向量集中的每一個(gè)向量的距離。若距離小于eps2的向量對(duì)的數(shù)目與向量對(duì)總數(shù)的比值大于閾值,則合并第一類簇和第二類簇。上述過程相當(dāng)于:分別將第一向量集C中的每一個(gè)人臉特征向量與第二向量集E中的每一個(gè)人臉特征向量進(jìn)行配對(duì),得到(m*n)個(gè)向量對(duì)(ci,ej),其中,1≤i≤m,1≤j≤n;分別計(jì)算每個(gè)向量對(duì)中的兩個(gè)人臉特征向量的距離;若距離小于第二鄰域半徑的向量對(duì)的數(shù)量與(m*n)的比值大于閾值,則合并第一類簇和第二類簇。
例如,第一類簇={向量1;向量2;向量3;向量4},第二類簇={向量5;向量6;向量7;向量8;向量9;向量10},隨機(jī)從兩個(gè)類簇中取出50%向量,得到第一向量集C={向量1,向量2},第二向量集E={向量6;向量8;向量9},第一數(shù)量m=2,第二數(shù)量n=3。分別計(jì)算(向量1,向量6)、(向量1,向量8)、(向量1,向量9)、(向量2,向量6)、(向量2,向量8)、(向量2,向量9)的距離,若(距離小于eps2的向量對(duì)的數(shù)目/(2*3))>閾值,則合并第一類簇和第二類簇,得到新的類簇{向量1;向量2;…;向量10}。
在第二聚類模塊240得到第二聚類結(jié)果后,由第三聚類模塊250對(duì)第二聚類結(jié)果進(jìn)行處理,即進(jìn)行第三階段的聚類。第三聚類模塊250適于在第二聚類結(jié)果中包括離群點(diǎn)時(shí),根據(jù)第三鄰域半徑eps3對(duì)離群點(diǎn)進(jìn)行歸類,得到第三聚類結(jié)果,以及根據(jù)第三聚類結(jié)果對(duì)待分類的多個(gè)圖像進(jìn)行分類,其中,eps3>eps1。
根據(jù)一種實(shí)施例,對(duì)于某個(gè)離群點(diǎn),第三聚類模塊250適于分別計(jì)算該離群點(diǎn)與第二聚類結(jié)果的每個(gè)類簇中的各向量的距離。若該離群點(diǎn)與某個(gè)類簇中每一個(gè)人臉特征向量的距離均小于eps3,則將該離群點(diǎn)歸類于該類簇。在實(shí)際應(yīng)用中,可能會(huì)出現(xiàn)有多個(gè)類簇均滿足要求的情況,即某個(gè)離群點(diǎn)與多個(gè)類簇中的每一個(gè)人臉特征向量的距離均小于eps3。這時(shí),根據(jù)一種實(shí)施例,將離群點(diǎn)歸類于平均距離最小的類簇。例如,eps3=0.5,某個(gè)離群點(diǎn)p與類簇①中的三個(gè)向量的距離分別為0.1、0.1、0.4,與類簇②中的兩個(gè)向量的距離分別為0.3、0.4,離群點(diǎn)p到類簇①中各向量的平均距離為(0.1+0.1+0.4)/3=0.2,離群點(diǎn)p到類簇②中各向量的平均距離為(0.3+0.4)/2=0.35,離群點(diǎn)p到類簇①中各向量的平均距離更小,因此將離群點(diǎn)p歸類于類簇①。
根據(jù)另一種實(shí)施例,當(dāng)存在多個(gè)滿足要求的類簇時(shí),也可以采用“先到先得”的思想,將該離群點(diǎn)歸類于最先檢測出的滿足要求的類簇。例如,eps3=0.5,首先檢測出離群點(diǎn)p與類簇①中的三個(gè)向量的距離分別為0.1、0.1、0.4,距離均小于eps3,則類簇①是一個(gè)滿足要求的類簇,將離群點(diǎn)p歸類于類簇①。基于“先到先得”的原則,在首次檢測到滿足要求的類簇①時(shí),離群點(diǎn)p就已經(jīng)被歸類,后續(xù)也不再繼續(xù)檢驗(yàn)是否還存在滿足要求的其他類簇,即使存在其他滿足要求的類簇,第三聚類模塊250也不會(huì)再針對(duì)離群點(diǎn)p進(jìn)行檢測或重新歸類。
當(dāng)然,在存在多個(gè)滿足要求的類簇時(shí),還可以采用除上述兩種實(shí)施例之外的方式來確定離群點(diǎn)的歸屬,本發(fā)明對(duì)此并無限制。
在第三聚類模塊250完成所有離群點(diǎn)的歸類后,得到第三聚類結(jié)果,并根據(jù)第三聚類結(jié)果對(duì)待分類的多個(gè)圖像進(jìn)行分類。第三聚類結(jié)果是人臉特征向量的聚類結(jié)果,由于每一個(gè)人臉特征向量均唯一對(duì)應(yīng)于一個(gè)圖像,因此,第三聚類結(jié)果所指示的人臉特征向量的聚類情況即為該人臉特征向量所對(duì)應(yīng)的圖像的分類結(jié)果。
根據(jù)一種實(shí)施例,圖像分類裝置200還包括修正模塊260(圖3中未示出),適于在第三聚類模塊250得出圖像分類結(jié)果后,接收用戶對(duì)圖像分類結(jié)果的反饋,并根據(jù)該反饋來調(diào)整圖像分類結(jié)果。例如,用戶可能將圖像分類結(jié)果中的某兩個(gè)圖像類別①和②進(jìn)行合并,得到類別③,那么第三聚類模塊250將接受用戶的上述修改,并且在以后的圖像分類過程中,若新增的待分類圖像與類別①或類別②相似(即新增圖像中的人臉特征向量到類別①中的所有向量的距離均小于eps3或新增圖像中的人臉特征向量到類別②中的所有向量的距離均小于eps3),則將該圖像歸類于類別③,直至用戶做出新的修改。又例如,用戶可能將某幅分類錯(cuò)誤的圖像移動(dòng)到另一個(gè)類別,第三聚類模塊250將接受用戶的上述修改,并且在下次聚類時(shí),被移動(dòng)的圖像將始終屬于用戶所指定的類別,直至用戶做出新的修改。若用戶僅將某幅圖像從某個(gè)類別中刪除,則第三聚類模塊250將接受用戶的刪除,并且在下次圖像分類時(shí),這幅圖像將不會(huì)再被劃分為任何類別,直至用戶做出新的修改。
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的圖像分類方法300的流程圖。如圖4所示,該方法始于步驟S310。
在步驟S310中,獲取待分類的多個(gè)圖像。
隨后,在步驟S320中,識(shí)別每個(gè)圖像中的人臉,每個(gè)人臉對(duì)應(yīng)一個(gè)人臉特征向量。
根據(jù)一種實(shí)施例,為了實(shí)現(xiàn)人臉識(shí)別,首先檢測每個(gè)圖像的人臉區(qū)域,隨后采用卷積神經(jīng)網(wǎng)絡(luò)模型提取所述人臉區(qū)域的人臉特征向量。根據(jù)一種實(shí)施例,卷積神經(jīng)網(wǎng)絡(luò)模型的卷積核為16*16,相應(yīng)地,人臉特征向量的維數(shù)為256。
隨后,在步驟S330中,采用基于第一鄰域半徑的DBSCAN算法對(duì)人臉特征向量進(jìn)行聚類,得到第一聚類結(jié)果。步驟S330的具體實(shí)施過程可以參考前述對(duì)第一聚類模塊230的描述,此處不再贅述。
隨后,在步驟S340中,根據(jù)第二鄰域半徑對(duì)第一聚類結(jié)果中的類簇進(jìn)行合并,得到第二聚類結(jié)果,其中,第二鄰域半徑>第一鄰域半徑。步驟S340的具體實(shí)施過程可以參考前述對(duì)第二聚類模塊240的描述,此處不再贅述。
隨后,在步驟S350中,若第二聚類結(jié)果中包括離群點(diǎn),則根據(jù)第三鄰域半徑對(duì)離群點(diǎn)進(jìn)行歸類,得到第三聚類結(jié)果,其中,第三鄰域半徑>第一鄰域半徑。
隨后,在步驟S360中,根據(jù)第三聚類結(jié)果對(duì)待分類的多個(gè)圖像進(jìn)行分類。步驟S350及步驟S360的具體實(shí)施過程可以參考前述對(duì)第三聚類模塊250的描述,此處不再贅述。
根據(jù)一種實(shí)施例,在步驟S360后,還包括步驟S370(圖4中未示出)。在步驟S370中,接收用戶對(duì)于圖像分類結(jié)果的反饋,并根據(jù)該反饋來調(diào)整圖像分類結(jié)果。步驟S370的具體實(shí)施過程可以參考前述對(duì)修正模塊260的描述,此處不再贅述。
A6:A4或5所述的圖像分類方法,其中,所述根據(jù)第三鄰域半徑對(duì)離群點(diǎn)進(jìn)行歸類的步驟包括:計(jì)算離群點(diǎn)與目標(biāo)類簇中的每一個(gè)人臉特征向量的距離,其中,所述目標(biāo)類簇為第二聚類結(jié)果中的任意一個(gè)類簇;若離群點(diǎn)僅與一個(gè)目標(biāo)類簇中的每一個(gè)人臉特征向量的距離均小于第三鄰域半徑,則將離群點(diǎn)歸類于該目標(biāo)類簇;若離群點(diǎn)與多個(gè)目標(biāo)類簇中的每一個(gè)人臉特征向量的距離均小于第三鄰域半徑,則將離群點(diǎn)歸類于平均距離最小的目標(biāo)類簇。
A7:A1所述的圖像分類方法,其中,在所述根據(jù)第三聚類結(jié)果對(duì)待分類的多個(gè)圖像進(jìn)行分類的步驟之后,還包括:接收用戶對(duì)于圖像分類結(jié)果的反饋,并根據(jù)該反饋來調(diào)整圖像分類結(jié)果。
B12:B11所述的圖像分類裝置,其中,所述第二聚類模塊適于按照以下步驟對(duì)第一聚類結(jié)果中的類簇進(jìn)行合并:從第一類簇中取出第一數(shù)量的人臉特征向量,構(gòu)成第一向量集;從第二類簇中取出第二數(shù)量的人臉特征向量,構(gòu)成第二向量集;其中,所述第一類簇和第二類簇為第一聚類結(jié)果中的任意兩個(gè)類簇;分別計(jì)算第一向量集的每一個(gè)向量到第二向量集的每一個(gè)向量的距離;若距離小于第二鄰域半徑的向量對(duì)的數(shù)目與向量對(duì)總數(shù)的比值大于閾值,則合并第一類簇和第二類簇。
B13:B11或12所述的圖像分類裝置,其中,所述第三聚類模塊適于按照以下步驟對(duì)離群點(diǎn)進(jìn)行歸類:計(jì)算離群點(diǎn)與目標(biāo)類簇中每一個(gè)人臉特征向量的距離,其中,所述目標(biāo)類簇為第二聚類結(jié)果中的任意一個(gè)類簇;若離群點(diǎn)僅與一個(gè)目標(biāo)類簇中每一個(gè)人臉特征向量的距離均小于第三鄰域半徑,則將離群點(diǎn)歸類于該目標(biāo)類簇;若離群點(diǎn)與多個(gè)目標(biāo)類簇中的每一個(gè)人臉特征向量的距離均小于第三鄰域半徑,則將離群點(diǎn)歸類于平均距離最小的目標(biāo)類簇。
B14:B8所述的圖像分類裝置,其中,還包括修正模塊,適于在第三聚類模塊得出圖像分類結(jié)果后,接收用戶對(duì)于圖像分類結(jié)果的反饋,并根據(jù)該反饋來調(diào)整圖像分類結(jié)果。
在此處所提供的說明書中,算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與本發(fā)明的示例一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對(duì)象僅僅表示涉及類似對(duì)象的不同實(shí)例,并且并不意圖暗示這樣被描述的對(duì)象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對(duì)于本發(fā)明的范圍,對(duì)本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。