学习数字图像处理经验谈

一、面向应用:层层分解、抓住要点

我们学习数字图像处理的最终目的还是应用,不管是用它来研制产品还是研发项目抑或是研究课题,都要用数字图像处理的理论、方法和技术来解决实际问题。在此过程中,提高效率是非常重要的,因此,我们在实际应用过程中要面向需求,结合实际;将问题层层分解,理清解决思路;抓住其要害,集中力量进行突破,切忌眉毛胡子一把抓。

下面就结合笔者所研究过的一个课题进行详细说明。

任务要求:一台智能移动机器人上配备有单目可见光视觉传感器,要求通过该视觉传感器采集的视频序列图像,实现在复杂环境下实现对纹理清晰的特定目标的实时跟踪。

注:该问题的解决应从硬件和软件两个方面进行考虑,对硬件的选择、设计和搭建超出了本文所讨论的内容,因此,本文仅从数字图像处理方法的角度进行分析)

分析讨论:

(1)任务分解:通过对任务要求进行分析可知,该任务的核心是“目标识别跟踪”;在此基础上有两个约束条件:“复杂环境下”和“实时性”;方法实现的平台是“移动机器人”。任务的核心——“目标识别跟踪”是我们所需要解决的难点和重点;约束条件1“复杂环境下”则要求我们对所采集的图像进行去噪预处理;约束条件2“实时性”也是需要解决的问题,这就要求我们尽可能地降低各种算法的运算复杂度;由于实现平台“移动机器人”在行进过程中采集的视频图像存在抖动现象,因此,在对采集的图像进行去噪后需要对其进行增稳处理。通过初步分解,我们就得到了任务中所要解决的问题以及大致流程(如图1所示)。

  

图1  任务分解及流程

(2)难点分解:本任务的难点是“目标识别跟踪”。之所以称其为难点,是对目标的识别和跟踪过程中,存在视觉传感器与目标物体的相对运动,因而,目标在图像中存在着尺度变化、旋转变化、视角变化、照度变化以及局部遮挡,这给目标识别和跟踪带来了挑战。我们常用的目标识别与跟踪算法有:基于帧间差分的目标识别与跟踪法、基于光流的目标识别与跟踪法、基于模板匹配的目标识别与跟踪法、基于颜色的目标识别与跟踪法、基于特征点的目标识别与跟踪法。考虑到每种方法的特点以及待跟踪目标具有清晰的纹理,我们可以采用基于特征点的目标识别与跟踪法,更进一步地说,我们应采用尺度不变特征点(SIFT)作为识别与跟踪的特征,因为尺度不变特征点对尺度变化、旋转变换、视角变化、照度变化和局部遮挡具有鲁棒性。同时,我们希望目标识别和跟踪算法具有良好的实时性,因而,可以考虑PCA-SIFT和SURF特征点作为目标特征。此外,由于视频序列相邻图像之间存在相关性,目标在相邻帧之间不会有剧烈的变换,因而,可采用隔帧搜索法对目标进行检测并用Kalman滤波或粒子滤波对目标的轨迹进行预测。难点分解的过程如图2所示。

 

图2  难点分解过程

(3)算法分解:经过任务分解和难点分解后,我们已经对任务的实现步骤和每个步骤所需的算法有了一个清晰的了解。在此之后,我们还需对每一个具体的算法进行分解,形成实现步骤,以便于后续的研究以及模块化分工实现。

 

二、面向学习:追根溯源、比较总结

在数字图像处理中,很多算法是一脉相承或有着密切联系的,搞清楚这些来龙去脉以及相互联系,有利于我们加强对算法的理解以及改进创新。

那么,如何把握这些联系呢?我认为,首先得清楚每种算法的提出背景,也就是“这种算法为什么会被提出”或是“这种算法是针对什么问题而提出的”。就拿数字图像变换中的内容为例,我们是从图像的空间变换讲起的,但是空间变换无法反映图像的频率分布信息,随着傅里叶变换的诞生,这一问题得到了解决,傅里叶变换也被研究者誉为是“图像处理的第二种语言”。正在人们为之欢心鼓舞之时,研究者有发现傅里叶变换也存在着不足,它在空域上无任何分辨,不能作局部分析。针对于此,D.Gabor 于1946年提出了加窗傅里叶变换,也就是著名的Gabor变换,它通过引入一个时间局部化“窗函数”改进了傅里叶变换的不足,但其窗口大小和形状都是固定的,没有从根本上弥补傅里叶变换的缺陷。小波变换的提出从根本上解决了这一难题,它有一个灵活可变的时间—频率窗,能有效地从信号中提取信息,通过伸缩和平移等运算功能对函数或信号进行多尺度细化分析,“数学显微镜”的美誉也因此得来。如果我们能够把这些联系梳理清楚,那么,我们在学习小波变换时就会豁然开朗,游刃有余。难道小波变换就那么完美吗?答案当然是否定的,当前有很多算法就如何提高小波变换的效能提出了改进。按照上述的“联系”方式,就不难建立起完备的知识体系。

 

