计算机视觉和滤帧技术

news2024/10/7 4:35:34

01 什么是计算机视觉

进入主题之前,先聊聊计算机视觉。

计算机视觉是指利用摄像头和电脑识别、跟踪和测量目标,并进行图像处理,使其适合人眼观察或仪器检测。作为一个科学学科,计算机视觉模拟生物视觉,旨在实现图像和视频的“识别”和“理解”。

  • “识别”是指通过机器学习和图像处理技术,使计算机能够识别并分类图形图像或视频中,能够对各种输入设备传入系统中的内容进行接收和分类,以特征为依据进行有效的处理。

    图片

  • 计算机视觉中的“理解”任务是试图让机器能够像人类一样理解和解释图像或视频,主要涉及到对图像或视频的测量、检测和定位。

计算机视觉通过“理解”和“识别”,模仿人类视觉系统的能力,以便能够理解和解释我们环境中的视觉信息,此能力亦使其成为许多行业和应用的关键技术。

图片

计算机视觉领域已形成相对成熟的核心技术,催生出完整的产业链,渗透到了国民经济和居民生活的方方面面。本文所谈滤帧技术是此领域的核心技术之一,通过该技术实现图像帧的筛选与过滤,目前普遍应用于视频的识别与理解。

02 滤帧技术的应用场景分析

基于视频的应用已非常广泛,特别是在公共安全方面,公安系统的”天网”即非常有代表性,假如当时现场有一套密集人群分析系统,首尔梨泰院的踩踏事件就不会发生。(可以通过对区域内单位面积人员数量进行分析)

图片

上图所示为山火监控,其实现的逻辑是通过摄像头拍摄视频完成输入,处理时将视频以时间为单位截成图像;摄像头后端通过图像识别技术来判断是否发生山火。由于山火是低频率事件,通过滤帧技术过滤重复图像,实现山火监控的同时,可节省大量计算资源。

滤帧技术的本质是通过选择或排除特定的图像帧来优化视频处理或分析任务。这种技术可以根据各种因素来筛选图像帧,包括但不限于:图像内容、场景变化程度等。滤帧技术的主要目标通常是减少需要处理的图像帧数据量,提高处理速度,以及提高后续任务(如物体检测、追踪或行为识别)的精度。滤帧技术可以看作是一种预处理步骤。

当前业界针对滤帧技术的主要诉求是根据应用场景的需要,选择关键图像帧,减少图像帧数,提取重要信息。滤帧技术的需求是如何产生的呢?

视频实际上就是一系列的图像帧(或称为“帧”),它们以特定的速率(通常是每秒24帧、30帧或60帧)连续播放。每一帧都是静态的图像,而当这些帧以足够快的速度连续播放时,由于人眼的视觉暂留效应,我们会感觉到图像在移动,就形成了动态的视频。

实际应用中,视频内容在一段时间内没有变化,视频的图像帧将出现大量的重复,这是一个非常普遍的现象。因此,过滤重复内容的图像帧,在视频识别与理解过程中显得尤为必要。

滤帧技术是如何被应用的呢?

图片

如上图所示, “视频截帧成图像帧——图像帧筛选——筛选好的图像帧进行预测和识别”构成视频识别与理解的“通常链路”,无论是识别、测量、检测还是定位,基本上都是基于该链路实现。滤帧技术在视频截帧成图像之后,主要承担了图像帧筛选。大量的实时监控场景和海量的视频数据,使得图像帧筛选成为了不可或缺的环节。

滤帧的价值在于,通过滤帧技术的预处理和筛选,可以从视频流中提取出最有用的图像帧,以满足对应的需求,同时提高效率、节省计算资源、节省存储空间。这在实时视频监控、视频摘要、视频压缩、视频索引和快速浏览等应用中很有用,对滤帧技术的探讨和研究具有重要意义。

03 滤帧技术的实现方法

针对滤帧技术的诉求主要取决于具体应用场景和需求。不同的技术和算法可用于满足不同的目标,以下总结滤帧技术的5种常用的实现方法:

帧间差分法:该技术通过比较连续帧之间的像素差异来检测图像的内容变化。通过计算当前帧与前一帧之间的差异,可以获得图像内容的变化情况。这对于剔除冗余帧图像、剔除重复帧图像和实现最优帧图像筛选非常有用。

