本發(fā)明涉及一種基于遺傳變異改進蟻群分類的姿態(tài)圖像識別方法,屬于圖像識別
技術(shù)領(lǐng)域:
。
背景技術(shù):
:許多螞蟻種群都會有群落分類育雛以及分類食物或者尸體的行為。觀察者們經(jīng)過長期的觀察發(fā)現(xiàn),有些螞蟻種群還能自發(fā)的將不同發(fā)育時期的幼蟲安排在同心圓上,剛孵化不久的螞蟻幼蟲被放在中心,獲得較少的空間,大的幼蟲放在同心圓上,獲得更大的空間,按這樣同心簇的方式一層一層組織起來。螞蟻所表現(xiàn)出來的復(fù)雜群體行為一直受到人們的廣泛關(guān)注。生物學家經(jīng)過大量的實驗發(fā)現(xiàn),螞蟻可以通過感知和釋放信息素來實現(xiàn)信息交流,并以此來分類它們的幼蟲和堆積它們的食物。在求解分類問題的時候,正是螞蟻這種特有的分類行為引發(fā)了人們的探索靈感。在進行人體姿態(tài)圖像識別過程中,首先是要識別人體是處于一種什么姿態(tài),是站著、坐著還是躺著,這實際上是一種分類。如圖1-圖4所示,蟻群分類幼體屬于分類行為,螞蟻可以在沒有任何全局性指導的環(huán)境下進行分類。在模型中,將人體姿態(tài)圖像識別問題轉(zhuǎn)化為蟻群在二維的網(wǎng)格中隨意移動并搬運物體問題。每只螞蟻在行進過程中都會在沿途留下信息素,螞蟻群落趨向于向信息素聚集的地方行進,這是一種正反饋。模型經(jīng)過螞蟻個體間、螞蟻和外部環(huán)境之間的相互作用與反作用,形成了自組織分類,在人體姿態(tài)圖像識別問題中可以得到成功應(yīng)用。該算法的程序流程圖如圖5所示。參數(shù)調(diào)試如下,其中r代表螞蟻數(shù),t_max代表迭代次數(shù)的最大值。表1蟻群分類算法參數(shù)調(diào)試表rt_maxalltime(s)10100504312.1007101000450457.242410100003280068.52341010000022559670.74461001005210911.693210010004002547.26211001000019726359.8759100100000289623503.8當all=30710時,蟻群分類算法matlab仿真實驗結(jié)果1如圖6所示,易知,此時的分類效果還沒有達到最優(yōu),應(yīng)該進一步迭代。當all=18937時,結(jié)果如下:t=4017time=231.6215best_value=1.8517e+004index1=4161518213533index2=219203139414947index3=13581291114172225262832384042444851index4=306710132724292334363743454650蟻群分類算法matlab仿真實驗結(jié)果2如圖7所示。但是在人體姿態(tài)圖像識別過程中,傳統(tǒng)蟻群算法在解決姿態(tài)圖像識別問題的時候往往容易陷入局部最優(yōu),不能準確的進行識別。技術(shù)實現(xiàn)要素:本發(fā)明要解決的技術(shù)問題是:提供了一種聚類中心的偏離誤差小的基于遺傳變異改進蟻群分類的姿態(tài)圖像識別方法,解決了傳統(tǒng)蟻群算法在解決姿態(tài)圖像識別問題的時候往往容易陷入局部最優(yōu)的問題。為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是提供了一種基于遺傳變異改進蟻群分類的姿態(tài)圖像識別方法,其特征在于,包括以下步驟:步驟一:程序初始化,設(shè)置初始參數(shù);步驟二:信息素矩陣初始化;步驟三:根據(jù)信息素矩陣,確定螞蟻的行走路徑,并在信息素矩陣上做好標識;步驟四:根據(jù)路徑標識求出每一類的聚類中心;步驟五:計算各樣本到其他對應(yīng)的聚類中心的總體偏離誤差;步驟六:根據(jù)總體偏離誤差的大小,找到此時的最佳路徑;步驟七:產(chǎn)生隨機數(shù),根據(jù)隨機數(shù)的大小對最佳路徑進行變異;步驟八:計算新路徑下各樣本到其對應(yīng)的聚類中心的總體偏離誤差;步驟九:比較總體偏離的變化,若此時的總體偏離誤差減小,則新路徑為最佳路徑;步驟十:對信息素矩陣進行更新;步驟十一:在進行更新后,用新的信息素矩陣來進行路徑的判斷,不斷進行迭代,直到達到最大次數(shù)t_max,或者偏離誤差到達給定值。優(yōu)選地,所述的在信息素矩陣上做好標識是通過定義字符標識矩陣,用信息素的值確定分到哪一組,實現(xiàn)過程如下:首先判斷樣本中信息素的值與閾值的大小關(guān)系,若閾值q大于信息素的值,則取信息素最大的為作為路徑。優(yōu)選地,所述的聚類中心為該類的所有樣本當中各屬性的平均值;在二維格子上隨機分布一些數(shù)據(jù)向量,在觀察個地點周圍的一定范圍內(nèi)的nn條路徑時,螞蟻在一個方形區(qū)域內(nèi)移動,移動范圍是nn×nn個點,設(shè)螞蟻位于i位置時在t時刻,定義一個數(shù)據(jù)向量oi,在以螞蟻為中心的一定范圍內(nèi)向量oi的局部密度由如下公式來計算:在上式中,υ~u(1,vmax),vmax代表螞蟻的最大移動速度;通過局部密度可以求出聚類中心。優(yōu)選地,所述的總體偏離誤差為將各樣本到其聚類中心的歐幾里得距離(即歐氏距離)之和,總體偏離誤差可以通過兩個數(shù)據(jù)對象的相異度求出;對于數(shù)據(jù)類型為浮點型的向量,可以采用余弦距離來作為兩個數(shù)據(jù)對象的相異度公式,具體的定義方法如下:dcos(oi,oj)=1-sin(oi,oj)在上式中,用sin(oi,oj)來計算向量oi,oj之間的夾角,當他們之間相似度較高時,sin(oi,oj)的值接近1,則dcos(qi,oj)的值接近0。優(yōu)選地,所述的對信息素矩陣進行更新的具體方法是將原信息素值乘以(1-gac)作為新信息素,gac為信息素蒸發(fā)率,再加上最小偏差值rap的倒數(shù)。優(yōu)選地,所述的信息素設(shè)于人工蟻群背負的物體中,當物體被放置時,信息素也被傳遞到網(wǎng)格中,在一片固定區(qū)域中,信息素的含量增加,螞蟻放下物體的幾率會相應(yīng)增大。通過本發(fā)明的算法在求出初始分類即任務(wù)分配結(jié)果后,會通過遺傳變異機制產(chǎn)生隨機數(shù)進行變異,然后計算新分配下各人體姿態(tài)圖像樣本到其對應(yīng)聚類中心的距離偏差,如果偏差減小,則更新最優(yōu)解。在最大迭代次數(shù)相同的情況下,本發(fā)明的算法大大減小了與其聚類中心的偏離誤差,很好的解決了蟻群算法陷入局部最優(yōu)解的問題。本發(fā)明不但可以實現(xiàn)全局最優(yōu)方案,而且有著很好的魯棒性,容易與其他算法結(jié)合,可以進行較少的改進實現(xiàn)其他復(fù)雜問題。本發(fā)明采用正反饋機制,可以在很大程度上加快進化過程。本發(fā)明可以為人體姿態(tài)圖像識別問題提供有力的求解工具。附圖說明圖1為螞蟻行進過程中突然增加障礙物;圖2為螞蟻自主選擇各條路徑的示意圖(螞蟻自主選擇各條路徑的概率大小相同。在單位時間內(nèi),由于短路徑上的信息素濃度逐漸升高,該路徑上螞蟻數(shù)量增多);圖3為螞蟻選路過程示例;圖4為螞蟻找到最優(yōu)路徑示意圖;圖5為蟻群分類算法流程圖;圖6為蟻群分類算法仿真實驗結(jié)果1;圖7為蟻群分類算法仿真實驗結(jié)果2;圖8為基于遺傳變異改進蟻群分類算法的流程圖;圖9為人體姿態(tài)圖像識別結(jié)果圖。具體實施方式為使本發(fā)明更明顯易懂,茲以優(yōu)選實施例,并配合附圖作詳細說明如下。下面結(jié)合具體實施例,進一步闡述本發(fā)明。應(yīng)理解,這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限定的范圍。本發(fā)明為一種基于遺傳變異改進蟻群分類的姿態(tài)圖像識別方法,基于螞蟻分類幼體的分類分析模型,主要是把位于稀疏區(qū)域的物體轉(zhuǎn)移到另一個具有更多同樣類型物體的區(qū)域。首先假設(shè)實驗只有一種物體,這種物體在二維格子上面隨機分布,每個格子上只有一個物體,螞蟻在二維格子上面也是隨機分布,并且每次沿著任意隨機方向移動一格。在移動完成后,如果所在位置格點有物體的話,沒有任何負擔的螞蟻可能會撿起物體,撿起的概率用pj表示,如下:式中,μ代表螞蟻感覺到的在它周圍的物體數(shù),且β1>0。當螞蟻周圍有少量物體時,即μ<<β1,則pj接近于1;說明螞蟻拾起物體的概率較大;如果有許多物體在螞蟻附近時,μ>>β1,則pj≈0,說明螞蟻拾起物體的概率較小。當螞蟻身上已經(jīng)有物體時,它有一定的幾率放下物體,概率滿足如下公式:這個公式成立的條件是,給定相應(yīng)的格子是空的,β2>0,如果在螞蟻的周圍存在大量物體,即μ>>β2,則pf的結(jié)果會非常接近1,說明此時螞蟻有很大概率放下物體。如果螞蟻周圍物體很少時,μ<<β2,則pf的結(jié)果約為0,說明螞蟻幾乎不會放下物體。在此基礎(chǔ)上,進一步將高維數(shù)據(jù)投影到二維的空間上,然后用人工蟻群進行數(shù)據(jù)的搬運來實現(xiàn)該分類,加入了一個相似密度函數(shù),可以對不同對象之間的相似性進行比較,具體描述如下:在二維格子上隨機分布著一些數(shù)據(jù)向量,在觀察個地點周圍的一定范圍內(nèi)的nn條路徑時,螞蟻在一個方形區(qū)域內(nèi)移動,移動范圍是nn×nn個點,設(shè)螞蟻位于i位置時在t時刻,定義一個數(shù)據(jù)向量oi,在以螞蟻為中心的一定范圍內(nèi)向量oi的局部密度由如下公式來計算:在上式中,υ~u(1,vmax),vmax代表螞蟻的最大移動速度。通過局部密度可以求出聚類中心。對于數(shù)據(jù)類型為浮點型的向量,可以采用余弦距離來作為兩個數(shù)據(jù)對象的相異度公式,具體的定義方法如下:dcos(oi,oj)=1-sin(oi,oj)在上式中,用sin(oi,oj)來計算向量oi,oj之間的夾角,當他們之間相似度較高時,sin(oi,oj)的值接近1,則dcos(oi,oj)的值接近0。通過兩個數(shù)據(jù)對象的相異度可以求出總體偏離誤差。在人工蟻群背負的物體中加入信息素,當物體被放置時,信息素也被傳遞到網(wǎng)格中,在一片固定區(qū)域中,信息素的含量增加,螞蟻放下物體的幾率會相應(yīng)增大。本發(fā)明的一種基于遺傳變異改進蟻群分類的姿態(tài)圖像識別方法,包括以下步驟:步驟一:程序初始化,設(shè)置初始參數(shù);步驟二:信息素矩陣初始化;c=0.01;res=ones(n,k)*c;%初始值為0.01,維數(shù)為n*k的信息素矩陣步驟三:根據(jù)信息素矩陣,確定螞蟻的行走路徑,并在信息素矩陣上做好標識;定義字符標識矩陣,用信息素的值確定分到哪一組,實現(xiàn)過程如下:首先判斷樣本中信息素的值與閾值的大小關(guān)系,若閾值q大于信息素的值,則取信息素最大的為作為路徑。步驟四:根據(jù)路徑標識求出每一類的聚類中心;聚類中心為該類的所有樣本當中各屬性的平均值。步驟五:計算各樣本到其他對應(yīng)的聚類中心的總體偏離誤差;將各樣本到其聚類中心的歐幾里得距離(即歐氏距離)之和表示為總體偏離誤差,用all表示。all越小,分類效果越好。計算每只螞蟻的偏差值,其中最小的所對應(yīng)的路徑選為最優(yōu)路徑。步驟六:根據(jù)總體偏離誤差的大小,找到此時的最佳路徑;步驟七:產(chǎn)生隨機數(shù),根據(jù)隨機數(shù)的大小對最佳路徑進行變異;其代碼如下所示:步驟八:計算新路徑下各樣本到其對應(yīng)的聚類中心的總體偏離誤差;步驟九:比較總體偏離的變化,若此時的總體偏離誤差減小,則新路徑為最佳路徑;步驟十:對信息素矩陣進行更新;隨著時間的推移,需要對信息素矩陣進行更新,具體方法是將原信息素值乘以(1-gac)作為新信息素,gac為信息素蒸發(fā)率,再加上最小偏差值rap的倒數(shù)。具體程序如下:fori=1:nres(i,best_results(1,i))=(1-gac)*res(i,best_results(1,i))+1/rap;步驟十一:在進行更新后,用新的信息素矩陣來進行路徑的判斷,不斷進行迭代,直到達到最大次數(shù)t_max,或者偏離誤差到達給定值。參數(shù)調(diào)試如下,其中r代表螞蟻數(shù),t_max代表迭代次數(shù)的最大值,flu代表局部尋優(yōu)參數(shù)。表3-2改進蟻群分類算法參數(shù)調(diào)試表本發(fā)明的分類效果與傳統(tǒng)的分類效果對比如下表所示:表3-3改進后分類效果對比表可以看出,基于遺傳變異的改進蟻群分類算法與基本算法相比,在最大迭代次數(shù)相同的情況下,大大減小了與其聚類中心的偏離誤差,分類的效果有明顯改善。將基于遺傳變異改進的蟻群分類算法用于人體姿態(tài)圖像識別中,將24幅圖像分成站、坐、躺三類,matlab實驗結(jié)果如圖9所示。可以看到,當t_max=1000時,最優(yōu)解將24幅圖像分成了三類,分別用1,2,3表示,1代表站,二代表坐,三代表躺,最優(yōu)解的函數(shù)值為198.1243。將基于遺傳變異改進蟻群分類算法的24個分類結(jié)果與實際結(jié)果進行比對,正確率達到百分之百?;谶z傳變異的改進蟻群分類算法不但可以實現(xiàn)全局最優(yōu)方案,而且有著很好的魯棒性,容易與其他算法結(jié)合,可以進行較少的改進實現(xiàn)其他復(fù)雜問題。算法采用正反饋機制,能夠使進化過程更快。因此,基于遺傳變異改進蟻群分類的姿態(tài)圖像識別方法具有很強的實用性。當前第1頁12