特征提取

目标检测算法基础介绍

◇◆丶佛笑我妖孽 提交于 2020-01-23 04:28:14
文章目录 1. 目标检测问题定义 1.1 目标检测定义 1.2 目标检测vs图像分类 1.3 目标检测vs目标分割 2. 目标检测问题方法 2.1 传统目标检测方法到深度学习目标检测方法的变迁 2.2 算法基本流程 2.3 传统目标检测方法 2.4 深度学习目标检测方法 2.5 传统目标检测方法VS深度学习目标检测方法 2.6 目标检测应用场景 3. 传统目标检测算法 3.1 综述 3.2 Viola-Jones 3.3 HOG+SVM 3.4 DPM 3.5 NMS(非极大值抑制算法) 4. 基于深度学习的目标检测算法 4.1 Two-stage基本介绍 4.1.1 概述 4.1.2 two-stage基本流程: 4.1.3 two-stage常见算法 4.2 Two-stage核心组件 4.2.1 CNN网络 4.2.2 RPN网络 4.3 One-stage基本介绍 4.3.1 One-stage 综述 4.3.2 One-stage基本流程 4.3.3 One-stage常见算法 4.4 One-stage核心组件 4.4.1 CNN网络 4.4.2 回归网络 4.4.3 回归网络预测过程 4.5 One-stage VS Two-stage 1. 目标检测问题定义 1.1 目标检测定义 目标检测是在图片中对 可变数量 的目标进行分类和查找。 主要难点: 目标种类与数量问题

python图像特征提取

早过忘川 提交于 2020-01-20 22:15:24
这里使用的是python 3.6 、opencv_python-3.4.0+contrib,特征提取的代码如下: import cv2 img = cv2 . imread ( "feature.jpg" ) img = cv2 . resize ( img , ( 136 * 3 , 76 * 3 ) ) cv2 . imshow ( "original" , img ) gray = cv2 . cvtColor ( img , cv2 . COLOR_RGB2GRAY ) #使用SIFT sift = cv2 . xfeatures2d . SIFT_create ( ) keypoints , descriptor = sift . detectAndCompute ( gray , None ) cv2 . drawKeypoints ( image = img , outImage = img , keypoints = keypoints , flags = cv2 . DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS , color = ( 51 , 163 , 236 ) ) cv2 . imshow ( "SIFT" , img ) #使用SURF img = cv2 . imread ( "feature.jpg" ) img =

ORBSLAM的ORB特征提取

故事扮演 提交于 2020-01-19 01:39:55
ORBSLAM中的主要使用了ORB特征,也就是FAST特征+BRIEF描述子的组合,具体这两种方法就不详细介绍了,这里主要说一下每个特征对应的描述子在ORBSLAM中的维护方式; 首先需要说明的是每个frame都有自己对应的找到的feature,在进行特征提取前会先初始化一个Extractor,也就是: void Frame::ExtractORB(int flag, const cv::Mat &im) { if(flag==0) (*mpORBextractorLeft)(im,cv::Mat(),mvKeys,mDescriptors); else (*mpORBextractorRight)(im,cv::Mat(),mvKeysRight,mDescriptorsRight); } 第二步:初始化完成后就是提取,这里的入口函数是: // 计算ORB特征,_keypoints中的坐标与scale已经无关 /* _image: 原图 * mvImagePyramid:ComputePyramid() 的结果,不同大小的图片 * allKeypoints:对应mvImagePyramid中每一层图像的特征点,是与金字塔图像坐标对应的,就是在原图像的基础上经过缩放的 * _keypoints:对allKeypoints中每一个点找到对应的描述子后,再进行scale, *

图像特征提取之HOG特征

为君一笑 提交于 2020-01-17 08:59:26
目标检测的图像特征提取之(一)HOG特征 zouxy09@qq.com http://blog.csdn.net/zouxy09 1、HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。 (1)主要思想: 在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布很好地描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。 (2)具体的实现方法是: 首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。 (3)提高性能: 把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度

机器学习笔记(一)-特征提取

