视觉计算软件开发基础

1.1 视觉计算概述

众所周知,早期的计算机的发明是科学计算的需要,其使用者主要是从事科学计算的科技工作者。随着计算机软硬件技术的发展,计算机的功能也在进一步扩展,开始从科技的象牙塔走向大众,并已经成功应用于生产(如工业控制、企业生产执行系统MES)、办公(无纸化办公)、生活(网上冲浪、购物)以及娱乐(数字电影、游戏)等各个方面。普适计算(Ubiquitous Computing)是二十一世纪的计算模式,计算将变得无处不在。

在计算机接近、走向大众的过程中,计算机对图形图像、音视频的捕捉(Capture)、设计(Design)、存储(Storage)、处理(Process)、传输(Transfer)等关键的视觉计算技术功不可没。

视觉计算(Visual Computng)技术的研究和应用对象并不是很清晰、严格,因此视觉计算技术在不同的上下文中可能会涉及多个领域,如数据可视化(Data Visualization)、计算机图形学(Computer Graphics)、数字图像处理(Image Processing)、多媒体技术(MultiMeida)、计算机视觉(Computer Vision)等,这些都可以称为视觉计算技术。

随着视觉计算技术的发展,对具备设计和开发视觉计算软件能力的工程师的需求也在进一步扩大。由于视觉计算技术涉及较深的数学等理论知识和计算机编程技术,因此,对程序员的要求也会相对较高,程序员从零起步开发视觉计算软件的难度较大。因此一个具备高性能的、支持多种软件平台(多种操作系统)和硬件平台(同时支持嵌入式开发)的视觉计算软件开发库是从事视觉计算软件开发的必然需求。

英特尔公司在多年的技术积累的基础上,为视觉计算软件开发人员提供了满足上述特性的软件开发库,包括Intel® IPP(Integrated Performance Primitives,集成性能元件)和Intel® Media SDK(Software Development Kit,媒体开发库)。

为了向程序员普及或推广视觉计算软件开发技术,降低视觉计算软件开发的门槛,我们这本书将介绍图像和视频处理的基础理论知识和英特尔公司提供的视觉计算软件开发库相结合,注重理论联系实际,强调实践。文字、图例、实验、程序代码互为补充,向大家介绍图像和视频处理开发中的技术及应用。

本书的前修课程是C、C++程序设计语言,要求读者有一定的计算机编程基础和实践经验,能较为快速阅读C/C++语言程序代码,并且C/C++程序编程比较熟练,对面向对象技术最好要有一定了解,没有信号处理的基础知识也可以阅读。

1.1.1 图像

数字图像 图像是人类接触世界、获取信息的重要途径。用图像来表达信息直观、形象、丰富,因此,才有“一图胜千言”(A Picture Paints a Thousand Words),“百闻不如一见”(One picture is worth more than ten thousand words)等俗语说法。

图像在传达信息方面有其它媒介(文字、声音等)无法替代的优越性,因此,在现代网络信息时代下,计算机能够表示、处理图像是必然的需求。纵观各类网站,其内容都是图文并茂,栩栩如生。我们将计算机能够显示、存储、处理的图像称为数字图像。

同时,在信息时代,计算机能够处理的图像将不仅仅限于人类肉眼局限的可见光(人类肉眼感知的图像仅限于比较小的一段电磁波谱),数字图像可以通过各种成像途径获取,这些途径可以覆盖几乎整个电磁波谱。如图所示为用微波获取的金星图像。

(a)金星图片     (b)某一块区域放大后效果     (c)该区域图像灰度值

图1.1 微波反射形成的金星图像

图:对金星通过微波反射形成的灰度图像,中图为左图一块10像素见方区域的灰度图,右图为中图的图像灰度值(值的范围为0~255,有256个灰度等级),灰度的值的大小与微波反射能量的级别相对应。

