張顯宗 柳寧 王高
(暨南大學信息科學技術學院)
對大型課室、自修室的人員位置分布識別有利于課室燈光的自動管理,便于節能。基于圖像處理的人體識別方法很多,常見的有基于頭形輪廓特征的識別方法[1,2],它適用于類似公交系統人流統計這種特定的場合[3];背景圖像差分人體檢測算法可以消除背景噪聲干擾,突出人體圖像信息[4]。
對課室人員位置分布進行識別時,可以采用邊緣檢測提取人體輪廓,圖像差分方法消除背景噪聲,并根據輪廓面積進行人員位置判定[5];也可以通過對課室的背景圖像識別得到座位網格圖,采用背景圖像差分法消除背景噪聲,凸現人員分布狀態,經二值化處理,得到人員位置 Blob圖,比對座位網格與人員位置Blob圖即可得到人員分布情況。前一種方法稱為基于面積判據的人體識別方法,后一種方法稱為基于座位網格判據的人體識別方法。
(1)將當前圖像和參考背景圖像(無人時的圖像)轉成灰度圖像,再將這兩個圖像每個對應像素的灰度值依次相減,取絕對值,得到差分圖像。
(2)計算圖像二值化的閾值。求出差值圖像各像素點的灰度平均值μ以及均方差σ。得到二值化的閾值參數:T'=μ+2σ。
根據正態分布“3σ原則”,變量落在區間(-2σ,2σ)的概率為95.4%。即差值圖像像素灰度值大于 T'的概率約為5%。將 T'進行線性調整,得到適合二值化的閾值T。令灰度值大于等于T像素點記為1,小于T的記為0,可得到二值化圖像。
(3)對二值圖像進行形態學圖像處理。先對其進行形態學閉運算,然后再進行開運算,消除斑點噪聲,將人體輪廓從背景圖像中分割出來。
在輪廓提取中采用八方向碼(Freeman碼)跟蹤方法[5]。
(1)對圖像從上到下逐行搜索白色像素點,當發現第一個白色像素點時,記錄該點坐標值,設為(x0,y0)。
(2)以(x0,y0)為中心,從八方向碼的8方向開始,順時針依次判斷相鄰像素點是否為白色像素點。發現白色像素點時記錄其坐標值,設為(x1,y1)。記(x0,y0)到(x1,y1)的八方向碼矢量為V0。
(3)以(x1,y1)為中心,搜索的八方向碼方向為(V0+4)%8-1(“%”,取余),如果求得的方向碼值為0和-1,則分別用8和7代替。順時針方向依次判斷(x1,y1)的相鄰像素點是否是白色像素點。發現白色像素點時,記錄其坐標,設為(x2,y2)。于是可以得到(x1,y1)到(x2,y2)矢量V1。
(4)以(x2,y2)為中心,按照(3)的方法,繼續尋找后面的輪廓點,直到尋找到的輪廓點回到起點(x0,y0)為止。于是就得到了某個區域的輪廓。這樣得到的輪廓的特點為:沿著輪廓順時針方向走,其區域內部的像素都位于右邊。
(5)重復上述步驟,提取圖像中的全部人體區域輪廓碼。
(1)對于圖1(a)所示的座位分布,利用Canny算子對此參考背景圖像作邊緣檢測,得到橫向邊緣圖像,如圖1(b)所示。比較圖1(a)和圖1(b)可以確定,兩行邊緣線表示一排座位。
(3)利用Prewitt算子對參考背景圖像做縱向邊緣檢測,得到縱向邊緣圖像,如圖1(c)所示。用形態學圖像處理方法,對縱向邊緣圖像作形態學開運算,消除部分噪聲。再利用最小行間距Δhmin作參數,對圖像進行膨脹操作,得到圖1(d)所示的圖像。
(4)以計算得的橫向邊緣的平均坐標為參考,取每兩行(1、2行;3、4行……如此類推)的中間位置,從左到右對圖1(d)所示圖像進行縱邊緣搜索。假設搜索到的縱邊緣n,若n與n-1的距離小于或等于3個像數時,則將n與n-1求平均,替換n-1,繼續向右搜索縱邊緣n。若n與n-1的距離大于本搜索行的行間距Δh的2/3,則認為是新的縱邊緣n,繼續向右搜索縱邊緣n+1。對于其他情況的縱邊緣則視為是噪聲,將其忽略,繼續向右搜索。
(5)對所有行搜索完成后,便得到了整個圖像的各橫縱網絡線的坐標值,這些網格坐標值確定了每個座位在圖像中的位置,形成座位網格圖。如圖1(e)所示,圖中每個矩形區域代表一個座位。
(1)將當前圖像和參考背景圖像相減,取絕對值,得到差分圖像,再利用“3σ原則”法得到二值化Blob圖。
(2)根據上文生成的座位網格圖,以每個矩形區域為單位,對二值化Blob圖進行搜索,若某個矩形區域內檢測出白色點的面積大于該矩形區域面積的20%,則認為該區域“有人”。對所有矩形區域搜索完之后,便可得到人員分布情況。
選取同一組檢測圖像和參考背景圖像進行比對,檢測圖像和參考背景如圖 2所示。算法均采用MATLAB編程測試。檢測圖像和參考背景圖像的像素為 351×163。
圖3 (a)為當前圖像與參考背景的差值圖像。經過“3σ原則”法二值化后得到圖3 (b)的二值化圖像。從圖3 (b)中可見,二值化后的白色區域無明顯的人體特征,且有相鄰人體區域相接的情況,因此為了準確提取輪廓,需要對二值圖像進行形態學處理,去除噪聲和分割輪廓。進行形態學處理后可得圖3 (c)所示的人體區域劃分圖像,圖中每一個白色封閉區域正好對應一個人員分布。利用輪廓提取算法將圖3 (c)中的各個白色封閉區域的輪廓分別提取出來,根據提取出的輪廓數據可計算判別人員分布情況。