光流估计法:光流估计是一种通过分析图像中的像素运动模式来获取运动信息的技术。具体算法包括基于亮度约束的光流方法(如Lucas-Kanade光流)、基于匹配的光流方法(如基于相关性的光流)和基于能量优化的光流方法(如Horn-Schunck光流、TV-L1光流)等。通过计算相邻帧之间的光流向量,可以获得图像中的运动信息。这对于检测和筛选具有显著运动的帧非常有用。

背景建模法:通过对视频序列进行背景分析和理解,可以识别出重要的背景变化和关键事件。背常用的算法包括高斯混合模型、自适应背景模型、基于梯度的背景建模和基于学习的背景建模。这些算法通过建立背景模型,利用像素值、梯度等信息来识别前景对象。基于背景分析的滤帧方法可以根据场景的变化情况选择关键帧。

目标检测算法:利用目标检测算法,可以识别视频中的特定目标或关键物体。通过选择包含特定目标的帧作为关键帧,可以提取出重要的内容。算法具体实现包括基于深度学习的目标检测算法(如Faster R-CNN、YOLO、SSD等)和基于传统特征的目标检测算法(如Haar特征和HOG特征结合的级联分类器)等。

运动分析法:通过分析视频序列中的运动模式和变化,可以选择具有显著运动的帧作为关键帧。常见的支持算法有运动向量分析、运动边缘检测和运动分割。运动向量分析计算像素的位移,运动边缘检测捕捉运动物体的边缘,运动分割将像素划分为运动和静止部分。这些算法可以根据应用需求选择关键帧,提取视频序列中的显著运动信息。

上述滤帧技术可以单独应用或结合使用,具体取决于应用场景和需求。根据实际情况,还可以使用其他滤波技术或自定义算法来实现特定的滤帧效果。

04 滤帧技术的实战案例分析

场景案例:某街道的占道经营实时监控

场景分析:在该场景下,需通过摄像头实时监控指定街道位置是否有小摊贩在街道上违规占道经营。该街道在下午6点至次日凌晨2点这8小时的时间段,经常出现占道经营的情况。然而,在凌晨2点到当天下午6点之间的这16小时之间,街道占道经营非常少。

技术分析:典型的视频分析类型应用,滤帧的诉求是最优帧筛,即剔除重复的截帧图像和冗余的截帧图像,筛选出图像内容有变化的截帧图像,用于识别是否有小摊贩占道经营,可选择帧间差分技术。

数据准备:选取该街道其中一路摄像头,选取2天的监控视频数据。

实现步骤

图片

图片

帧间差分技术流程引入如上图所示,图中灰色背景框内的流程即为帧间差分,帧间差分的实现,主要分为四个核心步骤:

第一步:计算前后帧差分图

首先,针对前后两帧的图像进行作差。计算方法是将当前帧与上一帧之间的绝对差异值计算出来,生成一幅差分图。这可以通过opencv库中的主函数Absdiff实现。openCV是是由Intel公司于1999年开发并在2000年首次发布的,后来由Willow Garage和Itseez等公司提供支持和贡献,这是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法的实现。差分图有助于突出图像中发生变化的区域,如下图,将差分图像转换为灰度图像。第一帧图像作为背景,没有人,第二帧图像有人出现,通过运算,得到了占道经营的整体轮廓:

图片

第二步:提取差分图的直方图

其次,针对差分图,需要提取其直方图。直方图是一种表达图像中灰度分布的方法。它的 x 轴表示图像,y 轴表示具有同一灰度值的像素点数目。通过直方图,可以对整幅图像的灰度分布有一个整体的了解。这可以通过opencv库中主函数calcHist实现。针对上述的差分图,会进行提取直方图,大部分像素值(即差值)接近于0,因此产生的差值直方图具有更大的峰值,如下图:

图片

第三步:计算直方图的均方根值

计算直方图的均方根值(RMS),以代表两张图之间的差异值。均方根值(RMS)是一种用来衡量信号幅值的度量方法,其计算过程包括先平方和,再求平均值,然后开方。RMS 值可以有效地描述图像差异程度,其计算公式如下:

图片

图片

在得到的计算结果中,RMS值越大,表示两张图像的差异程度越大。

第四步:比较阈值和差异值