数字图像处理 数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。但是数字图像处理不仅可以对人类肉眼可观察的图像进行加工处理,还可以对包括超声波、电子显微镜等成像机器产生的图像进行处理。因此,数字图像处理设计的领域将非常广泛,如70年代生物医学中的CT技术(如图所示),对人类做出了划时代的贡献,数字图像还在航空航天(如图1.3所示)、生物医学工程、工业检测、机器人视觉等领域有着非常多的应用,使图像处理成为一门引人注目、前景远大的新型学科 。

图1.2 医学CT成像 图1.3 嫦娥一号卫星传回的月面图片

图1.2:CT成像,这幅图是一个人体肚脐部位的腹部成像的切片。图中可以看到很多器官,如(L)肝脏、(K)肾脏、(A)主动脉、(S)脊柱、(C)膀胱(盖住了右侧的肾脏)。CT成像能够比传统的医学X射线对人体内部组织有更好的可视效果。

图像处理中,常用的图像处理方法有图像变换、图像编码和压缩、图像增强、图像分割、图像分类(识别)等。我们做一下简要介绍。

图像增强 图像增强的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强突出图像中所感兴趣的部分。如怎样处理可使图像中物体轮廓清晰,细节明显;怎样进行处理可减少图像中噪声的影响。如图1.4所示,在经过图像增强处理后,(b)图从整体上感觉更清晰。

(a)原图 (b)图像增强处理后效果图
图1.4 图像增强处理效果图

图像变换 由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大(由于数据存在着空间冗余信息)。因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。

图像编码和压缩 图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理的时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许失真的条件下进行(在允许失真的情况下压缩比率通常会更高)。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。

图像分割 图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础,也是计算机视觉中常用到图像处理方法。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。

图像分类(识别) 图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类等。

在本书的数字图像处理部分,我们重点强调图像的增强、图像变换、压缩编码部分。

1.1.2 视频

视频 当电影胶片以每秒24格画面匀速转动,一系列静态画面就会因“视觉暂留”作用而造成一种连续的视觉印象,产生逼真的动感,电影就是基于人的视觉暂留作用原理制作成的,视频的基本原理也是一样的,拿电视来说,虽然有两个不同的标准PAL(25帧,我国和东南亚及欧洲等地方使用的制式)和NTSC(30帧,美国、日本等国的制式),其帧率都是大于24帧。因此,我们将这种一个个静态的图像经过快速的播放而形成动态、连续的画面叫做视频。视频是人们最熟悉的名词之一,我们生活当中电视机、录像机等都有视频输出接口。

数字视频 电影、电视(传统模拟电视机)和录像已经属于传统的试听媒体,其视频信号属于模拟信号,随着现代科技的发展,已经出现了数字电视技术,与原来的模拟电视相比,数字电视有高清晰的电视画面,可与DVD相媲美;有优质的音响效果,由于采用了数字技术,使得数字电视的伴音更趋逼真;有抗干扰功能,数字电视受其它电器的干扰很小,因此画面稳定;扩展功能多,可增加上网、点播等。数字视频的编辑通常是通过非线性编辑(NLE for non-linear editing)系统进行的。几乎你看到的所有的电视节目、某些电影、广告都是用非线性编辑系统制作的,由于计算机网络和多媒体技术的发展,在个人计算机上也可以进行数字视频的编辑,越来越多的人利用计算机制作自己的小电影。同时,在因特网上的流式视频和点对点视频传输也都是新近的热点,土豆*、YouTube*等是关于数字视频的互联网网站,用户可以上载分享自己的视频,也能看到别人分享的视频。数字视频(Digital video)信息技术已经成为我们生活中不可或缺的组成部分,已经渗透到工作、学习、娱乐的各个方面。

有很多不同的数字视频编码方法和文件容器格式,支持不同大小、质量、分辨率、色度精度和编码功能的图像编码。在本书的第七章,我们将详细介绍这些编码原理知识和相关标准。

1.1.3 音频

