Welcome to Vision Compute’s documentation!

Contents:

图像处理的常用方法

盲源分离:

自然梯度法

自然梯度法主要是用接收信号的概率密度求梯度,最后为了鲁棒性,使用黎曼空间的表示。这说明这还是一个求导的概念。用g(y)表示接受信号的概率密度函数。这是一个估计的结果。

SOBI

这个方法我想和SVD分解差不多,只是使用了多个时延,改善和确保性能。

oblique projection

正交投影:PH=H*adjoint(H) 斜投影: PH=H*adjoint(S)

色调以及摄影的应用

眼睛总是被吸引到画面中最明亮的部分(差异最大的那分),例如白底黑主体就相反了。所以亮色调在视觉上优先。要充分利用光线,肤色,以及衣服的颜色的色调来突出主题。

例如深色的衣服有助于使人体与背景浑然一体,这样面部就会成为画面中最最显眼的部分,深色显的苗条,浅色增加分量,一般来说,衣服的颜色应该淡化,因为鲜艳的色彩会影响对面部的注意。 布光 ======

布光的原理最终是最终是颜色的设计,人像摄影主要是柔光. 柔光,冷光,䁔光,背景光,轮廓光,发型光,羽化光,光比

窗户光,最好的时候,上午中间,下午的中间时段. See also ========

  1. LCH,lab 只是不同的颜色模型,并且常见光线与颜色模型值,例如强度与功率等。
  2. Recovering highlights with dcraw using LCH blending
  3. 摄影用光 色温 色温中,绿色基本保持不变34%,我们通常指的色温调整主要改变是RB两个的百分比。三者靠近比例接近的时候就是白光也就是日光色温,日光的色温基本是5500k. 黑体色温与CIE的色温定义是有区别的。并且色温也是表征能量,而不是颜色的。不能表达所有颜色。
  4. brucelindbloom 关于颜色各种转换与在线工具
  5. Decoding raw digital photos in Linux
  6. 色彩与色调的调整 要慢慢来看懂这些理论了与实际的用途了
  7. 白平衡与直方图均衡化 这个到底是什么关系呢,是不是对应关系
  8. 直方图、对比度调节及白平衡 可以做一下这些实验在,GIMP或者python中
  9. 调色教程入门二——色彩基础,想学调色的必看 要看懂直方图的分布意义了
  10. 色温表

思考

Hue-Saturation

#. Y U V introduction – Main.GangweiLi - 12 Aug 2012

色阶曲线的应用 现在终于明白曲线坐标的意义了,X轴代表的是原来相素分布,Y代表输出的色采分布。曲线就是一个直接映射关系。 而原始分布是要根据直方图来看,或者直接去图片去测试区域。

– Main.GangweiLi - 20 Nov 2012

如何在实践应用 拿着相机,如何来控制颜色,来达到自己的目的呢。亮度的不同会产生什么,饱和度的会产生什么样的东西,色度的不同会产生什么。

– Main.GangweiLi - 02 Jan 2013

图像降噪

k-L 变换就是求数据的协方差矩阵的特征值和特征向量。

基于PCA的降噪,

PCA降噪方法和之前的降维差不多,对于降噪来说,就是获得信号子空间和噪声子空间,-》从噪声子空间中估计噪声方差-》remove 噪声子空间

小波变换

haar变换,就是利用上一个点对下一点进行相减,在信号不变的情况下,得到的信号就是稀疏的,稀疏之后然后在通过设置门限就可以把噪声抑制掉。

量子成像

相干斑

相干斑主要是相干成像中明暗变化的图像,产生主要是由于单个距离分辨单元中包含多个目标,结果多个信号相加生成随机的信号幅度和相位,主要抑制相干斑的方法

  1. 基于multi-looking processing, 但是这样会降低雷达的分辨力(好像是方位分辨率吧)
  2. 基于小波变换的方法。
  3. 基于ICA的方法。
  4. 基于自适应滤波的方法。
  5. k-L变换 清华
  6. k-L变换,里面还有一些基本的主分量分析,小波变换等的数学推导
  7. adesso Adessowiki - Collaborative Scientific Writing and Programming
  8. klt找到脸位置,matlab代码
  9. scikit-learn: machine learning in Python 有空看一下
  10. PCA降噪matlab代码
  11. PCA降噪python 代码 怎样装上他们开发的modulate
  12. 自适应变换小波降噪
  13. 多分辨率curvelet transform
  14. wavelet.py 图像小波降噪
  1. A beginner’s guide to speckle
  2. 合成孔径雷达基础
  3. 相干斑形成原理 这个基本还行,理解了相干斑
  4. Lee滤波,这个是python 版本的,但是这个看不太懂,让老李看下
  5. 量子力学

Hough 变换

线检测 图像空间——》参数空间,对图像中的任一点对应参数空间的直线(y =k*x+b),因此需要看任意多少点对于的直线相交于一点。实际中为解决y =c,k=inf的问题,使用 p =x*cos(theta)+y*sin(theta)

在p-theta中形成一个曲线。

参考:

  1. Hough变换原理 看一下,比较到位
  2. OpenCV-Python教程(9、使用霍夫变换检测直线)

视频压缩,就是在某个基上变换后得到比较简单的向量比如[1,0,0],得到更多的0,或者近似零,我想压缩感知也是这样的,值认为它是稀疏的,大部分都是零的,有一个基变换中,只取某几个。

Think also

直方图:

introduction

直方图特点:计算量比较小,直方图反映的是图像像素灰度值的概率分布,

原理:为了改善图像过亮或者过暗,得到图像的理想整体对比度(1/n),通过符合求导的逆推,得到要用积分图像。

优点:适用于图像过亮或者过暗,尤其对于X光图像中更好的骨骼结构

缺点:对处理的数据不加选择,它可能会增加背景杂讯的对比度并且降低有用信号的对比度。

matlab实现:histeq函数。

  1. RGB转灰度图的几种算法 RGB转换为灰度图完全是我们心理的作用.
  2. 50 RGB向灰度转换的原理 可以看一下

直方图本身反映了,各个灰阶的像素的数量,把一幅图像像素看成是一个小球,而像素的灰度看成小球的大小。而灰级就是256个大小从小到大排列的篮子。然后按照顺序把每一个像数按照大小放入合适的篮子里。每个篮子里小球的个数,再除以总数,这样就形成直方图。但是通过直方图发现,小图分布的不均匀。 那么如何算是均匀呢,当然是根据能力与出身了。例如篮子大小当做出身。也就是从小到大的顺序不能变,不管我有多少小球。但是我的灰度又要能体现数量的多少。数量越多,灰度级越大。能同时满足这两个要求。就是要利用概率密度了。这样的结果是首尾的值是不会变的。最小值还是最小值。最大值还是最大值。最小值再加上最小值与当值之间密度差值。

直方图拉伸和均衡 这里有一个直方图拉伸和均衡的关系,可以看到均衡是拉伸方法的特殊情况,另外可以看到因为增加了对比度,所以都会出现对比度增加的好处,但是这样的话,同时也可能把北京增加了,通过`图像增强1:对比度增强与直方图变换 <http://lijiwei19850620.blog.163.com/blog/static/97841538201210239635623/>`_ 看到,理想的曝光是一个中间高,两边低的灰度情况(这个是为什么还不清楚),大致和直方图均衡的图比较吻合了。

digraph{
rankdir=LR
node [shape=box];
From_picture_histogram->too_Dark->Right_stretching
From_picture_histogram->bright->Left_stretching
From_picture_histogram->"Low-contrast_mid-gray-level"->Left_right_stretching
}

` OPenCV直方图均衡化 <http://blog.csdn.net/luomaojiang/article/details/8601321>`_ 这里两个图看很形象直观。但是观点是做的,那就是均衡化不会每个灰度级上都具有相同的象素点数过程。原来每一个篮子的小球的数量是不会改变的,会改变的,只是让原来篮子的大小,随着之进行改变。 直方图维基定义 这里给出的定义,扩展常用的亮度。也就是概率最大的亮度之间的差值。

所以直方图均衡化只改变宽度,不改变形状。同时我们也指定均衡化的宽度。

ImageMagick

Introduction

imagemagick 是一个超强的库,并且指命令行接口异常的强大,基本上图片处理,画图功能它都已经提供了。可以说是一个cli版的GIMP。 同时它又像其他的linux工具一样,它的功能一种是在编译时通过各种宏来指定。另一种方式那就是采用配置文件。并且采用一定的搜索算法。最先开始在当前文件夹下.magick文件开始。从了一些正常的参数之外,还可以通过+define指定的那些隐性的参数。并且用identify 命令可以读取也可以添加各种的`元数据到图片中 <http://www.exif.org/>`_ exiv2 同时还能够把这些元数据给strip掉,就像gcc的编译一样。每一个图片本身就是对象,我可以图像的统计信息放在元数据里,放在comments里,并且它支持一些通配符。简单的命令可以用convert,mogrify,display等,脚本可以使用`conjure <http://imagemagick.sourceforge.net/http/www/conjure.html#msl>`_ .%RED%而这个正是想要的一直准备去做的一件事之一。如何实现一个动态搜索接口。win7的文件浏览器功能就不错。自己是不是可以基于开源的文件浏览器改出来一个。%ENDCOLOR%其实imagemagick提供了一整套的命令行,包括管理显示排序方面关于图片的,问题自己如何利用这些。 #. 如何显示那文件属性 可以直接使用identify,convert来查看与编辑图片的属性。 #. best-free-digital-image-viewer.htm

计算存储图片两种方式一种是矢量图,它是由一些基本的图元组成,这些图元都是可以有基本数学方程。这样可以数学方程进行放大与缩小这个就是SVG它可以用XML等直接传递,只需要一些特征点。而opengl也采用的这种方式,不同的是采用有限元法来表示各种图形,但是在显示的时候,最终还是还要像素上光栅化的。这就像另一些图,直接就是利用点阵图来表示。opengl可以说这种方式的结合。 并且opengl顶点与最后屏幕点还是不一样的。先连线,然后逐行扫描的。

光栅化的后反矩齿。就是把中界点用半透明化。

color space management

一些美学原理是在以及各种颜色空间都在[[Study.ColorTransform]]。在这里只提到在计算机中,颜色的深度的问题,就是指你用几位来表示一种颜色。同时也还有一个采用量化的过程。其中之一多少个像素点代表真实的一个点。这个是采用率的问题,这个图放大与缩小的时候,会采用到,例如缩放时是直接按点踩,还是说几个点中取中值,还是如何。这个在opengl的光栅化时也同样有这样的问题,在光栅化之本身只有顶点数据的,内部的尺寸大小不同时与纹理的映射关系其实就是采样的过程。你可以指定取最大值,取最小值,或者采用滤波的方式来设置都是可以的。以及颜色本身减少压缩也是这样的。 文件本身存储的字节序的问题在这里都是可以指定所修改的。

并且imagemagick还支持批处理。 通过对imagemagick的学习,对于图像本质有了更深的认识。同时对于各种图片存储方式也有更深的认识。总之一点那就是矩阵式结构不变的。改变的一个像素点有多少个通道。每一个通道需要多少位来表示。所谓压缩不压缩也是指的这些。但是JPEG是如何达到压缩目的呢。是把点给扔了,把细节的地方点多一些。但是如何来保证像素数,扔掉的像素点是不是要拟合出来,并且还标记出来,哪些点是需要拟合的

在图像与图形的处理过程中两者有时候是不分的,在图像的处理过程中,像素的坐标位置提的不是很多,而在图形的像素点的颜色道是说的少了,更多的是顶点的坐标点。其实每一幅图像都有一个坐标系。要么以顶角为原点要么中心为原点。图像的变换都是这样来的。在建模的时候,就发现各个子系统都会自己的局部坐标系。那个gravity指的就是局部坐标系的原点在哪里。 在图形与图像的处理过程中,并且需要计算整副图像的统计值,然后以这些为初值,进行局部分形处理。一个点的坐标值,颜色值,法向值,切线值,都是很重要的。但是图像与图形的是有区别的,图像的法向以切线是估出来的。而图形则是经过建模精确计算出来的。

对于各种图形都支持一种interlaced 的属性,那就是可以边下载边显示。是文件本身的一种属性,还是某一种图片格式的属性。

图片的显示管理

ImageMagick提供import进行截屏操作。montage,display,animate批量化的显示,动画的显示与修改.同时进行格式的转化,动画frame的控制 insert/swap/delete/delay/loop,并且能够直接操作.gif中frame.修改顺序。并且还能折分与提取与合成pdf,还能用来破解pdf.。 做和种可视化对比的利用montage 是非常方便的。根据结果生成各种各样对比图片数据。 并且在XWindows中,display可以指定的显示在哪一个窗口,并且还可以设为哪一个窗口的背景,并且还能实时监控图片的变化,vimdot就是这样实现的。但是如指定缩放呢。还是使用montage的方法。

各种动化教程 http://www.imagemagick.org/Usage/anim_basics/ 我的ImageMagick使用心得 使用ImageMagic开发一个照片管理库

图形的变换

compare 比较做的还是比较智能的,直接支持单通道的比较,而不需要先分离然后再比较。并且对于各种特效的变换。例如watermark 添加以及签名以及边框的添加都是高度可定制化与批量化的。另一个那就是图片的隐藏,实现的原理是什么呢,直接进行图片叠加算法,还是只在后面又加了一帧。应该不是又加了不是这种,应该是算法叠加。Steganography composite -stegano 直接转化为噪声隐藏位图的低位。然后再恢复按照固定的函数算法再恢复出来。但是这种方法也会受到图片的裁减的破坏。 是不是可以直接把ASCII码当灰度或者unicode码当做灰度值,然后把文字变成图像,同时也研究一个那个小鸭子是如何实现的。

图片的噪声,有各种各样的模型,如何进行添加与去除。这个是图像复原的一个题目。椒盐噪声与高斯噪声的原理 对于椒盐噪声,为什么非得是极值。在进行模板设计的时候一般都采用奇数矩阵来代替圆形。

高斯函数 高斯函数三个参数,均值,方差,还有一个幅度,均值是由谁得出,而方差为什么是指定的。高斯一般用5x5模板 图像真实对比,用小图来进行对比,这样的实现会很有意义 把颜色与看数值直接相结合会更有直接意义,这个方法不错,直接看其灰度值的变化。            
` hmm-kalman-particle-filtering <http://freemind.pluskid.org/machine-learning/hmm-kalman-particle-filtering/>`_              
-segment 这个只是从直方图进行分割。            
-shade的 光线效果。对于光线的效果是需要三维的,并且需要法向的,二维图像的法向如何进行计算呢。            
-Solarize ` 曝晒算法 <http://courses.washington.edu/hypertxt/cgi-bin/book/pmontage/solarized.html>`_ 模仿最初沥清制图的方法,采用V字型反转就可以了对于曲线或者直方图            
-spread 算法,在一个有限的范围内随机跳,采取什么样的随机会不同的效果吗,总体看来在水波下情形            
-sharpen 虽然都是高斯,取高通,还是低通,就看你用哪一部分,你是用3sigma之内就是低通,3sigma之外就是高通了            
-Swirl 旋涡效果            
-threshold -level -modulate
-tint 这其实也是图像分割的一种 最简单的应用,在过滤的时候会非常的方便 threashold用的最大值,level用的最小值,其实就是直方图的输出 -tint 是调整各个分量的多少 -modulate 用的是HSV模型,而前面两个用的是RGB模型    
-unsharp 去除模糊,其实锐化的工具            
-wave 要么横向,要么纵向,能不能径向            
-virtual pixel 是不是利用多点来表示一点,具体还不太明白            
roll 自身左右循环移位与上下循环移位            
-append 就像字符串拼接一样,把图片接在一起 自动去改文件头 并且能够指定边框,背景        
-average -fatten 把多张图,叠加起,点对点按照不同的规则,就像两张的加减一样          
-affinite 二维的变换矩阵,但是一个问题,那就是坐标原点在哪里            

画图

颜色格式可以直接使用名子例如red,black,等也可以使用HTML#XXXXXX格式,也可以使用RGB格式。 画图可以指定大小,xc(xwindow colors),以及背景,方向,以及各种基本的图形,以及填充,边框等,并且能够多次嵌套。

-annotate 添加注注释    
-pointsize 字体大小    
-stroke 线条颜色    
-fill      
-font      
-draw color 50 50 point/replace/foodfill  
^ rectangle    
^ circle    
^ text    
^ Image in/over/out/atop    
composite
-compose 合成图片
   
-write 可以保存每一步的中间状态    

display 命令的用法可以按照slide来播放

Imagemagick中图片大小转换全攻略

  1. Table of Contents for Writing With Images

图像量化

像素是离散化后的强度值。 512*512 是什么?

饱和就是我们不能同时看到超过范围的图像。饱和和人眼的原理是一样的。

离散化的精度影响 分辨率。floor(value/2)*2, 这里的2就是下采样系数。

图像表示:

introduction

如何表示一个图像,用点阵,用矢量。如何一幅图像中找到对应的矢量描述呢。解决了描述问题了,后面就成了一个通用的数学问题。

是不是可以用分形的去描述一个图像呢,把分形当做一个基,然后合成图片上内容。目前还没有找到一个完美的表示方法,对于每一种特定类型图像对象,我们总是能找到一分类方法的进行分类表示的。

链码

按照一定的次序连接边界线。这个与模型的建模表示有什么区别。 多边形近似 | 最小周长多边形,聚合与拆分 能不不能分形来表示呢 |

