2012-01-29 02:28:39 jtop0 阅读数 8374
  • 数字图像处理实战

    本课程内容主要选取自stanford EE368/CS232 课程的学生作业。我将给大家分享几个有趣案例,争取把算法流程原理、代码部署都讲清楚。本次课程包含图像算法和机器学习,编程工具主要包括python,c++,android,matlab,opencv,Tesseract等。 由于个人时间精力有限,课程将每隔2-3周发布一次。

    365 人正在学习 去看看 金圣韬

区别重要的概念:

1、色彩模型:  RGB、 CMYK、HSI

2、色彩空间:CIE RGB、sRGB、Adobe RGB、CMYK、XYZ、xyY、CIELAB(L*a*b*)

注:色彩空间= 色彩模型 + 色域(gamut)

3、各个色彩空间对应的“色彩图 / 色品图”

正式定义一个色彩空间时通常采用的标准是CIELABCIEXYZ 色彩空间,他们是为了涵盖正常人可见范围所有色彩所设计提出的,因此是最精确的色彩空间,与设备无关,但过于复杂,不适合于日常使用。CIE 空间  —  包括CIE  XYZCIE  L*a*b* 以及CIE  L*u*v*设备无关的,也就 是说,这些色空间中的颜色范围并不受到某种设备或某一个观察者视觉再现能力的限制。

1931年 CIE 提出了CIE 1931 XYZ 色彩模型及其空间,涵盖了正常人可见的所有色彩,而且,CIEYxy测色制的建立给定量的确定颜色创造了条件。 但是,在这一空间中,两种不同颜色之间的距离值并不能正确地反映人们色彩感觉差别的大小, 也就是说在CIEYxy色厦图中,在 不同的位置不同方向上颜色的宽容量是不同的,这就是Yxy颜色空间 的不均匀性。这一缺陷的存在,使得在Yxy及XYZ空间不能直观地评价颜色。在1976年 CIE又提出了L*a*b*标准(也称:CIELAB /Lab色彩空间)和 CIE  L*u*v*(较少用) ,用于弥补XYZ空间的不足,比 XYZ 在感知上更线性的色彩空间。感知上线性意味着在色彩空间上相同数量的变化应当产生大约相同视觉重要性的变化。

色彩空间 对应图:

CIEXYZ 色彩空间                                        “x、y (CIE1931)chromaticity diagram”  

CIELAB (L*a*b*  1976)

 

基于设备的色彩空间(不完全包括人眼可见的色彩) 

CIE RGB 色彩空间                                        “r、g chromaticity  space diagram ”

sRGB                                                                  点击打开链接

Adobe RGB

Prophoto RGB                                                      点击打开链接

 

CMYK                                                          RGB versus CMYK

 

最完整的色彩空间可视化网站:

 

1、有3维gamut 的显示、各种转换矩阵,各种空间坐标的online计算: http://brucelindbloom.com/  非常重要!!!

2、CIE1931色彩空间  http://zh.wikipedia.org/wiki/CIE1931%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4

3、色彩空间:http://zh.wikipedia.org/wiki/%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%96%93

4、Lab色彩空间:http://zh.wikipedia.org/wiki/Lab%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4

5、sRGB色彩空间:http://zh.wikipedia.org/wiki/SRGB%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4

6、郑州大学包装工程系:《包装色彩学》2002年 吕新广 主编 http://www.cgan.net/book/books/print/packcolor/link/content.htm

7、色品图(chromaticity diagram) http://blog.csdn.net/daisyhd/article/details/5883051

8、博文:HSI、HSV、RGB、CMY、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型 :http://www.cnblogs.com/chuncn/archive/2009/03/31/1425643.html

9、从零开始 色彩术语全解读:http://www.pjtime.com/2008/7/51977288_4.shtml

 Raw 格式数据

 RAW的原意就是“未经加工”。可以理解为:RAW图像就是CMOS图像感应器将捕捉到的光源信号转化为数字信号的原始数据。

RAW文件是一种记录了数码相机传感器的原始信息,同时记录了由相机拍摄所产生的一些原数据(Metadata,如IS0的设置、快门速度、光圈值、白平衡等)的文件。RAW是未经处理、也未经压缩的格式,可以把RAW概念化为“原始图像编码数据”或更形象的称为“数字底片”。常有10、12位或14位或22位二进制记录数据。

RAW格式的优点就是拥有JPEG图像无法相比的大量拍摄信息。正因为信息量庞大,所以RAW图像在用电脑进行成像处理时可适当进行曝光补偿,还可调整白平衡,并能在成像处理时任意更改照片风格、锐度、对比度等参数,所以那些在拍摄时难以判断的设置,均可在拍摄后通过电脑屏幕进行细微调整。

  而且这些后期处理,全都是无损失并且过程可逆,也就是说我们今天处理完一个RAW文件,只要还是保存成RAW格式,那么以后我们还能把照片还原成原始的状态。这一特性是JPG处理时所不能比拟的,因为JPG文件每保存一次,质量就会下降一些。

