[發明專利]基于旋轉深度學習的人物遮擋輪廓檢測方法有效
| 申請號: | 201810557555.4 | 申請日: | 2018-06-01 |
| 公開(公告)號: | CN108764186B | 公開(公告)日: | 2021-10-26 |
| 發明(設計)人: | 謝昭;吳克偉;張順然;孫永宣 | 申請(專利權)人: | 合肥工業大學 |
| 主分類號: | G06K9/00 | 分類號: | G06K9/00;G06K9/46;G06K9/62;G06N3/04;G06N3/08 |
| 代理公司: | 安徽合肥華信知識產權代理有限公司 34112 | 代理人: | 余成俊 |
| 地址: | 230009 安*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 旋轉 深度 學習 人物 遮擋 輪廓 檢測 方法 | ||
1.基于旋轉深度學習的人物遮擋輪廓檢測方法,其特征在于包括:S1輸入人物圖像,提取圖像初始分割,S2基于顏色和內容的區域合并,提取人物目標分割輪廓,S3構建人物圖像旋轉集合,S4構建邊緣朝向檢測深度模型,S5訓練淺層模型,S6訓練深層模型,S7檢測局部輪廓朝向,S8檢測局部輪廓朝向,對局部輪廓朝向進行一致性評價并提取人物分割輪廓朝向;
所述的構建人物圖像旋轉集合,對輸入的灰度圖像進行旋轉,并對其進行分割和合并,得到旋轉圖像集合,然后對旋轉圖像進行采樣得到圖像塊,最后經過邊緣標記和邊緣朝向標記得到邊緣圖像塊集合,以及所有樣本對應的邊緣朝向標記;所述的構建邊緣朝向檢測深度模型,通過構建11層的邊緣朝向檢測的深度模型,來實現邊緣朝向檢測功能;
所述的訓練淺層模型,根據旋轉圖像塊采集集合,訓練淺層模型,使用誤差反饋傳播算法對邊緣預測損失函數進行優化,獲得最小的邊緣預測損失函數,并獲得該情況下的第1層到第5層訓練后的神經網絡模型參數
所述的訓練深層模型,根據旋轉邊緣圖像塊采樣集合,訓練深層模型,使用誤差反饋傳播算法對邊緣朝向預測損失函數進行優化,獲得最小的邊緣預測損失函數,并獲得該情況下的第6層到第8層訓練后的神經網絡模型參數和第9層到第11層權重
所述的檢測局部輪廓朝向,使用訓練后的邊緣朝向檢測深度模型,檢測局部輪廓朝向,計算當前人物目標分割輪廓點的邊緣朝向方向θ(px,size)并且記錄目標區域編號j和目標區域編號k的遮擋朝向關系,其中px為圖像塊的中心像素坐標,size為采樣塊的空間窗尺寸;
所述的對局部輪廓朝向進行一致性評價并提取人物分割輪廓朝向,根據區域間一致的遮擋關系,對區域間共享邊界像素點集合進行一致性修正,獲得所有人物目標分割輪廓Bdist上的輪廓點的遮擋朝向關系;
所述的基于顏色和內容的區域合并,提取人物目標分割輪廓,包括以下步驟:
步驟S2-1:對分割區域Seg={segi’},對分割區域中各像素賦值該區域編號,獲得分割編號圖像Iseg;
步驟S2-2:對分割編號圖像,獲得分割輪廓圖像;
步驟S2-2-1:對分割編號圖像Iseg,計算各像素的水平梯度和垂直梯度,獲得水平梯度圖像Isdx和垂直梯度圖像Isdy;
步驟S2-2-2:根據水平梯度圖像Isdx和垂直梯度圖像Isdy,計算各像素點的梯度幅值,獲得梯度幅值圖像Isamp;
步驟S2-2-3:根據梯度幅值圖像Isamp,獲得分割輪廓圖像Bsdist,具體操作為:如果像素點的梯度幅值Isamp大于0,則表示該像素為輪廓點;如果像素點的梯度幅值Isamp等于0,則表示該像素不是輪廓點;
步驟S2-3:對分割區域Seg={segi’},根據圖像中人物目標和區域之間的對應關系,使用手工標注方法,指出需要合并的區域對;
步驟S2-4:對合并區域,根據需要合并的區域對,進一步區域合并,獲得目標區域Obj={obji*},其中i*=1,...,nobj,nobj是合并后區域數量;
步驟S2-5:對目標區域Obj={obji*},對目標區域中各像素賦值該區域編號,獲得目標分割編號圖像Iobj;
步驟S2-6:對目標分割編號圖像,獲得目標分割輪廓圖像;
步驟S2-6-1:對目標分割編號圖像Iobj,計算各像素的水平梯度和垂直梯度,獲得水平梯度圖像Idx和垂直梯度圖像Idy;
步驟S2-6-2:根據水平梯度圖像Idx和垂直梯度圖像Idy,計算各像素點的梯度幅值,獲得梯度幅值圖像Iamp;
步驟S2-6-3:根據梯度幅值圖像Iamp,獲得人物目標分割輪廓圖像Bdist,具體操作為:如果像素點的梯度幅值大于0,則表示該像素為輪廓點;如果像素點的梯度幅值等于0,則表示該像素不是輪廓點;
構建人物圖像旋轉集合,包括以下步驟:
步驟S3-1:設置旋轉角集合A={αi},i=1,..,72,其中αi的具體取值為αi=5·(i-1)度,具體操作為,以圖像中朝向右的水平線方向為0度,逆時針旋轉,每旋轉5度為一個單位,共旋轉71次,完成355度的旋轉;
步驟S3-2:對輸入灰度圖像Igray,旋轉一個旋轉角度αi,以圖像中心坐標點為旋轉點,進行旋轉,獲得旋轉后的圖像Ri;
步驟S3-3:重復步驟S2-2,依次對旋轉角集合中的旋轉角A={αi}進行旋轉,獲得旋轉圖像集合Rset={Ri};
步驟S3-4:對輸入分割輪廓圖像Bsdist,旋轉一個旋轉角度αi,以圖像中心坐標點為旋轉點,進行旋轉,獲得旋轉后的分割圖像Bsi;
步驟S3-5:重復步驟S2-4,依次對旋轉角集合中的旋轉角A={αi}進行旋轉,獲得旋轉圖像集合Bsset={Bsi};
步驟S3-6:對旋轉后的圖像Ri,以空間窗口尺寸size為25*25對圖像進行一次采樣,獲得圖像塊patch(px,size),其中px為圖像塊的中心像素坐標,size為采樣塊的空間窗尺寸;
步驟S3-7:對該圖像塊patch(px,size),進行邊緣標記,具體操作為:
步驟S3-7-1:如果圖像塊patch(px,size)的中心像素坐標px和尺寸size,對對應的旋轉后的分割圖像Bsi進行采樣,獲得邊緣圖像塊spatch(px,size);
步驟S3-7-2:如果邊緣圖像塊spatch(px,size),中心像素處為分割輪廓,則記錄該圖像塊為邊緣圖像塊,其邊緣標記為y(px,size)=1;
步驟S3-7-3:如果邊緣圖像塊spatch(px,size),中心像素處不是分割輪廓,則記錄該圖像塊為非邊緣圖像塊,其邊緣標記為y(px,size)=0;
步驟S3-8:重復步驟S3-6和步驟S3-7,獲得圖像塊集合Patch={patch(px,size)}和對應的邊緣標記y(px,size);
步驟S3-9:對圖像塊集合Patch={patch(px,size)},將其中邊緣標記為y(px,size)=1的圖像處理塊組成邊緣圖像塊集合Epatch={epatch(px,size)};
步驟S3-10:對邊緣圖像塊集合Epatch={epatch(px,size)},進行邊緣朝向標記,具體操作如下:
步驟S3-10-1:選擇邊緣圖像塊epatch(px,size),計算中心像素點的切線方向;
步驟S3-10-2:根據中心像素點的切線方向,計算中心像素點的由內部指向外部的法線方向,即前景指向背景的法線方向,并將該法線方向作為邊緣圖像塊epatch(px,size)的邊緣朝向標記,記為θ(px,size);
步驟S3-11:重復步驟S3-10,獲得邊緣圖像塊集合,以及所有樣本對應的邊緣朝向標記θ(px,size);
構建邊緣朝向檢測深度模型,包括以下步驟:
步驟S4-1:構建11層的邊緣朝向檢測的深度模型,具體操作方式為:第1層到第5層為卷積神經網絡,第5層輸出結果用于邊緣檢測,第6層到第8層為卷積神經網絡,第9層到第11層為全連接神經網絡,第11層輸出結果用于邊緣朝向檢測;
步驟S4-2:初始化第1層到第8層的卷積神經網絡權重,記為Pri={pri(nla)},其中Pri為第1層到第8層的卷積神經網絡權重,pri(nla)為第nla層的卷積神經網絡權重,nla取值為1到8;
步驟S4-2-1:初始化第nla層的卷積神經網絡其中為第nla層的卷積神經網絡中,第i個卷積濾波器,每層64個卷積濾波器,i的取值為1到64;
步驟S4-2-1-1:初始化第nla層中,第i個卷積濾波器其中為第nla層中,第i個卷積濾波器中的第k個權重,其中每個濾波器的尺寸為3*3,k的取值為1到9;
步驟S4-2-2:初始化第9到第11層的全連接層權重,記為W={w(nla)},其中W為第9到第11層全連接層權重,w(nla)為第nla層的全連接層權重,nla取值為9到11;
步驟S4-2-2-1:初始化nla層的全連接層權重其中表示,第nla層中第i個元素,與第nla+1層中第k個元素之間的權重;
步驟S4-3:構建第1層到第5層的淺層深度網絡;
步驟S4-3-1:對旋轉后的圖像Ri采樣,輸入一個空間窗口尺寸25*25圖像塊patch(px,size);
步驟S4-3-2:進行第1層卷積處理,具體操作方式為,利用第nla層的卷積神經網絡權重pri(nla),對圖像塊patch(px,size)進行卷積,獲得卷積后的響應圖集合respone(nla),其中響應圖集合中有64濾波器分別卷積獲得的64個響應圖,nla取值為1;
步驟S4-3-3:進行第2層卷積處理,利用第nla層的卷積神經網絡權重pri(nla),對第nla-1層響應圖respone(nla-1)進行卷積,獲得卷積后的響應圖集合respone(nla),其中響應圖集合中有64濾波器分別卷積獲得的64個響應圖,其中nla取值為2;
步驟S4-3-4:重復步驟S4-3-3,依次實現第3層,第4層,第5層卷積處理,分別依次獲得第3層,第4層,第5層卷積響應圖respone(nla),其中nla取值為3,4,5;
步驟S4-4:構建第6層到第8層的淺層深度網絡;
步驟S4-4-1:進行第6層卷積處理,利用第nla層的卷積神經網絡權重pri(nla),對第nla-1層響應圖respone(nla-1)進行卷積,獲得卷積后的下采樣前的響應圖集合brespone(nla),其中nla取值為6;
步驟S4-4-2:對第6層進行池化處理,對下采樣前的響應圖集合brespone(nla)中的每個響應圖,以2*2的滑動窗口,以2為步長進行滑動并下采樣,具體方式為,取2*2窗口中的最大值保留為該區域的下采樣值,獲得下采樣后的響應圖集合respone(nla),其中第6層下采樣后的響應圖尺寸為12*12;
步驟S4-4-3:重復步驟S4-4-1和步驟S4-4-2,依次實現第7層,第8層卷積處理和池化處理,分別依次獲得第7層,第8層處理結果respone(nla),其中第7層下采樣后的響應圖集合中每個圖的尺寸為6*6,第8層下采樣后的響應圖集合中每個圖的尺寸為3*3,其中nla取值為7,8;
步驟S4-5:構建第9層到第11層全連接層;
步驟S4-5-1:進行第8層行向量處理,將第8層卷積響應圖集合respone(nla),按照行順序,轉化為第8層行向量vector(nla),其中,第8層行向量長度為64*3*3,nla取值為8;
步驟S4-5-2:進行第9層全連接處理,對第8層行向量vector(nla-1),利用第nla層的全連接層權重w(nla),進行矩陣乘法,獲得第9層行向量vector(nla),其中第9層行向量長度為64*3*3,nla取值為9;
步驟S4-5-3:重復步驟S4-5-2,進行第10層全連接處理,對第9層行向量vector(nla-1),利用第nla層的全連接層權重w(nla),進行矩陣乘法,獲得第10層行向量vector(nla),其中10層行向量長度為64*3*3,nla取值為10;
步驟S4-5-4:重復步驟S4-5-2,進行第11層全連接處理,對第9層行向量vector(nla-1),利用第nla層的全連接層權重w(nla),進行矩陣乘法,獲得第11層行向量vector(nla),其中第11層行向量長度為1*72,即,與旋轉角度集合中的元素對應,nla取值為11;
訓練淺層模型,包括以下步驟:
步驟S5-1:根據步驟S3-8獲得圖像塊集合Patch={patch(px,size)}和對應的邊緣標記y(px,size);
步驟S5-2:根據步驟S4-1到步驟S4-4,將每個圖像塊patch(px,size),輸入邊緣朝向檢測的深度模型,獲得第5層卷積響應圖集合respone(nla),其中nla取值為5;
步驟S5-3:對第5層卷積響應圖集合respone(nla)中的64個響應圖,抽取其中心像素的1*64行向量;
步驟S5-4:取中心像素的1*64行向量的最大值,作為該圖像塊的邊緣預測結果ytest(px,size);
步驟S5-5:對所有圖像塊,計算邊緣預測損失函數Ledge為
其中,第一項計算第1層到第5層權重的2范數的和,作為損失函數的正則項,第二項為每個樣本平均的預測誤差;
步驟S5-6:使用誤差反饋傳播算法對邊緣預測損失函數Ledge進行優化,獲得最小的邊緣預測損失函數,并獲得該情況下的前1層到第5層訓練后的神經網絡模型參數即
其中nla取值為1到5;
訓練深層模型,包括以下步驟:
步驟S6-1:根據步驟S3-1到步驟S3-11,獲得邊緣圖像塊集合Epatch={epatch(px,size)},以及所有樣本對應的邊緣朝向標記θ(px,size);
步驟S6-2:將樣本對應的邊緣朝向標記θ(px,size),轉化為行向量形式vector,具體方式為,行向量形式vector為1*72行向量,將標記θ(px,size)除以5取整數獲得下標編號ind,將行向量中下標編號ind位置賦值為1,其他位置賦值為0,獲得行向量形式vector;
步驟S6-3:使用前1層到第5層訓練后的神經網絡模型參數根據步驟S4-4到步驟S4-5,將每個邊緣圖像塊epatch(px,size),輸入邊緣朝向檢測的深度模型,獲得第11層行向量vector(nla),其中nla取值為11;
步驟S6-4:對所有邊緣圖像塊,計算邊緣朝向預測損失函數Locc為
其中,第一項計算第6層到第8層權重的2范數的和,作為損失函數的正則項,第二項第9層到第11層權重的2范數的和,作為損失函數的正則項,第三項為每個樣本平均的預測誤差;
步驟S6-5:使用誤差反饋傳播算法對邊緣朝向預測損失函數Locc進行優化,獲得最小的邊緣預測損失函數,并獲得該情況下的前6層到第8層訓練后的神經網絡模型參數和第9層到第11層權重即
其中中nla取值為6到8,中nla取值為9到11;
檢測局部輪廓朝向,包括以下步驟:
步驟S7-1:對輸入圖像,根據步驟S1和步驟S2獲得人物目標分割輪廓Bdist;
步驟S7-2:對人物目標分割輪廓上的像素點進行采樣,采樣窗口為25*25,采樣窗口的中心點為人物目標分割輪廓點,獲得邊緣圖像塊epatch(px,size);
步驟S7-3:獲得訓練好的邊緣朝向檢測的深度模型參數,具體操作為,根據步驟S5和步驟S6獲得淺層網絡模型參數和深層網絡模型參數;
步驟S7-4:輸入緣圖像塊epatch(px,size),并使用訓練好的邊緣朝向檢測的深度模型參數,重復步驟S4-3到步驟S4-5,獲得第11層行向量vector(nla),其中nla取值為11;
步驟S7-5:根據第11層行向量vector(nla),計算當前人物目標分割輪廓點的邊緣朝向方向θ(px,size);
步驟S7-6:目標區域Obj={obji},獲得像素點邊界兩側的目標區域編號j和目標區域編號k;
步驟S7-7:根據當前人物目標分割輪廓點的邊緣朝向方向θ(px,size),記錄目標區域編號j和目標區域編號k的遮擋朝向關系,具體操作為,如果邊緣朝向方向θ(px,size)指向目標區域編號j,則說明目標區域編號j是背景區域,目標區域編號k是前景區域,目標區域編號k遮擋目標區域編號j,則記錄遮擋朝向關系為Vocc(k,j)=1;否則,如果邊緣朝向方向θ(px,size)指向目標區域編號k,則說明目標區域編號k是背景區域,目標區域編號j是前景區域,則記錄遮擋朝向關系為Vocc(j,k)=1;
對局部輪廓朝向進行一致性評價并提取人物分割輪廓朝向,包括以下步驟:
步驟S8-1:對輸入圖像,根據步驟S1和步驟S2獲得人物目標分割輪廓Bdist;
步驟S8-2:根據目標區域Obj={obji},初始化目標區域之間的遮擋關系矩陣Occ(j,k),其中j=1,...,nobj,k=1,...,nobj,j≠k,nobj是合并后區域數量,其中Occ(j,k)的初始值都為0;
步驟S8-3:初始化區域間共享邊界像素點集合Pset(j,k),初始化時,每個邊界像素點集合為空集合,其中Pset(j,k)是指目標區域編號j和目標區域編號k之間的輪廓點;
步驟S8-4:對人物目標分割輪廓Bdist上的輪廓點,以5像素為步長等間隔采樣,獲得中心像素坐標集合Px={px};
步驟S8-5:重復步驟S7-2到步驟S7-5,依次分析采樣點的邊緣圖像塊的邊緣朝向θ(px,size);
步驟S8-6:重復步驟S7-6,獲得像素點邊界兩側的目標區域編號j和目標區域編號k;
步驟S8-7:根據像素點邊界兩側的目標區域編號j和目標區域編號k,將像素點添加到區域間共享邊界像素點集合Pset(j,k)=Pset(j,k)∪px;
步驟S8-8:根據當前人物目標分割輪廓點的邊緣朝向方向θ(px,size),記錄目標區域編號j和目標區域編號k的遮擋朝向關系,具體操作為,如果邊緣朝向方向θ(px,size)指向目標區域編號j,則說明目標區域編號j是背景區域,目標區域編號k是前景區域,目標區域編號k遮擋目標區域編號j,則記錄遮擋朝向關系為Vocc(k,j)=1;否則,如果邊緣朝向方向θ(px,size)指向目標區域編號k,則說明目標區域編號k是背景區域,目標區域編號j是前景區域,則記錄遮擋朝向關系為Vocc(j,k)=1;
步驟S8-9:重復步驟S8-8;
步驟S8-10:根據區域編號間的投票,對遮擋關系矩陣Occ(j,k)進行統計,具體方式為,如果記錄遮擋朝向關系為Vocc(k,j)=1,則Occ(k,j)=Occ(k,j)+Vocc(k,j);如果記錄遮擋朝向關系為Vocc(j,k)=1,則Occ(j,k)=Occ(j,k)+Vocc(j,k);
步驟S8-11:重復步驟S8-4到步驟S8-7,獲得最終的區域間共享邊界像素點集合Pset(j,k),全部區域間朝向關系進行的遮擋投票,并更新遮擋關系,獲得最終的遮擋關系矩陣Occ(j,k);
步驟S8-12:選擇目標區域編號j和目標區域編號k,并對最終的遮擋關系矩陣Occ(j,k)進行一致性驗證,具體操作為,如果Occ(j,k)>Occ(k,j),說明目標區域編號j以更大的可能性對目標區域編號k遮擋,則記錄區域間一致的遮擋關系為Pocc(j,k)=1;如果Occ(j,k)<Occ(k,j)目標區域編號k以更大的可能性對目標區域編號j遮擋,則記錄區域間一致的遮擋關系記作Pocc(k,j)=1;
步驟S8-13:根據最終的區域間共享邊界像素點集合Pset(j,k),找出目標區域編號j和目標區域編號k之間的輪廓點Pset(j,k)={px};
步驟S8-14:根據區域間一致的遮擋關系,對區域間共享邊界像素點集合進行一致性修正,具體操作為,如果區域間一致的遮擋關系Pocc(j,k)=1,則將所有目標區域編號j和目標區域編號k之間的輪廓點Pset(j,k)={px}的關系賦值為Vocc(j,k)=1;否則,如果區域間一致的遮擋關系Pocc(k,j)=1,則將所有目標區域編號j和目標區域編號k之間的輪廓點Pset(j,k)={px}的關系賦值為Vocc(k,j)=1;
步驟S8-15:重復步驟S8-13到步驟S8-14,完成所有區域間一致的遮擋關系修正,獲得所有人物目標分割輪廓Bdist上的輪廓點的遮擋朝向關系;
步驟S8-16:將人物目標分割輪廓Bdist上的輪廓點的遮擋朝向關系可視化輸出,作為人物遮擋輪廓檢測結果,具體操作方式為:如果像素點Vocc(j,k)=1,即邊界遮擋朝向為從區域編號j朝向目標區域編號k,此時將所述的邊界遮擋朝向順時針旋轉90度,并以輪廓點為箭頭起點繪制箭頭;如果像素點Vocc(k,j)=1,即邊界遮擋朝向為從區域編號k朝向目標區域編號j,此時將所述的邊界遮擋朝向順時針旋轉90度,并以輪廓點為箭頭起點繪制箭頭。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于合肥工業大學,未經合肥工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810557555.4/1.html,轉載請聲明來源鉆瓜專利網。