图3  图像分析联系示意图

谈过了“追根溯源”,我们再来聊聊“比较总结”。我们以图像的边缘检测为例来进行说明。每一种方法都能实现边缘检测,但对于同一幅图像,每一种边缘检测方法的效果又不尽相同。这是为什么呢?原来,每一种边缘检测的方法都有自己优点和不足,都有自己特定的应用背景。我们不妨对其进行列表比较(如表1所示)。

表1  边缘检测算子比较

名  称

特    点

基于一阶微分算子检测边缘

运算简单,但对噪声敏感

基于LOG算子检测边缘

边缘保留较为完整、定位准确、抗干扰能力强

基于 Canny算子检测边缘

抗干扰能力强,边缘连续性好

基于SUSAN算子检测边缘

抗噪声能力好、运算量小,速度快

对各种边缘检测算子进行比较后,它们各自的特点便一目了然,在何种情况下运用哪种边缘检测算子效果最佳便做到了心中有数。

在比较完各种边缘检测算子的“个性”之后,我们不妨再来总结一下它们的“共性”。尽管边缘检测的方法林林总总,但各种方法的共同目的就是要检测出图像灰度变化剧烈的区域。从数学的角度来看,就是对数字图像进行差分;从信号处理角度看,就是用高通滤波器来保留高频信号。

学习的过程讲究循序渐进,温故知新,当然,对数字图像处理技术的学习也不例外。但是,数字图像处理技术又有自身的特点:理论深、角度广、更新快,因此,良好的学习方法可以使数字图像处理的学习事半功倍。在学习数字图像处理技术时,读者不妨尝试着去追根溯源、比较总结,相信定会受益匪浅。

本文转自:http://xiaozu.renren.com/xiaozu/252226/335693784

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

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

相关文章

react-router-dom@6获取路由传参

目录 参数获取 1、子路由形式携带 2、问号(?)形式参数 3、事件跳转传参 router/index.tsx import App from "App"; import Home from "pages/Home"; import List from "pages/List"; import Detail from "pages/Detail"; import…

koa洋葱模型

Koa 和 Express 都会使用到中间件 Express的中间件是顺序执行,从第一个中间件执行到最后一个中间件,发出响应如上图 Koa是从第一个中间件开始执行,遇到 next 进入下一个中间件,一直执行到最后一个中间件,在逆序&#x…

koa后端允许跨域

举个例子 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthdevice-width…

python面向对象之继承

面向对象之继承 什么是面向对象的继承&#xff1f; 继承&#xff08;英语&#xff1a;inheritance&#xff09;是面向对象软件技术当中的一个概念。如果一个类别A“继承自”另一个类别B&#xff0c;就把这个A称 为“B的子类别”&#xff0c;而把B称为“A的父类别”也可以称“B是…

美国正面临“人才泡沫”破裂危机?

&#xff08;Jason Lane和Kevin Kinser/文&#xff09;最近&#xff0c;与教育有关的种种问题在美国社会引起了广泛讨论。首先巨额的学生贷款问题&#xff1a;根据美联储纽约分行在2012年11月发布的一份报告&#xff0c;全美学生贷款总额已经达到420亿美元&#xff0c;其中新增…

ngrx学习笔记

什么是ngrx ngrx是Angular基于Rxjs的状态管理&#xff0c;保存了Redux的核心概念&#xff0c;并使用RxJs扩展的Redux实现。使用Observable来简化监听事件和订阅等操作。 在看这篇文章之前&#xff0c;已经假设你已了解rxjs和redux。 有条件的话请查看官方文档进行学习理解。 所…

.slice(0)

高手代码里看到.slice(0)&#xff0c;查了下这样写的好处&#xff1a; 1.对原数组进行深拷贝&#xff0c;这样进行一系列操作的时候就不影响原数组了&#xff1b; 2.将类数组对象转化为真正的数组对象&#xff1a;var anchorArray [].slice.call(document.getElementsByTagN…

亲历2013年TED大会:全球最潮灵感大会