标记图 ,每一个子图都有自己的中心原点,对于物理图形来说,一般用重心来做原点 , 边界线段 , 骨架 , 形状数,例如欧拉拓扑公式, 复数序列的傅里叶变换来表示。, 统计矩 , 拓扑学 ,

主分量法 ,其实就是特征值与特征向量的方法 ,

关系描述 ,也就相当于PCM差分编码的方法 ,

See also

图像恢复 (降噪)

G=F*H+N 还是G=H(F+N) 还是只有N,还是只有H,处理方法都是不样的。主要需要考虑的因素有 #. N是不是可分离的 #. H 是不是可以逆的,一个是指数学上,一个是指实践的处理对象上。 #.

只有 G=F+N 并且N在唯一空间的,或者N的频谱明显与原图的频谱有距离,这一种是最简单的,只需要简单的高通,低通,带通,在二维还有多带通。 例如常规的,中值,均值,最大值,最小值,另外掩码的尺寸也是重要的因素在处理效果上  

用直方图来做参考太粗糙了,用等高图会更高直观,亮度变成高度,会加直观。并且会带有位置信息。 噪声的估计 #. 其中一种是基于直方图对澡声进行估计,利用基准图像来进行测试的。 #. 还有一种那就是根据傅里变换来进行估计的。 #. 另一种是直接从传感器的技术说明中得知。 最终值,可以基本值来进行测试,例如灰卡拍照进行测试。来得到澡声的图像。例如黑夜,我们一张白纸后面打光进行拍照,得到图片就为澡声了。

退化函数 #. 图像观察估计法 #. 试验估计法。 #. 模型估计法。 同态滤波就属于这种。 建立各种模型来估计退化函数。同样是可以基准图像来进行测试的。 对于张各的图像没有做离里叶变换。做一个傅里变换看看。

噪声产生原因 高斯噪声源于电子电路噪声和低照明度或高温带来的传感器噪声。

椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起。

加性噪声-》均值滤波方法就好,对于椒盐噪声运用中值滤波,实际中对于复杂噪声,运用阿尔法滤波结合中值滤波和均值滤波,效果更好,而对于周期性噪声(比如电力电子中),则使用带阻滤波器。 对于只有f=g+n 的模型,就是直接之前的滤波器,把n踢掉。自适应的原理无非就是需要全局的期望与方差。

几何变换,其实可以完全通过图形的方法来实现。 最小二乘算法 (least square) =================================

对于函数y =ax, for x是输入图像,a是退化函数,y是输出。 输入w(0)值(近似a的逆运算),得到:

\[x(0)= w(0)*y,\]
\[aug_y=(y\prime*y)^(-1)*y\prime;\]

最小二乘,使残差最小

\[\]

w(1) = aug_y*y

\[err=y\prime*(eye(10)-y*w(i)); % 正交\]

直到 \(w(i),i=1\),N小于某个数量级,比如 \(r_n<10e-6\), 停止迭代。 否则更新w

关于运动模糊的物理

可以根据运动方程来建立模型,然后进行恢复,例如水平运动的基础是运动的距离可以由傅里叶变换的周期性来检测。并且第一旁瓣宽度的关系。图像变换的周期是与物体运动的周期或者对称是相关的。还有那是旋转后的出现的模糊。并且这个要一下实验。水平运动可不可以x,y都有,或者经过旋转到一个方向在进行。 包括水滴消除也是这样进行的。对于车牌检测的就是直接使用逆滤波的结论并且还做了简化,原来的两个方向的,其中做了进一步分析(ua+vb)这个值是多少,它本身就是一个Sar函数相于平移了。

维纳滤波

wiener filtering是相对于 inverse filtering 和smooth filtering 的一个折中,目标函数 \([\hat s- s]^2\) 最小,最后得出信号的系数(相对于噪声的系数),也就是要知道信号和噪声的方差。但是实际中这个怎样给出?但是并不是wiener filtering 对所有的 退化图像和噪声都有用, 我想还是根据不同的模型,设计不同的方法,学会建模,并且利用数学方程求解。无非就是就极值的问题。

傅里叶变换

傅里叶变换就是用一些正交基描述一个信号或者一个图像,

图像复原小结

问题:从噪声和退化函数中估计原始图像。

对于噪声,可以用低通滤波器,但是这样通常会造成图像的损失,也就是噪声和细节是一对矛盾,

维纳滤波主要解决噪声的问题,对于退化函数,通常是有一定的先验知识。

傅里叶变换应用:对于特定小点,可以通过傅里叶变换来比较。比如眼睛。纹理分类。

  1. Multi-dimensional image processing 里面有专门的各种滤波器
  2. noise 1.2.1 python噪声包
  3. scipy.signal.wiener scipy和numpy的参考文档
  4. Wiener Filtering matlab 程序
  5. Wiener Filtering推导
  6. 简单的同态滤波(matlab)
  7. 同态滤波(Homomorphic filtering)
  8. 雨滴去除 来这做一下这样的效果。
  9. Wiener Filtering 应该比较详细,看一下
  10. 穿墙雷达 超宽带波藉由墙壁反弹的方式?及高性能的处理器而找到障碍物。可判读出在极短时间内的变化产生轻微的动作

图像分割

点检测

点检测一个点的检测,还是一个块检测。点检测简单只要取一个阈值,就例如利用均值,或者别的得到距离值,然后利用这个距离值来进行判断,块检测就要求是一个范围,也首先是连通性的检测。

对于块的检测可以用形态学的方法,但是要就考虑块的大小的问题。可以把那些孤立点消除。

线检测

分为在直线,可以用霍夫变换,一般是先通过边界检测,然后再做这些,边界检测可以用一阶或者二阶来做。一阶来解决是不是在边界上,二阶解决在哪些的问题。这里可以用Canny算子。

  1. 计算图像的梯度并对其设置门限得到一幅二值图像。
  2. 在参数平面内确定再细分。
  3. 对像素高度集中的地方检验其累加器的单元的数目。
  4. 检验选择的单元中像素之间的关系。

从整体看,还可以其上颜色值,当做其他值,例如把切成列表下一个坐标。一个RGBA如果是整型的,可以就四个字节,我们四个字节可以存储各种有效的结构信息,把这个原始图像变成一个度量图像,我们可以把关于一个点的各种信息都压缩在另一幅图像中。 可以利用图形的各种知识来进行操作。

图像分割——分水岭算法

区域的生长,分割与合并 分水岭算法,通过通过判定一个区域的中值作为分水区域,对图像进行分割,算子有一阶算子,二阶算子。等等

边界检测可以用过零来检测边界。 边界的连接问题,例如知道了边缘检测的图形之后,我们在模型本身的特点,来确定模板的大小,其实也就是其领域的大小,然后确定周值与这个中心的点关系。然后在这个领域内再计算某些点的特性(例如梯度)与中心点的特性的关系。来决定。 例如大梯度的大小与方向都在一定的范围内就连接起来。当然T值也是自动产生的。

  1. OpenCV-Python教程(9、使用霍夫变换检测直线) 检测中线段,试一下

分割分为点线面,检测。检测变换后就变成了基本变成二值图像。只为只有这样容易区分背影与对象本身。就是背景就相当于集合的全集,而子集就相当于对象本身。就要用到一个门限,但是门限分二种,一种是局部动态计算,另外一种是全局的。对于结构简单的图像全局,对于复杂图形用局部分的比较好。

区域的分割,如何知道每个点是属于哪一个区域呢,还是对每一个点对于tag标记呢。 并且区域分割。利用四叉树或者二叉树对区域进行分割。这个就要自定义存储结构了。为什么现在自己经常纠结于存储结构呢。直接链表。就搞定了。

+`图像分割之(二)Graph Cut(图割) <http://blog.csdn.net/zouxy09/article/details/8532111>`_

他通过约束边界项和区域项来达到通过能力最小值约束:

\[E(L)=\alpha R(L)+B(L)\]

其中区域项通过约束概率最大来实现:

\[R_p(1)=-ln Pr(I_p|"obj")\]
\[R_p(0)=-ln Pr(I_p|"bkg")\]

边界项通过约束两个不相似的程度来实现:

\[B(L)=\sum_{{p,q}\in N}B_{<p,q>}\delta (l_p,l_q)\]

-+`grab-cut < 图像分割之(三)从Graph Cut到Grab Cut>`_

\[D (x) = \sum\limits_{i = 1}^K {{\pi _i}} {g_i}(x;\mu ,{\Sigma _i}),\sum\limits_{i = 1}^K {{\pi _i}} = 1 and 0 \le {\pi _i} \le 1\]

其中:

\[g(x;\mu ,{\rm{\backslash Sigma}}) = \frac{1}{{\sqrt {((} 2\pi {)^d}{\rm{\backslash Sigma}}|)}}exp[ - \frac{1}{2}{(x - \mu )^T}{\rm{\backslash Sigm}}{{\rm{a}}^{( - 1)}}(x - \mu )]\]

通过对初始选定的初始值来作为估计高斯混合模型中几个参数,得到这些参数后,对于这些点就可以进行判断是目标还是背景的概率了, 然后是差异性比较:

\[V(\alpha,z)=\gamma \sum_{(m,n)\in C}[a_n\neq a_m]exp-\beta||z_m-z_n||^2\]

graph cut 缺点:

算法是利用的物理学中粒子的原理,要对每一个像素点进行计算,计算比较耗时.

图像拼接

Lucas–Kanade 方法

图像拼接最重要的是在找到匹配对之后,求转换矩阵。L-K算法通过目标函数是 .. math:: {sumlimits_{{rm{patch}}} {left[ {Ileft( {Wleft( {X;p} right)} right) - Tleft( x right)} right]} ^2},通过对次公式进行泰勒展开, 并对信号进行求进行链式求导:

\[\frac{{\partial I}}{{\partial p}} = \frac{{\partial I}}{{\partial W}}\frac{{\partial W}}{{\partial p}}{\rm{ = }}\left\langle {\nabla I,\left[ {\frac{{\partial {W_x}}}{{\partial p}}\frac{{\partial {W_y}}}{{\partial p}}} \right]} \right\rangle\]

最后用最小二乘算法实现对p的估计。

See also

  1. 一种基于区域匹配的图像拼接算法
  2. 图像拼接算法及实现 拼接算法主要两类一类是分域匹配,另一个基于特征提取
  3. 图像拼接Image Mosaic 北京联高软件开发有限公司

图像处理

digraph structs {
rankdir=LR
node [shape=record];
struct1 [shape=record,label="samplinng | digitialized| Image_transform|enhancement| compression |restoration |segment|analysis| Binary \n image \n processing"];
}

图像处理流程

digraph structs {
rankdir=LR
node [shape=record];

struct1 [shape=record,label="Image_Search"];

struct2 [shape=record,label="Color|texture|shape"];
struct1->struct2
}

思考

现在明白了,学习金融,利率是根本,所有的变化都是基于这个的,

– Main.GangweiLi - 16 Jun 2012

平滑空间滤波器

特定滤波器(fspecial):选择里面的平均滤波器
一般多维滤波器(imfilter)作用:对感兴趣的物体得到一个粗略的描述而模糊小物体,较大物体变得像斑点而易于检测(为什么便于检测?)。

空间滤波器带来降噪的同时,也会产生图像模糊。

中值滤波器 (medfilt2):降噪。

从空间滤波其中看到,blur使得图像最模糊,然后contour和FIND_EDGES中间正,两边负,可以得到图像的轮廓, SMOOTH和SMOOTH_MORE平滑的越多图像越模糊。SHARPEN可以通过中间正,两边负的,得到图片增强。

图像逻辑运算(减法)

在matlab中图像是通过极坐标实现的,现在目前基于smile.jpg的结果是,从小到大变化图像半径和旋转角度, 半径 小->大,呈现图像的顺序嘴巴——》眼睛-》脸庞-》腮红。 这个出来的先后顺序是和这些边缘变化的模糊度有关,模糊度越高,出来的越慢。

旋转的作用那,现在看起来不是很明显。

空间滤波实现滤波 和目标分割 (基本原理:积分用来模糊图像,微分用来锐化图像)

空域滤波,点检测,线检测

一阶算子方法:和可以实现对于明显的图像实现找到边界, Sobel算子:内部利用局部平均方法,对噪声有一定的抑制作用。

Roberts算子: 检测边缘,对噪声敏感。(实际中使用什么检测特性还不清楚)

Prewitt算子: 采用局部平均,对噪声有一定的抑制作用。

二阶算子方法:能够更加清楚的找到边界,但是二阶算子对噪声比较敏感,因此首先的方法是首先进行平均降噪。

Laplace 算子: 具有各项同性微分算子,具有`旋转不变性 <http://www.narutoacm.com/archives/laplace-rotation-invariant/>`_ :

\[Laplace\left( f \right) = \frac{{{\partial ^2}f}}{{\partial {x^2}}} + \frac{{{\partial ^2}f}}{{\partial {y^2}}}\]

空域滤波,点检测,线检测。

频域滤波

