人脸视频跟踪与检索系统

您所在的位置:网站首页 人脸跟踪视频软件 人脸视频跟踪与检索系统

人脸视频跟踪与检索系统

2024-07-11 11:19:38| 来源: 网络整理| 查看: 265

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 1 1.3研究主要内容 3 第二章 人脸视频图像的底层处理 4 2.1人脸视频图像的预处理 4 2.2人脸视频图像的二值化 6 2.2.1边缘检测 6 2.2.2阈值的选择 12 2.2.3边界跟踪 15 2.2.4人脸视频图像的归一化 16 第三章 基于Adaboost算法的人脸视频跟踪与检索 17 3.1 AdaBoost算法的发展应用 17 3.2 人脸视频跟踪与检索训练算法 19 3.2.1使用Haar-like特征的Adaboost人脸视频跟踪与检索算法 19 3.2.2Adaboost算法的检测过程 26 3.3实验结果与分析 29 3.3.1训练和检测的结果与分析 29 3.3.2检测结果示例 30 第4章 人脸视频跟踪与检索系统设计与实现 33 4.1人脸视频跟踪与检索系统的需求概括 33 4.1人脸视频跟踪与检索系统界面设计 34 4.1人脸视频跟踪检索系统的实现 34 4.3软件代码设计过程中需要注意的问题 35 总 结 37 致 谢 38 参考文献 39 附 录 40 第4章 人脸视频跟踪与检索系统设计与实现 4.1人脸视频跟踪与检索系统的需求概括 软件主要的功能部分: (1):能够打开读取任何BMP或者JPG图像,并将图像显示到固定空间上。(2):能够在控件上通过鼠标操作实现任意图像大小的剪裁,并实现剪裁后的图片显示。 (3):能够对任意一幅图像进行人脸检测,包括对图像剪裁之后,只对剪裁区域进行人脸检测。 (4):图像的重新加载,任何图像都与可能误操作,此时可以通过重新加载来实现数据恢复到原始的读入时的图像数据,包括实施剪裁的数据的清空。(5):图像信息的显示,主要是指一些简单的图像信息,包括图像的宽度、高度以及位深。 (6):人脸教案车结果的显示,就是将提供带检测的图像中人脸区域找出,并将其显示到指定的控件中,在此系统中并没有将全部检测到的人脸显示出来,不能动态显示(可以作为其缺钱在后面再叙述)。 (7):能够打开Xvid编码格式的avi视频文件,并获得视频文件的相关信息,并且通过制定控件查看,只包括简单的视频长度和宽度以及帧速率。 (8):能够实现简单的视频操作,包括视频在指定的控件上播放,能在暂停和播放模式之间切换.播放时能够显示相应的信息,包括总的视频时间长度,播放的动态时间显示,滑动条显示播放进度。 (9):人脸检索主要是对从视频中抓取的一帧图像进行人脸检测,并对其与检测输入选择的人脸进行识别,识别过程主要是计算所有人脸的欧式距离,默认距离最小值为识别的结果。 (10):可以进行检索之前的信息配置,包括对视频检索步长的选取,以及检索时间段的选取。 (11):显示视频中最像待识别人脸的12个结果,每次显示六个结果,通过“上”“下”按键可以选择循环显示。 (12):能够对检测结果进行跟踪,即找出每个检索结果所在视频帧,以及相对应的时间,可以直接在原视频中查看原始图像。 (13):显示软件的相关介绍。 (14):所有显示图像的窗口都必须实现重绘的功能,就是在窗口最小化或被遮掩之后恢复之后原图的显示不会出现任何问题。

4.1人脸视频跟踪与检索系统界面设计 软件的主要界面如图1.1所示,从程序的主界面可以看出整个系统主要由两大模块构成,包括:人脸的输入和检测模块,以及人脸识别和检索模块。按照组成部分可以将整个系统分成六个部分:包括:1.输入部分,2.检测结果,3.视频操作,4.信息配置,5.输出结果,6.软件简介。 在这里插入图片描述

图1.1 人脸检索系统主界面

//Download by http://www.NewXing.com // MainFrm.h : interface of the CMainFrame class // / #if !defined(AFX_MAINFRM_H__801240A2_2094_4043_88B2_9F12569EDBFF__INCLUDED_) #define AFX_MAINFRM_H__801240A2_2094_4043_88B2_9F12569EDBFF__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 //-------------------------------------------------------------- #include typedef struct{ // int headsize; //bitmap headsize unsigned char buffer[6400000]; //bitmap head and data BITMAPINFOHEADER bitmapinfoheader; //文件信息头 DWORD VideoFormatSize; }DIBINFO,*PDIBINFO; //----------------------------------------------------------- class CMainFrame : public CFrameWnd { protected: // create from serialization only CMainFrame(); DECLARE_DYNCREATE(CMainFrame); // Attributes public: //------------------------------------------------------------ DIBINFO m_dibinfo; CFrameWnd m_wndSource; HWND m_hWndCap; CAPDRIVERCAPS m_caps; BOOL m_iscapture; void ChangeSize(); BITMAPINFOHEADER m_bitmapheader; //存放"以YCrCb色彩空间表达的数据信息"的信息头信息; unsigned char m_ycc_buffer[6000000]; //存放以YCrCb色彩空间表达的数据信息; BITMAPINFOHEADER m_rgb_bitmapheader; //存放"以RGB色彩空间表达的数据信息"的信息头信息; unsigned char m_rgb_buffer[6000000]; //存放视频帧的数据信息,以来进行人脸检测操作; int m_x1,m_x2,m_y1,m_y2; //记x1为人脸的左边界,x2为人脸的右边界 //y1为人脸的下边界,y2,为人脸的上边界; //------------------------------------------------------------- long m_bhist[256],m_ghist[256],m_rhist[256]; long m_yhist[256],m_crhist[256],m_cbhist[256]; void rgb_histogram();//rgb色彩空间的像素统计 void ycc_histogram();//ycc色彩空间的像素统计 BOOL m_after_skindect; BOOL m_enable_skindect; BOOL m_enable_facelac; //------------------------------------------------------------- //------------------------------------------------------- void OnAppExit(); void OnClose(); DWORD BytePerLine(LPBITMAPINFOHEADER lpbi); //得到每行像素所占用的字节数; long PixelOffset(int i,int j,DWORD wBytePerLine); //得到像素点数据在整个数据区中的偏移; void RGBToYCrCb(); //色彩空间转换函数(RGBàYCrCb); void Skin_detection(); //肤色识别函数; void dilation();//膨胀操作; void erosion();//腐蚀操作; int ErasionFalseArea();//去掉非人脸的区域; void RecursiveCal(unsigned char * lpData,int y,int x,DWORD wBytesPerLine,int * pixelNum,int num); //递归统计该区域连续的白色点像素点个数; void scan();//扫描函数 void RGB_Copydata();//把RGB空间的视频帧数据信息拷贝到m_rgb_buffer[6000000]中; void RGB_Skin_detection();//RGB空间的肤色识别公式 //------------------------------------------------------- // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CMainFrame) virtual BOOL PreCreateWindow(CREATESTRUCT& cs); //}}AFX_VIRTUAL // Implementation public: virtual ~CMainFrame(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // control bar embedded members CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; // Generated message map functions protected: //{{AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnFormat(); afx_msg void OnPreview(); afx_msg void OnSource(); afx_msg void OnCapture(); afx_msg void OnFace(); afx_msg void OnFacelocation(); afx_msg void OnVideofacelac(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; / //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_MAINFRM_H__801240A2_2094_4043_88B2_9F12569EDBFF__INCLUDED_)

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