2019-08-03 22:37:59 shinian1987 阅读数 257
  • 自然语言处理Word2Vec视频学习教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 自然语言处理Word2Vec视频培训课程:自然语言处理中重要的算法,word2vec原理,词向量模型。教程从语言模型入手,详解词向量构造原理与求解算法。理论与实战结合,使用深度学习框架Tensorflow从零开始打造word2vec词向量,word2vec训练模型。对于海量中文数据演示如何使用Gensim库对中文维基百科数据进行词向量建模。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079 更多精彩课程正在紧张筹划中~

    9896 人正在学习 去看看 唐宇迪

学过图像处理的人,对图像梯度的概念应该都不陌生,图像梯度,可以将一个图像值变成一个向量,如下图所示:

在这里插入图片描述

简单来说,就是对像素值,在 x, y 方向进行求导,从而可以得到图像在 x, y 方向的梯度,梯度域的图像处理,就是利用梯度的性质,对图像梯度进行计算,从而达到某些特定的效果,梯度域的图像处理最有名的就是泊松编辑,此外还有 tone-mapping, 图像拼接,图像融合等等,都可以用这种方法来实现。

在介绍梯度域的图像处理的原理之前,我们先来看看几个概念:
梯度,旋度,散度

  • 梯度: 梯度的概念我们应该比较熟悉,梯度是一个向量,会指向变化最大的地方,而梯度大小,表示变化的幅度
  • 散度: 散度的运算对象是向量,散度表示的是向量场中某个点的发散程度,是远离这个点,还是向这个点聚集
  • 旋度: 旋度的运算对象也是向量,旋度表示的是向量场中,以某个点为中心,其周围点绕其旋转的程度。

旋度的表达:

Curl(I)=×I Curl(\triangledown I) = \triangledown \times \triangledown I

散度的表达:

Div(I)=I Div(\triangledown I) = \triangledown \cdot \triangledown I

对于图像来说,两者存在如下的关系:

在这里插入图片描述
在图像处理中,我们知道,Ixy=IyxI_{xy} = I_{yx},因为图像的二阶导和求导顺序是没有关系的,所以图像梯度的旋度为 0,图像的二阶导一般都是用拉普拉斯算子实现。

梯度域的图像处理,一般来说,其 pipeline 如下:
在这里插入图片描述
图片来源于: ICCV 2007 Course – Gradient Domain Manipulation Techniques

最困难的部分,应该是重建部分,假设我们要重建的图像为 II,其已知的梯度为 v\mathbf{v},那么我们主要就是要解决如下的优化方程:

minfΩfv2 \min_{f} \iint_{\Omega} | \triangledown f - \mathbf{v}|^2

其中,f\triangledown f 表示待求图像 ff 的梯度,v\mathbf{v} 表示已知的梯度,最后可以化简成求解如下的泊松方程:

Δf=divv \Delta f = \text{div} \mathbf{v}

在这里插入图片描述
其中,Δf\Delta f 表示图像 ff 的二阶导数,$ \text{div} \mathbf{v}$ 表示已知梯度的散度,图像的二阶导数,可以用拉普拉斯算子来实现,上面的优化表达式意味着,希望待求图像 ff 的梯度和已知的梯度处处相等,所以有:

Δfp=Δgp \Delta f_p = \Delta g_p

对于离散图像,一个像素点的二阶导,可以用拉普拉斯算子实现:

在这里插入图片描述
对应的 kernel 如下所示:

在这里插入图片描述
如果我们用一个稀疏矩阵来表示 拉普拉斯算子,那么可以得到如下的线性方程组:

Ax=b\mathbf{A} \mathbf{x} = \mathbf{b}

其中,KaTeX parse error: Expected 'EOF', got '\mahtbf' at position 1: \̲m̲a̲h̲t̲b̲f̲{A} 是拉普拉斯算子组成的稀疏矩阵,x\mathbf{x} 表示要求的图像,被拉成了一维列向量,b\mathbf{b} 是已知的梯度的散度,拉成的一维向量,很显然,这是一个非常庞大的矩阵。