和视频一样,音频也分为模拟音频和数字音频。其实任何我们可以听见的声音经过音频线或话筒的传输都是一系列的模拟信号。模拟信号是我们可以听见的。而数字信号就是用一堆数字记号(其实只有二进制的1和0)来记录声音,而不是用物理手段来保存信号(用普通磁带录音就是一种物理方式)。我们实际上听不到数字信号。

音频是个专业术语,人类能够听到的所有声音都称之为音频,它可能包括噪音等。声音被录制下来以后,无论是说话声、歌声、乐器都可以通过数字音乐软件处理,或是把它制作成CD,这时候所有的声音没有改变,因为CD本来就是音频文件的一种类型。而音频只是储存在计算机里的声音。如果有计算机再加上相应的音频卡--就是我们经常说的声卡,我们可以把所有的声音录制下来,声音的声学特性如音的高低等都可以用计算机硬盘文件的方式储存下来。反过来,我们也可以把储存下来的音频文件用一定的音频程序播放,还原以前录下的声音。

模拟时代的录音制作与数码时代的区别:模拟时代是把原始信号以物理方式录制到磁带上(当然在录音棚里完成了),然后加工、剪接、修改,最后录制到磁带、LP等广大听众可以欣赏的载体上。这一系列过程全是模拟的,每一步都会损失一些信号,到了听众手里自然是差了好远,更不用说什么HI-FI(高保真)了。数码时代是第一步就把原始信号录成数码音频资料,然后用硬件设备或各种软件进行加工处理,这个过程与模拟方法相比有无比的优越性,因为它几乎不会有任何损耗。对于机器来说这个过程只是处理一下数字而已,当然丢码的可能性也有,但只要操作合理就不会发生。最后把这堆数字信号传输给数字记录设备如CD等,损耗自然小很多了!

在计算机内播放或是处理音频文件,也就是要对声音文件进行数、模转换,这个过程同样由采样和量化构成,人耳所能听到的声音,最低的频率是从20Hz起一直到最高频率20KHZ,20KHz以上人耳是听不到的,因此音频的最大带宽是20KHZ,音频有很多中格式,CD格式(接近无损),wav、MP3等。

在本书中我们不对音频的相关技术进行详细阐述。

1.1.4 游戏

自从人类诞生的时候就有游戏,自古至今人类发明的游戏不计其数,比如各式各样的棋牌类游戏、体育竞技游戏、甚至古罗马的竞技场上残忍的搏斗,在有些人的眼里,也是一种轻松的游戏。

在信息时代,传统的游戏得到了延伸和扩展。电脑游戏现在已经非常非常流行,在行业者的眼里已经是一个巨大的产业。电脑游戏是指在电子计算机上运行的游戏软件,是一种本身提供娱乐功能的电脑软件。电脑游戏产业与电脑硬件(视频显示卡等)、电影、电脑软件、互联网的发展联系甚密。电脑游戏为游戏参与者提供了一个虚拟的空间,从一定程度上让人可以摆脱现实世界,在另一个世界中扮演真实世界中扮演不了的角色(如CS、星际等)。同时电脑多媒体技术的发展,使游戏给了人们很多体验和享受。

电脑游戏的发展离不开计算机软硬件的发展,特别是游戏软件开发,涉及到游戏创意、网络、音视频、嵌入式软件(如手机游戏等)、人机交互、人工智能等各个领域,是和视觉计算分不开的。也是一项非常具有挑战性的工作。

