C#,基于视频的目标识别算法(Moving Object Detection)的原理、挑战及其应用

news2024/11/17 10:23:34

本文概述了基于监控视频之连续帧信息的各种目标识别算法及其存在的问题与挑战,结合实际应用开发的工作,文中给出了实验性基于帧差算法和改进型背景算法的非人工智能目标识别算法的实际效果。

目标识别算法一直并将持续成为人工智能研究与应用的重点,因为它离生活比较近。本文是写给初学者或初入门者,阅读一下,可以避免或少入坑。

一、目标识别算法的需求与典型应用

1.1 基本需求

从一段连续的视频中提取移动的目标(物体)。

附加的需求包括但不限于识别目标类型、空间位置、移动方向、移动速度及目标分类与统计。

1.2 典型应用

1.2.1 车辆识别与违章处置

1.2.2 军事目标的识别与处置

军事目标往往与非军事目标混杂,而且军事目标无法获得大量的训练集进行训练,因而其特征数据无法用于经常性的识别。军事设备小、精、快,干扰大,因而对于软件的运行环境有较高的、较特殊的要求。

1.2.3 目标的分类与统计

1.2.4 工农业应用

1.2.5 视频压缩

监控视频往往都是连续进行的,随着时间的积累,会生成极大量的视频数据。实际使用中,大量的帧并不具备应用价值,属于“废帧”。废帧,一般就是没有“移动目标”的帧。如果,将这些“废帧”,淘汰出去,可以极大地减少存储需求。按北京联高软件开发有限公式的实验,这样的压缩比,可以达到甚至超过1000:1。24小时的高清监控,可以压缩到10MB一下。

二、目标识别算法的分类

至今为止,目标识别的算法有基于帧差法、背景对比法和基于特征信息的人工智能算法。

2.1 帧差法 Frame difference method

帧差法的原理非常简单,就是比较前后两帧图像之间的差异,并提取其中的有效信息成为目标。

为了提高帧差法的效率,精度, 可以选择缩小图片、灰度化、高斯模糊或中值过滤(模糊)、均值模糊等等。

帧差法的优点是:(1)算法简单,利于在各种特殊平台运行;(2)计算速度快,硬件要求低。

帧差法存在如下难以解决的困难与挑战:(1)一般物体都有联系区域,帧差法会留下很多的“空洞”,这为后续的处理制造很大的困难;(2)帧差法对阴影几乎无能为力。

为了部分解决问题,后续发展了“三帧法”等改进算法,但限于帧差法的基本原理,无法从根本上解决问题。

2.2 背景对比法

背景对比法的原理就是尝试着提取视频中的“背景图”,然后将帧图与背景图做比较,因而提取目标信息。

背景对比法的优点是:(1)算法简单,利于在各种特殊平台运行;(2)计算速度快,硬件要求低。

背景对比法存在几乎无法解决的困难与挑战:怎么提取好的背景?

除了一些极个别的应用场景,实际上很少使用背景对比法。

 

2.3 光流法 Optical Flow

光流法模拟人的眼睛对目标的跟踪。

其基本原理是按照 颜色 或 特征值,计算两帧之间这些点的对应关系,进而确定目标信息。同一个特征点的逐帧移动,形成了“流”,此谓之光流。

光流法正如其光鲜的名字一样,一旦出现,就被寄予厚望。然而,残酷是实际需求,很快就破灭了其发展的势头,而逐步湮灭。

光流法的有点是很多的,但最大问题是:(1)在复杂的实际场景下,特征点的选择是很难的;稀疏光流往往信息不够,而致密光流,其计算量又令人畏惧。(2)无论是稀疏光流、致密光流,其计算量与较低的精度,都使得很难普及应用。

 

2.4 人工智能算法

目标识别算法的历史很长,实际上是从数字影像开始就出现的技术。然而,一直未能获得巨大的突破,直至基于训练集的人工智能技术的出现。

