摄像头图像分析目标物体大小位置_一文读懂图像定位及跟踪技术

04dacdb40121e5ecc8d29094ca5a3037.png

文 | 传感器技术

在科学技术日新月异的今天,人们对机器设备的智能性、自主性要求也越来越高,希望其完全替代人的角色,把人们从繁重、危险的工作任务中解脱出来,而能否像人一样具有感知周围环境的能力已成为设备实现智能化自主化的关键。

571187c4d5e2a1049ead86add2396abe.png

广义的“图像跟踪”技术,是指通过某种方式(如图像识别、红外、超声波等)将摄像头中拍摄到的物体进行定位,并指挥摄像头对该物体进行跟踪,让该物体一直被保持在摄像头视野范围内。狭义的“图像跟踪”技术就是我们日常所常谈到的,通过“图像识别”的方式来进行跟踪和拍摄。

因为红外、超声波等方式,都受环境的影响,而且要专门的识别辅助设备,在实际应用中已经逐步被“图像识别”技术所替代。“图像识别”是直接利用了摄像头拍摄到的图像,进行NCAST图像差分及聚类运算,识别到目标物体的位置,并指挥摄像头对该物体进行跟踪。

图像跟踪系统采用特有的NCAST目标外形特征检测方法,被跟踪者无需任何辅助设备,只要进入跟踪区域,系统便可对目标进行锁定跟踪,使摄像机画面以锁定的目标为中心,并控制摄像机进行相应策略的缩放。系统支持多种自定义策略,支持多级特写模式,适应性强,不受强光、声音、电磁等环境影响。

目标物体的边缘检测

物体的形状特征在大多数情况下变化不多,基于目标形状轮廓的跟踪方法与基于区域的匹配方法相比,可以更精确的分割目标。

边缘是运动目标的最基本特征,表现在图像中就是指目标周围图像灰度有阶跃变化或屋顶变化的那些像素集合,它是图像中局部亮度变化最显著的部分。

c87fb4f69a14b06c02e68549c2cb78fd.png

边缘检测就是采用某种算法来定位灰度不连续变化的位置,从而图像中目标与背景的交界线。图像的灰度变化可以用灰度梯度来表示。

梯度算子

梯度也即一阶导数,梯度算子对应一阶导数算子,一阶导数也即梯度可以表示为:

77a4e83bbbbf529ad741739f201b5922.png

图像经过边缘检测之后,还要经过轮廓追踪和轮廓表达。轮廓跟踪的目的是得到边缘像素的集合边缘表。轮廓表达则是通过对边缘表做一些处理,如拟合、统计及逼近等,得到目标形状特征的直观表达,为后续匹配提供模板信息。

轮廓跟踪的思想是:

1、根据提取的图像边缘,找出轮廓上的像素;

2、根据这些像素的特征用一定的“跟踪准则”找出物体上的其他像素;

3、其跟踪效果的好坏主要取决于起始点和跟踪准则的选取两个因素。

跟踪准则:

按起始点选取准则找到最左下方位的边界点后,以其为起始点,定义左上方为初始搜索方向,若该方向的点为黑点(特征点),则判其为边界点,否则沿顺时针方向旋转搜索方向45度,依此类推,直到搜索到第一个黑点(特征点)为止,然后再把该黑点(特征点)作为新的边界点,逆时针方向旋转当前搜索方向90度,用相同的方法继续搜索下一个黑点(特征点),直到找到初始边界点为止。若用箭头表示搜索方向,那么该轮廓跟踪算法可以用图表示。

45b98fdd184887701dcb2875ff0c51f4.png

通过上述算法得到物体的边缘表后,可以用其作为轮廓表达,也可以对其进行处理,用处理后的信息形式来表达轮廓。目前常用的轮廓表达有以下三种:逼近拟合曲线法、内插拟合曲线法、统计特征法。

目标图像颜色检测

为了对丰富多样的色彩进行表达,人们用表示颜色的三个参数所构成的三维空间来对图像的颜色进行描述,这个三维空间就是所谓的颜色空间。

如:RGB格式(红、绿、蓝三基色模型)、HSV格式(色度、饱和度、亮度模型)

RGB格式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

2d3b30a73077aa458c4f2bd940c11a9d.png

HSV格式:H参数表示色彩信息,即所处的光谱颜色的位置。该参数用一个角度量来表示,红、绿、蓝分别相隔120度。互补色分别相差180度。纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。S=0时,只有灰度。V表示色彩的明亮程度,范围从0到1。有一点要注意:它和光强度之间并没有直接的联系。

52f7d02db0e5786f3623b1f2615120f8.png

例如:采用直方图来表达图像的颜色分布特征:1、对颜色进行量化;2、计算颜色落在各个小区间内的像素数量;3、对其进行直方图投影就可以得到图像的颜色概率分布图像。

6e3831fe33ad9629c46181aac2d72ecf.png9c4e4e8a1e9640b18282ae0989b034e0.png

