智能视频检索算法

能视频检索依赖于视频算法对视频内容进行分析,通过提取视频中关键信息,进行标记或者相关处理,并形成相应事件和告警的监控方式,人们可以通过各种属性描述进行快速检索。如果把摄像机看作人的眼睛,而智能视频监控系统可以理解为人的大脑。智能视频技术借助处理器的强大计算功能,对视频画面中的海量数据进行高速分析,获取人们需要的信息;

帧差模型


   
  帧差可说是最简单的一种背景模型,指定视频中的一幅图像为背景,用当前帧与背景进行比较,根据需要过滤较小的差异,得到的结果就是前景了。

背景统计模型

背景统计模型是:对一段时间的背景进行统计,然后计算其统计数据(例如平均值、平均差分、标准差、均值漂移值等等),将统计数据作为背景的方法。

编码本背景模型

编码本的基本思路是这样的:针对每个像素在时间轴上的变动,建立多个(或者一个)包容近期所有变化的Box(变动范围);在检测时,用当前像素与Box去比较,如果当前像素落在任何Box的范围内,则为背景。

混合高斯模型

混合高斯背景建模是背景建模比较成功的一种。

为什么这么说呢?
机器视觉算法提取运动目标面临的基本问题:图像抖动,噪声干扰,光线变化,云飘动,阴影(包括目标阴影和区域外物体阴影),区域内部反光(如水面,显示器),运动目标缓慢移动等。那我们来看看,混合高斯背景建模是怎么解决这些问题的?

通过背景建模与前景提取,把视频帧中的目标对象提取了出来,不过提取得到的是所有非背景对象,也就是是混合的,可能包含很多人、车、动物等对象,最终以图搜图检索所要对比的是当个对象与搜索目标的相似性,这里就需要通过目标检测与跟踪把这些混合的对象分离开来分别处理;

在目标检测方面,所了解到的算法有贝叶斯方法、卡尔曼滤波器、粒子滤波器几种,他们之间的关系如下:

贝叶斯方法利用已知的信息建立系统的概率密度函数可以得到对系统状态估计的最优解。

对于线性高斯的估计问题,期望的概率密度函数仍是高斯分布,它的分布特性可用均值和方差来描述,卡尔曼滤波器很好地解决了这类估计问题。

粒子(particle)滤波器——序列重要性采样粒子滤波器,是一种适用于强非线性、无高斯约束的基于模拟的统计滤波器。

综合上,粒子滤波的效果要更好;

光照处理:同一个物体,在不同光照下的视觉效果是不同的,所对应的数据也是不同的,所以,为了提高分析准确性,召回率,需要对目标对象做光照处理;光照处理方面,业界比较流行的算法是本征图像分解法;

本征图像分解

照相机所获得的图像中的每个像素点值所具有的属性所表示的信息中最为重要的是亮度(shading)和反照率(reflectance)这两种。其中亮度对应环境中的光照信息,反照率对应于物体的材质信息,即物体对光照的反射特性,反照率主要表现为物体的颜色信息。本征图像求解问题就是从图像出发,恢复所有像素点对应的场景中的亮度和反照率信息,分别形成亮度本征图和反照率本征图

本征图像分解可以表述为I(x,y) = L(x,y)R(x,y),其中I(x,y)表示输入图像, R(x,y)表示反照率图像, L(x,y)表示亮度图像。因为在对数域中,乘法被转换成了更加易于计算的加法,因此我们在图像的对数域中进行计算,记 /(X,y) = log(I(x, y)) , r0,y) = log(R(x,少)),l(x,y) = log(L(x,y))。如此原来的乘法关系被转化为:i(x,y,t) = r(x,y) + l(x,y,t)。

关键帧提取

安防监控所采集的视频数据量非常大,如果对视频的每一帧都进行特征提取、建立高维索引、检索,那么在视频分析和检索方面的时间开销将非常大,所以第一步,要先对视频流进行关键帧提取,只对关键帧进行特征提取、建立高维索引、检索的操作,大幅度缩短计算量;

视频关键帧提取是指按照一定的规则提取能够代表原视频内容的帧,该技术能够去除视频数据中大部分冗余信息,仅保留视频数据有用的部分;关键帧提取是后续特征提取。索引建立的前提,算法的优劣会直接影响整个视频分析的准确率和性能;

关键帧提取的方法

关键帧提取方法主要分为两类:基于全图像序列的方法和基于压缩视频的方法;

目前大多数关键帧的提取研究是基于全图像视频分析的.具体实现方法的区别主要在于检测方法的应用、特征的选择以及帧图像子块的划分。主要可以分为以下几类:

基于镜头边界的方法

该方法将视频流分割成很多的镜头,把镜头中的第一帧和最后一帧以及中间几帧作为关键帧。该方法简单易行,适于内容活动性小或内容保持不变的镜头。但未考虑镜头视觉内容的复杂性:限制了镜头关键帧的个数:提取的关键帧代表性不强,效果不够稳定。

基于内容分析的方法

该方法基于每一帧的颜色、纹理等视觉信息的改变来提取关键帧。比较经典的方法是帧平均法和直方图平均法。帧平均法是在镜头中计算所有帧在某个位置上像素值的平均值.然后将镜头中该点位置的像素值最接近平均值的帧作为关键帧;直方图平均法是将镜头中所有帧的统计直方图取平均.然后选取与该平均直方图最接近的帧作为关键帧。

基于运动分析的方法

此方法是根据运动信息提取关键帧.代表算法是Wolf提出的运动极小值算法 Wolf通过光流分析来计算镜头中的运动量.在运动量取局部最小值处选取关键帧。

基于聚类的方法