基于人工智能的目标识别原理是:(1)获得与应用相关的大量训练素材;(2)训练并获得特征数据集合;(3)以特征计算帧图片中目标的匹配度,达到约定阈值者为识别对象。

人工智能法的优势:(1)算法应用范围广;(2)识别精度高;(3)光线、阴影等的影响较小;

人工智能法的困难与挑战:(1)如果是工业应用而非学校科研,你必须自己构造数量庞大的训练集;(2)如果是工业应用而非学校科研,必须多次训练以获得理想的特征数据集;(3)运行环境要求高,CPU,GPU等等都必须较好。

再强调一下,人工智能法的最大问题是获得巨量的训练集。什么概念呢?如果需要获得足够高的识别率,往往是200000张图片起步,而且这些图片都必须做标记!多大的工作量啊!!

另外,人工智能算法在一些场合无法展开应用,比如视频压缩、军事应用、红外监控与热成像等等。

 

三、联高算法

北京联高软件开发有限公司参与的科研项目属于工业应用,市面上没有现成的训练集可以使用,而且该系统的应用环境也不能使用高性能计算机。

 

联高算法是帧差法、背景法与光流法的综合体。

联高算法的优势:

(1)无需训练,开机即用;自主训练,越用越准;

(2)100% C# 源代码,未用 OpenCV 及其他组建;支持 .NET ,可运行于 Windows,Linux 及各种国产操作系统。

(3)速度快!精度高!

(4)可用于航天器、飞行器、红外监控、热成像监控及各种特殊监控设备;

(5)用于 视频监控 的超高比率压缩。

(6)适用于各种环境比较恶劣的监控视频。

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

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

相关文章

交换机设备上的G口、F口、E口、S口区别是什么?一台交换机有哪些接口呢?每个接口都有哪些作用?

交换机设备上的G口、F口、E口、S口区别是什么? 一台交换机有哪些接口呢?每个接口都有哪些作用? 交换机的主要功能包括:学习功能、转发过滤和消除回路。 学习功能:以太网交换机知道连接到每个端口的设备的MAC地址,将该地址与相应的端口进行映射,并存储在交换机缓存的MA…

jsp+ssm计算机毕业设计大学生互助系统【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

点云 3D 目标检测 - VoxelNet(CVPR 2018)

点云 3D 目标检测 - VoxelNet(CVPR 2018)摘要1. 引言1.1 相关工作1.2 贡献2. VoxelNet2.1 VoxelNet架构2.1.1 特征学习网络2.1.2 卷积中层2.1.3 区域提案网络2.2 损失函数2.3 高效实施3. 训练详情3.1 网络详细信息3.2 数据增强4. 实验4.1 KITTI验证集评估…

【算法】动态规划 ⑧ ( 动态规划特点 )

文章目录一、动态规划特点1、求解类型2、方向性3、动态规划状态选择4、动态规划方程设计一、动态规划特点 1、求解类型 求解类型 : 动态规划 必须是求 最值 , 可行性 , 方案数 , 三者之一 , 如果求其它内容 , 则不能使用动态规划算法 ; 求最值 : 最大值 , 最小值 等 ; 大规模问…

[附源码]Node.js计算机毕业设计工资管理系统PPTExpress

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

加入CSDN的第一百天,也是学C的第一百天

加入CSDN的一百天 1.学习总结 2.个人感悟 1.学习总结 学习c语言已经有100天,从一个初出茅庐的无知青年,敲出第一个hello world 都激动的不行,到现在: 常见的数据类型, 变量的命名方式, 变量的分类 到变…

[2022-12-17]神经网络与深度学习 hw9 - bptt

contentshw9 - Back Propagation Through Timetask1题目内容题目思路题目解答题目总结task2题目内容题目思路题目解答题目总结hw9 - Back Propagation Through Time task1 题目内容 推导RNN反向传播算法BPTT。 题目思路题目解答 首先我们要清楚RNN进行前向传播的过程&…

0. Canal 的安装和使用