图像滤波及形态学处理算法

运动目标提取时,为了消除相机采集的图像中的噪声、改善图像质量,使图像变得更清晰,需要对图像进行滤波。几种常见噪声:高斯噪声、加性噪声及椒盐噪声等。

为了消除噪声影响和突出图像的一些特征,目前常用的方法有:邻域均值滤波、中值滤波法等。

e5374c7fa479430f873defa849ec9e35.png

运动目标提取完成后,得到的二值化图像可能含有许多空洞和孤立的噪声点,为了更好地对目标进行定位和跟踪,需要对得到的检测结果进行形态学处理。

形态学处理主要思想是:采用一个特定的结构元素作为工具来度量和提取图像特征(形状、轮廓等),具体为看该结构元素是否可以适当有效地放入图像内部。目前常用的形态学运算有:膨胀、腐蚀、开启和闭合操作。

图像匹配

图像匹配是指在多幅图像之间寻找对应关系的过程,具体为在一帧图像中寻找与给定目标最相似的图像区域或在一批图像中寻找与目标最相似的图像。

利用图像匹配技术不仅可以检测出搜索图像中是否有目标图像,还可以获得目标在图像中的相对位置信息。

匹配算法概括起来可以分为两类:基于区域的匹配方法和基于特征的匹配方法。

基于区域的匹配方法

根据整幅图像的灰度值信息,建立目标模板和待匹配目标图像之间的相似性度量,然后采用相应的搜索算法,寻找待匹配目标图像中相似性度量值最大的地方。

d1351103f5281d3a50542624c9fb105d.png

基于特征的匹配方法

提取图像的特征,如特征点、边缘、颜色、纹理等,对提取的特征进行加工处理将其表达成特定的形式(向量、直方图),对加工后的图像特征采用一定的相似性度量准则进行匹配以建立目标模板和待匹配图像之间的对应关系。

7a6fa082a7f6d6045ed073bec08c1048.png

图像跟踪技术的应用领域

目前,目标跟踪技术主要应用于以下领域:

1、智能视频监控:基于运动识别(基于步法的人类识别、自动物体检测等),自动化监测(监视一个场景以检测可疑行为);交通监视(实时收集交通数据用来指挥交通流动);

2、人机交互:传统人机交互是通过计算机键盘和鼠标进行的,为了使计算机具有识别和理解人的姿态、动作、手势等能力,跟踪技术是关键;

3、机器人视觉导航:在智能机器人中,跟踪技术可用于计算拍摄物体的运动轨迹;

4、虚拟现实:虚拟环境中3D交互和虚拟角色动作模拟直接得益于视频人体运动分析的研究成果,可给参与者更加丰富的交互形式,人体跟踪分析是其关键技术;

5、医学诊断:跟踪技术在超声波和核磁序列图像的自动分析中有广泛应用,由于超声波图像中的噪声经常会淹没单帧图像有用信息,使静态分析十分困难,而通过跟踪技术利用序列图像中目标在几何上的连续性和时间上的相关性,可以得到更准确的结果。

eac67848aeff6f2badba7a567bcaf6a5.png

1edc2cd27bc2c356b38384df7e795cae.png

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

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

相关文章

java 相对路径获取_在java项目中通过相对路径获取资源的方式

