图像梯度

机器学习算法

旧城冷巷雨未停 提交于 2019-11-27 10:19:00
文章目录 一 监督学习 1 classification分类 (1) Binary Decision Tree(BDT)二分决策树 (2) Naive Bayesian Classifier朴素贝叶斯分类器 (3) Neural Network(NN)神经网络 (4)Convolution NN(CNN)卷积神经网络 (5)Deep Belief Networks(DBN)深度信念网络 (6)Recurrent NN(RNN)深度循环神经网络 2 regression回归 (1)LinearRegression线性回归: (2)树回归: 二 强化学习 1 Q-learning 2 Deep Q Networks 3 Double Q-learning 4 Prioritized experience replay 三 无监督学习 1 Dimensionality Reduction降维 (1)Stacked Auto-Encoders(SAE)栈式自编码 (2)Local Linear Embedding局部线性嵌入 2 Clustering聚类 (1)聚类算法简介 (2)聚类算法分类 (3)KMeans算法 (4)层次聚类(hierarchical clustering) (5) DBSCAN(基于密度的聚类算法) 3 Density Estimation密度估计 一 监督学习

2017cs231n阶段性总结(一)

让人想犯罪 __ 提交于 2019-11-27 10:03:03
刚刚开始入门深度学习的过程艰苦异常,没有一点相关的基础甚至于Python都不能熟练掌握。学习cs231n课程的时候眼睛都跟不上字幕,讲的是什么东西也基本听不懂,在这种煎熬的环境下磕磕绊绊了好久才学到Lecture3,给自己做个总结吧。 Lecrure1:引言 这一节课主要讲两个方面的内容: 计算机视觉的发展历史 从生物拥有视觉开始讲起,中间经过无数科学家的研究和尝试,使用了各种方式试图让机器能够拥有人类一样的视觉和理解能力。发展到现在计算机在许多场景下对于图片的识别能力已经超过了人类。 cs231n课程概况 cs231n主要围绕在视觉识别的一个最重要的问题之一 —— 图像分类 有大量的视觉识别问题和图像分类有关,例如目标检测,图像说明 卷积神经网络(CNN)已经成为一个物体识别的一个重要工具 卷积神经网络(CNN)不是突然被发明出来的 对于视觉智能的追求远远不止于物体识别 第一节课由于是引言,没有什么关键性的知识点,就不详细展开了。 Lecture 2:图像分类的途径 图像分类:计算机视觉中的一个核心问题 图像分类是什么呢?给了计算机一张图片和各种标签的集合,计算机能准确的判断出这张图片所对应的标签是什么。 问题:语义鸿沟 人类眼里看到的一张照片在计算机看起来就是一大堆的数字,在理解照片上有着巨大的语义鸿沟。 挑战 观测点变化 光照 变形 遮挡 背景干扰 类内差异 一个图像分类器

基于Opencv的梯度及其方向