我看过一场风景,后来我才知道,那是我人生中最美的一段时光。 我爱的人,爱我的人,都能度过这场新型感冒,那该多好。 Canal 的官网: https://github.com/alibaba/canal Canal 能干什么 为什么出现 Canal Canal 是阿里…

[ 数据结构 -- 手撕排序算法第二篇 ] 冒泡排序

文章目录前言一、常见的排序算法二、冒泡排序的实现2.1 基本思想2.2 单趟冒泡排序2.2.1 思路分析2.2.2 单趟代码实现三、冒泡排序的实现五、冒泡排序的时间复杂度5.1 最坏情况5.2 最好情况优化六、冒泡排序的特性总结总结前言 手撕排序算法第一篇:插入排序&#xf…

截止12.17 bitahub踩坑,mask无数次更改,lama代码的那些痛,羊了个羊,imwrite不生效

前面那篇跑出了STCN,倒是STCN熟悉了很多了 对bitahub,需要注意一个问题 要进ssh请用debug卡!!!! 要进ssh请用debug卡!!!! 要进ssh请用debug卡!&…

AQS-semaphoreCyclicBarrierCountDownLatch源码学习

上文:jdk-BlockingQueue源码学习源码下载:https://gitee.com/hong99/jdk8semaphore&cyclicbarrier&CountDownLatch的介绍semaphore基础功能semaphore简称信号量,主要用于控制访问特定资源的线程数目,底层用的是AQS的状记s…

[附源码]Python计算机毕业设计Django万佳商城管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Volatile和高速缓存的关系

“volatile关键字有什么用?” 1 常见理解错误 把volatile当成一种锁机制,认为给变量加上了volatile,就好像是给函数加sychronized,不同的线程对于特定变量的访问会去加锁把volatile当成一种原子化的操作机制,认为加了…

Dubbo 3 Dubbo 快速入门 3.1 Zookeeper 安装

Dubbo 【黑马程序员Dubbo快速入门,Java分布式框架dubbo教程】 3 Dubbo 快速入门 文章目录Dubbo3 Dubbo 快速入门3.1 Zookeeper 安装3.1.1 Zookeeper 安装3.1 Zookeeper 安装 3.1.1 Zookeeper 安装 在Dubbo 架构图中 Dubbo官方推荐使用Zookeeper作为注册中心【Re…

【学习总结】注解和元注解

目录 一、注解 1、注解与XML区别 2、注解的用途 3、注解的三种分类 二、什么是元注解? 1、元注解有几种? 1、Retention存活时间 2、Target使用范围 3、Document保存到javadoc 4、Inherited注解继承 三、如何实现的注解 四、问提: …

为解决BERT模型对语料中低频词的不敏感性

来源:投稿 作者:COLDR 编辑:学姐 (内容如有错漏,可在评论区指出) 摘要 Dict-BERT为了解决BERT模型对语料中低频词(rare words)的不敏感性,通过在预训练中加入低频词词典…

人工智能/计算机期刊会议测评(持续更新...更新速度取决于我水论文的速度...)

IEEE Transactions on Knowledge and Data Engineering 中科院2区,CCF A。你为什么是二区????????????做梦都想中的刊。 …

5天带你读完《Effective Java》(二)

《Effective Java》是Java开发领域无可争议的经典之作,连Java之父James Gosling都说: “如果说我需要一本Java编程的书,那就是它了”。它为Java程序员提供了90个富有价值的编程准则,适合对Java开发有一定经验想要继续深入的程序员…

Servlet 原来是这个玩意、看完恍然大悟

1. 什么是 Servlet? 先让时间回到 25 年前,我国刚刚接入互联网不到两年时间。那时候的电脑长这个样子: 当时的网页技术还不是很发达,大家打开浏览器只能浏览一些静态的页面,例如图片、文本信息等。 随着时间的发展&a…

[附源码]Python计算机毕业设计Django社区生活废品回收APP

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…