1.可以通过 类名.class.getResource方法获取或者getSystemResource2.可以通过当前线程 Thread.currentThread().getContextClassLoader().getResource获取public class TestDemo {public static void main(String[] args) throws FileNotFoundException, IOException {Properti…

python循环嵌套的外循环必须完全包含内循环_Python:循环与嵌套循环实现规律数列...

很多人觉得编程很难,其实换个想法,这就是个用来解决问题的工具,我们为了解决实际问题而来学习和使用编程,这样编程学习有了目的性,动力会更强。就像现在十分热门的Python技术,就是人工智能领域所需求的&…

python爬取正确但不出文件_使用BeautifulSoup进行Python抓取时不显示所有行

我是美容小组的新手。我试图从ESPN Fantasy Basketball Standings中获取“Season Stats”表,但并不是返回所有行。经过一番研究,我认为这可能是一个问题html.parser,所以我用了lxml。我得到了同样的结果。如果有人能告诉我如何得到所有球队的…

pat乙级相当于什么水平_雅思6.5是什么水平?相当于托福多少分?

雅思和托福是当前社会中非母语人士的主流英语水平测试。准备出国留学的学生对这两项考试并不陌生。对于一些学生来说,仅靠雅思成绩并不足以申请他们最喜欢的学校。特别是对于申请北美院校的学生,托福成绩是申请时提交语言成绩的优先考虑事项。那么&#…

java时间方法_JAVA处理日期时间常用方法

转载JAVA处理日期时间常用方法:1.java.util.CalendarCalendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可…

python气象_Python 在气象上的应用

Python 在气象上的应用0.7892019.03.15 23:19:31字数 913阅读 1,024为什么选择python功能齐全的编程语言,真正面向对象喜欢可读的代码出版质量图绘制轻松读/写netcdf和grib数据轻松使用Fortran / C / C 广泛的库支持数字和非数字工作科学计算1.Numpy  Numpy是pyth…

双飞翼布局内容不换行_web前端入门到实战:圣杯布局和双飞翼布局

稍微了解前端的人都知道,圣杯布局和双飞翼布局是前端面试时必问的问题,因为它既能体现你懂HTML结构又能体现出你对DIVCSS布局的掌握,毕竟我们学习CSS主要就是为了更好地布局带来最好的用户体验嘛~事实上,圣杯布局其实和…

java 去掉 t_关于Java:在LocalDateTime中不能删除“ T”

这是问题所在:GetMapping("/main/search")public String search (RequestParam String departure,RequestParam String arrival,RequestParam String departureTime,Model model) {DateTimeFormatter formatter DateTimeFormatter.ofPattern("yyyy-…

数据结构知识点总结_大牛带你学 | 考研数据结构中线性表中顺序结构的知识点总结...

前言我们都知道,数据结构中逻辑结构可以划分为线性结构(线性表)与非线性结构两大类。而存储结构指的是数据元素在计算机中的存储及其逻辑关系的表现,也就是在计算机当中对逻辑结构的表示。线性表的存储结构主要有顺序结构和链式结构两种实现形式。本文主…

java矩形翻转_如何判断一个点在旋转后的矩形中

前言最近在做的一款游戏中,用到点与旋转矩形的判定来获得一个选中的物体。在此做个记录如图所示,黄色的颜料屏是旋转的,如果不做处理直接判断点是否在矩形中,那么点击红点的位置会判定为选中物体。显然这是不对的。如果物体没有旋…

python中用函数设计栈的括号匹配问题_数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题...

算法数据结构数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题在平时写程序当中,我们会经常遇到程序当中括号的匹配问题,也就是在程序当中左括号的数量和右括号的数量必须相等。如果不相等的话则程序必然会报错。Hint:在读取程序的…

python创建空元组_Python——元组的基本语法(创建、访问、修改、删除)

原标题:Python——元组的基本语法(创建、访问、修改、删除)Python 元组的使用Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号 ( ),列表使用方括号 [ ]。元组创建很简单,只需要在括号中添加元素&#xf…

openssl 生成证书_CentOS7 httpd(Apache)SSL 证书部署

在之前我的文章中我已经搭建了nextcloud服务器,现在我们需要通过域名及https访问怎么办1. 进行了简单的httpd设置后,就可以为网站添加SSL证书功能了。2. 首先得获取证书,有了证书才能添加。我们采用本地上传的方式将SSL证书上传到CentOS上。获…

FJ的字符串java问题_蓝桥杯VIP试题 之 基础练习 FJ的字符串- JAVA

问题描述FJ在沙盘上写了这样一些字符串:A1 “A”A2 “ABA”A3 “ABACABA”A4 “ABACABADABACABA”… …你能找出其中的规律并写所有的数列AN吗?输入格式仅有一个数:N ≤ 26。输出格式请输出相应的字符串AN,以一个换行符结束。…

java仿qq gui_Java仿QQ登入页面

1.[代码][Java]代码package com.myqq.frame;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Cursor;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.Image;import java.awt.event.MouseAdapter;import ja…

python数据预处理 重复行统计_Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记...

1. 数据清洗1.1 空值和缺失值的处理​空值一般表示数据未知、不适用或将在以后添加数据。缺失值是指数据集中某个或某些属性的值是不完整的。​一般空值使用None表示,缺失值使用NaN表示1.1.1 使用isnull()和notnull()函数​可以判断数据集中是否存在空值和缺失值1.1…

java编写系统登录界面_java 登陆界面怎么写,连接数据库后

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼界面是package 界面类;import javax.jws.soap.SOAPBinding.Use;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing…

python如何复制oracle数据_Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法...

本文实例讲述了Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法。分享给大家供大家参考。具体实现方法如下:# Export Oracle database tables to CSV files# FB36 - 201007117import sysimport csvimport cx_Oracleconnection raw_input("Enter Or…

JAVA构造函数是不是封装_Java 封装与构造函数

面向对象思想思想的三个特征:封装,继承,多态。封装:表现:函数就是一个最基本的封装体,类也是一个封装体。好处:1、提高了代码的复用性,2、隐藏了实现细节,可以对外提供可…

python获取mysql数据为excel中的sheet_python 从excel、csv、mysql、txt获取数据源

使用python进行数据分析工作的第一步是获取数据源,数据源来可能来自于excel、txt、csv文件、mysql数据库。分别看看这些数据源怎么导入到python中。1. Excel 数据源导入python首先导入pandas 模块import pandas as pdexcel 导入格式为:pd.read_excel( 路…