圖2 測試圖像
基于面積判定準則的方法對形態學處理參數設置非常敏感,參數設置不當時容易出現圖3 (d)所示人體面積“粘連”現象,導致識別錯誤。

圖3 基于面積判定準則的算法
利用差值圖像和“3σ原則”法同樣得到圖4所示的二值化圖像,利用座位網格劃分區域圖像,對每一個劃分區域進行搜索,若某個矩形區域內檢測出白色點的面積大于該矩形區域面積的20%,則認為該區域“有人”。最后得到人員分布情況如圖4所示。

圖4 基于座位網格判定準則的算法
基于面積判據的人體檢測算法應用場合不受限制,但容易出現人體區域劃分錯誤;基于座位網格判定準則的識別方法克服了這個缺陷,但只適用于成排固定座位的場合。兩種算法的效率比較如表1所示。

表1 兩種算法的效率比較
表1中的時間是算法程序單次運行時間平均值,其中基于座位網格的識別法首次運行是生成網格的時間,正常運行時,其速度要快于基于面積判據的識別算法。
基于面積的識別算法效率較低。且隨著分布人數的增加,需要提取的輪廓也增加,算法程序運行時間也越長。因此,針對固定座位的課室,基于座位網格的識別算法在效率上有明顯的優勢。
基于面積判定準則的人體檢測方法應用不受座位布置的影響,但人員分布 Blob圖像的“粘連”可能導致結果出錯,基于座位網格的人體識別方法簡單明了,實時性好,但它只適用于固定座位的課室。
[1]何揚名,戴曙光.利用輪廓特征進行人頭識別的方法[J].計算機工程與應用,2010,46(29):164-166.
[2]孫棣華,何恒攀,趙敏,等.基于單目視頻多特征融合的人頭識別算法[OL].中國科技論文在線.
[3]潘浩,高枝寶,何小海,等.基于計算機視覺的公交系統人流量檢測算法[J].計算機工程,2007,33(11):216-218,263.
[4]曹丹華.鄒偉,吳裕斌.基于背景圖像差分的運動人體檢測[J].光電工程,2007,34(6):107-111.
[5]王厚大.一種計算任意封閉形狀面積的方法[J].南京郵電學院學報,1997(4):83-85.
[6]Rafael C. Gonzalez,Richard E. Woods,et al,阮秋琦(譯).數字圖像處理(MATLAB版)[M].北京:電子工業出版社,2005.
[7]Rafael C. Gonzalez,Richard E. Woods,阮秋琦(譯),阮宇智(譯).數字圖像處理(第二版)[M].北京:電子工業出版社,2007.