最后,需要将计算出的差异值(RMS值)与预设的阈值进行比较。如果差异值大于阈值,则认为前后图像发生了变化;如果差异值小于阈值,则认为图像无变化。阈值可以根据不同场景的敏感度进行人工干预设置。阈值越小,对于图像变化(如光线、细小动作等)越敏感。

本例选用的是中敏感度识别,阈值为0.3

敏感度

阈值

0.5

0.3

0.1

注:具体阈值可根据事件在视频画面中的占比等实际场景情况设计阈值

数据比对

案例占道经营监测中,有1/3的时间存在明显的变化需要进行实时计算和分析。帧间差分技术过滤无变化的图像帧的比例为2/3。以每秒截取一帧图像的频率计算,一天的总帧数为24小时 * 3600秒/小时 = 86,400帧。根据上述比例,经过智能滤帧后,每天会被过滤掉的图像帧数为86,400帧 * (2/3) = 57,600帧。与全量参与识别计算相比,滤掉了大量的无效计算,提升了监测事件(占道经营)被发现的时效性,同时也节省了大约2/3的算力资源。

图片

通过帧间差分技术实现的智能滤帧,可以提高视频分析的效率,还能大大节省算力,这项技术对于需要实时响应和持续监测的应用场景具有重要的价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/768494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DAY48:动态规划(十一)爬楼梯(进阶版)+零钱兑换(理解DP数组“装满“含义)

文章目录 70.爬楼梯(改版题目)思路遍历顺序 完整版总结面试情况 322.零钱兑换(DP数组含义的进一步理解)思路DP数组含义递推公式遍历顺序初始化最开始的写法debug逻辑错误:背包不一定装满 修改完整版递归逻辑分析背包是…

极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析...

全文链接:http://tecdat.cn/?p24182 本文用 R 编程语言极值理论 (EVT) 以确定 10 只股票指数的风险价值(和条件 VaR)(点击文末“阅读原文”获取完整代码数据)。 使用 Anderson-Darling 检验对 10 只股票的组合数据进行…

EFCore—context在其他程序集时如何进行数据迁移

场景 解决方案: 代码示例: 场景 一般来说,如果efcore进行数据迁移的步骤如下 安装nuget包创建实体类创建config创建dbcontext 然后执行如下命令就可以成功迁移了 Add-Migration Init Update-Database 一执行,报错 Unable t…

(四)「消息队列」之 RabbitMQ 路由(使用 .NET 客户端)

0、引言 先决条件 本教程假设 RabbitMQ 已安装并且正在 本地主机 的标准端口(5672)上运行。如果您使用了不同的主机、端口或凭证,则要求调整连接设置。 获取帮助 如果您在阅读本教程时遇到问题,可以通过邮件列表或者 RabbitMQ 社区…

k8s之Pod容器的探针