该方法是目前关键帧提取的主流技术.其基本思想是:首先确定一个初始类心.然后根据当前帧与类心的距离来判断当前帧是归为该类还是作为新的类心.将镜头中帧分类后.取各类中离类心距离最近的帧作为关键帧。

基于压缩视频的方法

上述方法都是基于全图像序列的,即在提取关键帧之前.对视频进行解压,还原成帧图像。运算量大。基于压缩域的方法是直接从MPEG压缩视频流上提取关键帧.无需对视频流解压或只需部分解压,降低了计算的复杂性。

业界比较常用的是基于聚类的方法和基于压缩域的方法进行关键帧提取;

关键帧提取完成后,就需要对提取到的关键帧进行特征提取操作,主要是颜色特征、纹理特征、形状特征等几个角度;特征提取完成后,会对目标特征建立高维索引,来提高检索速度,最后通过对索引进行检索来搜索目标图像,返回搜索结果;

时间: 2024-11-06 12:39:25

智能视频检索算法的相关文章

智能视频监控中的遗留物或搬移物检测

智能视频监控中的遗留物或搬移物检测 [email protected] http://blog.csdn.net/kezunhai 遗留物或搬移物检测是智能视频监控中的一项基本功能,基本上是智能视频监控领域的必备功能.然而,在实际应用中漏报或误判率依然很高.常见的遗留物或搬移物检测算法主要分为两类,一类是先检测,再根据检测前景在场景中的停留时间来判定是否为遗留物或搬移物:另一类,则是先检测,然后采用跟踪方法来判断是否为遗留物或搬移物,该类方法由于目标跟踪本身存在的难点,在实际应用的场景受到了很大

智能视频分析

智能视频分析目前在国际上有多种叫法,比如VCA(Video Content Analysis).VA(Video Analysis).IVA(Intelligent Video Analytics)等.这是计算机图像视觉技术在安防领域应用的一个分支,是一种基于视频分析的智能监控技术. 本智能视频分析主要是关于行为分析的应用.所有的视频分析都是建立在对视频中目标的有效识别基础上,而且区别于传统的移动侦测(VMD - Video Motion Detection)技术,智能视频分析首先将场景中背景和

一周集成行业智能监控应用,阿里云发布智能视频监控平台

在4月22-25日于上海举办的2019联通合作伙伴大会上,阿里云首次对外发布了智能视频监控平台,同时向参会的数千名伙伴及业界人士演示了一分钟视频监控上云系统,阐述了阿里云智能视频监控平台助力传统监控领域上云的优势和方法. 在视频监控领域,上云和AI是未来的趋势,阿里云智能视频监控解决方案无缝集成了视频监控产品和智能视觉产品.该平台依托遍布全球的边缘接入节点和出色的视频技术,面向监控设备提供统一开放的视频流接入.处理和分发服务.将传统的本地监控视频内容接入云端,进行存储.录制回看.全网分发,同时通

目标检测之视频摘要---即视频浓缩,视频检索,视频摘要浓缩

(1)视频摘要应用背景 (2)视频摘要简介 (3)视频浓缩相关技术 (4)视频浓缩残留问题 ---------------author:pkf ----------------------------time:2015-1-26 ------------------------------------qq:1327706646 (1)视频摘要应用背景 说起视频摘要,13年就有看到同事在做这方面的工作,并带个硕士三个月内三个人搞出了个简单demo,当时是给多维视通合作的一个项目,给公安侦查大队使用

C++实现二分检索算法

C++实现二分检索算法#include <iostream>#include <iomanip>#include<stdlib.h>using namespace std;void enter(int arrayin[], int n); //输入函数void asort(int arrayin[], int n); //排序函数int Search(int number,int arraylength,int array[]); //查找函数const int N=1

javascript检索算法代码举例

今天看到一篇谈javascript的文章.引起我的好奇.主要讲查找数据有2种方式,顺序查找和二分查找.顺序查找适用于元素随机排列的列表.二分查找适用于元素已排序的列表.二分查找效率更高,但是必须是已经排好序的列表元素集合. 在多是泛泛之谈的今天.有这个javascript的文章实属难得.在这篇CODEGO.NET的javascript文章里面谈的主要是检索算法.包括数据结构与算法的一些演示. 个人觉得挺有用.所以不敢独享就发出来.加上我自己的一些经验之谈了. 一:顺序查找 顺序查找是从列表的第一

戴文军:如何用边缘计算+边缘存储打造新一代智能视频云

云栖大会七牛云专场论坛于 9 月 20 日在杭州云栖小镇举行,以「当 Cloud 遇上 AI 为主题,围绕「云」和「人工智能」两个关键词,邀请了多名业内大咖,为大家带来了精彩演讲.七牛云技术副总裁戴文军,在会上作了题为<如何用边缘计算+边缘存储打造新一代智能视频云>的分享.? 以下内容为根据现场演讲内容速记的实录整理.???大家下午好.在开始之前,要给大家澄清一下,虽然主持人和很多朋友都说边缘计算现在比较热,但其实今天来看,边缘计算真正意义上的落地不太多,边缘计算的产业化应用带来的应用场景还没

比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍

转自:http://blog.csdn.net/carson2005/article/details/7647500 TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生在其攻读博士学位期间提出的一种新的单目标长时间(long term tracking)跟踪算法.该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变.部分遮挡等问题.同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征

检索算法——二分查找

如果要查找的数据是有序的, 二分查找算法比顺序查找算法更高效. function insertionSort(arr) { var temp, inner; for ( var outer = 1; outer < arr.length; ++outer) { temp = arr[outer]; //选中一个值作为临时值,使得其前面的数依次与它进行比较 inner = outer; while (inner > 0 && (arr[inner - 1] >= temp)