DFT就像一个[[http://wenku.baidu.com/view/014797737fd5360cba1adbed.html[数学显微镜]] 频域滤波最终也要转换为空域处理。 #. 一个不错介绍

频域图能看出来什么,二维的频谱图与一维的有什么区别。从图像的频谱中能看到什么。变换前后的坐标与图有什么对应关系。进行卷积,进行子图识别,卷积最大的那个值,那就是图像重合的中心位置。时域的卷积等于频域的相乘。能否找到相关性最大的那个值。子图的搜索也是基于此相关与卷积的 . 这个时候先计算好两处图处DFT图,另外一个功能那就类似于积分图像的应用。

频域变化之后,的图像应该是三维的Sa函数。通过三维的高度来看比二维的颜色更加直观。并且可以取任意的细节利用带组,根据频域图的三维高度分度来进行提取。但是一个前提那就是你要知道图像中谁在哪一段频域上占着。想成一个三维的图,但是频域分布是圆周型,中心最低,越往边越高。就像水波纹一样。颜色越高说明系数越大。成分比较越大。并且频域与空域的点与点的距离是有对应的关系。

各种滤波器的设计,高通,低通,带通,完全可以利用图像来实现。频域的矩形滤波直接用阈值图像就可以搞定。渐变的频域图就像是曲线滤波了,例如巴特沃斯滤波器。等等。用在频域上试一试。那些数字滤器例如汉宁窗等等哪些能用到图像上。

一切都通了,频域的原点经过shift变在中间(M/2,N/2)。截止频率距离中间的距离,至于中间渐变颜色是根据滤波器来的,例如高斯。截止频率就是方差的大小。那期望如何来定呢。还是说只能是中心点的值。 现在要看看GIMP的渐变是如何实现,轴像与径向。是不是利用极坐标。然后按照函数值进赋值。

对于相关性与卷积,并且利用同样大小频域图来进行相乘。有一个周期截断的问题,那就需要扩展与截图了。

对于推导无非那些矩阵与求导的一些符号运算。积分,微分,卷积。矩阵的逆变换等等。这些基本知识。 #. numpy.fft.fft2 这个库里一维,二维,多维,同时还可以提到一个序列采用频率。同时还有hfft,因为如果是纯实信号的FFT就是`hermitian transorm <http://en.wikipedia.org/wiki/Hermitian_function>`_ ,也是酉变换,也是正交变换。经过酉变换之后就都会变成对角阵。 在离散信号下的采用,其实我们平时序列的产生就是一种采样,例如,np.arange, np.linspace,np.logspace等等,包括你对序列直接进行的运算。所有对于序列的操作都可以看做是一种采样与滤波。 #. 斯坦福大学公开课:傅里叶变换及其应用 #. 图像的傅立叶变换 傅里叶变换的形式。

  1. fftw3-dev GPL 库,并且支持 ARM NEON,作为以后移植方便。并且[[http://gfourier.sourceforge.net/ fftw 可以直接用到GIMP GFourier]]
  1. GIIMP PIL
  2. 同态滤波论文去试一试
  3. 图像渐变算法及实现

Thinking

拉普拉斯算子二阶导数增强细节,sobel算子边缘。

一阶微分与二阶微分 http://blog.csdn.net/kayv/article/details/2261540
1. 斜坡面上,一阶微分一直不为0 ;二阶微分只有终点和起点不为0 1. 一阶微分产生较粗的边缘,二阶微分则细得多 1. 一阶微分处理一般对灰度阶梯有较强的响应;二阶微分处理细节有较强的响应

对于小图像用mask不合适,因为会有模糊,那用什么方法合适那?mask尺寸和物体尺寸的关系。

怎样实现调用C代码?

C:快盘graphicpaper1673-2944(2012)03-0022-05.pdf 基于DFT压缩。

如果我在较暗的情况下整体加上一个数的话,图像图像整体变量了,但还是对比度不高,

python 中怎样plt.axes 怎样调节参数

雷达数据 到成像 过程

– Main.GegeZhang - 27 Jul 2013

雷达散射特性,前向散射,后向散射?什么联系,为什么在机场的时候前向比较明显,前向散射是比后向散射明显。

雷达RCS曲线 中可以看出来机头,机尾 和两边机翼都比较明显

*对一维到二维一直推广,其实是假定了,图像线性时不变系统。所以先算行或者例都是没有关系。这是由于线性系统自身性质决定的。

计算机视觉

计算机视觉

计算机视觉用于识别的框架

digraph flow {
     Input-> expression-> classifier->output;
}

对于相机的标定源于 摄影测量学 摄相机标定

application

ARToolKit ARToolKit 它是一个C/C++ 语言编写的库,通过它可以让我们很容易的编写 增强现实 应用程序。增强现实(AR)是将电脑虚拟的图像覆盖到真实世界画面中,这个技术在工业和理论研究方面都存在着极大的潜能。对于开发一个AR程序来说,最困难的部分在于实时的将虚拟图像覆盖到用户视口,并且和真实世界中的对象精确对齐。ARToolKit使用电脑图像技术计算摄像机和标记卡之间的相对位置,从而使程序员能够将他们的虚拟对象覆盖到标记卡上面。ARToolKit 提供的快速和准确的标记跟踪,能够让你快速的开发出许多更新更有趣的AR程序。  

在计算机视觉中,一个算法通常需要很多子程序,怎样才能把这些算法综合起来的?还是仿真中只需要一部分?

特征匹配

ris角点检测->KLTI匹配方法 适合于摄像机运动变化比较小

sift 。当摄像机做大位移和旋转,甚至镜头缩放情况下, 这类方法依然能稳定地抽取和匹配特征点

摄像机自标定

matlab 中的标定问题,我想可以多次迭代,减小误差,但是怎样把这些得到的参数和实际的进行对比,我想这是一个问题,要用opencv进一步的矫正吗?是不是可以设计让机器人躲避障碍物?

自标定 self-calibration

为了在不估计外参数的情况下,满足一个二次曲线:

\[J=x^TCx=0,\]

对此x进行求导,得到:

\(l=2Cx\), 则:math:x=0.5C^{-1}l ,带入J得到: \(l^T\Omega l=0\).
  1. 从CVPR2013看计算机视觉研究的三个趋势
  2. 计算机视觉(CV)前沿国际国内期刊与会议
  3. 斯坦福大学立体视觉
  4. 中科院计算机视觉视频
  5. 视觉增强技术

Thinking

多视角几何学 例如如何从三视图来恢复出原来图形,那么我就能够多个角度来照片,来恢复三维的图形。首先要知道多个图片中图一点。然后再来恢复。

Daisy 算子

参考文献:DAISY: An Efficient Dense Descriptor Applied to Wide-Baseline Stereo

这个算法利用多层高斯卷积核进行计算:

对于任给一方向o,该方向的方向图定义为:

\[G_o=(\frac{\partial I}{\partial o})^+\]

其中操作 \((.)^+\) 表示 \((a)^+=max(a,0)\) 这个约束是保证梯度方向不改变。

分别将这些不同方向图与一系列具有不同卷积核的高斯函数做卷积,生成不同的尺度图:

\[G_o^\Sigma=G_{Sigma}*(\frac{\partial I}{\partial o})\]

这些尺度图用于后续的特征向量的计算。

\[h_{Sigma}(l_j(u,v,R_i))=[G_1^{\Sigma}(l_j(u,v,R_i)),...,G_H^{\Sigma}(l_j(u,v,R_i))]\]
  1. Daisy 步骤
图像分析:Gabor滤波器解析与编程

为了研究局部范围内的频域特性,Gabor 提出短时傅里叶变换,也就是Gabor变换, 实质上是一种高斯窗的fourier 变换,显示不同频率不同方向的信息。

其频域响应为:

\[H\left( {u,v} \right) = 2\pi {\delta _x}{\delta _y}\left[ {{e^{ - 2{\pi ^2}\left[ {{{\left( {\mu - {\mu _0}} \right)}^2}\delta _x^2 + {{\left( {v - {v_0}} \right)}^2}\delta _y^2} \right]}}} \right]\]

从其频域形式可以看出,其等同于移动从原点高斯函数到 \((\mu_0,v_0)\) ,因此Gabor 滤波器可以看作从原点移动函数 \(\sqrt((\mu_0)^2+(v_0)^2)\) ,并且按照方向 \(tan^{-1}\frac{\mu_0}{v_0}\), 参数 \((\sigma_x,\sigma_y)\) 用来确定滤波器带宽。注意变量写的不太一致,具体参考:Gabor Filters

1985年Daugman扩展了Gabor滤波器的二维形式:

\[h\left( {x,y,{\theta _k},\lambda ,{\sigma _x},{\sigma _y}} \right) = \frac{1}{{2\pi {\sigma _x}{\sigma _y}}}\exp \left\{ { - \pi \left[ {{{\left( {\frac{{{x_{{\theta _k}}}}}{{{\sigma _x}}}} \right)}^2} + {{\left( {\frac{{{y_{{\theta _k}}}}}{{{\sigma _y}}}} \right)}^2}} \right]} \right\} \cdot \exp \left( {\frac{{2\pi i{x_{{\theta _k}}}}}{\lambda }} \right)\]

从上式中看出,Gabor是一个被复正弦函数调制的Gaussian函数,其中 \(\lambda\)\(\theta k\) 分别是正弦波的波长和方向, \(\theta_ k\) 的定义为:

\[{\theta _k} = \frac{\pi }{n}\left( {k - 1} \right), k = 1,2,....,n\]

k决定了滤波器方向的个数; \(\sigma_x\) and \(\sigma_y\) 为高斯包络在x方向和y方向的标准差。

\[\begin{split}\left\{ \begin{array}{l} {x_{{\theta _k}}} = + x\cos \left( {{\theta _k}} \right) + y\sin \left( {{\theta _k}} \right)\\ {y_{{\theta _k}}} = - x\cos \left( {{\theta _k}} \right) + y\sin \left( {{\theta _k}} \right) \end{array} \right.\end{split}\]

Lee提出利用gabor滤波器呈现图像。Gabor滤波器是椭圆高斯包络和复平面波的乘积,可以表示为:

\[\begin{split}\begin{array}{c} {\Psi _{s,d}}\left( {x,y} \right) = {\Psi _{\vec k}}\left( {\vec z} \right) = \frac{{||\vec k||}}{{{\delta ^2}}} \cdot \exp \left( { - \frac{{||\vec k|{|^ 2} \cdot ||\vec z|{|^2}}}{{2{\delta ^2}}}} \right)\\ \times \left[ {\exp i\vec k \cdot \vec z - \exp \left( { - \frac{{{\delta ^2}}}{2}} \right)} \right] \end{array}\end{split}\]

其中 \(\vec z=[x,y]\) 是空域变量, \(\vec k\) 是频域变量,用来确定Gabor 滤波器的尺度和方向, \(\vec k = {k_s}{e^{i{\phi _d}}}\).

详细参考:

  1. http://blog.csdn.net/linj_m/article/details/9897439
  1. 当前较新的机器学习理论是:流形学习(manifold learning),高斯过程(Gaussian processes).
  2. 高斯过程 主页 各种代码 资源
  3. kernel cookbook

Harris角点检测

Harris 角点检测算法:

首先利用能量公式来约束:

\[E_{x,y}=\sum_{\mu,v}w_{\mu,v}[I_{\mu+x,v+y}-I_{\mu,v}]^2\]

然后写成微分的形式:

\[E_{x,y}=\sum_{\mu,v}w_{\mu,v}[x\dot X+y\dot Y+O(x^2,y^2)]^2\]

这个公式写为矩阵形式:

\[E_{x,y}=(x,y)M(x,y)^T\]

其中 \(M = \left[ {\begin{array}{*{20}{c}} A&C\\ C&B \end{array}} \right]\)

然后根据理想的两个导向矢量应该满足:

\[\begin{split}`E=\eta_1 \dot (\alpha+\beta)^2+\eta_2 \dot (\alpha-\beta)^2\\ =(\alpha \dot \beta)-\eta(\alpha+\beta)^2 `\end{split}\]

因为

\[Tr(M)=\alpha+\beta=A+B\]
\[Det(M)=\alpha \dot \beta=A \dot B-C^2\]

最后推导出来:

\[E=Det(M)-k\dot Tr(M)\]

如果E比较小的话,说明这个是平坦区域,如果E<0,说明是边缘区域,如果E>0,则说明是一个角点区域。

缺点:

(1 )该算法不具有尺度不变性;(2 )该算法提取的角点是像素级的;(3 )该算法检测时间不是很令人满意。

  1. 局部图像特征描述概述

怎样看完文献之后,再进行一步的思路整理? 很多东西还没有进行仿真实验。

我想看完之后可以对这些算子进行整理,进行仿真实验

+`Harris-Laplace 原理 <http://en.wikipedia.org/wiki/Harris_affine_region_detector#Harris.E2.80.93Laplace_detector_.28initial_region_points.29>`_

多尺度Harris角点探测:

\[{m_l}\left( {\vec p;{\sigma _D},{\sigma _I}} \right) = \det \left( {\Gamma \left( {\vec p;{\sigma _D},{\sigma _I}} \right)} \right) - \kappa t{r^2}\left( {\Gamma \left( {\vec p;{\sigma _D},{\sigma _I}} \right)} \right)\]

对于特定的尺度 \(\sigma\),尺度归一化的Laplacian算子为:

\[{\Delta_N}L( {\vec p;\sigma}) = \sigma\Delta L({\vec p;\sigma}) = \sigma(L_{xx}( {\vec p;\sigma} ) + L_{yy}({\vec p;\sigma}))\]

\(L_{xx}\)\(L_{yy}\) 是x和y的二阶偏导数。

基于上述知识,Harris-Laplace执行如下两步: #. 取 \({m_l}\left( {\vec p;{\sigma _D},{\sigma _I}} \right)\) 的最大值点为感兴趣的点:

\[\vec p = \mathop {\arg \max }\limits_{\vec p} {m_l}\left( {\vec p;{\sigma _D},{\sigma _I}} \right),{\sigma _I} = {\gamma ^2}{\sigma _D}\]
  1. 根据 \({\Delta _N}L\left( {\vec p;\sigma } \right)\) 的局部极值选择特征尺度:
\[{\sigma _D} = \mathop {\arg \min }\limits_{{\sigma _D}} {\Delta _N}L\left( {\vec p;{\sigma _D}} \right)\]

这个文章的创新点就在特征尺度选择

扩展阅读:Harris affine region detector

Hessian矩阵主要是 二阶导数形成的矩阵,是针对[x,y], 一阶导数就是jacobi。 二阶导数满足正定性,说明信号都是递增的

– Main.GegeZhang - 30 Jul 2013

-+`希尔伯特转换 <http://zh.wikipedia.org/zh-cn/%E5%B8%8C%E7%88%BE%E4%BC%AF%E7%89%B9%E8%BD%89%E6%8F%9B>`_

Hilbert定义如下:

\[\hat s\left( t \right) = h\left( t \right) \otimes s\left( t \right) = \int\limits_{ - \infty }^\infty {s\left( \tau \right)h\left( {t - \tau } \right)d\tau } = \frac{1}{\pi }\int\limits_{ - \infty }^\infty {\frac{{{\mathop{\rm s}\nolimits} \left( t \right)}}{{t - \tau }}d\tau }\]

其中: .. math:

h\left( t \right) = \frac{1}{{\pi \tau }}

其频率响应由傅里叶变换给出:

\[H\left( \omega \right) = F\left( h \right)\left( \omega \right) = - i \cdot {\mathop{\rm sgn}} \left( \omega \right)\]

其中F是傅里叶变换,

\[\begin{split}{\mathop{\rm sgn}} \left( \omega \right) = \left\{ \begin{array}{l} 1, for \omega > 0\\ 0, for \omega = 0\\ - 1, for \omega < 0 \end{array} \right.\end{split}\]

因此Hilbert利用傅里叶变换,使得正频率成分偏移-90度,负频率偏移+90 度。

退火算法设计的本初:改进非凸问题中`爬山算法 <http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html>`_ 中的局部最小点。

方法:模拟自然中退火的方法,通过随机交换,求出任意两个点之间的传输距离。我想和便利算法有什么区别? 还有什么缺点?并用`内循环终止准则,或称Metropolis抽样稳定准则(Metropolis 抽 样准则) <http://www.google.com.hk/url?sa=t&rct=j&q=+Metropolis+%E6%8A%BD+%E6%A0%B7%E5%87%86%E5%88%99&source=web&cd=4&ved=0CD8QFjAD&url=http%3a%2f%2fjingpin%2eszu%2eedu%2ecn%2fyunchouxue%2fziliao%2fkejian%2f%25E7%25AC%25AC10%25E7%25AB%25A0-%25E6%2599%25BA%25E8%2583%25BD%25E4%25BC%2598%25E5%258C%2596%2eppt&ei=JyHEUYOcMY_ZkgWPq4GYAw&usg=AFQjCNG1kEOdSgfjKesiOxiDiT8E4u4ZBQ>`_ 蒙特卡洛实验来是系统达到平稳。

解决问题: 货郎担问题 ,每次只能选择一个地方,也就是交换一个地方。遍历算法在这个问题中式难以解决的。 matlab 代码

优缺点:

  1. 优点:计算过程简单,通用,鲁棒性强,适用于并行处理,可用于求解复杂的非线性优化问题。
  2. 缺点:运算量较大,下降速度和收敛稳定性的矛盾,下降速度过大,可能出现震荡。下降速度过慢,运算量大。

退火算法的改进 比如采用变化的熟练速度和刚开始收敛速度比较快,基本稳定后采用小收敛速度。

  • 思考:和图论中 最短路径算法, 剪枝算法 , 最小逆序数

K-means 算法=expection maximum (EM)期望最大

就是一个分类器的设计 #. 深入浅出K-Means算法 K means 中K的选择,初始值的选择,里面都有。

See also

  1. 基于生物进化的遗传算法概述 这里面有遗传算法在各领域的应用
  2. ` De Jong&#39;s function 1 <http://www.geatbx.com/docu/fcnindex-01.html>`_ 这个函数有多个局部最优点,一般用来作为算法局部最小点的例子
  3. 退火算法
  4. ` <http://blog.sciencenet.cn/blog-1225851-761882.html>`_
  5. 大数据时代的机器学习热点——国际机器学习大会ICML2013参会感想 看不太懂,有空看看
  6. 最大似然参数估计

Thinking

模式 描绘子的组合。

基于决策理论,基于神经网络,基于机器学习。

西安电子科技大学陈渤 我电子所的,主要做大数据分析和机器学习 和图像识别。

高新波 他做的方向比较新,可以看一下。

  1. Robust PCA 学习笔记

See also

  1. 学做的三D立体照片 好好学习一下
  2. 3D照片原理 12度之内,移动一下,模拟人眼来拍两张即可。
  3. blender,open 3D
  4. 3D打印机 是不是可以自己做一些东西来卖了,并且可以在淘宝上开店,来卖
  5. ` KinectFusion–3D重建的利器 <http://blog.csdn.net/rabbit729/article/details/8669234>`_ 看看这个
  6. make My Own Camrea
  7. blender 公开课
  8. ` 开源电影制作教程 <http://open.sina.com.cn/course/id&#95;262/>`_

思考

市场上那三种3D壁纸是如何制作的 3D照片是如何实现的。

– Main.GangweiLi - 19 Aug 2012

全息摄影 原来是利用光的激光的干涉形成的。

– Main.GangweiLi - 15 Sep 2012

相机定标技术可以从2D到3D的转换

– Main.GangweiLi - 18 Nov 2012

These should be consider now about blender open3D

– Main.GangweiLi - 23 Mar 2013

3D重建 看到一些照片的脚度是我们在拍照的时候无法取得的,例如俯看大山。那么如何解决通过平视。恢复得到图像本身信息,然后变成俯视,这个就像3D建模,但又不同。

– Main.GangweiLi - 12 Jul 2013

本节参考:RANSAC for Dummies.pdf

本质,从不确定中找到确定在不断的迭代的情况下。 最小二乘匹配所有的数据集,从RANSAC允许野点的存在。

也就是假设检验的过程,我一组数据,应该属于这个模型,我这组数据中最少有2是相对准确的,当误差大于t 我们当做野点处理, 最多迭代k次,并且找到d个属合这个模型的值,我们就为这个模型成立。 输入: #. data 观测数据 #. model 模型本身 #. n 适用于模型的最少数据个数 #. k 算法的迭代次数 #. t 用于决定数据是否适应于模型的阀值 #. d 判定模型是否适用于数据集的数据数目。

RANSAC包含两个步骤,首先是在Hypothesize随机假设一个数据集(MSSs),然后,计算参数,然后在test步骤排除这些不可靠的参数。

假设原来有N个数据集 \(D={d_1,...,d_N}\) , \(\theta({d_1,...,d_N})\) 是使用数据集:math:D={d_1,...,d_N}, 要估计的参数,其中,\(h\geq k\) ,其中k是基数线。因此模型M可以表示为:

\[M\left( \theta \right) = { {d \in {\Re^d}:{f_M}( {d;\theta }) = 0} }\]

其中 \(f_M\) 是平滑函数,它的零水平集包含所有满足模型M的参数 \(\theta\). 定义数据d和模型:math:M(theta) 之间的误差为:

\[e\left( {d,M\left( \theta \right)} \right) = \mathop {\min }\limits_{d\prime \in M\left( \theta \right)} dist\left( {d,d\prime} \right)\]

使用这个误差标准,一致集定义为:

\[S\left( \theta \right) = \left\{ {d \in D:e\left( {d,M\left( \theta \right)} \right) \le \delta } \right\}\]

其中误差函数写为:

\[e\left( {d,M\left( \theta \right)} \right){\rm{ = }}\mathop {\min }\limits_{d \in M\left( \theta \right)} \sqrt {\sum\limits_{i = 1}^n {{{\left( {{d_i} - {d_i}} \right)}^2}} } = \sqrt {\sum\limits_{i = 1}^n {{{\left( {{d_i} - d_i^*} \right)}^2}} }\]

其中 \(d^*\) 是d在 \(M(\theta)\) 上的投影。假设数据d是由于高斯噪声产生的:math:etasimaleph(0,sigma_{eta} I), 因此 \(\eta=d-d^{\star}\), 我们的目标是是要计算数值:math:delta,使得给定概率:math:P_inlier.

\[P[e(d,M(\theta))\leq=P_{inlier}]\]

根据概率密度函数,我们可以得到如下公式:

\[P[e(d,M(\theta))\leq\delta]=P[\sum_{i=1}^n \eta_i^2\leq\delta^2]=P[\sum_{i=1}^n (\frac{\eta_i}{\delta_{\eta}})^2\leq{\frac{\delta}{\sigma_{\eta}}}^2]\]

因为 \(\eta_i/\sigma_{\eta}\sim\aleph(0,1)\) ,随机 \(\sum_{i=1}^{n}(\frac{\eta_i}{\sigma_{\eta}})^2 服从:math:\)chi_n^2分布,因此:

\[\delta {\rm{ = }}{\sigma _\eta }\sqrt {F_{\chi _n^2}^{ - 1}\left( {{P_{inlier}}} \right)}\]

需要多少次重复??

假设q是从数据集D中采样一个准确的MSSs的概率,那么至少有一个错误的参数为1-q。如果构建h个不同的MSSs,那么被outlier污染的概率为 \((1-q)^h\) , 我们期望 \((1-q)^h\) 小于等于门限:math:varepsilon,也就是:math:(1-q)^hleq varepsilon,上述关系可以写作为:

\[h \ge \left\lceil {\frac{{\log \varepsilon }}{{\log \left( {1 - q} \right)}}} \right\rceil\]

计算MSSs并且计算q

如果数据集D中的所有数据都是没有噪声的,那么那么获得一个稳定的MSSs,只有inliers的概率为:

\[\begin{split}q = \frac{{\left( \begin{array}{l} {N_I}\\ k \end{array} \right)}}{{\left( \begin{array}{l} N\\ k \end{array} \right)}} = \frac{{{N_I}!\left( {N - k} \right)!}}{{N!\left( {{N_I} - k} \right)!}} =\prod_{i=0}^{k-1}(\frac{{{N_I} - i}}{{N - i}})\end{split}\]

其中 \(N_I\) 是inliners个数。如果 \(N,{N_I} \gg k\) 公式可写为:

\[q = \prod\limits_{i = 0}^{k - 1} {(\frac{{{N_I} - i}}{{N - i}})} \approx {\left( {\frac{{{N_I}}}{N}} \right)^k}\]

但是实际中选取的inliers 总是满足: \(\hat N_I\leq N_I\) ,因此有 \(q(\hat N_I)\leq q(N_I)\), 最后有:math:{left( {1 - qleft( {{N_I}} right)} right)^h} ge {left( {1 - qleft( {{{hat N}_I}} right)} right)^h},从而有重复次数更新为:

\[{{\hat T}_{iter}} = \left\lceil {\frac{{\log \varepsilon }}{{\log \left( {1 - q\left( {\hat N} \right)} \right)}}} \right\rceil\]

后期就是按照EM算法实现

  1. 首先对任意选取的h个参数,然后估计参数模型。

  2. 找到参数模型时,重新调整inlier和outlier选取的点,重新估计参数。

  3. 重复上述步骤,直达算法中种子点没有移动,也就是达到稳定状态。

    具体参考`K-means <Study.MachineLearningAndImageDetect>`_ 算法。

随机抽样一致性算法(RANSAC)

Ransac 从一组包含局外点的观测数据中,通过迭代的方式估计数学模型的参数,w表示从所有点中,每次选择局内点的概率,p表示迭代过程中随机选取出的点均为局内点的概率,因此P表征了算法产生有用结果的概率。

假设估计模型需要选定n个点, \(w^n\) 是所有n点均为局内点的概率; \(1-w^n\) 是n个点中至少有一个是局外点的概率,此时表示我们评估了一个不好的模型。\((1-w^n)^k\) 表示算法永远都不会选择到n个点均为局内点的概率,它和1-p相同,因此:

\[1-p=(1-w^n)^k\]

对上式两边取对数,得到:

\[k = \frac{{\log \left( {1 - p} \right)}}{{\log \left( {1 - {w^n}} \right)}}\]

值得注意的是,这个结果是假设n个点都是独立选择的。为了得到更可信的参数,标准偏差或者它的乘积被加到k上。k的标准偏差定义为:

\[SD\left( k \right) = \frac{{\sqrt {1 - {w^n}} }}{{{w^n}}}\]

+二级金字塔算法

sift是比较普遍的方法,但属于重量级武器。虽然可以通过bow、hash等方法加速,但要效果好在实现的时候还是需要有不少小trick的。至于局部的形变和局部匹配,可以在sift上做一些小改进,但效果一般。

ps:你的问题大多集中于同源图像的比较,应该属于image copy detection的范畴,与一般检索中的图像相似性度量不太一样,你可以搜搜相关的文献

DoG (Difference of Gaussian)角点检测

SIFT 算法:DOG尺度空间生产

用两幅图像的在不同参数下的高斯滤波结果相减,得到DOg图。

A = Process(Im, 0.3, 0.4, x);

B = Process(Im, 0.6, 0.7, x);

a = getExtrema(A, B, C, thresh);

为什么那因为唯一能产生尺度空间的核高斯核,它有一个变尺度的高斯函数:math:G(x,y,sigma) 与图像:math:I(x,y) 产生,即: \(L(x,y,\sigma)=G(x,y,\sigma)*I(x,y)\)

其中是二维高斯核函数,表示为: \(G(x,y,\sigma)=\frac{1}{2\pi\sigma^2}e^{-(x^2+y^2)/2\sigma^2}\)

SIFT 建议在可以通过LOG原则可以通过DOG来得到:

\(D(x,y,\sigma)=(G(x,y,k\sigma)-G(x,y,\sigma))*I(x,y)=L(x,y,k\sigma)-L(x,y,sigma)\)

其中k为相邻尺度空间倍数的常数。

为什么要用DOG来检测特征点?

证明只有LOG才具有真正的尺度无关性。

而Mikolajczyk发现,只有用:math:sigma^2 才能得到更加稳定的图像特征,

通过热传导方程也可以理解DoG和:math:sigma^2nabla^2 G 的近似性。

\[\partial G/\partial \sigma=\sigma^2\nabla^2 G\]

对上式进行有限差分运算得到:

\[\sigma\nabla^2 G=\partial G/\partial \sigma\approx (G(x,y,k\sigma)-G(x,y,\sigma))/(k\sigma-\sigma)\]

因此:

\[{\rm{DoG = G}}\left( {x,y,k\sigma } \right) \approx \frac{{G\left( {x,y,k\sigma } \right) - G\left( {x,y,\sigma } \right)}}{{k\sigma - \sigma }}\]
  1. SIFT算法详解及应用(课件) 算法基本明白,但是细节还不明白为什么要学分组内组间呢

利用Laplace算子的原来,用DOG 实现,并用Hessian矩阵实现特征点的探测

稀疏呈现,

constrain 取0范数 表述对一个都是一样的惩罚,这样就显得比较公平?? 对每一个个数。0 范数到底怎么计算?

+`图像处理特征不变算子系列之SUSAN算子 <http://blog.csdn.net/kezunhai/article/details/11269793>`_

SUSAN算子通过一个圆形模板在图像上移动获得,模板内的每一个像素与中心像素进行比较:

\[\begin{split}c\left( {\vec r,{{\vec r}_0}} \right) = \left\{ \begin{array}{l} 1 if|I\left( {\vec r} \right) - I\left( {{{\vec r}_0}} \right)| \le t\\ 0 if|I\left( {\vec r} \right) - I\left( {{{\vec r}_0}} \right)| > t \end{array} \right.\end{split}\]

其中:math:vec r_0 是中心像素,\(\vec r\) 是掩膜内其它像素,t是一个像素差异阈值。

对上式进行统计,统计方式如下:

\[n(\vec r_0)=\sum_{\vec r}c(\vec r,\vec r_0)\]

得到的n值就是USAN的大小。

得到USAN值之后,通过阀值就可以得到初步的边缘响应,公式如下:

\[\begin{split}R({{\vec r}_0}) = \left\{ \begin{array}{l} g - n\left( {{{\vec r}_0}} \right) if n\left( {{{\vec r}_0}} \right) < g\\ 0, {\rm{otherwise}} \end{array} \right.\end{split}\]

其中 \(g=3n_{max}/4\), USAN值越小,边缘的响应就越强,从而探测到边缘点。

Introduction

小波变换区别于傅里叶变换的主要原因就是 小波变换没有特定的basis,他是根据母小波和父小波(scale function)来逐步递归确定的,因此他比较适合于有突变的地方,其中wavelet function 提供了一个多尺度分析,我想和金字塔信号,就是提供了一个伸缩函数,可以灵活的想要的分辨率。
  1. 小波变换PPT 有限长均值为0的函数都为小波函数,能量集中。再看那个差值的分布,例均值,放在左与上,差值放在右与下,这样不就形成多分辨率了,只要从左上到右下逐步取值不就形了。可以直接计算出来当前图像的大小。这样的多尺度变换与MIPMAP 的存储关系。
  2. 小波变换 完美通俗解读 正线性的空间的基与向量的最大无关组,利用最大无关组来表示其他向量。系数的个数与最大无关组的个数,那么图像我们能不能每一行当做一个向量组,然后求出最大无关组。这样不是可以压缩数据了。一般对于图像的压缩都是采用分块的模式。 amsci 从这一篇文章中我们可以看从向量的无关组来延伸出来的,Haar矩阵。wavelet in wikipedia
如何利用矩阵的初等变换与求矩阵的逆。

小波在图像中应用

残差计算,子带编码,哈尔变换。 对于图像的压缩编码,应该有逐级变换解码的算法。每一点的值,应该是有固定的路径。而不必须每一次都把全部的运算解开。%RED%可以利用这种方法来产生一个算法性texture,再加分型的应用。 %ENDCOLOR%

Hilbert 和wavelet 变换的关系

– Main.GegeZhang - 16 Aug 2013

傅里叶变换中的基也应该是正交的

– Main.GegeZhang - 16 Aug 2013

尺度函数(父小波):对自己本身周期平移的函数两两正交,为什么

– Main.GegeZhang - 16 Aug 2013

稀疏矩阵 小波变换其实有点类似于稀疏矩阵。特别是适合于,一个主波在不同的段有不同的波形组成。

– Main.GangweiLi - 15 Sep 2013

哈尔变换 是基固定,只是用来求系数。因为只有加减运算速度很快。

– Main.GangweiLi - 15 Sep 2013

JPEG 1. DCT 计算 1. 量化 1. 变长编码 图像分成8x8的像素块来进行的。

– Main.GangweiLi - 15 Sep 2013

http://glearning.tju.edu.cn/course/view.php?id=677

– Main.GegeZhang - 23 Sep 2013

三维重建方法

流程与发展思路

阶段 一 三维点的重构

这个是基础,相标的标定,内外参数问题,以及多视图中同一点判断以及特征点提取都是为解决这个问题。

阶段 二 聚类 /建模

对于简单的模型就可以这些点进行建模了,计算几何,三角化等等方法点线面建模了。 对于大的复杂的物体来说,那先分块了,也就是聚类问题,对于二维的图像就是图像分割,而于三维点以及更加通用就是聚类算法。

-阶段 三 判别器

对于分好块的空间类来进行判别是属于物体,简单几何判断解决了这些问题,例如判别这块的特征点是头部信息呢。而不是脚呢。 这个需要运用深度学习的神经网络来进行模糊判断了。 等判别好之后,再根据子块进一步的进行细化。

当然阶段 二与三不断的进行反复迭代分形一样,例如先认出来头,然后再认出五官。

阶段 四 动作捕捉

走到这一段,就可以做动作的捕捉与分析了。


行为分析

能够实现动作捕捉,再进一步进行为的分析,例如利用人的走路习惯来判断一个人的行为。 [[摄像机模型]] ===================

[[基础矩阵]]

[[RANSAC]]

刚体变换和仿射变换:

刚体变换是放射变换的一种特殊情况。刚体变换就是保证长度和角度正交。比如在黄丽芬的变换中,就是一个刚体,如果旋转矩阵被一个任意奇异矩阵替换,就变成了仿射变换。因此刚体变换就是放射变换的一种特殊情况。其实仿射变换也是一种线性变换,目的就是保持源图像中的直线和圆保持不变,是一个旋转,收缩加平移的过程。在Opencv中有关于affine transform 的一些code。

齐次坐标主要是为了区分点和向量而设置的,并且方便进行反射变换。

投影变换,我觉得就是图像在现实的图像和实际的成像出来的比例吧。

理想的透视模型满足针孔摄像机模型。对三维空间的一个点(X,Y,Z),投影到二维投影平面的坐标为(x,y),上述投影过程可以表示为:

各种变换是坐标变换基础,坐标变换,也就是基变换。我们实际在做那就是找到各种变换转换关系,然后再进行反算求解,得到自己想要东东。 对于运动物体动态捕捉会比较难一点,因为并不一定是线性变换,反解可能就不容易。 变换过程不可逆时,也求解呢,一个方法那就是找到不动点,在不动点进行参数拟合,得到原来方程,然后插值预测,得到一个原值。 http://www.voidcn.com/blog/waeceo/article/p-5003833.html 转换,关键是明白世界坐标系,相机坐标系,像坐标系,底片坐标的关系。也就是内参与外参了。

  1. 用单张2D图像重构3D场景 我想未来的趋势结合红外和光学信息,光学镜头用来获取感光信息,雷达用来获得距离信息
  2. 3D重构总资讯 有空看下别人做的吧
  3. 仿射变换(Affine Transformation)
  4. 深入探索透视投影变换(转) 这个对于齐次变换和投影变换讲的比较清楚,看一下
  5. 如何根据相机的参数知道摄像机的内参数矩阵
  6. 立体视觉基础
  7. Computing a disparity map in OpenCV opencv计算视差
  8. how to find disparity of two stereo images in degree 两幅图像中找到视差
  9. 视差估计方法综述
  10. stereo网站
  11. 在OpenCV中用cvCalibrateCamera2进行相机标定(附程序)
  12. calibrate.py&#64;5549 标定opencv
  13. 深圳先进技术研究院
  14. ` 使用OpenGL对单幅照片进行三维重建 <http://blog.csdn.net/xeric&#95;w/article/details/5867254>`_
  15. Interactive 3D Graphics 交互三维图形 video
  16. 3D角色动画
  17. Alexei (Alyosha) Efros My research is in the area of computer vision and computer graphics, especially at the intersection of the two
  18. 计算机视觉、机器学习相关领域论文和源代码大集合–持续更新
  19. CV牛人
  20. Multi-View Stereo for Community Photo Collections 华盛顿大学三维重构
  21. Robot data set Data for development of accurate computer vision methods 计算机视觉数据集
  22. 脸部识别数据集
  23. 图像数据集 现在还没有仔细看
  24. 立体匹配算法介绍

图像处理领域如果能够和3D打印结合起来,我想会有很大作用的

– Main.GegeZhang - 02 Aug 2013

这个里面用了运动模型,但是我真的 不知道什么是3D重构?

– Main.GegeZhang - 21 Aug 2013

为什么有的图片无法打开。

– Main.GegeZhang - 02 Sep 2013

什么是图像下采样 downsamples ? 目前来看,下采样就是数据大小变小了

– Main.GegeZhang - 04 Sep 2013

标定就是了解摄像机参数,实现对未来图像预测

– Main.GegeZhang - 02 Dec 2013

直接全用2D照片来恢复3D物体 其中之一那就是image based modeling. C:快盘gameEnginemodelingpaper 现在已经很火了。看来现在要抓紧时间把计算机视觉给整理出来。

– Main.GegeZhang - 21 Apr 2014

SFM

  1. 图像获取
  2. 摄像机标定
  3. 特征点的提取
  4. 立体匹配
  5. 深度的确定
  6. 后处理

相机的标定,以及特片点提取计算量,同时还有立体匹配。 到底需要多少张照片。 照片的数据最后精度是什么关系。

大尺度的照片,特征点丰富,容易提取,但小尺度特征的定位精度高,表达描述简单。 匹配时可能会出现失误。

http://blog.csdn.net/linczone/article/details/46237197 Structure from Motion (SfM)算法测试—3D重建简介, 3D重建的精度很重要,扫描精度与照片的分辨率,拍摄距离,对焦的准确性,灯光系统很大关系。 运算的时间与照片数量的关系是n!/(n-m)! 的增长。 并且精度 1024*768 =83mm, 83/1024mm = 0.08mm.

http://ccwu.me/vsfm/#demo 现成的可视化操作

从一堆照片中重建三维信息,把二维变成三维。当然用来重建地图也不是错的。
Structure from Motion and 3D reconstruction on the easy in OpenCV 2.3+ &#91;w/ code ] 实现3D重构opencv

https://en.wikipedia.org/wiki/Structure_from_motion 从动态的2D序列中恢复3D的信息,就像人眼实时处理一样。 或者快速实现点与点之间的对应。除了那些相似度计算的SIFT/SURF等方法。

而距离,拓扑和方向是空间关系的三个组成部分。

视觉系统的三个层次

Marr理论,计算理论层次,表达与算法层次,硬件实现层次。

难点:

  1. 图像对景物的约束不充分,
  2. 多种因素在图像中相互混淆
  3. 理解自然景物要求大量知识

人脸识别

方向与思索

基本的正脸识别率已经很高了,但是需要是各种复杂环境下的人脸识别,例如阴影以及遮挡环境下的人脸识别。

人脸的识别受光照,位置变换,以及面部表情变化的影响。

对于光照可以用图形学的光照模型来进反解进行尝试。 这个需要从根据照片来判断光照模型的类型了。例如平行光与点光,高光等等。

对于阴影变换,是同样可以借鉴图形学的阴影模形。

表情变换同样的,图形学上也是相关的研究。

人脸识别处理的特点是 特征的抽取与表述。然后就是根据先验知识来进行抽取。

特征抽取与表述是在于难以用数学的方式去描述。能把你的问题能用数学描述出来,剩下那就是计算问题了。

现在问题,特征的抽取是处于瞎似的阶段。 例如对于 图像按照像素直接当做矩阵进行SVD分解等等得出来的纯粹的是数学特征。 虽然能解决一定的问题,但是为什么,以及优化的方向并不知道。

一个思路是那是一个图像的纹理特征是不是可以用SVD描述出来。纹理特征是会有规律的重复。同样 在数学上表现那些数值有规律的变化。但是二者是关联起来。

只有你能把这些数学特征与物理特征能够mapping起来,其实也建模的过程。才是具有知识意义的。 就牛二定律一样

\[F = ma\]

这样一个数学上多么平淡无奇的式子,一旦与物理量有了对应关系,就开始变不平凡了。 开始具有真实的物理意义。

拿SVD分解的特征值,来强加的解释图像,就像用牛二定理来说,F的正负与ma的正负是相关的。 这是一个多么正确的废话,从数学上讲 f=ma, 与a=bc一样就是一个简单的乘法。积的正负性与乘数的 正负性是有规律的。 但是这个放在物理意义有什么用呢。

对于判决,怎么已经丰富的模型的,deep learning 来多层的模拟人的思维过程。

+`OpenCV 学习笔记(四十六)——FAST特征点检测features2D <http://blog.csdn.net/yang_xian521/article/details/7411438>`_

\[\]

N = sumlimits_{xforall left( {circleleft( p right)} right)} {|I\left( x \right) - I\left( p \right)|} > {varepsilon _d}

其中I(x)为圆周上任意一点的灰度,I (p)为圆心的灰度,Ed为灰度值差得阈值,如果N大于一定的阀值,则认为p是一个特征点。

+`人脸识别主要算法 <http://blog.csdn.net/liulina603/article/details/7925170>`_

  1. 早期的人脸识别:基于几何特征的识别方法

主要是基于几何特征,这些部件的形状、大小和结构上的差异才使得人脸千差万别(我想这是基于人脸的识别感性认识阶段),根据人脸侧面轮廓描述出若干点,由这些显著的特征点导出一组用于识别的特征,比如距离、角度等。 但是实验结果表明这种识别结果不容乐观(我想还是没有充分地表现数据的高维信息,参考:马毅与来自高维度的恩赐 ),另外我想这种方法不适合非刚体的人脸,因为在人的喜怒哀乐中,这种测量通常就会改变。

  1. 局部特征分析方法(Local Face Analysis): 。。。。。。

#. 稳定阶段:特征点方法(Eigenface或PCA) 特征脸方法是在90年代初期有Turk提出的目前最流行的算法之一,也就是主分量分析。特征脸反映了隐含在人脸样本内部的信息和人脸结构信息。

  1. 人脸识别中的八大难题,何时能解
  2. 人脸识别算法的新突破
  3. 人脸表情识别综述
  4. Emotient 的表情识别技术的门槛是什么,有哪些应用场景?
  5. 人脸识别算法个人见解 有空看一下吧
  6. 阿凡达是怎样炼成的?
  7. 3D打印已经应用于整容
  8. 计算机类代码 包含计算机视觉
  9. 转载]&#91;CODE]UIUC同学Jia-Bin Huang收集的计算机视觉代码合集

稀疏的事情是否要考虑?

– Main.GegeZhang - 13 May 2014

现在很多的改进?这些算法怎样做改进?这样的表情识别我觉得作用都不是很大,因为必须把首先必须识别是谁?但是现在已经很高了。表情识别,是不是可以聚类?面部表情识别是不是很重要,直达波人是在悲哀还是开心,这个其实很重要,以人为本。3D面部识别,但是建立模型,王瑞岩做的是大型场景三维重建。这个在场景中有很重要的意义。不能多做事情,对于一些未知的事情。对于一些三维重建,面部识别,遮挡,我想根据对称信息,重构,识别,是不是要使用稀疏性?特征点重建,是不是使用更多的信息,稀疏的事情是否要考虑?

– Main.GegeZhang - 13 May 2014

马毅与来自高维度的恩赐 这里表明和原来提取的特征点没有关系,这是为什么那?

– Main.GegeZhang - 13 May 2014

多少张人脸是足够的,是不是有冗余,还是无法获得的时候,使用所有的脸。这样说明人脸建模的时候,是不是可以用少量的脸就可以了,这就是一个计算量和性能的折中。

– Main.GegeZhang - 14 May 2014

我想在建模过程中,也是找到其不变特征点,这一点在识别和3D重构中都是一样的。建立模型。

当根据一个人脸变化的时候,我们是不是可以抽取出很多信息出来,

从一个脸变化到另一个脸的时候,使用这样的数据库,就可以建立人各种各样的模型了,不过这样可能需要很多的label工作。

– Main.GegeZhang - 14 May 2014

利用侧面的 信息得到正脸的信息,然后再使用modeling 的方法得到整体的人脸。不过这就是人脸识别了,和3D重构是不是还是有差别?相似点在哪里?

– Main.GegeZhang - 14 May 2014

在人脸识别中有哪些特征是稳定的?在这种非刚体变换中,我想这个还是需要看看的。

– Main.GegeZhang - 15 May 2014

大规模图像分割

– Main.GegeZhang - 15 May 2014

图像显著度(saliency detection)研究现状调研 图像显著度点是不是查找自己感兴趣的点?

– Main.GegeZhang - 15 May 2014

Newidea: 用机器学习其中的参数,多数据建模,最终使用少量的数据就能够识别物体。 但是这个模型主要适用于没有表情变化,当存在表情变化时,是不是应该使用高斯模型?

– Main.GegeZhang - 16 May 2014

面部力学建模 非刚体建模

– Main.GegeZhang - 17 May 2014

K-SVD

这是k-svd,直接使用原图像。

K_SVD算法模型

原始k-SVD模型同时估计稀疏字典和稀疏系数,也就是包含两个未知矩阵:

\[\min\limits_{D,X}{||Y-DX||_F^2}\; \;\;subject \;to \forall i, x_i =e_k for some k\]

其中 :math: e_k 是单位阵,这个模型中,每个test图像中向量,只有一个1,其它全为0。但是在实际中,这个约束过分苛刻,为了放松约束,只要求任意图像都可以表示为矩阵D的线性表示,并约束 \(x_i\) 满足稀疏性,得到:

\[\min\limits_{D,X}{||Y-DX||_F^2}\; \;\;subject \;to \forall i, ||x_i||_0\leq T_0\]

估计X

这里因为同时有两个位置矩阵,D 和 X.因此无法得到最优解,这里采用近似追踪方法(approximation pursuit method)。首先假设任意初始矩阵D,估计X. 比如使用OMP算法。

更新dictionary D

因为D是一个矩阵,需要求的元素很多,所以这里采用每次只估计一个 :math: D_j 原子,其他 \(j\neq k\) 不变, 这种被称为extreme sparse represention。用梯度迭代更新的方法表示为:

\[D^{(n+1)}=D^{(n)}-\eta\sum_{i=1}^N(D^{(n)}x_i-y_i)x_i^T\]
\[\begin{split}\begin{array}{l} ||Y-DX||_F^2=||Y-\sum_{j=1}^Kd_jx_T^j||_F^2\\ =||(Y-\sum_{j\neq k}d_jx_T^j)-d_kx_T^k||_F^2\\ =||E_k-d_kx_T^k||_F^2\\ \end{array}\end{split}\]

抛弃零项,减小SVD估计D和W的计算量,得到:

\[\begin{split}\begin{array}{l} E_k^R=E_k\Omega,\\ x_R^k=x_T^k\Omega \end{array}\end{split}\]

核心代码实现:

noIt = 200
[rows,cols]=size(y);
 r=randperm(cols);
A=y(:,r(1:codebook_size));
A=A./repmat(sqrt(sum(A.^2,1)),rows,1);
D=A;
X=y;
K = 50;

for it = 1:noIt
    W=OMP(D,X,4.0/5*rows);
   % As finding the truly optimal X is impossible, we use an approximation pursuit method.
    R = X - D*W;
    %这里包含的应该是误差。  如果是真的,还是应该差不多,如果不是真的,下一次应该包含些。
    %%  这里采用分向量估计的方法.
    for k=1:K
        I = find(W(k,:));
        Ri = R(:,I) + D(:,k)*W(k,I);  % 构成一个虚的向量。
        [U,S,V] = svds(Ri,1,'L');
        %重新更新D和W.
        % U is normalized
        D(:,k) = U;
        W(k,I) = S*V';
        R(:,I) = Ri - D(:,k)*W(k,I);
    end
end

假设他对的,然后更新每一个原子D。因为D,W是相互依赖的,在后续更新中,要同时更新。

算法总结:

  1. 和k-means比较近似,首先假设随机矩阵D,估计x,然后由x又开始估计D。
  2. 首先估计稀疏表示,然后估计字典,在字典估计的时候,采用每次只估计一个Dj,其他不变,交替迭代的方法。

算法存在的可改进空间:

  1. 这里使用的原图像,如果y使用特征,应该能够减少计算量,能获得更好的结果。

算法缺点:

  1. 这个算法无法得到全局最优点,只能得到局部最优点。但是实际操作中,这个效果还不错。
  2. 这个KSVD用在哪那?我想可以用在识别上。把所有每一副图像都拉成向量,但是这里是基于图像任意排列的情况,只是一些抽象的结果,没有实质性意义,比如无法得到人脑识别到的轮廓信息。这些是算法本身的一些缺点,我想怎样也无法克服。

参考:

  1. http://en.wikipedia.org/wiki/K-SVD
  2. 浅谈K-SVD http://www.cnblogs.com/salan668/p/3555871.html
  3. K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation
\[(a + b)^2 = a^2 + b^2 (a + b)^3 = a^3 + b^3\]

级联算法

随机森林

下述方法都是基于Bootstraping方法的计算,得到有放回的抽取:

训练样本集

\[S = {(X_1,Y_1),(X_2,Y_2),...,(X_n,Y_n)}\]

得到第i轮的训练函数

\[H(X)=f(\sum_{i=1^TH_i(X)})\]

得到最终预测函数

首先对N个训练样本的学习得到一个弱分类器 将分错的样本和其他数据一起构成新的N个的训练样本,得到第二个弱分类器。 继续进行。。。 将所有的分类器融合为一个强分类器。

这个算法思想就是每一次分类都是弱分类器,然后通过多次分类,最终形成一个强分类器。

算法具体步骤是:

  1. 给定一定的训练集合,
\[(x_1,y_1),...,(x_m,y_m)$%,其中 %$x_i \in X, y_i\in Y=\{-1,1\}\]
  1. 首先初始化分类器:
\[D_1(i)=1/m\]
  1. 训练弱分类器使用D_t分布。
  2. 得到弱分布假设
\[h_t:X\rightarrow \{-1,1\},\]

得到误差:

\[\varepsilon=Pr_{i\sim D_t}[h_t(x_i)\neq y_i\]
  1. 选择: \(\;{\alpha _t}{\rm{ = }}\frac{1}{2}ln(\frac{{1 - {\varepsilon _t}}}{{{\varepsilon _t}}})\)
  2. 更新:
\[\begin{split}\begin{array}{c} {D_{t + 1}}\left( i \right) = \frac{{{D_t}\left( i \right)}}{{{Z_t}}} \times \left\{ \begin{array}{l} {e^{ - {a_t}}} {\rm{if}} {{\rm{h}}_t}\left( {{x_i}} \right){\rm{ = }}{y_i}\\ {e^{{a_t}}} {\rm{if}} {{\rm{h}}_t}\left( {{x_i}} \right) \ne {y_i} \end{array} \right.\\ = \frac{{{D_t}\left( i \right)\exp \left( { - \;{\alpha _t}{y_i}{h_t}\left( {{x_i}} \right)} \right)}}{{{Z_t}}} \end{array}\end{split}\]
  1. 输出最后的假设:

进一步的在人脸中的应用参考`Adaboost原理、算法以及应用 <http://www.zhizhihu.com/html/y2009/565.html>`_

Adaboost 算法

我想是利用信号和图像的先验信息首先对信号进行分类,这样吧dictionary 维度降下来,

– Main.GegeZhang - 15 Dec 2013

数学

拓扑学

\(R^m\) 的子集 \(X\) 的一种性质叫做拓扑性质,如果它等介于一个只利用:math:X 的开集的概念与集合论的一些标准既来下定义的性质。

主要研究存在性定理,例如大多数应用的共同特点出现在一个存在定理的证明中,一个存在定理是这样的定理,它断言,某一个大类问题中的每一个,有某种特殊性质的的一个解。 存在定理是拓扑学的基本结构。

主要定理的应用,关于多项式的零点,映射的不动点以及向量场的奇点等的存在定理。也要用于证明紧致性,连通性以及连续性。

拓扑学定义

\(R^m\) 的子集 \(X\) 的一种性质叫做拓扑性质,如果它等价于一个只利用 \(X\) 的开集的概念与集合论的一些标准概念(元素,子集,补集,并集,交集,有限集,无限集等等)来定义的性质,简短的说 \(R^m\) 的子集X 的拓扑性质就是可以表达X的开集族的性质的那一种性质。

\(R^m\) 的子集`X`与 \(R^n\) 的子集 Y 叫做拓扑等价(或者同胚),如果存在一个一对一的函数 \(f:X->Y\) 使得 f 连续并且 \(f^{-1}:Y-X\) 也连续,此外,这函数f叫做拓扑等价(或同胚)

所以是可以利用微分, 连续,有界 等等来研究拓扑结构。 函数的微分性质。

拓扑学是研究点集与函数的拓扑性质的学科。

连续性就是函数的一个拓扑性质。

紧致性与连通性都是拓扑性质。

别如连通集的补集不连通。

但是牵涉到`X` 或它的子集的诸如大小,形状,角度,长度,面积或者体积等特性,它就不可能是拓扑性质。

不动点理论 \(f(x)=x\) 就是求不动点的过程。

线段的每一个自映射至少有一个不动点,那么对于差分方程应该有不少的不动点了。

圆到直线的每一个映射都把某对对径点映成同一个象点。 就一个就是平分问题,

薄煎饼问题

如果 AB 是同一平面中两个有界区域,那么平面中存在一条直线,它把每个区域分成等面积的两半。 同样如果A是平面中有界区域,那未存在着两条垂直的直线,把A分成面积相等的四份。

一维是区间二维是 圆片 平面中一圆C与它的内部并集叫做一个圆片D,圆C叫做D的边界.

以及绕数,拓扑问题,现在看来都可以通过函数的性质来进行研究。

二维的主要定理

\(f:D->P\) 是从一圆片到平面的映射,C 是D 的边界圆,并设y 是平面中不在fC上的一点,如果 f|C 在点y处的围线数不为零,则 \(y\in{fD}\) 也就是存在一点 \(\exists x \in D, f(x) =y\)

例如树的年轮可以用闭区线同伦。 的函数定义。

混沌理论

chaos 数论 数学分析  
张量分析 ` 复变函数 <ComplexFunction>`_ 矩阵论  
近世代数   概率统计与随机过程  

盲源分离

实变函数 集合理论 离散数学  

– Main.GegeZhang - 08 Feb 2013

方均根误差 RMSe=sqrt(sum((Ti-Ai).^2)/n)    
方均跟误差函数:std(abs(x1-x0)) x1是求得数据,x0为原始数据  

root mean square sqrt(1/N sum((x1-x0)^2+(y1-y0)^2)) x1 和y1变动起来。 [Direct Position Determination of Multiple Radio Signals]

随机过程

泛函数分析

主要研究无限维空间(具有各种拓扑)的结构,它间之间的映射以及映射的微积分。

Thinking

数学分析,高等代数,概率论与数理统计,解析几何,常微分方程,实变函数论,复变函数,微分几何,近世代数,数论,我们学校还另外开了数学建模以及经济数学中那个叫啥来着......基本上就这些专业课了,LZ想跨过来的话个人以为数学分析和高等代数要系统的学了,特别是数学分析,没学好这个的话后继课程基本上学了也白搭,加油吧,毅力胜过一切!

– Main.GangweiLi - 18 Sep 2013

我学的是基础数学,数学分析高等代数解析几何是基础,抽象代数是高代的深入,实变函数又叫实分析是数学分析的深入,加上常微分方程和复变就可以了,拓扑和泛函是研究生的基础,努力学下就可以了~~~我感觉每门都很重要。都是整体,对了,还有微分几何,想学几何的话也是很重要的专业课。

– Main.GangweiLi - 18 Sep 2013

与其在低维上纠结的事情,放在高维的就变的简单了。最重要的那就是独立思考力。所以能够快速掌握利用计算机来进行推导。可能要真的去看看hackwell语言了。它能更高层面解决你的编程问题。

– Main.GangweiLi - 19 Sep 2013

梁伟说 图像搜索,视频图像处理现在比较火。

– Main.GegeZhang - 14 Oct 2013

行列式det的意义是什么?都有哪些用途?

– Main.GegeZhang - 16 Oct 2013

建模思路 Mathematical_optimization

  1. 建立目标方程
  2. 寻找约束条件
  3. 利用拉格朗日乘法与KKT来建立解方程式
  4. 通过求极值或者解方程来得目标条件
  5. 分析目标条件性质,再进一步优化计算,或者寻找简化计算

– Main.GangweiLi - 24 Feb 2014

代数

代数是研究数,数量,关系与结构的数学分析。 http://baike.baidu.com/view/556393.htm

数本身有数论,数量,主要就是集合论了。 关系,就是各种运算,加法乘法,再加序。 数,多数项式,矩阵。

集合+一定的运算属性 = 群,环,域,线性空间。

映射->变换->函数。

函数的定义域,值域。象。

运算律

结合律,交换律,分配律

群,环,域

对于一个集合,再加一个代数运算。

#. 只要非空集合,并且对一个运算 \(\circ\) ,有 \(e\) 元,就是1,即 \(e\circ=a\) 并且 \(a^{-1}=e\) 就称为 这个集合为这个运算的群。 G的代数运算满足交换率,则称为交换群。

而即1,又有倒数的就叫做群了。这些都是相对于代数运算来说的,例如满足交换律就是交换群。 对R对这两人个代数运算成为一环。 加法群也就是由0元。 (可以用来研究对称与周期性).

#. 对于两个代数去算,+,* 集合R为加法作成一个加群,R对乘法满足结合率,并且乘法对加法满足左右结合律。 环则是更上一层两个代数运算的系统就叫做环。

  1. 可除环就是域,也就是非零元素都要有逆元。也就是可以做除法的环就做域。

我们平时所说的定义域,值域,域就是指上面的定义的域。

  1. 空间 具有特定结构的集合。 http://en.wikipedia.org/wiki/Space_(mathematics)
    而常见的结构有 http://en.wikipedia.org/wiki/Mathematical_structure

#. 线性空间 例如只满足加法与数乘集合就叫线性空间。以及八条性质就就叫空间了。

See also

Thinking

数,多项式,矩阵的出现是为了刻画一些物理理和向何量,诸如长度,面积,空间中点的位置,平面的运动,几何变换。但是对于对称性,以及周期性的描就会发现群是最好的表达工具了。

– Main.GangweiLi - 03 Nov 2013

logistic map

  1. Logistic混沌映射 系统状态与初始值相关的,不同的初始值会导致无序
    Xn+1=Xn×μ×(1-Xn) μ∈[0,4] X∈[0,1]

Thinking

feedback),把输出当作输入,不断滚动。很容易想到,反馈的结果有若干种:发散的、收敛的、周期的等等。但是我们要问一下,一共有多少种可能的运动类型?是否存在既不收敛也不发散,也不周期循环的迭代过程? 回答是肯定的。这一点至关重要,但可惜的是人们最近才普遍认识到有这种运动类型。这说的就是有界非周期运动,它与混沌有关。

– Main.GangweiLi - 19 Sep 2013

*映射*有一维映射,二维映射, 有三维吗。

– Main.GangweiLi - 19 Sep 2013

– Main.GangweiLi - 19 Sep 2013

See also

  1. 离散数学 wiki定义

Thinking

*离散与连续的区别与联系*这是很微妙的。

– Main.GangweiLi - 17 Oct 2013

– Main.GangweiLi - 17 Oct 2013

数学分析选讲

第一讲: 微积分引入的原因是:运动和 无穷, 解决方法是极限。

在那一瞬间,临时的一个点,究竟是一个固定点,是变量点

自由落体运动的平均速度是多少?

在某一点的速度是多少?

%$frac{1}{2}gt^2=frac{s(4+h)-s(4)}{h}=frac{g(4+h)^2-g(4)^2}{h} =80$%

那么无穷多个数相加是什么? 他应该怎么计算?

高等数学

Introduction

连续,有界,收敛,单调性,极限等等可以表征函数特征或者曲线或者曲面的特征的。

可微性就是输入的变换与输出变换 的关系的一种度量的(可能是线性)。就像冲函数与阶跃函数可能不具备这些特点,也就不可微了。 其实也就是时序性,可加性的体现。也就是为什么积分符号在离散上累加和的原因。

digraph flow {
   rankdir=LR;
   limit -> diff -> integral;
   N-> Q->Real->Complex->Tense;
}

数列最早是自然数函数,最后扩展到实数。就变成函数。再从低维到高维。

数列的极限

对于任意给定的E>0,可以找到正整数N,使得当m>N时,则|f(n)-a| <E. 数列的极限与前有限项没有关系。 并且有邻域(a,e). 也就是 math:|a - x | < e. 这样就可以随意放大与缩小,利用不等式。 以零为极限的变量称为无穷小量。 #. 极限的唯一性。 #. 数列的有界性 #. 数列的保序性 #. 数列的夹逼定理 数列的四则运算与与正常线性系统是一样的。

数列,级数,幂级数

常数项级数也就是数列,最终的结果是一个瞬间的值,也就是一个点,而函数项级数则是曲线叠加,是具有时序的。通项,与前n项和。 幂级数的收敛半径。

思路把一个函数展开级数。展成幂级数,就是泰乐级数,系数就 \(1/n!f^(n)(x0)\)

tylor series 把一个复杂函数变成一个简单我多项式来逼近。 幂级数本身也是基函数族。就是为了近似计算,其中二项展开最为精典。

三角函数与复变函数的关系就是欧拉公式。

泰乐极数就是把任一函数变成,幂级数的多项式,傅里叶级数,利用正余弦的函数基的正交性并且计算的方法,就相当于矩阵求上三角阵。然后根据精度取舍了,直流量就是只有一个量相当于列了。

傅里叶级数是用的积分,卷积也是用积分。

直接利用傅里叶级数的系数那就是傅里变换。

奇偶性还是为了研究对称性。 是不是可以高维二项式生成一个级数。

并且利用wolfram很方便。提供各种中Laurent 以及Pusieux级数。 代数体函数,不通过解方程,只通过系数来探解解空间的性质。

无穷大量

就像无穷小量,有严格的定义。 并且无穷大与无穷小互为导数。 一些不定式分情况而定,对于stars定理,如果 lim dx/dy=a,则lim x/y=a. 要求 x,y严格单调递增。

收敛准则

  1. 收敛数列有界,有界数列不一定收敛。(有界,单调必有收敛)

通过极限我们就可以把定量与定性分析相互的转换。例如xn>0,则xn=1+xn/(1+xn)的它的极限值就是1/2+1/2*sqrt(5) . 不需要求初始值与具体值。 可以递归公式求出极限值。两边同时求极限,然后再解方程。 可以通过求x/y求极限,来知道x/y相对于极限的速度。例如都是无穷小量,如果=1就说明两者速度基本一致。 Fibonacci 的增长率的极限是0.618.黄金数。

曲线常度,积分折线常度。 例抛物线,任一条曲线的常度,可以积分点距。曲线的曲率,长度都是公式来计算的,曲率由二阶导与一阶来计算出来。长度由曲线积分来求。原来定积分只能求面积。本质是在哪里。 平曲曲线的弧长,与空间曲线弧长都是对闭区间示对于点距求积分。见P251微积分。正是有了极限微分与积分基于不同模型才有计算。现在微分与积分基本上是不分家的。有积必有微。 在不使用微积分的情况下,还是可以使用极限再初等函数的各种变换来计算。例如圆的面积就是利用数列极限的夹逼性,利用内接与外切正多边的求得圆面积。并且极限可以直接代入方程来计算。我们简称极限方程吧。 闭区间套定理,可以证明实数不列。 子列,任何子列与原数列的收敛性是一样的。 有界数列,必须收敛子列。 无界数列,必须无穷大子列。 cancky 收敛原理,收敛充分条件,就是基本数列。

Cancky 收敛 <=>闭区套定理 <=>确界存定理 <=> 单调有界数列收敛定理 <=>Bilenao-Weiertrass 定理      
函数极限   Euclid空间  
       

Thinking

实数的子集就是区间,开区间,闭区间。

– Main.GangweiLi - 25 Sep 2013

y=x+esin(y) kepler方程。

– Main.GangweiLi - 25 Sep 2013

运算与数系是相关的,由自然数对于加乘的封闭性,而对于整数而减法的封闭,到有理数对除法的封闭。对于开方的封闭加入无理数,从而扩展到实数。

– Main.GangweiLi - 26 Sep 2013

用haskell与python的sympy 来计算一下。

– Main.GangweiLi - 29 Sep 2013

递归公式可以Z变换求通项公式。

– Main.GangweiLi - 02 Oct 2013

线性代数与矩阵

关于线性与矩阵的本质 这里已经讲的很深入了 http://www.cnblogs.com/TenosDoIt/p/3214096.html 矩阵的本质就是变换,而变换的本质就是运动。空间与集合的区别。空间就是对某种运算封闭的集合。 空间的基,空间坐标与空间的坐标系。

相似矩阵,就是对同一变换的不同描述,当然有描述好,有的描述就不好。空间基就坐标就不相关。最小的秩肯定是方阵,但是 \(mxn\) 矩阵就必然有重复像。

这些都早都是由解线性方程组发展而来,研究方程系数排列而得来的。矩阵的加法与入都是方程组的变换相关的,而矩阵的乘法,是源于换元计算而来,相当于基转换。 并且将其推广到了多维空间,以至于无限维的空间。

其实求矩阵的秩就是求其最大向量无关组,也就是基的个数。对于图像的一阶导以及二阶导,是不是可以通过行列式来直接计算,而卷积计算可以相当于矩阵的分块计算。也就是池化并不改变矩阵的性质。 当做一个矩阵操作的话,所有计算应该都是可以可逆的。来来保证信息不损失呢。 特殊值与特征方程。

特征向量就是空间的基,而特殊值就是坐标值了。 如果已经有了基就是要求特征的方程。或者说已经有矩阵,求其特征值与特征向量了。

二次型其实与SVM类似,采用换元的方程实现,旋转为标准模型来计算。例如方程的ax2+bx+c=0 只有化成 (a-x)^2 =0 时,容易求解。 http://wenku.baidu.com/view/c6aa38fd770bf78a65295491.html

伽罗互运用群的思想彻底解决了用根式求解代数方程的可能性。由些代数转变成为研究代数运算结构的科学。

并且可以用来求极值,二次型的极植就是特征值中极值。 http://www.docin.com/p-180278042.html

韦达定理,

是定义的结构,至少要有一定的序。既然是有序就至少一个二元运算。

http://www.cchere.com/thread/3038887

行列式

行列式就是全排列求合。并且全排列的性质,因为每一行,每一列都必须出现每一个无素中,所以对于任意一行,列的操作都相当于是对于行列式所有项进行操作。同时我们还可以进行行列式任意两列相同,或者一行或者一列全为零,那么两个行列式值为零。 在python中可以使用`numpy.linalg <http://docs.scipy.org/doc/numpy/reference/routines.linalg.html>`_ 来进行常规的计算。 行列式就是一个函数,把n阶方阵,映射为一个标量,并且 在欧几何中,有着“体积”的概念。同时可以做为圆锥曲线的判别式。在看到行列式的时候,就要想着那个函数求和形式。这样就会一目录了解了,其实就是一次多项式看到特定的规律排列起来。

cross-product 就是定义按照行列式的定义来写的,只不过它是向量表示,物理意义是四边形面积,一个线性变换的行列式的值,就知道是两个两个变换前后面积比值。

inner-product表示表示的是投影,或者是向量相关性.

行列式与空间的定向性,线性变换,正为同向,负为反像。

规范化正交基的行列式=1.

\(aug_y=(a'*a)^(-1)*a'\) ; % 最小二乘,使残差最小 \(r_n=a'*(eye(10)-a*aug_y)\) ; % 正交 最小二乘就是直接投影到正交空间。

矩阵

一般来说,矩阵可以直接一元函数方程。如何解非线性的二元方程。二次型就是其中一种。通过左右乘同时就可以表示一个二次方程了。对于一元函数,一个矩阵表示一组方程。而二次型,二次型而是表示一个方程。 看到行列式就应该想到那个那个遍历求和式。有点类似于内积的概念。 行列式 这个里面讲了行列式的发展史,并且与各个知识的联系。

这个是矩阵 矩阵 把这两个研究明白就行了。

现在需要的是各个知识之间的联系。而各个具体知识与再用到的时候再去研究。这也许就是整体与局部的关系。我所喜欢的应该是这种整体的关系的研究。而非具体的计算。

对行矩阵 Ax=B,我们习惯于按行与按列求法不同。尤其是按列行式的行列式。最常见的x为一个列向量,而B 也是一个列向量,而A是一个矩阵。按照列看,A就是一个线性空间的基,而x就是基的坐标值了。而b 就是一个项向量。 例如是一组点。x也是一组点大坐标了。所以坐标一般都用列向量来表示。

矩阵的kronecker积有点类似于笛卡尔积。

可以用矩阵来生成线性空间。但是矩阵本身并不是代性空间。对于Ax=0,与Ax=B,其实就是一个解空间平移的过程。

对称阵

Bezout矩阵,是对称阵,并且还可以找到两对应的多项式来生成。

初等变换

左行右列。最简单的说明,那不断乘以单位阵。可以先对单位阵进行变换,然后在左乘或者右乘了。初等方阵就相当于自然数中质数,例如一个方阵都可以一组初等方阵乘积。这个就像自然数因式分解。

相似矩阵,经过有限次初等变换的能相等的矩阵那就是相似矩阵。相似型可以用来研究二次型。也就是二次函数。任意一个给定二次型都是一个对称阵。把一个二次型化成标准型,其标准形的系数就是对称阵的特征值。

矩阵乘法的理解

  1. 按照定义,最基本的理解,那就是每一个元素都是对应的左行右列,内积之后。 在这个理解里,我们要把左边的一行当做向量,而右边的一列当一个空间向量。
  2. 按边的Ax=B,x的每一列与A与相乘。最后得到结果一列。这个就是一组线性组合。
  3. 按A的每一列与X的每一行相乘。
  4. 左边一行与右边一行。 就相当于一层一层的叠加。是不是那个金字塔。 1.与复合函数 以及神经网络

方程本身就是函数的隐式写法。所以方程组也就是函数组。对于一个矩阵来说,行数代表因变量的个数,而列数代表了自变量的个数。矩阵相乘的意义,就是线性变例如A=B,B=C,然后直接求A=C的过程。简单一些就是复合函数。 例如例如两个矩阵F,G.分别代表的是f,g的系数行列。那么f(g)就是F*G,而g(f)而是G*F. 右乘就是求解变量的函数。而左乘那就是外面在加了一层。例如f(g(h))那就是如何求f呢,那就是F*G*H.

而神经网络其实也就是矩阵乘法的应用。

随机mapping 可以用降维,其实降维很简单,只需要生成一个m*n的矩阵,然后直接相同。就能实现降维。只是左乘或右乘。

乘法就是一种映射变换,没有固定意义,我们用随机也达到同样的目的。当然这种随机映射的能力也就是人类的类比能力,也就是 `人类为什么能从极少量的数据中学习。<http://synchuman.baijia.baidu.com/article/273458>`_

同时降与升都在这个A中。 上三角矩阵就是利用高斯消元法 ==========================================

从而A=LU-> PA=LU使其更加通用化了,而这个P叫做置换,那就是交换其行。这个P有一些特殊的性质,每一个维空间中,它们个数是有限的,每一维都有N!个。并且其其中任何一个P的转置=P的逆。并且形成一个群。

并且在这里学明白了空间与子空间。空间是由向量而来。 集合的笛卡尔积-> 向量->空间-> 线性空间->群。 对于线性空间,要求加法与数乘。并且八大基本运算规律。这些定义一定会有零空间,与一空间。也就是与0,1.这个两个值是必然存在的。 并且二维空间的一维子空间与一维空间是不一样的。因为其向量是二维的。 对于二维空间来说,它的子空间个数也是有限的,自然,0,以及所有过原点的直线。而不是我们想像的四个象限。 对于二维空间来说,它的子空间个数也是有限的,本身,0,所有过原点平面,以及直线。 每一个矩阵都可以构杨一个空间,如何构成呢,那就是其个列向量的线性组合。

一个向量空间中,只有其Ax=0 解构子空间。 而Ax=B不能子空间,没有没有零向量。但是这些解本身又具有什么性质呢。 矩阵的秩是主元的个数,那么,是由自由变量的的个数。例如haskell解数独。

-方程组的解空间

一组方程组解就组成一个线性空间,所以方程组的解与+,乘应该还是方程的解。 把方程组相当做函数,齐次方程组,就是没有常数量,非齐次那就是有常数项。

线性空间其实也是线性方程组的解空间。这个线性方程组就叫做变换。

%RED% Ax=b,可以看做是Ax=0的平移,所以Ax=b的解个数取决于Ax=0有多少解。 是不是看f(x)=Ax看做一个函数呢。这样原来函数变化,就有可能变成了空间的移动。随着x的变化而化。如果这样是不是可以有f(x)=Ax^n+bx^(x-1)....这样的方程呢。这样的方程有什么意义。如果这样对于描述物体运动,会更好,现在的基本变化方程已经都可以完全用4*4来实现了。

如何利用有限的线段拟合一个区域边界。反过来如果线性相关,而这个线段首尾相接就形成封闭的区线,其实也就是x1+x2+x3+x4..=0,也就是Ax=0,因为解空间的个数,另外一个那就是现在加法可以任意方向因为有交换率。但是我们如果能要求加法是单向的,不能再交换。我们是不能找到这样一个有序了数列拟合任何区域的边界。就像圆的内接多边形,现在我可以要求多边形长度有变化,有向线段,如果规定逆时针为正,这样不就是求Ax=0就好了。利用曲线的曲率来决定向量的长度。

f(x)=A*T^n*G. f(x)是最终运动方程。 A是物体本身,T就是那个仿射变换,n代表做几次变换,而g是那因变量的各种函数,你如地球转动的角度是时间函数。这样不就是一个整个的运动方程了。那么我们只要输入每一个输入状态。例如当前这个一个原点的位置,那么整个物体的位置不就知道了。

%ENDCOLOR%

线性空间维,基,坐标 有基才会坐标,坐标是一维的,有了基就可以事情简化为一维的运算。 秩是向量的最大无关组,秩也代表了可以线性方程组可以多个主元。也就相当于基的维数。而自由变量代表了解决空间的维数。

二阶导数组成一个海森矩阵。

Ax=b,我们看做一个函数,而例如f=Ax是函数的象公间,所以每b都是A的各列的线性组合。所以这个方程有解前提那是。b是A列空间一个列的线性组合。其线性组合另一个空间,并且这个空间维等+加上原空间的维数=整个空间维数。空间的最大维数是什么呢。与集合的势是什么关系。 零空间就是齐次方程组的解空间。null space 也正好是其正交补补集。也就是求f=0的值,

四个基本子空间,那就是左右零空间,与行空间与列空间。

矩阵空间,秩1矩阵和小世界图

秩1的矩阵是不是可以用压缩数据。如果发现一个矩阵秩为1,就可以直接使用,一行一列,就保存其全部信息。那么一幅的图像秩一般会是多大呢。 并且在numpy,有特殊的支持,那就是broadcast方式,np.ogrid正是为产生这各矩阵最简单的方法,例就是那乘法表的实现最简单。 对于矩阵直接使用reduce操作。在函数矩阵函数的时候这些就会非常的方便。 注意numpy中array 是针对向量组的,numpy的matrix才是针对矩阵的。 小世界图就是六度空间。 #. 原创–秩为1的矩阵相关性质

正交向量与子空间与子空间投影

Ax=0就得出它的零空间与Ax的空间正交的,并且两者维数是相加等空间维数,所以两个空间正交,也叫做正交补。Ax=b变成f=Ax的话,那就f值就一个由A的列生成向量空间。 投影的过程,也就是扔掉了Ax=0的那部分,而留下了Ax=B的那一部分。投影指的一个空间的向量在子空间的投影。如果在全空间的投影,那么投影矩阵就成了单位阵,并且误差投影矩阵就变成了0向量。只是一个子空间上投影。那么其误差就一定在子空间的正交空间中。并且误差投影+投影矩阵=单位阵。这也是必然的。 P=aaT/aTa 在解Ax=b,时无解时,取一个近视解,b取在A 上的投影,熏直量就是误差。误差最小是求投影。P=A(ATA)-1AT, 通过通过一般二维的投影提出了高维空间的投影问 并且P^的平方=P,

正投影指的投影方向与投影平面是垂直的,而斜投影而非垂直的,相当于把投影平面当做旋转,然后再投影。斜投影=错切+正投影,那如果投影面是区面怎么办,例如是一个球面呢。会有什么性质与效果呢。还有那就是`曲线曲面投影 <http://wenku.baidu.com/view/bf2fe54633687e21af45a964.html>`_ 这个就要用到矩阵函数了吧。 斜投影不仅要指定投影平面,还要指定投影方向。具体见快盘斜投影的论文。

最小二乘 算法

通过子空间投影误差矩阵,通过代性代数求正交可以快速得到,也可以通过微积分求偏导极值得到参数值是一样的过程。以前一直感觉最小二乘的神秘,现在无非二次多元多项式求偏导。求方程组的解而己。

矩阵求导

现在明白了矩阵求导基本的就是jacobian 行列式, 从这个角度理解,就比较容易理解求导是什么了。 一个 .. math:: m times 1$% 的向量对一个 .. math:: n times 1 的向量求导,雅克比矩阵就是%$ m times n, 我们实际上分析的时候都是基于jacobian行列式的。

<img src=”%ATTACHURLPATH%/leastSquare.JPG” alt=”leastSquare.JPG” width=‘563’ height=‘435’ />

Thinking

*SVD分解*左右特征值,西矩阵。西矩阵是复数=实数的正交阵。

– Main.GangweiLi - 15 Oct 2013

`奇异阵 <http://stackoverflow.com/questions/10326015/singular-matrix-issue-with-numpy>`_ 无逆,且一个行列式Det为0 并且为numpy.linalg心专门的线性代数的包,例如求rank,det等。注意求秩不直接使用matrix中那个就是返回的是维数。

– Main.GangweiLi - 16 Oct 2013

*初等方阵相当于质数*任何一个可逆方阵可都示有限个初等方阵的乘积。

– Main.GangweiLi - 17 Oct 2013

我感觉行列式和cross-product仍旧联系不起来?

– Main.GegeZhang - 20 Oct 2013

现在明白为什么要一个矩阵要乘以的转置 这个是为了解决了Ax=B的在无解的情况下,找到一个最优解。例如我们需要三个参数来建立一个方程,来求解一量。但是我们为了测量的精确,我们N组数据,这就形成了N*3的矩阵。然后,我们不知道哪一组方程是不好的,直接把它扔掉了。我们需要的基于这些值得到一个最优解。如何来得到,在方程的两边同乘以它的转置,至于是左乘还是右乘。就要看你是N*N,还是变成3*3了。并且这是一个更好的矩阵。并且这个转置矩阵秩与原来是一样的。所以取得一大组数据之后。第一步删除重复的,然后删除线性的相关。只留下线性无关的。一个向量组的秩与是等于它的维数的。[[1,2,3],[2,4,6]] 这个只是一维的。 那就有一个问题,矩阵的秩区分行与列吗。应该不区分吧?然后再乘以转置变成一个更好的矩阵。

– Main.GangweiLi - 21 Oct 2013

子空间 一个子空间的维数与正交的子空间,它们的维数之和必然要等于这个空间的维数。例一个一根直线是一维的,而法平面就是二维。这样在三维的空间。它们才是正交的。另外一个空间的子空间,是指的其一个划分呢,还是只是其低层的子空间。

– Main.GangweiLi - 21 Oct 2013

点线面 以及整个数域用集合论以空间来研究。它们属于哪一部分。

– Main.GangweiLi - 21 Oct 2013

相关=平行

– Main.GangweiLi - 21 Oct 2013

– Main.GangweiLi - 21 Oct 2013

用列代表结点,而行代表边,起点用-1,终点用1,无关用零。这样形成矩阵,那如何表达权重值呢,结点数-边数+环数=1

– Main.GangweiLi - 27 Oct 2013

矩阵已经看到17张了。

– Main.GangweiLi - 27 Oct 2013

sympy 中矩阵推导好像不太靠谱

– Main.GegeZhang - 04 Dec 2013

Jacobian 就是向量vector求导,有什么意思

– Main.GegeZhang - 04 Dec 2013

对于向量B=[rx,ry,rz]‘和反对称矩阵R= [0,-rz ry; rz,0,-rx;-ry,rx,0],

– Main.GegeZhang - 16 Dec 2013

  • Introduction

数相对于运算而来的,由人类最初的记数开始有自然数加法,随着数量的加大就有乘法,对于自然数是封闭的。往后由于分配问题引入除法进而引入小数,再从面积引入乘方与开方。当然另外一些那就是数列。数列就是自然数集的上函数。并且很多在实数集上性质是可以转到自然数集的。 %RED% 既然是函数,我们就要研究函数的一般性质在自然数上体现,直线方程的截距式就是同余式的形式。而同余理论本身也是周性的体现。这里只用到这种取模运算。这当然也可以是别的运算。 但是前提那就是多顶式要具有常数项,它的齐次解空间就会有周期性。例如y=sin(ax+b)所以这个周期就是a,而值就是b,而这个正是周期与向位的关系。 所以多项式是不是具有常数项这是一个很关键的性质。最简单那就是说明,过不过零点。如果不过零点,那我们利用自然数同余理论来解析了。 如果具有常数项就意味着 .. math:: F(0)ne 0不过零点,意味着必有常数项。 %ENDCOLOR% + 形数 与素数 ===================

形数与形是有连系的,素数是只能线来表示,形数是可以用形状表示,例如三角形数,五角形数,可以说素数是一维的。 形数与素数是相对,素数就只能是一条线了,而形数就可以形成二维形状,最简单的矩形。当然对于它们还可以再细分。 形数 下面可以有三角形数,就是自然数n项公式。并且都是二次的,1/2k(n**2-n)-n**2+2n. 这个是通项公式。

还有一个特别的玩法,那就是幻方与数独。那就是任意的数的平方都可以是一个幻方。并且幻和。1...n**2的和,可以得到幻各s=1/2(n^2+1)n #. ACM之幻方矩阵 #. 幻方构造(三) 通过利用方阵求逆相求数独。例如3x3. 但是遇到奇异阵的问题,其行列值为0,这样其就没有逆。 另外是不是可以通过haskell直接生成一个呢,例如一个九维的矩阵,就像写勾股数一样。

对于素数也是有各种各样的素数的

费马素数  
\[M_{p}=2^p-1 , 梅森素数 ,\]
\[F_{n}=2^{2^n}-1 , 厄拉多塞筛法 , 直接用已经素数去删除,这是目前一个比较完备素数表 , 孪生素数, 两个差等于2的一对素数,称为孪生素数 ,\]

现在还没有找到一个完整的`素数公式 <http://zh.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0%E5%85%AC%E5%BC%8F>`_ 如果像超越数找到这个公式呢。并且`个数与分布 <http://www.baike.com/wiki/%E7%B4%A0%E6%95%B0%E5%88%86%E5%B8%83>`_

%RED% 素数就像线性空间的基,因为所的整数可以表示成一系列素数成积再加同余,就构成了线性空间的基本要素那加法与数乘并且线性总和功能,其表现形式就是多项式。

\[N=p_1^{n1}p_2^{n2}p_3^{n3}\cdots , p1,p2,p3,... 都是素数,那n1,n2,n3之间什么关系,是不是从大到小的关系呢。更像有限级数,并且这个分解是具有唯一的。\]
  1. 有了这些计算因子的个数可以通过排列组合来得到。
  2. 最大公约数与最小公倍数,公约数与公倍数个数我们可以很容易的得到了。就像方程的整数解空间的问题解决了一半了。因为了有了这个素数基。
  3. 除数的个数都可以通过这个变成了排列组合问题。 $ 极大合数: 如果所有比它小的数的除数个数都比它的除数个数少。 $ 完全数: 它等于所有除数之和
\[P=2^{p-1}(2^p-1)$% 这个其实就是几何级数之和%$S=1+2+\cdots+2^{p-1} $ 亲合数: 一个数的除数之和等于另一个数,一百万之内只有42对。\]
进一步
  1. 能不把这个当做素数基用来替换原来直接二制存储,这样就变成变进制存储。相当于自然数小波变换。 这样加减乘除,以及其他的运算是不是更加简单了。实现了乘法与加法相互快速转换,并且除法与余数的计算也大大简化了。
  2. 额外用一个素数表来用于数据压缩。这个需要研究这个形式与数之间的表示关系了。

%ENDCOLOR% 最大公约数与最小公倍数 =================================

正是由于 .. math:: frac{p}{q} ,p,q互质把p,q按照从小最大顺序排列,则所有的有理数是可列的。正好也就说明两个有理数之间是有间隙的。并且任一公因数d一定整除最大公因数d0.并且缩写为gcd.互质数是那就是两者只有1这个公因数。互质数的乘积是一个平方数。 最大整除 .. math:: q=[frac{a}{b} ] , b=qa + r

+毕达哥拉斯问题

已经直角一边,去求另外两边。一个简单的 .. math:: z^2=x^2+y^2,这里不再是简单的方程求解,还有一些逻辑推理,例如要求x,y,z都是自然数,通过这些隐性的条件我们就可以得到一个解空间,并且这个解空间里的,解的个数可能是有限。所以以后遇到一个问题,不能简单的说有没有解,而应该要知道这个解空间要具有什么样的性质。

记数法

各种中进制的记数,最早都源于人类的生活,特别是十进制,是由于人的手指数,而20进制,而是手脚并用了,进制在往后那就是各种编码理论了,例如最常见那就是8421编码,2421编码。同时能否利用素数进行变成编码,因为中间只会缺少一些另外一些素数。因为素数是不能分解进行相互表示的,就像空间的基一样,它们是正交的。 -同余数 ==========

同余数从而形式看就是一个直线方程的截距式表示 .. math:: y=ax+b.同余数很在同一直线上。如果表示的a表示的进制,那么b就代表示这个数的个数,同余数具有相同的尾数。并且同余还有向等式一样的各种应用。并且同余数两边都是可以相以相互加减乘除的。 当我们需要解决整除的问题的时候,我们就需要来一下同余式知识。例如

$ 费马小定理:
\[\forall a \in Integral,p \in PrimeNum, a^p \equiv a(mod p) 例如对于毕达哥拉斯三角形的边长的乘积可被60整除,我们遇到求解整数解的时候,就可以通过同余理论知道这些解空间的特性。\]

例如我们中学所学弃九法,同余理论应用。例如模9或者模99的误差。当然日期的星期数,日历那些如何来排都是可以用同余理论来解决的。 例如日期的星期数就是模7余数。 其实同余理论就是周期性理论在自然数中体现。星期数的计算这里讲的非常的明白。

以及各种循环比赛的程序表,都是可以同余理论来解决的。

另一个应用那就是检测其是素数,还是合数。 See also ========

  1. flint 数论库
  2. 素数与音乐 这里讲为什么素数这么有意思,并且给出hackell的代码。
  3. 勾股定理,以及产生方法 hackell一行搞定
  4. 丟番圖方程 不定方程的整数解 不正式函数的隐式表达。不是可以计算这种方法计算出曲线的图形。利用笛卡尔基来列举就会非常简单。特别适合屏幕上点,因为其必然是一个整数值。
  5. 对代数学的发展起了重要作用的丢番
  6. 数学博览錧 可以看看数学的发展史
  7. 同余数
  8. 数论 总评的文章
  9. 交换环
  10. 素数与加密

Thinking

对于数论严究,最基本的就是那些基本数列 例如奇数列等于n顶的平方和,可以由求和公式给出。

– Main.GangweiLi - 23 Sep 2013

形数 与素数 数与形是有连系的,素数是只能线来表示,形数是可以用形状表示,例如三角形数,五角形数,可以说素数是一维的。

– Main.GangweiLi - 27 Sep 2013

不定方程就是函数的隐式表示,如何函数图形,利用列举法,例如图像的尺寸,然后逐点代入就行。利用笛卡尔积再加下过滤条件就可以得到需要的值了。利用haskell会超简单。

– Main.GangweiLi - 27 Sep 2013

看来素数还是很多性质,我们在上学的时候,只学习了其最无味的定义。所以应该让小孩把这些数论的东东都学习一样。并且可以利用计算机去证明。x^n+y^n=z^n 对于n>2是不成立的,这个是费马猜想,都是由丢番图的不定方程组的正整数解来组成的。

– Main.GangweiLi - 28 Sep 2013

zeta function,L-series 在sympy.mpmath中都有。在总结数论的时候都可以拿来直接使用。

– Main.GangweiLi - 03 Oct 2013

代数数与超越数 整系数代数方程的根。超越数正相反,所以为什么PI,E这些数在正常的方程中我们计算出不这些值来。但是什么时候我们才会用到这些值呢。

– Main.GangweiLi - 27 Oct 2013

– Main.GangweiLi - 31 Oct 2013

本原三角形,也就是三边没有公因数。

– Main.GangweiLi - 31 Oct 2013

  1. 单反摄影系统的数学和物理-DSLR造像经

#. opengl 投影变换,从3D到2D的转换,就是相机模型 把这两个放在一起,就会明白近端与远端的关系,其实就是一个物距与像距之间了。同时都是opengl都是右乘矩阵。 See also ========

思考

定义

冲过把长度与面积,体积的统一,就那是连乘性。每个点的各个坐标相减后相乘就得到这个值。

性质

四则运算

交,并,补,差还是可测。这些结论,对于有限次的四则运算都是成立的。

常见可测集

任何区间I都是可测集且同mI=|I|. 康托集的长度为零,但是又实由一一对应。

Thinking

传统的方法是积分,是从x分割,按照对称性也应该可以从y轴进行分割积分。实变函数主要也是从这个方向入手研究的。先把值域的范围找出来。然后分割。这就有一个问题,如果来计算函数的宽度的问题。例如y轴来看。那是不是可以当做反函数的积分。

– Main.GangweiLi - 04 Oct 2013

youku中有实变函数的许风的讲座。 可测函数相当于黎曼积分的连续与一致连续。

– Main.GangweiLi - 04 Oct 2013

康托集,最后剩下就是分割点,这些点组成的集合,就是康托点。并且小数来分示这种分割。

– Main.GangweiLi - 12 Oct 2013

点集间的距离 就像图论中,集合之间距离是由两集合之间距离最近两个点的距离。根据这个距离的大小。也会有一些性质。例如何两集相交,则距离为零。这也是以后计算零合是否相关的一个判定。同时现在有了个数,同时还可以集合自身常度的与大小的度量。出就是我们所说的面积,体积。

– Main.GangweiLi - 12 Oct 2013

集合之间的测量,例如一条线段是由点组成,那如何度量点的个数,因为是无限个点,就需要另一种度量。例如长度。例如集合自身的距离。就是所以内部点之间距离的之和。

– Main.GangweiLi - 12 Oct 2013

连续从元素的连续到集合的连续 例如康托集就是一个分段连续的典型。

– Main.GangweiLi - 12 Oct 2013

内测度与外测度类似于,左连续与右连续。不过集合,那就是从内部切分,另外一种是外在切分。内测度相当圆内最大内接圆,外测度那就是最小正切多边形。

– Main.GangweiLi - 12 Oct 2013

依测度收敛 就是指两个函数的差值,极限为零。随着其中n趋向于无穷大时。这个其实就是不正是无穷极数的用法吗。

– Main.GangweiLi - 13 Oct 2013

依测度收敛与处处收敛函数的关系。

– Main.GangweiLi - 13 Oct 2013

下积分=上积分的时候,就是可以有积分。

– Main.GangweiLi - 13 Oct 2013

lebeg积分就是分段积,只要是有限的,就有有限加加性。那么无穷极数的积分。会是怎么样呢。

– Main.GangweiLi - 13 Oct 2013

有界可测就是可积的。

– Main.GangweiLi - 13 Oct 2013

无界函数的积分是当做有界函数求极限来得到的。

– Main.GangweiLi - 13 Oct 2013

笛卡尔乘积的截面

– Main.GangweiLi - 13 Oct 2013

  1. 统计学科普

独立和相关什么关系?什么原因?

– Main.GegeZhang - 22 Oct 2013

Thinking

对于场论,例如各个点的方程如何示。光在每一个点上切线,法线,光强,以及颜色,以加重力,以及质量。如何同时这些东西同时放在一个方程里来表示呢。就是张量。张量就相当于编程里的结构体,类的。把一个类直接当做变量。进行运算。当然以后并行计算起来后,可能就会这样的计算模型,与对应的计算机语言。

张量是就是多维矩阵,他一般也是通过HOSVD来分解的,分解后包括特征向量和特征值,特征向量满足相互正交,特征值也满足相互正交, 当特征值想superdiag 时,Tucker分解可以表示为CP分解或平行因子。

但是张量的1-rank还理解不太清楚。

– Main.GangweiLi - 30 Sep 2013

张量分解,特征向量的个数是维数相 关的。简化矩阵来计算的。

– Main.GangweiLi - 15 Oct 2013

张量特征值,不再像矩阵的对角阵。

– Main.GangweiLi - 15 Oct 2013

平行因子是张量的一种特殊形式。

– Main.GangweiLi - 15 Oct 2013

张量的秩,是可以多种。张量本身秩,分解的秩。

– Main.GangweiLi - 15 Oct 2013

n 模式积 有什么作用?

– Main.GegeZhang - 15 Oct 2013

任何东西都可以通过张量来表示,零阶张量,重量,温度,质量密度,一阶张量,力,速度,二阶张量以上我就不知道是什么了。 张量就是求和? 正交的时候就可以简写

– Main.GegeZhang - 17 Oct 2013

高维斜投影方法,是不是有做的空间?

– Main.GegeZhang - 04 Nov 2013

斜投影中是不是有更好的方法?

– Main.GegeZhang - 04 Nov 2013

张量的产生,是为进一步对坐标空间的大一统,以前的坐标都是相对坐标系的值,而用张量可以把参考系也包含进去,就相当于绝对的值。 在编程上相当于一个对象,多种形式。就像numpy中array一样,你可以不断的reshape,但是只读取方式的变化,而数据本身是没有变化的。 其实在实现上也很简单,就相当于一个数据结构对象化,多添加一些get/set.这样来隔离对象的不同。

https://www.zhihu.com/question/20695804, 在编程不断的抽象与隔离来实现大一统,而在数学上也是同样的道理。同时用张量还能表达复杂的数据结构例如结构嵌套。

  1. tensor decomposition optimization

统计推倒

PMF: 离散概率密度函数 CDF: 离散概率密度函数的积分形式 PDF: 连续概率密度函数

Normal inverse Wishart distribution

它是是多变量正态分布的共轭先验。

假定:

\[\mu|\mu_0,\lambda ,\Sigma \sim N(\mu|\mu_0,\frac{1}{\lambda}\Sigma)\]

假设存在一个多变量正态分布,期望为 \(\mu_0\), 方差为 \(\frac{1}{\lambda}\Sigma\) , 其中

\[\Sigma|\Phi,v\sim N(\Sigma|\Phi, v)\]

服从inverse Wishart distribution,那么 \((\mu,\Sigma)\) 的联合概率密度函数服从:

\[(\mu,\Sigma)\sim NIW(\mu_0,\lambda,\Phi,v)\]

这里 \(\Phi \in R^{D\times D}\) 是一个逆尺度矩阵。

Gamma分布

Gamma 分布在概率统计中频繁现身,众多的统计分布,包括常见的统计学三大分布(t分布, \(\chi^2\), F分布)、Beta分布、Dirichlet分布的密度公式中都有Gamma的身影,当然最直接的概率分布是直接由Gamma函数变换得到的Gamma分布。对Gamma 函数的定义做一个变形,就得到如下式子:

\[\int_0^\infty \frac{x^{\alpha-1}e^{-x}}{\Gamma(\alpha)}dx =1\]

取积分中的函数作为概率密度,就得到形式简单的Gamma分布的概率密度.

\[Gamma(x|\alpha)=\frac{x^{\alpha-1}e^{-x}}{\Gamma(\alpha)}\]

\(x= \beta t\) 代入,得到:

\[Gamma(t|\alpha,\beta)=\frac{\beta^\alpha t^{(\alpha-1)} e^{(-\beta t)} }{\Gamma(\alpha)}\]

其中 \(\alpha\) 称为 shape parameter, 主要决定了分布曲线的形状, 而 \(\beta\) 称为 rate parameter 或者 inverse scale parameter ( \(\frac{1}{\beta}\) 称为 scale parameter), 主要决定曲线有多陡。

Gamma 分布的迷人之处

Gamma 分布与Poisson 分布、 Poisson 过程发生这密切的关系。参数为 \(\lambda\) 的Poisson分布概率可以表示为:

\[Poisson(X=k|\lambda) = \frac{\lambda^ke^{-\lambda}}{k!}\]

在Gamma分布的密度中取 \(\alpha = k+1\) 得到:

\[Gamma(x|\alpha= k+1)=\frac{x^ke^{-x}}{\Gamma(k+1)} = \frac{x^ke^{-x}}{k!}\]

t分布

t分布是从正态分布而来的,但是在实际工作中, \(\sigma\) 往往是未知的,常用s作为 \(\sigma\) 的估计值,为了与u变换做区别,称为t变换,称为统计t值的分布称为t分布。

从均值为L,方差为 \(R^2\) 的正态总体中抽取容量为n的一个样本,其样本平均数 \(\bar x\) 服从均值为L、方差为 \(R^2/n\) 的正态分布,因此:

\[\frac{\bar x -\mu}{s/\sqrt{n}} \sim N(0,1)\]

但是总体方差 \(R^2/n\) 是未知的,只能使用 \(s^2/n\): 代替,如果n很大, \(s^2/n\): 就是 \(s^2/n\): 的一个较好的估计量, \(\frac{\bar x -\mu}{s/\sqrt{n}}\) 仍然是一个标准的正态分布;

如果n较小, \(s^2/n\)\(s^2/n\) 的差异较大,因此统计量 \(\frac{\bar x -\mu}{s/\sqrt{n}}\) 就不再是一个标准正态分布,而是服从t分布。

t分布式检验一个样本平均数与一个已知的总体平均数的差异是否明显。t分布检验统计量为:

\[t\ frac{\bar X \mu}{\frac{\sigma}{\sqrt{n1}}}\]

See also

  1. 随​机​过​程​-​简​版 用打电话把随机过程给讲明白了
  2. 随​机​过​程 定义讲的不错

Thinking

随机从何而来因果论 如果是随机就是否定因果论。其实二者是统一的,随机就是还没有发现的因果关系。为什么宙宇飞船都精确的控制,而一场球赛却不能知道结果呢,这个过程有什么难度,区别就在于飞船的每一个动作都可以精确的控制,而足球做不到精确的控制。

人们做错了事情的时候,都会找到原因,而不会归因于随机吧。 人能够走多远,取决于你明天要做什么,如果已经知道你明天要做什么,就会知道明天能走多远。首先要知道你明天要干做什么。然后才能决定明天能够走多远。

先验概率与后验概率区别在哪里,就在于未知因素减少。如果未知因素没有改变,就会存在先验与后验的问题。这也就解决了为什么大部分人炒股会赔的原因。那就是随机论来说的,那些专家更容易赚呢,为什么庄家赚的最多,源于他的未知因素最少。当然庄家也会有未知因素,例如大环境等等,所以他们也可能会赔。如果想赚钱就要解决这些问题。解决这些问题你就胜券在握了。

就像金属制作一样,现在我们掌握原理就是一个必然的东东,而在古代不知道的情况下那就只能自然条件来得到了。 所以遇到一个事情,成功胜算,就在于对于未知因素的多与少。如果不能知道,就要能快速反应。

自相关与协方差为什么是卷积 卷积本质就是循环遍历,例如每组元素之间的关系影响是怎么的,其本质就一个简单的干法每两个元素之间做乘加运算。然后这个值来判断两组数据之间的相关性。加乘其实就是线性运算。如果这两个运算给换掉呢,例如用指数加乘计算的结果会是怎么样的。所谓的分类两组数据之间的相关性。其实也就是相关系数的计算方法的问题。用线性运算的卷积。如果采用非线性卷积呢。

卷积的本质就是要做穷举的加乘运算。

伯努利大数定律是契比谢夫不等式的简单推论。契比谢夫不等式是可以用来预测当期望与方差知道的情况下

等式与不等式之间 转换用极限以及KTT条件

伯努利在结束<推测术>时就其结果的意义 作了如下的表述:如果我们能把一切事件永恒地观察下去,则我们终将发现,世间的一切事物都受到因果律的支配,而我们注定会在种种极其纷纭杂乱的事象中认识到某种必然。

伯努利在趋近于极限的情况下,也就是求极限的时候就是正态了。二项分布的期望与方差,并且与次数之间的关系是什么。 正态分布就是方差的分布图,只是做一个转换而己其本质就在 .. math:: f(x)=(x-mu)^2/sigma^2 二项分布期望以及方差以及变化情况,以及期望与方差的比值是怎么样的, 各种分布在解决什么问题,那就是概率与统计之间的关系。所谓的各种分布就是为解决统计与概率之间关系。正态分布其本质就是方差分布的变形而己。

用频率含估计概率的精度 ,大致上是与试验次数N的平方根成比例的。这个要用到极限以及收敛速度的问题。就像用无穷极数要保证计算的精度的问题一样,当然极数越短计算越简单。但是要根据误差取得这个值。见 P43 快盘/math/陈希孺-数理统计学简史.pdf 这个也就解决确定性不可知因数控制关系了。对于非常复杂的计算,能否用无穷极数来简化计算,但是又需要多少极,来保证达到要求的精度。也就是PCA算法,到底留多少主分量呢。

误差分析与收敛速度。 这个也就是为什么极限经常要那个不等式无穷小来得到在N的意义了。

阶乘的级数计算 会用到 .. math:: pi 斯特靈公式

  • 最小二乘*
\[targetFunction=\Sigma(obversation- thoeryValue)^2$% 另一个那就是解线矛盾方程。但是最小二乘稳定性不好,换成一个通用写法\]
\[M(\theta)=\sum_{i=1}^{n} \rho(x_{i}-\theta)而%$\rho可以根据自己的需要去换掉,二次就是最小二乘,也可以是一次或者直接最小值。\]

先验分布+样本信息=后验分布

大数定理

大数定理描述当实验次数很大时所呈现的概率性质的定律。当试验次数无限大时,频率趋近概率。

大数定律有若干表现形式,这里仅介绍高等数学概率论要求的常用的三个重要定律:

切比雪夫大数定理

\(x_1, x_2,...,x_N\) 是一列两个量不相关的随机变量,他们的期望和方差为 \(E(x_k)\)\(D(x_k)\). 若存在常数C使得:D(x_k)leq C(k=1,2,...,N)

对于任意小的整数 \(\varepsilon\), 满足:

\[lim_{n\rightarrow \inf}P(||\frac{1}{N}\sum_{k=1}^N x_k -\frac{1}{N}\sum_{k=1}^N E(x_k)||<\varepsilon)=1\]

该公式表明,随着样本容量n的增加,样本平均数接近于总体平均数,从而为统计推断中依旧样本平均数估计总体平均数提供了理论依据。

中心极限定理

假设随机变量 :\(x_1, x_2,...,x_N\) 相互独立,具有相同的分布,\(E(X_k)=\mu, D(x_k)=\sigma^2 >0\), 记:

\[Y_n = \frac{\sum_{k-1}^N-n\mu}{\sqrt{n\sigma^2}}=\frac{\bar X-\mu}{\sigma/\sqrt{n}}\]

那么从

优化理论

梯度下降法原理:梯度方向是沿着曲线上升变化最快的,因此对于最小化问题,使用负梯度方向则能够找到最优点。怎样保证这一步和下一步的梯度是正交的。但是具体怎样推倒:

首先函数式利用泰勒展开式,

我们对于最小值问题,n维空间的一个点移动到另一点之后,目标函数的改变情况,因此写出代表最终的目标函数的数学表达式:

\[f(x_k+ad) = f(x_k)+\alpha g_k^Td + O(\alpha)\]

其中 \(x_k\) 代表第k个点的自变量(一个向量)。d是一个单位向量,即|d|=1. \(\alpha\) 是步长, \(g_k^T\) 表示目标函数在 \(x_k\) 这一点的梯度。

在上式中要使得(1)式样取得最小,应使 \(g_k^T d\) 取得最小,因此只有也就是d取 \(-g_k\) 时,下降速度最快,这就是最速下降法的由来。

http://www.codelast.com/?p=2573

根据泰勒公式,在 \(x_0\) 处一阶展开,得到:

\[f(x)=f(x_0)+(x-x_0)f^{\prime} (x_0)\]

求解方程f(x)=0,即 \(f(x_0)+(x-x_0)*f^{\prime}(x_0)=0\),求解得到:

\[x =x_1=x_0-f(x_0)/f\prime(x_0)\]

Note

从这个看出,后一个位置的x可以由前一个位置的x_0迭代而产生,于是迭代的想法就自然了。

进而可以推导出:

\[x(n+1)=x(n)-f(x(n))/{f^\prime (x(n))}\]

(这里的和最终的梯度下降法怎样推倒?) 通过这个式子,得到这个式子在 \((x\star)=0\) 的时候收敛,整个过程如下:

alternate text

牛顿法:

\[\theta_{i + 1}} = \theta_i - \alpha {J_i}/\nabla{J_i}\]

相比梯度下降法速度更快。 然后又将了GLM,说明最小二乘和 logistic 回归都是GLM 指数分布的特殊情况。是不是我们现在的所有问题都是指数分布?主要是通过把某个问题划归为某个分布,然后求出期望:math:mu ,从而得到h(x)函数。

牛顿法:

把式子写为二阶形式,得到:

\[f(x+\bigtriangleup) =f(x)+f\prime \bigtriangleup x+\frac{1}{2}f^{\prime\prime}\bigtriangleupx^2\]

这个式子是成立的,当且仅当 \(\bigtriangleup x\) 无限地趋近于0,此时上式等价于:

\[ \begin{align}\begin{aligned}f\prime(x)+f^{\prime\prime}\bigtriangleup x =0\\(这个式子是怎样得到的?)\end{aligned}\end{align} \]

求解得到:

\[\bigtriangleup x = -\frac{f^\prime(x_n)}{f^{\prime\prime}(x_n)}\]

得到迭代公式:

\[x_{n+1} = x_n -\frac{f^\prime(x_n)}{f^{\prime\prime}(x_n)}\]

一般认为牛顿法可以利用到曲线本身的信息,比梯度下降法更容易收敛(迭代更少次数),如下图是一个最小化一个目标方程的例子,红色曲线是利用牛顿法迭代求解,绿色曲线是利用梯度下降法求解。

从这个角度来讲,梯度下降法,只使用一阶信息,相当于使用基于平面的优化,而牛顿法使用二阶信息,相当于基于曲面的优化。

最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少? http://www.zhihu.com/question/19723347

http://www.codelast.com/?p=2573

Note

通过牛顿法的代入发现,最后这里使用最小值等于 \(-1/2g_k^TG_kg_k\), 这里是不是只要G_k 是凸问题,就能够得到一定能够求解到最小值。

Indices and tables