Intel IPP 之 视觉计算概述相关推荐

  1. Intel IPP库概述,合计共5000个函数

    "英特尔IPP"为开发人员提供了高质量.支持生产的低级构造块,用于图像处理.信号处理和数据处理(数据压缩/解压缩和加密)应用程序.它是针对各种Intel架构(Intel®Quark ...

  2. 利用Intel IPP函数库实现信号频谱计算

    Intel IPP(Intel Integrated Performance Primitives)函数库是一套跨平台的软件函数库,它为用户提供了一套高效.实用的函数集,可用于实现通信.图像.语音等多 ...

  3. 关于Intel IPP的基本使用方法——参照可设置ipl库

    IPP是个好东西,里面的函数精而全,希望大家好好利用.因为IPP目前很少中文资料,我们只能靠自己摸索.下面就简单说说IPP在VC2005下的基本使用方法. 假定你的IPP是安装在"D:/In ...

  4. 探索机器学习理论的最新进展,走近云、端、芯上的视觉计算——“智源论坛:机器学习报告会”重点梳理...

    1909 年,莱特兄弟通过纯粹的工程方法首次把飞机送上了天,但彼时的他们并不了解其中的原理.如今,经过几十年的发展,飞机的性能较之当年已然不可同日而语.究其原因,主要在于上世纪四五十年代,人们在空气动 ...

  5. 【大神公开课】旷视研究院院长-孙剑博士:视觉计算前沿进展

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 人工智能教育线上公开课开讲啦!旷视首席科学家.旷视研究院院长.西安交通大学人工智能 ...

  6. 【内推】滴滴出行视觉计算组招聘算法实习生

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 工作地点:北京(西二旗中关村软件园) [团队简介] 滴滴出行视觉计算组以使用计算机 ...

  7. 旷视首席科学家孙剑:深度学习变革视觉计算

    https://www.toutiao.com/i6714941914564526596/ 孙剑从视觉智能.计算机摄影学以及AI计算3个方面介绍了计算机视觉研究领域的变革. 作者 | 张栋 AI科技评 ...

  8. 【机器视觉】探索机器学习理论的最新进展,走近云、端、芯上的视觉计算

    来源:产业智能官 1909 年,莱特兄弟通过纯粹的工程方法首次把飞机送上了天,但彼时的他们并不了解其中的原理.如今,经过几十年的发展,飞机的性能较之当年已然不可同日而语.究其原因,主要在于上世纪四五十 ...

  9. 视觉计算理论简介【转】

    一:视觉计算理论与算法研究( 由×××自动化研究所马颂德等完成) "视觉计算理论与算法研究"的目标主要是研究计算机视觉,以使计算机具有通过二维图像感知三维环境信息的能力,包括感知. ...

最新文章

  1. java 子类重定义变量_java子类对象和成员变量的隐写方法重写
  2. sublime写网页代码,里面的中文字符会出现乱码
  3. 删除 字符串中‘*’号 两端的除外。指针h、p分别指向第一个和最后一个字符
  4. 控制文件夹递归深度_TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)...
  5. Asp.net MVC3中进行自定义Error Page
  6. Hyperworks——Optistruct学习分享
  7. C#对接中国移动短信接口
  8. 中国参与互联网下一代根服务器建设
  9. 【渝粤教育】广东开放大学 商业银行业务与经营 形成性考核 (32)
  10. 华为OSN1500B故障应急处理
  11. linux ssh pem 登陆,Linux 生成pem文件 用于免密登录
  12. 干货丨如何优雅地设计并控制一台协作机械臂
  13. Js 实现十六进制颜色值和RGB颜色值转换整理
  14. ios11手机怎么投屏到电脑屏幕上
  15. Renesas_based_intro
  16. React中使用SWR处理数据请求
  17. ET、LT、EPOLLONESHOT
  18. 11 个最佳免费安全网站
  19. 用matlab程序表示三角形序列,MATLAB程序举例带注释
  20. 视频剪切合并器使用方法,如何使用视频剪切合并器分割合并视频片段

热门文章

  1. 关于node环境下用npm下载node-sass错误的解决方法
  2. win10 pc耳机没声音_为什么我的PC扬声器和耳机会发出奇怪的声音?
  3. 【MATLAB 画斜圆柱】
  4. Java生成图片工具类
  5. 中文版MathType如何批量修改公式的字体大小
  6. ajax的优缺点是什么?
  7. 6-5 二叉树的层次遍历 (6分)_数据结构实验5_羊卓的杨
  8. linux创建pc目录,linux中mkdir创建目录命令使用说明
  9. KKB:static 静态
  10. KKB : MySQL创建千万测试数据