流过昼夜 提交于 2020-01-15 16:50:44
机器学习笔记(一) 一、 什么是机器学习? 机器学习是从数据中自动分析获取规律(模型),并利用规律对未知数据进行预测。通常这些要处理的数据是保存在文件中而不是数据库中的。 二 、数据的格式(dataframe) 一般数据的结构是 特征值+目标值 的形式,当然有时候也可以没有目标值。 数据中对于特征的处理通常用到两个根据 sklearn,pandas 三、数据的特征提取 特征提取是对文本等数据进行特征值化,让计算机更好的理解数据。 3.1字典特征提取 样例: from sklearn.feature_extraction import DictVectorizer def dictVect(): ''' 字典数据抽取 ''' #实例化 dict=DictVectorizer(sparse=False) data=dict.fit_transform([{'city':'北京','temperature':100},{'city':'上海','temperature':80},{'city':'武汉','temperature':70}]) print(dict.feature_names_) print(data) # ndarray 二维数组 return None if __name__=='__main__': dictVect() 输出结果为一个 二维数组 3

word2vec——高效word特征提取

╄→尐↘猪︶ㄣ 提交于 2020-01-15 12:33:53
继上次分享了 经典统计语言模型 ,最近公众号中有很多做NLP朋友问到了关于word2vec的相关内容, 本文就在这里整理一下做以分享。 本文分为 概括word2vec 相关工作 模型结构 Count-based方法 vs. Directly predict 几部分,暂时没有加实验章节,但其实感觉word2vec一文中实验还是做了很多工作的,希望大家有空最好还是看一下~ 概括word2vec 要解决的问题: 在神经网络中学习将word映射成连续(高维)向量, 其实就是个词语特征求取。 特点: 1. 不同于之前的计算cooccurrence次数方法,减少计算量 2. 高效 3. 可以轻松将一个新句子/新词加入语料库 主要思想:神经网络语言模型可以用两步进行训练:1. 简单模型求取word vector; 在求取特征向量时,预测每个词周围的词作为cost 2. 在word vector之上搭建N-gram NNLM,以输出词语的概率为输出进行训练。 相关工作 在传统求取word的空间向量表征时, LSA 将词和文档映射到潜在语义空间,从而去除了原始向量空间中的一些“噪音”,但它无法保存词与词之间的linear regularities; LDA 是一个三层贝叶斯概率模型,包含词、主题和文档三层结构。文档到主题服从Dirichlet分布,主题到词服从多项式分布, 但是只要训练数据大了,

sklearn文本特征提取——TfidfVectorizer

坚强是说给别人听的谎言 提交于 2020-01-15 12:19:53
什么是TF-IDF TF-IDF(term frequency-inverse document frequency)词频-逆向文件频率。在处理文本时,如何将文字转化为模型可以处理的向量呢?TF-IDF就是这个问题的解决方案之一。字词的重要性与其在文本中出现的频率成正比(TF),与其在语料库中出现的频率成反比(IDF)。 TF TF:词频。TF(w)=(词w在文档中出现的次数)/(文档的总词数) IDF IDF:逆向文件频率。有些词可能在文本中频繁出现,但并不重要,也即信息量小,如is,of,that这些单词,这些单词在语料库中出现的频率也非常大,我们就可以利用这点,降低其权重。IDF(w)=log_e(语料库的总文档数)/(语料库中词w出现的文档数) TF-IDF 将上面的TF-IDF相乘就得到了综合参数:TF-IDF=TF*IDF 如何使用? 在文本处理中,我们经常遇到将一段话变成向量,以组成矩阵来输入到模型中处理。我们这时就可以用到TF-IDF来做。但是我们需要自己找语料库训练TF-IDF吗?看看 sklearn.feature_extraction.text.TfidfVectorizer 吧~~~ 示例: from sklearn.feature_extraction.text import TfidfVectorizer cv=TfidfVectorizer

Opencv特征提取与检测学习01