不想你离开。 提交于 2019-11-27 07:59:19
我们都知道梯度很好求,只需要将[-1,1] 与图像分别在x 方向和y方向卷积,即可求得两个方向上的梯度。不过在求梯度方向时,还是有些麻烦,因为梯度方向会指向360°的任何一个方向,所以直接用atan(dy/dx)函数,通常会得到正负PI/2范围内的值,因此,在本文中将根据dy、dx的正负,求取任一象限内的梯度方向。x、y以及四个象限如下图所示: 在本文中编制了两个函数一个是获取梯度方向函数 Mat getGradientDirect(Mat&img_dy,Mat&img_dx) 一个是将梯度方向等分为8个方向:0、PI/4、PI/2、PI、5PI/4、3PI/2、7PI/4.。函数名为: void octantDirect(Mat&theta) 下面是两个函数的代码: Mat getGradientDirect(Mat&img_dy,Mat&img_dx) { int rows=img_dx.rows,cols=img_dy.cols; Mat theta(rows,cols,img_dx.type(),Scalar::all(0)); for(int i=0;i<rows;i++) { for(int j=0;j<cols;j++) { Vec3f dx=img_dx.at<Vec3f>(i,j); Vec3f dy=img_dy.at<Vec3f>(i,j); for(int

60 分钟极速入门 PyTorch

霸气de小男生 提交于 2019-11-27 07:52:19
2017 年初,Facebook 在机器学习和科学计算工具 Torch 的基础上,针对 Python 语言发布了一个全新的机器学习工具包 PyTorch。 因其在灵活性、易用性、速度方面的优秀表现,经过2年多的发展,目前 PyTorch 已经成为从业者最重要的研发工具之一。 现在为大家奉上出 60 分钟极速入门 PyTorch 的小教程,助你轻松上手 PyTorch!大家也可直接在实验楼学习: PyTorch 深度学习基础课程 。 PyTorch 基础 PyTorch 使用一种称之为 imperative / eager 的范式,即每一行代码都要求构建一个图,以定义完整计算图的一个部分。即使完整的计算图还没有构建好,我们也可以独立地执行这些作为组件的小计算图,这种动态计算图被称为「define-by-run」方法。 PyTorch 具有两个比较基础的库,所有基础操作都需要提前引入。下面我们引入基础库。 import torch import torchvision PyTorch 张量 PyTorch 的基本数据单元是张量(Tensor),它实际上是一种 N 维数组。 创建 创建一个未初始化 5X3 的矩阵: x = torch.empty(5, 3) 创建一个随机初始化都矩阵: x = torch.rand(5, 3) 创建一个 0 填充的矩阵,指定数据类型为 long: x =

OpenCV笔记(3)

Deadly 提交于 2019-11-27 06:17:09
一、Canny边缘检测 Canny边缘检测是一系列方法综合的结果。其中主要包含以下步骤: 1.使用高斯滤波器,平滑图像,滤除噪声。 2.计算图像中每个像素点的梯度强度和方向。 3.应用非极大值抑制(NMS:Non-Maximum Suppression),以消除边缘检测带来的杂散相应。 4.应用双阈值(Double-Threshold)检测来确定真实和潜在的边缘。 5.通过抑制孤立的弱边缘最终完成边缘检测。 1.高斯滤波器 平滑图像。 2.计算梯度和方向 使用X和Y方向的Sobel算子来分别计算XY方向梯度: 每个点的梯度强度有XY方向的梯度计算出来: 计算每个点梯度的方向: 3.使用NMS 有两种方法,第一种方法(插值法,比较复杂): 通过计算出的梯度方向,找到与周边临近点的边的交点,然后使用权重计算交点的值,假设g1和g2之间的交点(左上的黑点)处于6/4的位置,那么他的值为M = g1*(1-0.6)+g2*(0.4)。 当算出左上的黑点和右下的黑点值后,用这两个点与C的值进行比较,如果都小于C,则C归为边界。如果有一个比C大,则丢弃C,这就叫抑制。 第二种方法(指定8个方向,不用插值,简化版): 4.双阈值检测 在NMS的基础上,判断一个边界点的梯度强度:   (1) 如果值大于maxVal,则处理为边界   (2) 如果值minVal<梯度值<maxVal

《On the Effectiveness of Visible Watermarks》——去水印论文纪要

霸气de小男生 提交于 2019-11-27 03:22:06
I. Estimating the Matted Watermark 给定所有图像中的水印当前估计的区域,我们通过观察这些区域图像梯度的一致性来检测出水印梯度,也就是我们通过计算这些区域的图像梯度的中间值 median,对每个像素的 x 和 y 方向分别计算。 随着 K 的增加,上述公式会收敛于 水印的梯度,会有一个位移偏差,后面我们会修正这个偏差。 通过Canny得到的 edge map 来定位出水印的外接矩形框,这样就修正了上面的位移偏差。 II. Watermark Detection 给定估计到的水印梯度 ,我们使用边缘模板匹配算法 Chamfer Distance 检测出所有图像中的水印位置。 水印梯度的初始化可以通过人为框出水印区域来,也可以利用水印位置的先验知识(如果有的话) 来源: https://www.cnblogs.com/yuehouse/p/11341527.html

梯度下降

北慕城南 提交于 2019-11-27 02:37:26
本文将从一个下山的场景开始,先提出梯度下降算法的基本思想,进而从数学上解释梯度下降算法的原理,最后实现一个简单的梯度下降算法的实例! 梯度下降的场景假设 梯度下降法的基本思想可以类比为一个下山的过程。假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。这个时候,他就可以利用梯度下降算法来帮助自己下山。具体来说就是,以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的地方走,同理,如果我们的目标是上山,也就是爬到山顶,那么此时应该是朝着最陡峭的方向往上走。然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。 image.png 我们同时可以假设这座山最陡峭的地方是无法通过肉眼立马观察出来的,而是需要一个复杂的工具来测量,同时,这个人此时正好拥有测量出最陡峭方向的能力。所以,此人每走一段距离,都需要一段时间来测量所在位置最陡峭的方向,这是比较耗时的。那么为了在太阳下山之前到达山底,就要尽可能的减少测量方向的次数。这是一个两难的选择,如果测量的频繁,可以保证下山的方向是绝对正确的,但又非常耗时,如果测量的过少,又有偏离轨道的风险。所以需要找到一个合适的测量方向的频率,来确保下山的方向不错误

5.6算法-分类-svm-支持向量机

血红的双手。 提交于 2019-11-26 22:37:51
https://blog.csdn.net/u011630575/article/details/78916747 SVM SVM:Support Vector Machine 中文名:支持向量机 学习模型 有监督学习:需要事先对数据打上分类标签,这样机器就知道数据属于哪一类。 无监督学习:数据没有打上分类标签,有可能因为不具备先验知识,或打标签的成本很高,需要机器代替我们部分完成改工作,比如将数据进行聚类,方便后人工对每个类进行分析。 SVM 是有监督的学习模型:可以进行模式识别、分类以及回归分析。 SVM工作原理 示例: 桌面上有两种颜色混乱的小球,我们将这两种小球来区分开,我们猛拍桌子小球会腾起,在腾空的那一刹那,会出现一个水平切面,将两种颜色的球分开来。 原因: 二维平面无法找出一条直线来区分小球颜色,但是在三位空间。我们可以找到一个平面来区分小球颜色,该平面我们叫做超平面。 SVM计算过程: 就是帮我们找到一个超平面的过程,该超平面就是 SVM分类器。 分类间隔 我们在示例中,会找到一个决策面来将小球颜色分离,在保证决策面C不变,且分类不产生错误的情况下,我们可以移动决策面,来产生两个极限位置:决策面A和决策面B,分界线C就是最优决策面,极限位置到最优决策面的距离就是 分类间隔 。 我们可以转动最优决策面,会发现存在多个最优决策面,它们都能把数据集正确分开

生成式对抗网络(GAN)学习笔记

我的梦境 提交于 2019-11-26 22:25:03
图像识别和自然语言处理是目前应用极为广泛的AI技术,这些技术不管是速度还是准确度都已经达到了相当的高度,具体应用例如智能手机的人脸解锁、内置的语音助手。这些技术的实现和发展都离不开神经网络,可是传统的神经网络只能解决关于辨识的问题,并不能够为机器带来自主创造的能力,例如让机器写出一篇流畅的新闻报道,生成一副美丽的风景画。但随着GAN的出现,这些都成为了可能。 什么是GAN? 生成式对抗网络(GAN, Generative Adversarial Networks)是一种近年来大热的深度学习模型,该模型由两个基础神经网络即生成器神经网络(Generator Neural Network)和判别器神经网络(Discriminator Neural Network)所组成,其中一个用于生成内容,另一个则用于判别生成的内容。 GAN受博弈论中的零和博弈启发,将生成问题视作判别器和生成器这两个网络的对抗和博弈:生成器从给定噪声中(一般是指均匀分布或者正态分布)产生合成数据,判别器分辨生成器的的输出和真实数据。前者试图产生更接近真实的数据,相应地,后者试图更完美地分辨真实数据与生成数据。由此,两个网络在对抗中进步,在进步后继续对抗,由生成式网络得的数据也就越来越完美,逼近真实数据,从而可以生成想要得到的数据(图片、序列、视频等)。 发展历史 GAN最早是由Ian J.

4.pca与梯度上升法

给你一囗甜甜゛ 提交于 2019-11-26 21:00:39
(一)什么是pca pca,也就是主成分分析法(principal component analysis),主要是用来对数据集进行降维处理。举个最简单的例子,我要根据姓名、年龄、头发的长度、身高、体重、皮肤的白皙程度(随便想的)等特征来预测一个人的性别,但这些特征中有一个是最没有用的,是什么的?显然是年龄,因为年龄的大小跟这个人的性别无关。还有姓名,这个特征显然起不到决定性作用,因为有的男孩的名字起的就像女孩(比如我本人),反之亦然,但是起码绝大多数情况还是能判断的。同理还有身高,一个180CM的很大概率是男孩,当然女孩也有180cm的,比如模特。像这样我从样本的特征中,挑选出最能代表样本、或者对样本预测起到决定性作用最大的n个特征,就叫做主成分分析。为什么会有pca呢?可以想象一个,显示生活中,样本的特征很多,成百上千个也是正常的,但是我们训练不可能用全部的特征进行训练,因为肯定有很多特征是没有用的,或者说起到的作用是很小的,我们的目的就是希望找到起到决定性最大的n个特征。 主成分分析的特征 一个非监督的机器学习算法 主要用于数据的降维 通过降维,可以发现更便于人类理解的特征 其他特征:可视化,去噪等等 我们举一个只有两个特征的例子 如果我们只考虑特征1,不考虑特征2的话,那么显然,蓝色的点要从二维映射到一维 那么同理,如果我们只考虑特征2,不考虑特征1的话,那么显然会是这样