在中国安防产业中视频监控作为最重要的信息获取手段之一,能对目标有效的提取是重要而基础的问题,因此本文在此背景下,围绕对监控视频的前景目标有效的提取问题,研究了关于1)静态背景、动态背景的前景目标提取,能在背景复杂化的条件下,将运动的目标;
2)带抖动视频;
3)静态背景下多摄像头对多目标提取;
4)出现异常事件视频的判断等问题。
给出了在不同情况下的前景目标提取方案。
问题一是针对静态背景且摄像头稳定的情况下,如何对前景目标提取的问题。
在题目要求的基础上,通过对附件2中几组视频的分析,我们发现所有前景目标的运动短暂且光线明暗变化不明显。
由于传统的Vibe算法能抑制鬼影但是运行效果不理想,因此采用建立在帧差法上改进的Vibe算法模型求解问题。
并和传统的Vibe算法做对比,结果显示改进的Vibe算法明显优于传统的算法。
而且对我们的算法模型做了效果评价。
详细数据参考正文与附录。
问题二是在背景为动态(如有水波的产生)的情况下,对前景目标的提取问题。
在此问题中,由于动态背景存在使得提取出的图像帧具有大量的干扰噪声,对前景目标的识别和提取造成干扰,因此我们提出一种基于全局外观一致型的运动目标检测法。
在用Vibe算法对场景预检测的基础上,建立混合高斯模型分别对前景和背景进行全局外观建模,将运动目标检测出来,再引入超像素去噪,进一步优化结果。
详细结果参考正文与附录。
问题三是在问题一、二基础上的进一步深化。
问题一及问题二是建立在摄像机自身稳定的基础上,而问题三则是在摄像机抖动的情况下。
由于摄像机抖动一般具有旋转和平移,因此我们建立了坐标变换模型,以仿射变换作为模型基础,结合改进的高精度鲁棒的RANSAC算法提取前景目标,并对比灰度投影法,比较两种模型效果。
具体效果见正文与附录。
问题四是对前三个问题的综合应用。
运用基于混合高斯模型背景建模Vibe算法,对前景目标进行提取;
选出具有显著前景目标的参考帧,计算参考帧中显著前景目标所占的面积,并将此面积设定为阈值T,遍历所有的视频帧,计算其前景目标所占的面积,通过相减对比,判定显著前景目标。
若判定为显著前景目标则输出其所在视频帧中的帧号,并将显著前景出现的总帧数增加1。
问题五是针对多摄像头多目标的协同跟踪问题。
在问题二的混合高斯模型基础上我们建立了动态背景提取法,对不断变化的背景进行实时更新。
再利用单应性约束法对多目标发生重叠现象进行投影将重叠目标区分开来,对目标进行定位。
由于目标的不断运动,我们采用粒子滤波法对前景目标进行实时跟踪,通过多摄像头的协同通信完成对多前景目标的检测。
问题六是针对监控视频中前景目标出现异常情况时判断能否有异常事件的问题。
在基于稀疏表示的模型上,引入混合高斯模型用于学习不同类型的运动特征规律,然后通过各个单高斯模型中的均值建立一个相似矩阵作为字典。
以测试阶段生成的核矢量为基础,用该局部特征的核矢量计算基于稀疏表示的重构误差,并将其与已设定的阈值进行比较,如果重构误差大于阈值,则判为异常。
2015/11/11 19:17:23 2.62MB MATLAB 目标提取 视频监控 Vibe算法
1
PHP简略遍历文件批量加文字水印,图片水印,代码比较简略,两个方法,一个是递归文件,一个是水印方法,代码比较粗糙,望海涵
2015/4/20 12:39:07 4.56MB PHP 批量 水印
1
代码里面有treeview的节点操作,包括添加,当前点击检查,遍历等。
具体引见见:Qt树形控件QTreeView使用1——节点的添加删除操作:http://blog.csdn.net/czyt1988/article/details/18996407Qt树形控件QTreeView使用2——复选框的设置:http://blog.csdn.net/czyt1988/article/details/19171727利用C++11的function和bind功能,实现QStandardItemModel的通用遍历函数:http://blog.csdn.net/czyt1988/article/details/21093451
2018/1/4 7:50:06 8KB QTreeView MVC 树形控件
1
VB遍历桌面一切的窗口和句柄
2019/8/26 20:32:47 70KB VB遍历桌面所有的窗口和句柄
1
《数据结构》(C语言版)算法源码及运行演示系统使用说明一、启动演示系统双击演示系统应用程序文件“DS_VC_ALGO.EXE”启动演示系统,出现图1所示界面。
图1《数据结构》(C语言版)算法源码及运行演示系统主界面二、演示系统使用步骤除了个别算法之外,演示系统给出了《数据结构》(C语言版)书中算法对应的程序代码(CPP文件)和测试运行程序(VC++6.0的EXE文件)。
通过本系统,可以显示算法的源代码以及运行结果。
具体操作步骤如下:1.选择相应章单击演示系统界面右侧章选择按钮。
例如,要选择第6章,则单击“第6章”选择按钮。
当相应章被选择后,窗口的右侧部分将列出本章的算法选择按钮。
例如,选择第6章后,窗口的右侧部分将显示第6章中的算法6.1-6.13和6.15的选择按钮。
由于书中的算法6.14和6.16只是示意性算法,故未给出源码,其按钮上的文字为灰色,处于“无效”状态。
2.选择相应章中的算法单击窗口右侧部分所列举的本章某个算法选择按钮,被选择的算法的源码将在窗口左侧空白区域中显示。
对于较长的源码,单击显示区域后,可用键盘的光标键和翻页键浏览源码。
例如,选择了第6章中的算法6.5后界面如图2所示:图2选择算法6.53.运行测试程序单击窗口上部的“运行”按钮,将弹出运行窗口,运行所选算法的测试程序。
若运行按钮为灰色,表示该算法无单独测试程序。
例如,算法6.5的测试运行窗口如图3所示:图3测试运行窗口测试运行说明:测试运行窗口显示程序的执行过程及结果。
若在显示过程中出现运行窗口无法正常演示的情况,只需调节运行窗口大小即可正常显示(调节最小化按钮或窗口最大化/还原按钮“”)。
三、退出演示系统使用完毕后,单击窗口右上角关闭按钮“”退出演示系统。
四、测试程序示例在《数据结构》的课程教学中,各抽象数据类型的设计与实现是重要的学习和实践环节。
为此,本系统只给出了各算法源码的测试程序的可执行文件。
在此,给出算法6.5的测试程序示例,以供参考。
算法6.5是中序遍历线索二叉树的非递归算法,要对其源码进行测试,可首先调用算法6.6及6.7建立中序线索二叉树。
以下是测试程序的源码,相关类型和辅助函数定义在文件include06.h和include06.cpp中,此略。
//test0605.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"include06.h"//相关类型和辅助函数的定义BiThrTreepre;//线索二叉树遍历辅助变量#include"algo0607.cpp"//算法6.7源码#include"algo0606.cpp"//算法6.6源码#include"algo0605.cpp"//算法6.5源码intmain(intargc,char*argv[]){chargl_str[64];BiThrTreeT;BiThrTreeThrt;printf("*******************************************\n");printf("*《数据结构》(C语言版)严蔚敏,吴伟民*\n");printf("*算法6.5,6.6&6.7*\n");printf("*******************************************\n");srand((unsigned)time(NULL));//随机函数初始化T=NULL;//空二叉树Tfor(intpass=0;pass<5;pass++){//测试运行5次,第一次为空树outBiThrTree(T,gl_str);//以类广义表的方式输出二叉树T到gl_strprintf("T=%s\n",gl_str);//显示pre=NULL;Statusr=InOrderThreading(Thrt,T);//算法6.6,6.7,中序线索化printf("InOrderThreading(Thrt,T):%s\n",(r)?"OK":"ERROR");initVisitStr();//将visitStr清为空串InOrderTraverse_Thr(Thrt,v
2018/10/26 23:48:18 2.92MB 严蔚敏 数据结构 C语言 源代码
1
定义二叉树类,封装构造二叉树操作、遍历操作.完成由先序、中序序列构造二叉树的算法完成由后序、中序序列构造二叉树的算法
2022/9/7 10:52:48 6KB 先序 中序 后续 二叉树
1
本代码使用matlab实现了批量读取某个文件夹上面的.bmp文件,并将文件灰度化,提取二值化区域的块,将其转换成其他大小并保存
2022/9/6 18:03:45 681B matlab 批量读取图像
1
内容提要:本文主要介绍了无向图的应用示例。
主要讨论关于无向图的最小生成树、无向图的遍历问题、图与图匹配和迷宫问题。
首先介绍了关于最小生成树的基本定义和性质,以及两种构造最小生成树的算法(Prim算法和Kruskal算法)。
然后,和有向图类似的介绍了两种无向图的遍历方法(深度优先遍历和广度优先遍历)。
接着介绍了迷宫问题的求解方法。
最后,介绍了求解最短路径的六种方法,包括宽度优先搜索、动态规划、A﹡算法、等代价搜索法、Warshall算法和标号法。
关键字:无向图、最小生成树、Prim算法、Kruskal算法、迷宫问题、最短路径引言:无向图G=(V,E)由顶点的集合V与边的集合E组成。
无向图和有向图的区别在于,构成无向图任意一条边的两个顶点是无序的,就是说,如果(V,W)是一条无向边,(V,W)=(W,V),以后把无向图简称图。
许多学科都用图描述对象之间的关系,建立数据模型,图的每个顶点表示一个对象,每条边表示两个对象之间的关系。
2022/9/5 10:52:43 294KB 算法 分析与设计 无向图
1
这是C#版的数据结构与算法的代码实现,包括:顺序表,单链表,双链表;
顺序栈,链栈;
顺序队列,链队列;
顺序串;
用数组进行特殊矩阵的存储,稀疏矩阵的存储;
顺序存储二叉树,链式存储二叉树,哈夫曼树;
多重链表表示法存储树;
用邻接矩阵处理图的编程问题,用邻接表处理图的编程问题,图的遍历(深度优先,广度优先),Dijkstra最短路径算法;
冒泡排序,快速排序
2022/9/5 9:52:06 675KB 数据结构与算
1
本代码已经通过实际测试,代码运行良好,无bug。
在Linux内核中添加一个系统调用,并编写对应的linux应用程序。
利用该系统调用能够遍历系统当前所有进程的任务描述符,并按进程父子关系将这些描述符所对应的进程id(PID)组织成树形结构显示。
2022/9/4 14:11:04 69KB Linux 系统调用 内核 进程遍历
1
共 329 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