严格地说RAW格式不是图像文件,而是一个数据包,这个数据包不经过相机内的影像生成器的转换,所以前期的许多设定对数据包无效,前期设定中即只有曝光量(ISO,光圈,快门)“也可算上 '焦距' ”正确与否对数据包起作用,其余的都没有“设定”,色彩、平衡、反差、锐化等都在RAW格式专用的转换软件中进行。换句话说,除曝光之外,一切都可以在后期改变。即使,曝光量,也能在后期适当的曝光补偿”。

每个厂家都有自己的实际Raw 的格式,如:Nikon的

  • .NEF.NRW( 尼康 ) 
  • .ARW.SRF.SR2( 索尼
  • .MRW( 美能达
  • .ORF( 奥林巴斯
  • .crw.cr2( 佳能 )等

    用OpenCV的IplImage 或 CvMat 格式的数据直接可以存储成 RGB 格式的Raw图,只是没有机拍摄所产生的一些原数据(Metadata),所以PhotoShop只能简单的打开他,无法同时打开

    Cmamera Raw5.6  

    RAW格式的最大的优势是具有目前最大的色彩空间(参阅上节内容),这就是ProPhoto RGB。RAW格式照片作为独立于相机外的数据文件,不受影像生成器的色域空间的限制,完全可以放开手脚,扩展到最大的色彩空间。关于这一点,不看色彩模型就可以推断出来。数码相机的原始文件色域如果不是大于Adobe RGB,就不可能定义出真正的Adobe RGB。事实上,数码相机的色彩空间超出了AdobeRGB,与最大的ProPhoto RGB几乎“并驾齐驱”,这也是RAW格式素质卓越的原因之一。它出色的色域性能为我们驾驭色RAW格式由于采用了12位、14位甚至22位来记录信息(已经有数码相机的单色色彩深度达到22位)。转换时可以转换为16位的TIFF输出,这意味着有RGB单色最少有65536种色彩记录能力,这相对于8位JPEG的256种是一个很大的优势。以某种红色为例,8位JPEG只有256级可以利用,而在RAW格式中,单色可达到4096级,所以RAW格式的层次要丰富得多。

      它的现实意义是:如果我们进行大幅度的色彩改变和亮度调整,就会发现同样的调整,使用JPEG格式或者是TIFF格式时,照片已经模糊,产生噪点、画质受损,而RAW格式还远远没有达到“精疲力尽”的程度,还有可以发掘的余地,这种潜能是RAW格式的性质决定的——最大的色彩空间,最多的层次记录,并且给你最原始的没有加工过的原料,让你烹饪出最理想、美味的个性大餐。

      为什么叫RAW?RAW的英文原意就是生的、未经加工处理的,从字面上可以理解RAW的含义。

      由于色域空间大、层次丰富,RAW格式在没有经过处理时,看上去画面显得平淡而昏暗,不明就里的人一看就认为数码
    不行。举一个不太恰当地例子,看见了牛粪,就觉得牛肉不能吃,这其实是误区。有不少影友,用了几年数码相机,却从来没有用过RAW格式,一是不了解,二是不善处理,三是被表象所惑。事实上,用RAW格式拍摄并转换制作的照片完全可以与胶片相媲美。让我们深入地认识RAW格式,与RAW格式交朋友,毕竟每个摄影人都希望掌握获得高画质的技术诀窍。

    ...........见http://academy.fengniao.com/76/765563.html为什么RAW格式可以使图像处理游刃有余?

  • http://dc.pconline.com.cn/jiqiao/baodian/others/0907/1713260.html高画质的法宝 相机RAW格式使用技巧详解

  • http://zh.wikipedia.org/wiki/RAW

  • http://baike.baidu.com/view/60815.html?fromTaglist

     

     

  • 2018-11-09 10:52:39 weixin_42346564 阅读数 13606
    • 数字图像处理实战

      本课程内容主要选取自stanford EE368/CS232 课程的学生作业。我将给大家分享几个有趣案例,争取把算法流程原理、代码部署都讲清楚。本次课程包含图像算法和机器学习,编程工具主要包括python,c++,android,matlab,opencv,Tesseract等。 由于个人时间精力有限,课程将每隔2-3周发布一次。

      365 人正在学习 去看看 金圣韬

    图像算法工程师三重境界 :


    一、传统图像算法工程师: 
    主要涉及图形处理,包括形态学、图像质量、相机成像之3A算法、去雾处理、颜色空间转换、滤镜等,主要在安防公司或者机器视觉领域,包括缺陷检测;

    二、现代图像算法工程师
    涉及模式识别,主要表现的经验为Adaboost、SVM的研究与应用,特征选取与提取,包括智能驾驶的研究与应用、行人检测、人脸识别;

    三、人工智能时代图像算法工程师: 
    深度学习,主要在大型互联网公司或者研究所机构,具体体现在TensorFlow等开源库的研究与应用,包括机器人的研究、基于深度学习的人脸识别;

     首先!!!算法工程师包括:

    • 音/视频算法工程师(通常统称为语音/视频/图形开发工程师)

    • 图像处理算法工程师

    • 计算机视觉算法工程师

    • 通信基带算法工程师

    • 信号算法工程师

    • 射频/通信算法工程师

    • 自然语言算法工程师

    • 数据挖掘算法工程师

    • 搜索算法工程师

    • 控制算法工程师(云台算法工程师,飞控算法工程师,机器人控制算法)

    • 导航算法工程师

    • 其他【其他一切需要复杂算法的行业】

    图像处理算法工程师

    相关术语:
    (1) OCR:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
    (2) Matlab:商业数学软件;
    (3) CUDA: (Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台(由ISA和GPU构成)。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题
    (4) OpenCL: OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。
    (5) OpenCV:开源计算机视觉库;OpenGL:开源图形库;Caffe:是一个清晰,可读性高,快速的深度学习框架。
    (6) CNN:(深度学习)卷积神经网络(Convolutional Neural Network)CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。
    (7) 开源库:指的是计算机行业中对所有人开发的代码库,所有人均可以使用并改进代码算法。

    1必备技能总结

    职位要求

    编程技能:

    1、 具有较强的编程能力和良好的编程习惯, 精通c/c++编程,并熟练使用VS 或matlab开发环境;

    2、 在计算机技术领域拥有扎实的技术功底,尤其在数据结构、算法和代码、软件设计方面功力深厚;

        对数据结构有一定的研究基础如链表、堆杖、树等,熟悉数据库编程;

    3、 出色的算法分析能力,对某一特定算法可以做广泛的综述,有实际算法实现经验;

    4、 熟悉面向对象编程思想,精于windows下的C/C++、VC++程序设计,熟悉MATLAB,对MFC有相对的了解和应用经验;

     

    专业技能:

    1、扎实的数学功底和分析技能,精通计算机视觉中的数学方法;

         高等数学(微积分)、线性代数(矩阵论)、随机过程、概率论、

         摄影几何、模型估计、数理统计、张量代数、数据挖掘、数值分析等;

    2、具备模式识别、图像处理、机器视觉、信号处理和人工智能等基础知识;

         对图像特征、机器学习有深刻认识与理解;

    3、精通图像处理基本概念和常用算法包括图像预处理算法和高级处理算法;

         常见的图像处理算法,包括增强、分割、复原、形态学处理等; 

         熟悉常见的模式识别算法,特别是基于图像的模式识别算法,掌握特征提取、特征统计和分类器设计; 
    4、熟练使用OpenCV、Matlab、Halcon中的一种或一种以上工具库;
    5、熟悉机器视觉系统的硬体选型,包括CCD相机,镜头及光源;熟悉相机与镜头搭配;

     

    外语:

    1. 英文熟练,能够熟练阅读和理解专业英文资料,有英文文献检索和阅读能力;
    2. 良好的英语沟通能力

    综合能力:

    1.对工作认真负责,积极主动,勤奋踏实;

    2.做事严谨,注重细节,有耐心,能够在压力下独立工作;

    3.学习钻研能力强,有较强的理解能力和逻辑思维能力和良好的创新意识;

    4.良好的协调沟通能力和团队合作精神; 

     

    视觉算法经验:请提供实现的算法列表

        目标识别、图像配准、三维测量、标定和重建、手势识别; 

        表面缺陷检测;尺寸测量;特征识别;

        图像去噪、滤波、融合算法
        3A算法:如自动曝光、自动对焦、自动白平衡

     

    岗位职责:

    1、负责计算机视觉中的图像采集,处理面阵和线扫描相机的成像和控制 ;
    2、针对特定的计算机视觉问题,设计目标识别与快速定位与检测算法的实现,并进行优化;
    3、对彩色图像和灰度图像实现物体表面的污点划痕检测算法设计和实现;
    4、处理三维物体表面数据获取和实现三维测量算法的实现;
    5、处理点激光和线激光源的成像,散斑噪声滤波和轮廓检测;
    6、负责算法与软件GUI开发工程师接口;
    7、完成上级领导交办的其他的工作。

     

    2面试题大全

     

    1-图像基础知识:

    1.常用的图像空间。

    2.简述你熟悉的聚类算法并说明其优缺点。

    3.请描述以下任一概念:SIFT/SURF  LDA/PCA

    4.请说出使用过的分类器和实现原理。

    5. Random Forest的随机性表现在哪里。

    6. Graph-cut的基本原理和应用。

    7. GMM的基本原理和应用。

    8.用具体算法举例说明监督学习和非监督学习的区别。

     

    2-笔试

    大概有: 
    1.表示图像的特征有哪些? 
    纹理,频率,梯度这种 
    2.写出canny边缘提取算法的原理
    3.图像插值方法 
    4.自己设计一个OCR引擎 
    5.写出Kmeans程序,并在一个设计环境中怎样使用 
    6.中值滤波
    7.static的作用 
    8.写一个c++宏
    9.二分查找 

    整数翻转,如何处理越界问题

    C++多态,静态联编和动态联编,虚函数表

    模型融合如何做

    提升树的思想,随机森林和提升树的区别

    SVM推导,对偶性的作用,核函数有哪些,有什么区别

    python两个每行都是数字的文件合并,去重。

    shell编程,编辑文件。

    进程与线程的区别

    卷积神经网络介绍

    SVM的推导

    大文件求交集,如何解决哈希之后小文件还是放不进内存

    堆排序代码

    连续和最大问题,如何证明?

    bp算法介绍,梯度弥散问题。

    svm介绍,优缺点是什么,lr介绍,区别是什么

    lr与线性回归的区别

    如果要预测房价,用什么模型

    如果要预测房价,并且知道一个房间的房型信息,如何构建模型

    sigmoid 函数的应用有哪些,为什么?

    列举十种常用的神经网络模型

    语音识别模型有哪些

    如何识别一个人在喝酒,需要几个模型

    卷积神经网络中卷积如何实现,激活函数的意义,损失函数有哪些,初始化参数如何选择

    用过哪些深度学习框架,TensorFlow中的session是什么,session和interactivesession的区别

    如何实现卷积层权值共享

    如何保存模型,读取已有的模型

    用过哪些深度学习模型,区别是什么。

    了解哪些寻优算法

    softmax损失函数作用是

    c++ 的 const,static作用

    强制类型转换cast之间的区别

    svm推导,核函数的体现,常用的核函数有哪些

    alexnet介绍

    过拟合的原因,有哪些避免过拟合的trick

    1G的文本统计词频,输出频率最高的1000个词

    手写topk的代码,快排。代码还能如何优化,如果要上线的话还需要做哪些处理

    如果分类样本的标签只有一定的概率可信,如何处理

    如何设置负样本

    过拟合的原因,有哪些防止过拟合的方法

    模型评价如何做,其中存在哪些问题

    决策树算法有哪些,随机森林和GBDT的区别

    降维方法,PCA原理

    哈夫曼树在机器学习中的应用

    文本挖掘算法了解哪些

    人流量预测系统如何设计

    profession笔试:最优的进程调度算法,至少用多少个cpu

    英语自我介绍,口语渣猝不及防

    联想研究院 模式识别研究员 offer

    异常值的影响,如何消除

    所有了解的机器学习算法有哪些,框架性讲述

    梯度下降算法了解哪些,优劣势是什么

    二叉树中序遍历,递归和非递归

    linux操作指令了解哪些,文本处理指令有哪些

    一亿个数的文件,如何分成两个文件a,b,使得a文件的数都小于b,同时文件大小要差不多。

    均匀分布如何生成正态分布

    SVM原理,支撑向量越多越好还是越少越好

    二叉树深度遍历,时间复杂度和空间复杂度

    二维排序矩阵搜索

    项目中的长时间推广问题,如何考虑样本之间非独立的影响。

    编程题,矩阵中的最短路,有门有钥匙。动态规划加状态向量。

    贝叶斯公式,实际如何计算,如何解决精度问题。

    字符串转数字

    svm核函数有哪些,如何选取,手写表达式

    降维方法介绍

    c的虚函数,虚函数指针和虚函数表存在哪儿

    Linux 文件权限修改,参数介绍

    模型的比较如何做

    随机森林和提升树

    卷积神经网络原理

    如何避免网络的过拟合

    如何网络调优

    Python 的数据结构有哪些

    tuple 和set的区别,set的底层实现

    hash表的算法有哪些

    svm推导,一直到序列最小化求解。核函数如何体现,有哪些类型。

    构建分类器的整个流程是什么

    数据清洗方法,缺失值处理方法,降维方法

    pca原理推导

    决策树算法的介绍

    二维排序数组搜索

    如何构建欺诈交易识别的模型?

    不均衡的数据如何分类

    归并排序,二维排序数组搜索,中序遍历重构二叉树

    svm推导,为什么要用拉格朗日乘数法,对偶问题是什么

    KKT条件都有什么,如何求解svm的最优化问题

    数据不均衡如何解决,抽样得到的分类准确率如何转换为原准确率。

    逻辑回归原理,推导求解方法。

    为什么选用对数极大似然函数作为优化目标,用平方损失有什么问题。

    逻辑回归对特征有什么要求,是否需要做离散化,离散化的好处与坏处。

    …………

    ……


    原文:https://blog.csdn.net/litongwei7601/article/details/80132679 

    2020-02-12 23:17:55 cndszhuanshi 阅读数 37
    • 数字图像处理实战

      本课程内容主要选取自stanford EE368/CS232 课程的学生作业。我将给大家分享几个有趣案例,争取把算法流程原理、代码部署都讲清楚。本次课程包含图像算法和机器学习,编程工具主要包括python,c++,android,matlab,opencv,Tesseract等。 由于个人时间精力有限,课程将每隔2-3周发布一次。

      365 人正在学习 去看看 金圣韬

    视觉系统构成

    照明设备:光源

    • 通过适当的光源照明设计,使图像中的目标信息与背景信息得到最佳分离,可以大大降低图像处理算法分割、识别的难度,同时提高系统的定位、测量精度,使系统的可靠性和综合性能得到提高。

    • 如果光源设计不当,会导致在图像处理算法设计和成像系统设计中事倍功半。因此,光源及光学系统设计的成败是决定系统成败的首要因素。

    • 在机器视觉系统中,光源的作用至少有以下几种作用

      • 照亮目标,提高目标亮度;
      • 形成最有利于图像处理的成像效果;
      • 克服环境光干扰,保证图像的稳定性;
      • 用作测量的工具或参照;

    常见光源

    包括室内光线,日光,路灯,补光灯,红外,可见光,补光LED(白光,红外)等

    漫射光源

    • 在一定工作距离下,光束集中、亮度高、均匀性好、照射面积相对较小。

    • 常用于液晶校正、塑胶容器检查、工件螺孔定位、标签检查、管脚检查、集成电路印字检查等

    颜色光源

    如果希望更加鲜明地突出某些颜色,则选择色环上想对应的互补颜色光源照明,这样可以明显地提高图像的对比度

    成像设备:相机

    机器视觉相机的目的是将通过镜头投影到传感器的图像传送到能够储存、分析和(或者)显示的机器设备上

    • 按照芯片类型可以分为CCD相机、CMOS相机;
    • 按照传感器的结构特性可以分为线阵相机、面阵相机;
    • 按照扫描方式可以分为隔行扫描相机、逐行扫描相机;
    • 按照分辨率大小可以分为普通分辨率相机、高分辨率相机;
    • 按照输出信号方式可以分为模拟相机、数字相机;按照输出色彩可以分为单色(黑白)相机、彩色相机;
    • 按照输出信号速度可以分为普通速度相机、高速相机;
    • 按照响应频率范围可以分为可见光(普通)相机、红外相机、紫外相机等。

    彩色图像采集

    • 通过在感光面上附加一层三原色的颜色过滤,使得每个像素可以定向检测三原色分量大小
    • 对于每一个像素而言,它只能检测到某一种原色的大小,其他两种原色由附近像素点线性插值得来

    gamma校正

    • 由于早期CRT显示器的输出亮度和输入电压存在非线性关系,具体就是近似2.2次幂的关系,导致显示器的亮度要比计算机上存储的亮度要低,所以图像显示之前需要做1/2.2次幂的校正,这样输出来的颜色和实际颜色一样
    • 现在的LCD/LED设备已经能够正确地显示图像了,但人们还是习惯性地做gamma校正,这是由于人眼对暗亮度比较敏感,对亮的亮度不太敏感,基于这一实际,使用gamma校正可以拉伸暗部的精度,人们可以感受到更多暗层级,对应地损失了亮层级,但由于不太敏感,变相提高了存储精度

    处理设备:主机

    人工智能主要的处理器分为:CPU、GPU、FPGA、ASIC等。随着这几年人工智能技术的发展,各大厂家都在大力研发人工智能处理器,由于GPU非常适合机器学习算法的计算,目前各大厂商都推出性能强悍的GPU处理器,甚至推出人工智能专用芯片,以适应人工智能计算的高性能要求。

    算法软件:视觉处理系统

    使用C++或其它语言编写的视觉识别算法及程序,运行在SoC/VxWorks/后端主机上

    • 学习的方式分类:监督式学习、非监督式学习、半监督式学习和强化学习。
    • 算法的功能和形式的类似性分类:回归算法、基于实例的算法、正则化方法、决策树学习、贝叶斯方法、基于核的算法、聚类算法、关联规则学习、人工神经网络、深度学习、降低维度算法、集成算法。
    • 其中,计算机视觉常用的算法有:半监督式学习、人工神经网络、深度学习等。

    计算机视觉理论

    Marr视觉计算理论

    • 目的:通过视觉系统,重建三维物体的形状和位置
    • 2维:过零点(zero-crossing)、短线段、端元等基本特征
    • 2.5维:对物体形状的一些粗略描述
    • 3维:对物体的三维描述

    计算机视觉研究发展

    • 计算机视觉的早期图像表示模型是 Part-based,这样就可以通过 Part 这种组合式的方法表示物体。但很多自然场景的物体没有这么强的结构

    • 80 年代,特征检测和机器学习同时也开始组合应用,但对物体结构有严格限制(指定对象类型)

    • 2000 - 2012 年,局部特征描述得到迅速发展,如SIFT/HOG。特征描述具有通用性,结合SVM等机器学习方法。但效果有限。

    • 从2012年后,深度学习方法兴起。特征->自动提取;层数->很深

    人类视觉处理流程

    • 课程体系中的图像采集模拟人类眼睛对画面的感知;
    • 图像预处理模拟视网膜对画面的采集和处理;
    • 特征提取、边缘检测、图像分割模拟人类对画面中物体的认识;
    • 位置估计、运动估计、相机标定模拟人类对画面中物体行为的理解;
    • 三维视觉则模拟人类对整个画面的内在联系的理解。

    推荐书籍

    • 数字图像处理:冈萨雷斯著,阮秋琦译,《数字图像处理》
    • 计算机视觉:R. Szeliski著,艾海舟等译,《计算机视觉——算法与应用》
    • 机器视觉:C. Steger著,杨少荣等译,《机器视觉算法与应用》

    视觉的基本概念

    光通量

    指人眼所能感觉到的辐射功率,它等于单位时间内某一波段的辐射能量和该波段的相对视见率的乘积

    以符号Φ表示,单位是lm(流明),1流明 = 0.00146 瓦 。常见光源光通量

    光源 光通量
    太阳 3.566×1028 lm
    烛光 12.56 lm
    白炽灯/卤钨灯 12~24 lm/W
    荧光灯和气体放电灯 50~120 lm/W
    LED灯 110 lm/W

    辐照度

    指投射到一平表面上的辐射通量密度。指到达一表平面上,单位时间,单位面积上的辐射能

    以符号E表示,常用单位是lux(勒克斯),1 lux = 1 lm / m2 。常见照明环境的辐照度:

    场景 照度
    黑夜 0.001—0.02
    阴天室内 5~50
    晴天阳光直射 100000
    适合阅读 300~750
    家用摄像机标准照度 1400

    HSI颜色空间

    • H表示色度,色度分布范围如下表。OpenCV中H的取值范围是0-180
    角度 灰度值 颜色
    0 0 红色
    60 30 黄色
    120 60 绿色
    180 90 青色
    240 120 蓝色
    300 150 品红
    • S表示颜色接近光谱色的程度。

      • 每一种颜色,可以看成是某种光谱色与白色混合的结果。
      • 其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。
      • 饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。
      • 通常取值范围为0%~100%,值越大,颜色越饱和。
    • V对应成像亮度和图像灰度,是颜色的明亮程度

      • 对于光源色,明度值与发光体的光亮度有关;
      • 对于物体色,此值和物体的透射比或反射比有关。
      • 通常取值范围为0%(黑)到100%(白)
    • 与RGB换算关系

    图像压缩

    JPEG:1986,有损压缩,压缩率通常在0.1~0.025之间;JPEG2000支持无损压缩,压缩率高于JPEG

    2017-04-22 16:52:24 u012617944 阅读数 9034
    • 数字图像处理实战

      本课程内容主要选取自stanford EE368/CS232 课程的学生作业。我将给大家分享几个有趣案例,争取把算法流程原理、代码部署都讲清楚。本次课程包含图像算法和机器学习,编程工具主要包括python,c++,android,matlab,opencv,Tesseract等。 由于个人时间精力有限,课程将每隔2-3周发布一次。

      365 人正在学习 去看看 金圣韬

    1.图像二值化常用方法原理介绍

    图像二值化是图像分析与处理中最常见最重要的处理手段,二值处理方法也非常多。越精准的方法计算量也越大。

    1.1基于RGB色彩空间

    主要是阈值的选取
    方法一:该方法非常简单,对RGB彩色图像灰度化以后,扫描图像的每个像素值,值小于127的将像素值设为0(黑色),值大于等于127的像素值设为255(白色)。该方法的好处是计算量少速度快。缺点更多首先阈值为127没有任何理由可以解释,其次没有考虑图像的像素分布情况与像素值特征,受光照影响较大。

    方法二:计算像素的平均值K,扫描图像的每个像素值如像素值大于K像素值设为255(白色),值小于等于K像素值设为0(黑色)。缺点,可能导致部分对象像素或者背景像素丢失。二值化结果不能真实反映源图像信息。

    方法三:使用直方图来寻找二值化阈值,选择二值化阈值主要是通过统计像素值发现图像的两个最高的峰,然后在阈值取值在两个峰之间的峰谷最低处。

    方法四:使用近似一维Means方法寻找二值化阈值,该方法的大致步骤如下:
    1. 一个初始化阈值T,可以自己设置或者根据随机方法生成。
    2. 根据阈值图每个像素数据P(n,m)分为对象像素数据G1与背景像素数据G2。(n为行,m为列)
    3. G1的平均值是m1, G2的平均值是m2
    4. 一个新的阈值T’ = (m1 + m2)/2
    5. 回到第二步,用新的阈值继续分像素数据为对象与北京像素数据,继续2~4步,直到计算出来的新阈值等于上一次阈值
    例如:opencv中Thresholding()函数
    【参考链接】(http://blog.csdn.net/jia20003/article/details/8074627

    2015-01-07 20:33:00 weixin_33690963 阅读数 6
    • 数字图像处理实战

      本课程内容主要选取自stanford EE368/CS232 课程的学生作业。我将给大家分享几个有趣案例,争取把算法流程原理、代码部署都讲清楚。本次课程包含图像算法和机器学习,编程工具主要包括python,c++,android,matlab,opencv,Tesseract等。 由于个人时间精力有限,课程将每隔2-3周发布一次。

      365 人正在学习 去看看 金圣韬

    一、原理介绍

            图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术,它将多幅图像拼接成一幅大尺度图像或360度全景图,图像拼接技术涉及到计算机视觉、计算机图形学、数字图像处理以及一些数学工具等技术。图像拼接其基本步骤主要包括以下几个方面:摄相机的标定、传感器图像畸变校正、图像的投影变换、匹配点选取、全景图像拼接(融合),以及亮度与颜色的均衡处理等,以下对各个步骤进行分析。

    摄相机标定

            由于安装设计,以及摄相机之间的差异,会造成视频图像之间有缩放(镜头焦距不一致造成)、倾斜(垂直旋转)、方位角差异(水平旋转),因此物理的差异需要预先校准,得到一致性好的图像,便于后续图像拼接。

    相机的运动方式与成像结果之间的关系见下图。

     

    图1:相机的运动方式与成像结果之间的关系

    图像坐标变换

            在实际应用中,全景图像的获得往往需要摄像机以不同的位置排列和不同的倾角拍摄。例如由于机载或车载特性,相机的排列方式不尽相同,不能保证相机在同一面上,如柱面投影不一定在同一个柱面上,平面投影不一定在同一平面上;另外为了避免出现盲区,相机拍摄的时候往往会向下倾斜一定角度。这些情况比较常见,而且容易被忽略,直接投影再拼接效果较差。因而有必要在所有图像投影到某个柱面(或平面)之前,需要根据相机的位置信息和角度信息来获得坐标变换后的图像。

    理论上只要满足静止三维图像或者平面场景的两个条件中的任何一个,两幅图像的对应关系就可以用投影变换矩阵表示,换句话说只要满足这其中任何一个条件,一个相机拍摄的图像可以通过坐标变换表示为另一个虚拟相机拍摄的图像。

            一般情况下8参数的透视投影变换最适合描述图像之间的坐标关系,其中8参数的矩阵为[m0,m1,m2;m3,m4,m5; m6,m7,1];各参数对应的相机运动表示如下:

            如图2显示的是相机向下倾斜一定角度拍摄图像,这个角度与m6和m7具有对应关系,如果要获得校正图像,只需要对8参数矩阵求逆后进行坐标变换。

    (a) 原始图像

     

    图2:(a) 原始图像;(b)x方向形变效果;(c)倾斜校正后效果

    图像畸变校正

             由于制造、安装、工艺等原因,镜头存在着各种畸变。为了提高摄像机拼接的精度,在进行图像拼接的时候必须考虑成像镜头的畸变。一般畸变分为内部畸变和外部畸变,内部畸变是由于摄影本身的构造为起因的畸变,外部畸变为投影方式的几何因素起因的畸变。镜头畸变属于内部畸变,由镜头产生的畸变一般可分为径向畸变和切向畸变两类。径向畸变就是集合光学中的畸变像差,主要是由于镜头的径向曲率不同而造成的,有桶形畸变和枕型畸变两种。切向畸变通常被人为是由于镜头透镜组的光学中心不共线引起的,包括有各种生成误差和装配误差等。一般人为,光学系统成像过程当中,径向畸变是导致图像畸变的主要因素。径向畸变导致图像内直线成弯曲的像,且越靠近边缘这种效果越明显。根据径向畸变产生的机理,对视频图像进行校正。效果如图3(b)所示,经过校正的图像,其有效像素区域缩小,一般可通过电子放大的方式进行校正,如图3(c)所示。

    图3:(a)为原始采集图像;(b)为经过径向失真校正的图像;(c)为经过放大的图像

     

    图像投影变换

            由于每幅图像是相机在不同角度下拍摄得到的,所以他们并不在同一投影平面上,如果对重叠的图像直接进行无缝拼接,会破坏实际景物的视觉一致性。所以需要先对图像进行投影变换,再进行拼接。一般有平面投影、柱面投影、立方体投影和球面投影等。

            平面投影就是以序列图像中的一幅图像的坐标系为基准,将其图像都投影变换到这个基准坐标系中,使相邻图像的重叠区对齐,称由此形成的拼接为平面投影拼接;柱面投影是指采集到的图像数据重投影到一个以相机焦距为半径的柱面,在柱面上进行全景图的投影拼接;球面投影是模拟人眼观察的特性,将图像信息通过透视变换投影到眼球部分,构造成一个观察的球面;立方体投影是为了解决球面影射中存在的数据不宜存储的缺点,而发展出来的一种投影拼接方式,它适合于计算机生成图像,但对实景拍摄的图像则比较困难。如下图4所示,图像拼接处理流程示意图。

     

    图4:图像拼接处理流程示意图

    匹配点选取与标定

            由于特征点的方法较容易处理图像之间旋转、仿射、透视等变换关系,因而经常被使用,特征点包括图像的角点以及相对于其领域表现出某种奇异性的兴趣点。Harris等提出了一种角点检测算法,该算法是公认的比较好的角点检测算法,具有刚性变换不变性,并在一定程度上具有仿射变换不变性,但该算法不具有缩放变换不变性。针对这样的缺点,Lowe提出了具有缩放不变性的SIFT特征点。

     

    图5 两幅图像中标定的匹配特征点

            如上图5所示,图像的拼接需要在图像序列中找到有效的特征匹配点。图像的特征点寻找直接影响图像拼接的精度和效率。对于图像序列,如果特征点个数≥4个,则很容易自动标定图像匹配点;如果特征点很少,图像拼接往往不能取得较为理想的效果。

     

    图像拼接融合

            图像拼接的关键两步是:配准(registration)和融合(blending)。配准的目的是根据几何运动模型,将图像注册到同一个坐标系中;融合则是将配准后的图像合成为一张大的拼接图像。

            在多幅图像配准的过程中,采用的几何运动模型主要有:平移模型、相似性模型、仿射模型和透视模型。

            图像的平移模型是指图像仅在两维空间发生了 方向和 方向的位移,如果摄像机仅仅发生了平移运动,则可以采用平移模型。图像的相似性模型是指摄像机本身除了平移运动外还可能发生旋转运动,同时,在存在场景的缩放时,还可以利用缩放因子 多缩放运动进行描述,因此,当图像可能发生平移、旋转、缩放运动时,可以采用相似性模型。图像的仿射模型是一个6参数的变换模型,即具有平行线变换成平行线,有限点映射到有限点的一般特性,具体表现可以是各个方向尺度变换系数一致的均匀尺度变换或变换系数不一致的非均与尺度变换及剪切变换等,可以描述平移运动、旋转运动以及小范围的缩放和变形。图像的透视模型是具有8个参数的变换模型,可以完美地表述各种表换,是一种最为精确变换模型。

            图像融合技术一般可分为非多分辨率技术和多分辨率技术两类。在非多分辨率技术中主要有平均值法、帽子函数法、加权平均法和中值滤波法等。多分辨率技术主要有高斯金字塔、拉普拉斯金字塔、对比度金字塔,梯度金字塔和小波等。

    图6 柱面全景图像拼接

    (a)-(d)为四幅不同视角的图像,(e)为最终拼接得到的柱面全景图像

     

     

    亮度与颜色的均衡处理

            因为相机和光照强度的差异,会造成一幅图像内部,以及图像之间亮度的不均匀,拼接后的图像会出现明暗交替,这样给观察造成极大的不便。

            亮度与颜色均衡处理,通常的处理方式是通过相机的光照模型,校正一幅图像内部的光照不均匀性,然后通过相邻两幅图像重叠区域之间的关系,建立相邻两幅图像之间直方图映射表,通过映射表对两幅图像做整体的映射变换,最终达到整体的亮度和颜色的一致性。

    二、国内外现状

            全景拼接侦察系统在国外已经有了较早的研究,早在1992年,剑桥大学的L.G.Brown就对图像拼接的核心技术进行总结,1996年微软研究院的Richard Szeliski提出基于运动的全景拼接模型。Szeliski后来又相继发表了若干这方面论文,2000年Shmuel Peleg提出改进方法,根据相机的运动方式自适应选择拼接模型,2003年M.Brown发表了SIFT特征进行图像拼接的方法,但计算量很大,2007年Seong Jong Ha提出移动相机系统的全景拼接方法,不仅保证效果,而且运算速度也不错。

            在国内方面,也有不少高校科研机构对视频拼接技术及应用进行研究,其中,上海凯视力成信息科技有限公司研发的“全景视觉态势感知系统” 最具代表性,该系统功能完善、技术先进、性能可靠,并已成功应用于多种车型。

            上海凯视力成信息科技有限公司全景视觉态势感知系统——PVS9112型是实时的全固态无机械运动的高清360度凝视视频系统,系统提供实时的连续覆盖整个战场的全运动视频,人机交互界面直观快捷。系统适应于恶劣环境,支持彩色和红外传感器,可以黑天和白天全天候工作,实时地图像处理和高清视频的显示,显示界面同时提供360度全景窗口和感兴趣区域的高清画面。系统提供开发式结构,便于同其它系统如雷达等集成到一起,以获得一个完整的态势理解。

     

    传感头:


      

    图8  几种传感头

    图形界面:


     

     

    图9  PVS9112图形界面

    特点:

    • 实时的360度视频全景显示,便于对态势的感知理解、安全监视、目标探测。从而提高平台的攻击能力和安全防护性。
    • 支持高清彩色和红外传感器。日夜均可工作。
    • 显示全局拼接画面、局部感兴趣。
    • 图形交互界面。并支持多种人机交互接口,支持触摸屏、鼠标、键盘、自定义按键、操纵摇杆等,可无缝接入已有系统。
    • 无运动部件,高可靠性。
    • 适应车船飞机等恶劣的工作环境。

    可选特征:

    • 目标检测与告警
    • 自动多目标跟踪
    • 视频记录和回放
    • 可选支持PTZ长距离光电探测系统,在全景视频上可以通过触摸的方式控制PTZ的快速转动到指定的位置,克服了传统操控PTZ方式的缺陷,使得PTZ摄像机的功效大大提高。
    • 图像透雾增强算法
    • 电子稳像算法

    开放式体形架构:


     

     

    二、应用

            从图像拼接的实际应用来看,主要有大型航空照片,卫星图像拼接,车载系统监控,虚拟场景实现,视频压缩;很多资料上都提及车载系统的拼接,这种拼接侦查系统可以用于不同车辆,如反恐、安全监视、侦察、巡逻和警车等;系统给操作者提供车辆周围的实时全景图像,使之能够感知全面而丰富的态势,操纵车辆的同时还可以有效将自己保护在车内,不用通过车辆的挡风玻璃就可以实时操控。全景图像极大地增强了用户的视觉感知系统,使其在特种车辆、军用以及民用方面都拥有广阔的市场前景。与传统的多画面监控相比,全景拼接画面更符合人眼观察,极大地提高了侦察的准确性。但很少提及机载系统,因此,机载方面只要设计合理,应用前景是巨大的。

    应用实例:

            方式一:基本模式

            摄像机组 + 一或两个终端,支持记录或不记录,每个终端所显示内容可以不同。

     

            方式二:增强模式

            摄像机组 + 2以上终端,可通过GigE网络来扩展连接其他设备,如视频记录仪等。 采集和预处理模块,实现对视频信号的捕获,并对摄像机组进行管理,如PTZ控制等。在这一层,实现对不同路数、不同接口形式的摄像机的支持。并作必要的预处理功能,如图像的缩放平移投影变换、数据压缩等,为后续处理器准备好数据。模块还通过多个GigE网络,将视频数据分发给多个不同的处理器或其它设备,如视频记录仪等。这种组成结构,可适应不同应用需求:如不同的摄像机种类和数量,终端处理功能要求不同等等。

     

    关于视频拼接产品的介绍

     

    http://blog.csdn.net/shanghaiqianlun/article/details/12090595

    转载于:https://www.cnblogs.com/pengkunfan/p/4209374.html

    没有更多推荐了,返回首页