91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-01
  • 語言: Matlab
  • 標簽:

資源簡介

采用Viola-Jones檢測器和卡爾曼濾波,實現了對視頻中人臉的特征跟蹤功能。程序由兩大部分組成,分別是人臉區域的檢測和人臉區域的跟蹤。人臉區域的檢測主要包括:判斷當前幀是否存在人臉區域,以及基于Haar-like特征的人臉區域位置檢測;人臉區域的跟蹤主要包括:利用卡爾曼濾波對當前幀人臉區域的預測跟蹤,以及利用檢測值對人臉區域進行修正。本文使用的是Matlab2014b版本。

資源截圖

代碼片段和文件信息

clear;
clc;

if?~exist(‘result‘)
????mkdir(‘result‘);
end

%?Kalman?filter?initialization
%[p_xp_yv_xv_y]??
%?Si+1?=?Ai*Si?+?ni
%?xi?=?Hi*Si?+?mi
dt=1;
A=[10dt0;010dt;0010;0001];?
H=[1000;0100];
P?=?100*eye(4);?%狀態向量協方差
Q=0.01*eye(4);?%系統動態噪聲
R=[[0.28450.0045]‘[0.00450.0455]‘];?%觀測噪聲
KF_Init_flag?=?1;

%?VideoName?=?‘move2.MOV‘;%待檢測視頻的文件名
VideoName?=?‘video\HBY09.mov‘;%待檢測視頻的文件名
faceDetector?=?vision.CascadeobjectDetector();
videoReader?=?vision.VideoFileReader(VideoName);
obj_writer?=?VideoWriter(‘result\FaceTracker.avi‘);
open(obj_writer);
obj?=?VideoReader(VideoName);
TotalframeNum?=?obj.NumberOfframes;
error?=?zeros(1TotalframeNum);
Predeict_center?=?zeros(TotalframeNum2);
Poster_center?=?zeros(TotalframeNum2);
clear?obj;
k?=1;
while?~isDone(videoReader)
????if?KF_Init_flag==1?%根據上一幀判斷跟蹤目標是丟失
????????videoframe??=?step(videoReader);
????????bboxs?=?step(faceDetectorvideoframe);
????????bboxs_area?=?bboxs(:3).*bboxs(:4);
????????[bbox_areaindex]?=?sort(bboxs_area‘Descend‘);
????????Predict_box?=?[];
????????if?~isempty(bbox_area)
????????????if?bbox_area(1)<12000
???????????????bbox?=?[];???????????????
????????????else
???????????????bbox?=?bboxs(index(1):);
???????????????box_size?=?bbox(3:4);%后驗測量
???????????????State?=?[bbox(1:2)+bbox(3:4)00]‘;
???????????????KF_Init_flag?=0;
????????????end
????????else
????????????bbox?=?[];????????????
????????end
????else??%若上一幀判斷跟蹤目標沒有丟失,則對跟蹤目標在本幀的位置進行預測(先驗)
????????State?=?A?*?State;
????????Predict_box?=?[State(1:2)‘-box_size/2box_size];
????????%檢查是否出界
????????if?Predict_box(1)>?size(videoframe2)||?Predict_box(2)>?size(videoframe1)
????????????Predict_box?=?[];
????????else
????????????if?Predict_box(1)<0
???????????????Predict_box(1)?=?0;?
????????????end
????????????if?Predict_box(2)<0
????????????????Predict_box(2)?=?0;
????????????end
????????????if?Predict_box(1)?+?Predict_box(3)?>?size(videoframe2)
????????????????Predict_box(3)?=?size(videoframe2)?-?Predict_box(1);
????????????end
????????????if?Predict_box(2)?+?Predict_box(4)?>?size(videoframe1)
????????????????Predict_box(4)?=?size(videoframe1)?-?Predict_box(2);
????????????end
????????end
????????%根據對運動目標的觀測值對狀態向量進行修正更新(后驗)
????????videoframe??=?step(videoReader);
????

評論

共有 條評論

相關資源