运动目标检测_单高斯背景建模
生活随笔
收集整理的這篇文章主要介紹了
运动目标检测_单高斯背景建模
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.運(yùn)動目標(biāo)背景建模
背景建模也稱為背景估計,其主要目的是根據(jù)當(dāng)前的背景估計,把對序列圖像的運(yùn)動目標(biāo)檢測問題轉(zhuǎn)化為一個二分類問題,將所有像素劃分為背景和運(yùn)動前景兩類,進(jìn)而對分類結(jié)果進(jìn)行后處理,得到最終檢測結(jié)果。比較簡單的獲取背景圖像的方法是當(dāng)場景中無任何運(yùn)動目標(biāo)出現(xiàn)時捕獲背景圖像,但這種方法不能實(shí)現(xiàn)自適應(yīng),通常僅適應(yīng)于對場景的短時間監(jiān)控,不能滿足智能監(jiān)控系統(tǒng)對背景建模的要求。背景減除法的關(guān)鍵是背景模型,它是背景減除法分割運(yùn)動前景的基礎(chǔ)。背景模型主要有單模態(tài)和多模態(tài)兩種,前者在每個背景像素上的顏色分布比較集中,可以用單分布概率模型來描述,后者的分布則比較分散,需要多分布概率模型來共同描述。在許多應(yīng)用場景,如水面的波紋、搖擺的樹枝、飄揚(yáng)的旗幟、監(jiān)視器屏幕等,像素值都呈現(xiàn)出多模態(tài)特性。最常用的描述場景背景像素顏色分布的概率密度函數(shù)是高斯分布。
2.單高斯背景建模
高斯背景模型是一種運(yùn)動目標(biāo)檢測過程中提取并更新背景和前景的一種方法。單分布高斯背景模型認(rèn)為,對一個背景圖像,特定像素亮度的分布滿足高斯分布,即對背景圖像B,每一個點(diǎn)(x,y)的亮度滿足B(x,y)~N(u,d):
即每一個點(diǎn)(x,y)都包含了兩個屬性,均值u和方差d:
計算一段時間內(nèi)的視頻序列圖像中每一個點(diǎn)的均值u和方差d,作為背景模型。對于一幅包含前景的任意圖像G,對于圖像上的每一個點(diǎn)(x,y)計算,若:
(T為一個常數(shù)閾值),則認(rèn)為該點(diǎn)是背景點(diǎn),否則為前景點(diǎn)。接下來就背景的更新,每一幀圖像都參與背景的更新: ?
其中,p為一個常數(shù),用來反映背景更新率,p越大,背景更新的越慢。一般情況下,背景更新后d的變化很小,所以在更新背景以后一般不再更新d。
3.MATLAB仿真及輸出結(jié)果
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Author:Ziheng H. Shen @Tsinghua Univ. %Date:20170308 @Digital Image Process Practice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all %% 讀入視頻,并記錄幀率 fileName = '768x576.avi'; Video = VideoReader(fileName); numFrames = Video.NumberOfFrames; frame = read(Video,1); %% 用第一幀圖像數(shù)據(jù)初始化背景模型 alpha = 0.03; %背景建模alpha值 stdInit = 20; %初始化標(biāo)準(zhǔn)差 varInit = stdInit * stdInit ; %初始化方差 lamda = 2.5*1.2 ; %背景更新參數(shù) [h,w] = size(frame);%提取第一幀圖像的高度和寬度 w = w/3; %彩色圖像RGB,所以需要除以3 for i=1:h for j=1:w pixel_R = frame(i,j,1); pixel_G = frame(i,j,2); pixel_B = frame(i,j,3); %期望圖像為原圖,背景pixel_uR = pixel_R; pixel_ug = pixel_G; pixel_ub = pixel_B; %前景圖像初始化為0 pixel_dr = 0; pixel_dg = 0; pixel_db = 0; %標(biāo)準(zhǔn)差 pixel_stdr = stdInit; pixel_stdg = stdInit; pixel_stdb = stdInit; %方差pixel_varr = varInit; pixel_varg = varInit; pixel_varb = varInit; frame_u(i,j,1:3) = [pixel_uR pixel_ug pixel_ub]; frame_d(i,j,1:3) = [pixel_dr pixel_dg pixel_db]; fram_std(i,j,1:3) = [pixel_stdr pixel_stdg pixel_stdb]; frame_var(i,j,1:3) = [pixel_varr pixel_varg pixel_varb]; end end %% 單高斯背景更新 for k = 1 : 5%numFrames % 讀取幀數(shù)據(jù) frame = read(Video,k); for i=1:h for j=1:w pixel_R = frame(i,j,1); pixel_G = frame(i,j,2); pixel_B = frame(i,j,3); %期望圖像(背景),初始化為第一幀圖 pixel_uR = frame_u(i,j,1); pixel_ug = frame_u(i,j,2); pixel_ub = frame_u(i,j,3); %前景圖像,初始為0 pixel_dr = frame_d(i,j,1); pixel_dg = frame_d(i,j,2); pixel_db = frame_d(i,j,3); %標(biāo)準(zhǔn)差 pixel_stdr = fram_std(i,j,1); pixel_stdg = fram_std(i,j,2); pixel_stdb = fram_std(i,j,3); %方差 pixel_varr = frame_var(i,j,1); pixel_varg = frame_var(i,j,2); pixel_varb = frame_var(i,j,3); %|I-u|<lamda*std時認(rèn)為是背景,進(jìn)行背景更新 if( (abs(pixel_R-pixel_uR)<lamda*pixel_stdr) &&...(abs(pixel_G-pixel_ug)<lamda*pixel_stdg) &&...(abs(pixel_B-pixel_ub)<lamda*pixel_stdb) ) %更新期望,u=(1-alpha)*u+alpha*1 pixel_uR = (1-alpha)* pixel_uR + alpha * pixel_R; pixel_ug = (1-alpha)* pixel_ug + alpha * pixel_G; pixel_ub = (1-alpha)* pixel_ub + alpha * pixel_B; %更新方差var=(1-alpha)*var+alpha*(I-u)^2 pixel_varr = (1-alpha)*pixel_varr + alpha*(pixel_R-pixel_uR)^2; pixel_varg = (1-alpha)*pixel_varg + alpha*(pixel_G-pixel_ug)^2; pixel_varb = (1-alpha)*pixel_varb + alpha*(pixel_B-pixel_ub)^2; %更新標(biāo)準(zhǔn)差 pixel_stdr = sqrt(double(pixel_varr)); pixel_stdg = sqrt(double(pixel_varg)); pixel_stdb = sqrt(double(pixel_varb)); %圖像內(nèi)容更新 frame_u(i,j,1:3) = [pixel_uR pixel_ug pixel_ub]; fram_std(i,j,1:3) = [pixel_stdr pixel_stdg pixel_stdb]; frame_var(i,j,1:3) = [pixel_varr pixel_varg pixel_varb]; else pixel_dr = pixel_R - pixel_uR; pixel_dg = pixel_G - pixel_ug; pixel_db = pixel_B - pixel_ub; frame_d(i,j,1:3) = [pixel_dr pixel_dg pixel_db]; end end end figure(2*k-2) %查看每一幀循環(huán)下來的結(jié)果 imshow(frame_u); %背景figure(3*k-1)imshow(frame_d); %前景figure(3*k) %先腐蝕后膨脹disk = strel('disk',1); frame_d = imdilate(imerode(frame_d,disk),disk),disk;imshow(frame_d); %前景end 輸出結(jié)果(背景->前景->目標(biāo)檢測)?? 需要說明的是,單高斯模型受初始化參數(shù)和第一幀圖像影響很大。
總結(jié)
以上是生活随笔為你收集整理的运动目标检测_单高斯背景建模的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络管理员如何解放自己
- 下一篇: 浅谈飞鸽传书实现原理