目录 一、Pod 容器的探针二、探针的探测方式2.1 存活探针的使用2.1.1 exec方式2.1.2 httpGet方式2.1.3 tcpSocket方式 2.2 就绪探针的使用2.3 启动探针的使用2.4 7.Pod 容器的启动和退出动作 三、总结 一、Pod 容器的探针 探针是由 kubelet 对容器执行的定期诊断(p…

M1安装ParallelsDesktop-18 重启镜像后无网络

M1安装ParallelsDesktop-18 重启镜像后无网络 重新关联镜像 sudo -b /Applications/Parallels\ Desktop.app/Contents/MacOS/prl_client_app

手机定屏死机问题操作指南

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、定屏死机问题抓取 Log 要求二、 复现定屏死机问题后做什么三、检查adb是否可连的方法四、连接adb 抓取以下Log五、如果adb不可连,执行下…

一、数制及其转换

目录 常用进制介绍 十进制 二进制 八进制 十六进制 进制转换 二进制转十进制 十进制转二进制 二进制转十六进制 十六进制转二进制 二进制转八进制 八进制转二进制 十六进制转八进制 八进制转十六进制 常用进制介绍 十进制 介绍:十进制是日常生活中最…

基于linux下的高并发服务器开发(第二章)- 2.9 waitpid 函数

#include <sys/types.h> #include <sys/wait.h>pid_t waitpid(pid_t pid, int *wstatus, int options); 功能&#xff1a;回收指定进程号的子进程&#xff0c;可以设置是否阻塞。 参数&#xff1a; - pid: pid > 0…

Versal ACAP在线升级之Boot Image格式

1、简介 Xilinx FPGA、SOC器件和自适应计算加速平台&#xff08;ACAPs&#xff09;通常由多个硬件和软件二进制文件组成&#xff0c;用于启动这些设备后按照预期设计进行工作。这些二进制文件可以包括FPGA比特流、固件镜像、bootloader引导程序、操作系统和用户选择的应…

打造有效的产品帮助中心的关键步骤

在当今竞争激烈的市场中&#xff0c;为产品提供优质的客户支持是至关重要的。而一个有效的产品帮助中心可以成为解决客户问题和提供相关信息的中心。本文将介绍打造一个有效的产品帮助中心的关键步骤&#xff0c;帮助你提升客户体验并增强产品的用户满意度。 1. 选择合适的管理…

记一次ruoyi中使用Quartz实现定时任务

一、首先了解一下Quartz Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目&#xff0c;它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个&#xff0c;百个&#xff0c;甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标…

13matlab数据分析多项式的求值(matlab程序)

1.简述 统计分析常用函数 求最大值 max 和 sum 积 prod 平均值&#xff1a;mean 累加和&#xff1a;cumsum 标准差&#xff1a;std 方差&#xff1a;var 相关系数&#xff1a;corrcoef 排序&#xff1a;sort 四则运算 1.多项式的加减运算就是所对应的系数向量的加减运算&#…

ToT: 利用大语言模型解决需要深思熟虑的问题(下)

ToT 摘要介绍利用大语言模型进行有意识的问题解决1. 思维分解2. 思维产生 G(p,s,k)3. 状态评估V(p,S)4. 搜索算法 实验24游戏1). 任务设置2). 基准3). ToT设置4).结果5). 错误分析 创意写作1). 任务设置2).基准3).ToT设置4).结果 交叉词 相关工作规划和决策自我反省程序引导的L…

常见问题-wp

指定顺序展示富集分析的term 调整热图的label角度 h1ggheatmap(dat[cg1,],cluster_rows T, #是否对行聚类cluster_cols T, #是否对列聚类tree_height_rows 0.28, #行聚类树高度tree_height_cols 0.1, #列聚类树高度annotation_cols group_list, #为列添加分组annotation_c…

软件检测报告对软件产品起的作用和编写原则分析

软件检测报告是一项对软件进行全面测试和评估的结果总结&#xff0c;通过对软件的功能、性能、安全性等方面的测试&#xff0c;以及通过分析软件的可靠性和稳定性&#xff0c;来评估软件的质量和合规性。 一、软件检测报告对软件产品起到的作用 1、提供一个全面的评估和分析软…

认识主被动无人机遥感数据、预处理无人机遥感数据、定量估算农林植被关键性状、期刊论文插图精细制作与Appdesigner应用开发

目录 第一章、认识主被动无人机遥感数据 第二章、预处理无人机遥感数据 第三章、定量估算农林植被关键性状 第四章、期刊论文插图精细制作与Appdesigner应用开发 更多推荐 遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多维、多地等角度&#xff0c;获取大量的…

NAT 地址转换路由器配置命令(华为路由器)

#AR1路由器配置 # acl 2000 rule permit source any # interface GigabitEthernet0/0/1 nat outbound 2000 ip address 1.1.1.1 24 # interface GigabitEthernet0/0/0 ip address 172.16.1.1 255.255.255.0 # ip route-static 0.0.0.0 0.0.0.0 1.1.1.2 ip route-static …

工业平板电脑具备IP65防护等级,防尘、防水、防震

随着科技的快速发展&#xff0c;工业平板电脑已经成为了我们日常生活中不可或缺的一部分。而在不同领域中&#xff0c;各行各业的专业需求也在不断增长。针对工业领域的专业需求&#xff0c;工业平板电脑应运而生。它以出色的外观设计、强大的性能和丰富的功能&#xff0c;为工…

【iOS】对象的本质探索

OC对象的底层结构 问题&#xff1a;一个NSObject对象在内存中是如何布局的&#xff1f;NSObject的内存布局1 通过 lldb命令 窥探NSObject内存布局2 通过 View Memory 窥探NSObject内存布局3 通过 底层函数API 窥探NSObject内存布局总结 通过继承关系进一步了解NSObject1 运行项…