我的未来我决定 提交于 2020-01-13 14:31:40
Opencv特征提取与检测学习01:Harris角点检测 1.什么是harris角点检测 harris角点检测是harris于1998年提出的检测图片角点位置的一个理论。 具体理论(我的理解) 如上图,W是我们定义的图像窗口,W(x,y)是窗口一个像素值,后面的一串是像素梯度。 当采取近似计算时,E(u,v) 约等于下面的这个式子。 Ix 2 ,Iy 2 是图像像素点在x、y方向的二阶梯度,Ix,Iy则是一阶梯度,k是响应系数;我们是可以通过索贝尔算子,拉普拉斯算子等计算以上的梯度值。 矩阵M = 所以, R = + 其中, , 是矩阵M的特征检测值,用来计算角度响应值R, 根据我们自己设定的一个阈值t,若R>t,我们就认为在W这个窗口大小的像素中,包含了角点 关于 , 在图片的不同区域,得到的值是不同的。 角点处:两个特征值都很大,而且各个方向像素梯度变化明显! 平滑区:两个特征值较小,像素梯度基本不变 边缘地带:两个特征值,一个 远大于另外一个。 2.API介绍 void cornerHarris(InputArray src, OutputArrays dst , int blocksize, int ksize , double k, int borderType=BORDER_DEFAULT) 参数详解: 1.src是输入图像,一般要求是灰度图

卷积神经网络提取特征并用于SVM

拥有回忆 提交于 2020-01-11 00:16:00
目标是对UCI的手写数字数据集进行识别,样本数量大约是1600个。图片大小为16x16。要求必须使用SVM作为二分类的分类器。 本文重点是如何使用卷积神经网络(CNN)来提取手写数字图片特征,主要想看如何提取特征的请直接看源代码部分的94行左右,只要对tensorflow有一点了解就可以看懂。在最后会有完整的源代码、处理后数据的分享链接。转载请保留原文链接,谢谢。 UCI手写数字的数据集 源数据下载: http://oddmqitza.bkt.clouddn.com/archivetempsemeion.data 其中前256维为16x16的图片,后10维为one hot编码的标签。即0010000000代表2,1000000000代表0. 组合成图片大约是这样的: 卷积和池化形象理解 卷积 池化 仔细的看,慢慢想就能明白CNN提取特征的思想巧妙之处。 能明白这两点,剩下的东西就和普通的神经网络区别不大了。 为什么要用CNN提取特征? 1.由于卷积和池化计算的性质,使得图像中的平移部分对于最后的特征向量是没有影响的。从这一角度说,提取到的特征更不容易过拟合。而且由于平移不变性,所以平移字符进行变造是无意义的,省去了再对样本进行变造的过程。 2.CNN抽取出的特征要比简单的投影、方向,重心都要更科学。不会让特征提取成为最后提高准确率的瓶颈、天花板 3.可以利用不同的卷积

ORB-SLAM2 论文笔记

会有一股神秘感。 提交于 2020-01-10 01:54:57
单目相机具有成本低,设置简单的优点,但是同样存在尺度不确定、初始化需要足够视差,最终造成尺度漂移、无法处理纯旋转等问题。 ORB-SLAM2为SLAM的发展作出了以下几个贡献: 1.这是第一个同时提供单目,双目和RGB-D接口的SLAM开源系统,并且包含回环检测,重定位和地图重用。 2.通过BA对RBG-D进行优化,效果优于state-of-the-art的ICP或photometric and depth error minimization 3.通过使用近距离和远距离的双目点以及单目观测,使得其双目的精确度要高于state-of-the-art的直接使用双目的SLAM系统 4.通过禁用建图来实现利用已有地图,进行轻量级的定位。 ORB-SLAM2的框架和ORB-SLAM的框架几乎是一模一样的,包含了三个线程:Tracking,Local Mapping和Loop Closing。主要的区别还是在对于双目相机和RBG-D相机前端,是如何进行追踪并构建后端优化问题的。因此与ORB-SLAM相同的部分就不再赘述,详细可参考上一篇关于ORB-SLAM论文的博客。 A.Monocular, Close Stereo and Far Stereo Keypoints ORB-SLAM2是基于特征的SLAM系统,因此当从输入的图像中提取特征之后,图像不需要被保存而是直接丢弃,因此可以说ORB