梯度,旋度,散度的概念参考了知乎上的解释:
https://www.zhihu.com/question/24074028/answer/26657334

参考文献: computational photograph, CMU 2018 lecture 10
参考文献: ICCV 2007 Course – Gradient Domain Manipulation Techniques
同样参考了:图像处理中的全局优化技术: https://blog.csdn.net/mulinb/article/details/9079645

2016-05-23 14:37:51 lpsl1882 阅读数 3028
  • 自然语言处理Word2Vec视频学习教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 自然语言处理Word2Vec视频培训课程:自然语言处理中重要的算法,word2vec原理,词向量模型。教程从语言模型入手,详解词向量构造原理与求解算法。理论与实战结合,使用深度学习框架Tensorflow从零开始打造word2vec词向量,word2vec训练模型。对于海量中文数据演示如何使用Gensim库对中文维基百科数据进行词向量建模。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079 更多精彩课程正在紧张筹划中~

    9896 人正在学习 去看看 唐宇迪

图像几何变换基础

    我们实际获取的图像,常常因为各种原因,相对于原图有一定的几何形变,或者出于处理考虑,需要进行几何变换。二维图像坐标的几何变换写为:(x,y)=r(x,y)。根据图像几何变换的程度,可以将图像几何变换划分为如下几类:

  • 刚体变换 如果一幅图像中的两点间的距离经变换到另一幅图像中后仍然保持不变,则这种变换称为刚体变换(Rigid Transform)。刚体变换仅局限于平移、旋转和反转(镜像)。
  • 仿射变换 如果一幅图像中的直线经过后映射到另一幅图像上仍为直线,并且保持平行关系,则这种变换称为仿射变换(Affine Transform。仿射变换适应于平移、旋转、缩放和反转(镜像)情况。
  • 投影变换 如果一幅图像中的直线经过后映射到另一幅图像上仍为直线,但平行关系基本不保持,则这种变换称为投影变换(Projective Transform )。
  • 非线性变换 非线性变换又称为弯曲变换(Curved Transform)或者弹性变换,经过非线性变换,一幅图像上的直线映射到另一幅图像上不一定是直线,可能是曲线。

广义来讲,非线性变换包含投影变换;投影变换包含仿射变换;仿射变换包含刚体变换。非线性变换下,新旧坐标的一类简单的表达式写为:

xkykwk=a11xmk+a12xm1kyk+...a1mymk+a1wk=a21xmk+a22xm1kyk+...a2mymk+a2wk=a31xmk+a32xm1kyk+...a3mymk+a3wk,n=1,2,3...(1)

在投影变换范围下,新旧坐标的变换呈线性,表达式较为简单:
xkykwk=a1xk+a2yk+a3wk=a4xk+a5yk+a6wk=a7xk+a8yk+a9wk,k=1,2,3...n(2)

same as x1x2x3...xny1y2y3ynw1w2w3wn=a1a4a7a2a5a8a3a6a9x1x2x3...xny1y2y3ynw1w2w3wnB=AX(3)

A称为空间变换矩阵。其中[a1a4a2a5]控制旋转、缩放和斜切,[a7a8]控制平移,[a3a6]控制透视变换;w是归一化因子,要求wkwk都是1,在特殊情况下为了便于分析可以不为1。三维图像空间变换同理,扩展出z变量,组成一个4×4的变换矩阵即可。
    如果我们知道需要做何种变换,直接在单位空间变化矩阵上修改相应系数即可;如果我们不知道图像相比原图像做了什么变换,那么就需要设法获取图像的变换信息。常见的方法是手工标记前后两幅图像中的对应特征点,根据特征点的变换来计算得到变换的矩阵。
    我这里的计算限制于透视变换,或者非弹性变换。当我们获取足够的变换特征点信息,就可以计算变换矩阵,方法是求解(2)式中的系数矩阵A。这里单独看方程式很像求解多元一次方程组,但是多元一次方程组求解的是x,y而不是系数;求解系数矩阵的一个著名方法,前面在【机器学习】线性回归小结提到,即最小二乘法。
   假设我要变换一个256x256的图像,目标图像的四个边角坐标为(0,0),(180,75),(255,255),(75,180)。由于图像通常是方形的,因此四个边角点可以作为变换特征点。在《数字图像处理》书中,对四边形的空间变换使用了双线性方程来描述,这里我们直接使用空间变换矩阵,写成:
0180255750752551801111=a1a4a7a2a5a8a3a6a902552550002552551111
用最小二乘法得到
A0.7060.29400.2940.7060001

原图
原图
空间变换
变换后

2014-12-28 22:36:51 makenothing 阅读数 4449
  • 自然语言处理Word2Vec视频学习教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 自然语言处理Word2Vec视频培训课程:自然语言处理中重要的算法,word2vec原理,词向量模型。教程从语言模型入手,详解词向量构造原理与求解算法。理论与实战结合,使用深度学习框架Tensorflow从零开始打造word2vec词向量,word2vec训练模型。对于海量中文数据演示如何使用Gensim库对中文维基百科数据进行词向量建模。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079 更多精彩课程正在紧张筹划中~

    9896 人正在学习 去看看 唐宇迪


在下面的程序中:

  • SurfFeatureDetector中,利用类内的detect函数可以检测出SURF特征的关键点,保存在vector容器中。
  • 使用 DescriptorExtractor 接口来寻找关键点对应的特征向量. 特别地:

#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <opencv2/nonfree/nonfree.hpp>
#include<opencv2/legacy/legacy.hpp>
using namespace cv;


int main( int argc, char** argv )
{
	Mat img_1 = imread( "F:\\VS2010\\OpenCVPro\\OpenCVTest\\Pic\\6.jpg",CV_LOAD_IMAGE_GRAYSCALE );
	Mat img_2 = imread( "F:\\VS2010\\OpenCVPro\\OpenCVTest\\Pic\\7.jpg", CV_LOAD_IMAGE_GRAYSCALE );

	if( !img_1.data || !img_2.data )
	{ return -1; }

	//-- Step 1: Detect the keypoints using SURF Detector
	int minHessian = 400;
	SurfFeatureDetector detector( minHessian );
	std::vector<KeyPoint> keypoints_1, keypoints_2;
	detector.detect( img_1, keypoints_1 );
	detector.detect( img_2, keypoints_2 );

	//-- Step 2: Calculate descriptors (feature vectors)
	SurfDescriptorExtractor extractor;
	Mat descriptors_1, descriptors_2;
	extractor.compute( img_1, keypoints_1, descriptors_1 );
	extractor.compute( img_2, keypoints_2, descriptors_2 );

	//-- Step 3: Matching descriptor vectors with a brute force matcher
	BruteForceMatcher< L2<float> > matcher;
	std::vector< DMatch > matches;
	matcher.match( descriptors_1, descriptors_2, matches );

	//-- Draw matches
	Mat img_matches;
	drawMatches( img_1, keypoints_1, img_2, keypoints_2, matches, img_matches );
	//-- Show detected matches
	imshow("Matches", img_matches );
	waitKey(0);
	return 0;
}


2014-01-08 22:45:10 utimes 阅读数 2118
  • 自然语言处理Word2Vec视频学习教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 自然语言处理Word2Vec视频培训课程:自然语言处理中重要的算法,word2vec原理,词向量模型。教程从语言模型入手,详解词向量构造原理与求解算法。理论与实战结合,使用深度学习框架Tensorflow从零开始打造word2vec词向量,word2vec训练模型。对于海量中文数据演示如何使用Gensim库对中文维基百科数据进行词向量建模。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079 更多精彩课程正在紧张筹划中~

    9896 人正在学习 去看看 唐宇迪

特征向量有很明确的几何意义,矩阵或方阵乘以一个向量的结果仍是同维数的一个向量,因此,矩阵乘法对应了一个变换,把一个向量变成同维数的另一个向量.

我们想知道变换的效果是什么呢?这当然与方阵的构造有密切关系,如可以取适当的二维方阵,使得这个变换的效果就是将平面上的二维向量逆时针旋转30度,这时我们可以问一个问题,有没有向量在这个变换下不改变方向呢?可以想 一下,除了零向量,没有其他向量可以在平面上旋转30度而不改变方向的,所以这个变换对应的矩阵(或者说这个变换自身)没有特征向量(注意:特征向量不能是零向量),所以一个变换的特征向量是这样一种向量,它经过这种特定的变换后保持方向不变,只是进行长度上的伸缩而已。如果特征向量的原始定义Ax= cx,那么,cx是方阵A对向量x进行变换后的结果,但显然cx和x的方向相同。而且x是特征向量的话,ax也是特征向量(a是标量且不为零),所以所谓的特征向量不是一个向量而是一个向量族.

另外,特征值只不过反映了特征向量在变换时的伸缩倍数而已,对一个变换而言,特征向量指明的方向才是很重要的,特征值不是那么重要,虽然我们求这两个量时先求出特征值,但特征向量才是更本质的东西!

例如:平面上的一个变换,把一个向量关于横轴做镜像对称变换,即保持一个向量的横坐标不变,但纵坐标取相反数,把这个变换表示为矩阵就是[1 0;0 -1],其中分号表示换行,显然[1 0;0 -1]*[a b]'=[a -b]',其中上标'表示取转置,这正是我们想要的效果。而这个矩阵的特征向量是什么?什么向量在这个变换下保持方向不变,显然,横轴上的向量在这个变换下保持方向不变(记住这个变换是镜像对称变换,那镜子表面上(横轴上)的向量当然不会变化),所以可以直接猜测其特征向量是 [a 0]'(a不为0),还有纵轴上的向量,这时经过变换后,其方向反向,但仍在同一条轴上,所以也被认为是方向没有变化,所以[0 b]'(b不为0)也是其特征向量,去求求矩阵[1 0;0 -1]的特征向量即可。


关于Image Engineering & Computer Vision的更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.

2019-02-22 16:12:45 weixin_39504048 阅读数 776
  • 自然语言处理Word2Vec视频学习教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 自然语言处理Word2Vec视频培训课程:自然语言处理中重要的算法,word2vec原理,词向量模型。教程从语言模型入手,详解词向量构造原理与求解算法。理论与实战结合,使用深度学习框架Tensorflow从零开始打造word2vec词向量,word2vec训练模型。对于海量中文数据演示如何使用Gensim库对中文维基百科数据进行词向量建模。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079 更多精彩课程正在紧张筹划中~

    9896 人正在学习 去看看 唐宇迪

个人总结知识点

1.问:为什么y=wx明明是一个矩阵,而损失函数是一个值

2,问:支持向量机SVM与逻辑回归的关系

SVM把逻辑回归的sigmoid函数换成核函数,损失函数由平均交叉熵换成了不同分类的距离间隔

3,问:深度学习与逻辑回归的区别

在计算y=wx时,将逻辑回归的函数变成几十个函数的嵌套,然后利用链式求导法则对嵌套的几十个函数进行反向求导,得出损失函数

4,问:过拟合的原因

过多的参数

5,问:深度学习中需要调的参数

正则化系数,卷积核的权值,学习率等

6,问:过拟合的解决方法

1,dropout   2,使用池化(减少了参数)  3,加入L1,L2正则化,批正则化  4,数据增强  5,迁移学习  6,多个神经网络结果平均  7,RNN时,调试阶段提前终止训练  8,对抗训练  9,稀疏编码  10,流型正切

 

书本知识点总结

1,关于权值共享的通俗解释

2,BP反向传播的自动求导的过程

3.sigmoid函数实现二分类的原理

4,逻辑回归/深度学习这些的大致工作原理和过程

5,如何根据预测y和实际y的差别更新参数w

6,L1,L2正则化的区别

书本43页 

7,opencv提取图像边缘的算法

8,1X1卷积层的作用

9,反卷积的实质

实质就是将原矩阵扩大后中间补0,然后对扩大后的矩阵做卷积。

10,学习率调整方法

11,VGG16的特征提取部分只使用了3X3的卷积核,以及2X2的池化层

12,提高检测精度的几种方法

基变换和图像压缩

阅读数 1722

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