本文转自&#xff1a;http://mooc.guokr.com/opinion/436837/ 本文由《外滩画报》供稿 文/华琪&#xff08;发自美国&#xff09; 编辑/吴慧雯 什么是TED的世界&#xff1f;在这里&#xff0c;你可以轻易发现各种名人出没的痕迹&#xff0c;和各个领域里最具远见卓识和创造…

Java生鲜电商平台-电商会员体系系统的架构设计与源码解析

Java生鲜电商平台-电商会员体系系统的架构设计与源码解析 说明&#xff1a;Java生鲜电商平台中会员体系作为电商平台的基础设施&#xff0c;重要性不容忽视。我去年整理过生鲜电商中的会员系统&#xff0c;但是比较粗&#xff0c;现在做一个最好的整理架构. 设计电商会员体系需…

为什么要上大学?

为了让自己成为更有意思的人。 &#xff08;文&#xff0f;美国圣母大学哲学教授 Gary Gutting&#xff09;再不久&#xff0c;千千万万的大学生又将走完一个学期。他们中的很多人以及他们的家人&#xff0c;可能为刚刚过去的几个月或是几年投入了相当可观的时间、努力以及金钱…

打造“神犇”是教育的未来吗?

这年头&#xff0c;品学兼优、身怀特长的“神犇”&#xff0c;拼的不仅是天赋异禀和后天努力&#xff0c;更是身后爹妈的钱包&#xff0c;而本该实现社会公平的教育&#xff0c;反而加速和凝固了社会的不公。 高等教育的终极目标真的是造就学业超人吗&#xff1f;《纽约时报》刊…

AntD 官网样例 InputRef报错原因

在官网可编辑表格typescript样例里 const inputRef useRef<InputRef>(null); InputRef项目报错原因是ant design的版本问题! antd 4.19版本重写了input 可通过InputRef来使用input组件的ref

AntD 可编辑行表格

本地数据代码模板自用,官网例子改改 // 编辑行的自定义表格 import React, { useState } from "react"; import {Table,Input,InputNumber,Popconfirm,Form,Typography,Divider, } from "antd";interface Item {key: string;name: string;age: number;add…

三心二意,助你好运?

经验说&#xff1a;做事要专心致志。 实验说&#xff1a;专心致志常常让人缺少一双发现的眼睛。 专心致志从来都被当做一个美德来歌颂。从来我们就认为要想成为伟大的人就必须要像牛顿老师那样把钟当成吃的放到锅里煮才行&#xff0c;至少至少也得有能在集市上看书的本事。否则…

React Antd Upload自定义上传customRequest

单独的上传图片接口要传参,action方式不太适合,需要使用自定义上传customRequest覆盖 公司代码不可弄,就发一个可用的demo例子 import React, { useState } from "react"; import { render } from "react-dom"; import "antd/dist/antd.css"; i…

HDU 4109 Instrction Arrangement

题目链接&#xff1a;https://vjudge.net/problem/HDU-4109 题目大意 有 N 个指令&#xff0c;标号从 0 ~ N - 1&#xff0c;和 M 个指令间的先后关系&#xff0c;每个关系都有一个权值 w&#xff0c;表示后一个指令在前一个指令开始时间之后 w 纳秒才开始执行。现在要并发执行…

养成一个习惯需要多久?

有人说养成一个习惯需要21天&#xff0c;有人说30天……养成习惯到底需要多少天&#xff1f; _hzw 2012-11-09 18:04又快到年末了。 年初时&#xff0c;你曾许诺要养成一些好习惯&#xff0c;比如要常运动、多读书、少微博。有人说说养成一个习惯只需要坚持21天&#xff1b;21天…

vue3 eslint The template root requires exactly one element问题

vue项目中手动引入eslint npm install eslint --save-dev eslint初始化 npx eslint --init 运行时npm run lint 简单语法问题--fix会自动修复 但是vue3项目出现只能有一个根节点的问题 原因在于 eslintrc.js里extends中plugin:vue/essential的问题 看eslint-plugin-vue官网…

你所知道的学习方法,都是错的!

你所知道的学习方法&#xff0c;都是错的&#xff01; 上课的时候记笔记&#xff1f;哪门功课不行&#xff0c;就集中精力专项突击&#xff1f;自习的时候不要晃&#xff0c;选好一个地儿安安稳稳地待那儿学习&#xff1f;你还在这样学习吗&#xff1f;不要被骗了&#xff1a;这…

Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台: 微服务是当前非常流行的技术框架&#xff0c;通过服务的小型化、原子化以及分布式架构的弹性伸缩和高可用性&#xff0c;可以实现业务之间的松耦合、业务的灵活调整组合以及系统的高可用性…