- 博客(62)
- 收藏
- 关注
转载 目标检测之SSD原理与实现
一、设计理念论文下载:点击打开链接SSD和Yolo一样都是采用一个CNN网络来进行检测,但是却采用了多尺度的特征图,其基本架构下图所示。下面将SSD核心设计理念总结为以下三点:1.采用多尺度特征图用于检测所谓多尺度采用大小不同的特征图,CNN网络一般前面的特征图比较大,后面会逐渐采用stride=2的卷积或者pool来降低特征图大小,这正如图3所示,一个比较大的特征图和一个比较小的特征图,它们都用...
2018-06-06 21:49:14 18614 8
转载 常用损失函数小结
一、摘要本文主要总结一下常见的损失函数,包括:MSE均方误差损失函数、SVM合页损失函数、Cross Entropy交叉熵损失函数、目标检测中常用的Smooth L1损失函数。其中还会涉及到梯度消失、梯度爆炸等问题:ESM均方误差+Sigmoid激活函数会导致学习缓慢;Smooth L1损失是为了解决梯度爆炸问题。仅供参考。二、均方误差损失2.1 均方差损失函数的定义:均方差损失函数常用在最小二乘...
2018-05-27 11:01:58 81580 3
原创 Yolov1原理及实现
一、引言目前的检测系统通过重用分类器来执行检测。为了检测目标,这些系统为该目标提供一个分类器,在测试图像的不同的位置和不同的尺度上对其进行评估。像deformable parts models(DPM)这样的系统使用滑动窗口方法,其分类器在整个图像上均匀间隔的位置上运行。最近的方法,如R-CNN使用region proposal策略,首先在图像中生成潜在的边界框(bounding box),然后在...
2018-05-23 16:43:35 18951 19
原创 ubuntu安装clions和opencv
一、安装clions到官网下载安装包:点击下载解压文件到当前文件夹:tar -zxvf clion-2019.1.3.tar.gz 进入解压后的文件夹,运行.sh文件即开始安装过程cd clion-2019.1.3/bin/ sh ./clion.sh 然后一直点击继续就可完成安装。二、安装opencv到官网进行下载:点击下载,选择相应的版本,然后...
2019-05-12 19:20:38 2543 3
原创 文本检测数据集制作及xml转换为txt
一、标注工具rolabelImgrolabelImg和labelimg差不多,只是在rolabelImg中可以画旋转的矩形,下载地址rolabelImg具体操作如下:进入这个目录下,输入cmd进入终端:依次输入以下代码将会启动程序pyrcc5 -o resources.py resources.qrcpython labelImg.py接下来就是标记了,画出第一...
2019-05-07 17:04:55 4538
原创 Keras 多输入和混合数据
一、简介这一节将学习如何定义能够接受多个输入的Keras架构,包括数字,分类和图像数据。 然后,我们将在此混合数据上训练单个端到端网络。二、从视觉和文本特征估算房价论文地址:House price estimation from visual and textual features数据集下载:Dataset大多数现有的自动房价估算系统仅依赖于一些文本数据,例如其邻近区域和房间...
2019-03-18 17:06:08 2799 3
原创 图像处理常用的颜色空间
1、BGR颜色空间所具有的特性如下:1.这是一个加色空间,通过B,G,R,之间的线性组合获得颜色。2.三通道通过撞击表面的光亮相关联。2、HSV颜色空间HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。、这个模型中颜色的参数分别是:色调(H),饱...
2019-03-18 10:01:13 6465
原创 EAST自然场景文本检测的实现
一、概述最近,提取和理解自然场景中包含的文本信息变得越来越重要和受欢迎,ICDAR系列竞赛的前所未有的大量参与者和NIST推出的TRAIT 2016评估证明了这一点。文本检测作为后续过程的先决条件,在文本信息提取和理解的整个过程中起着至关重要的作用。以前文本检测方法已经在各种基准测试中获得了很好的表现这个领域。文本检测的核心是区分文本和背景的功能设计。传统上,功能是手动设计的在深度学习中捕获场...
2019-03-08 18:30:44 2451
原创 Windows下pip换成清华源
1.进入C盘下用户的文件夹:2.新建一个pip文件夹,在该文件夹下新建一个配置文件,文件内容如下:[global]timeout = 6000index-url = https://pypi.tuna.tsinghua.edu.cn/simpletrusted-host = pypi.tuna.tsinghua.edu.cn3.将文件保存为ini格式,如下图:4.进...
2019-03-07 15:45:32 9266
原创 图像分割之segnet
一、算法介绍SegNet网络结构如下图所示,Input为输入图片,Output为输出分割的图像,不同颜色代表不同的分类。语义分割的重要性就在于不仅告诉你图片中某个东西是什么,而且告知你他在图片的位置。我们可以看到是一个对称网络,由中间绿色pooling层与红色upsampling层作为分割,左边是卷积提取高维特征,并通过pooling使图片变小,SegNet作者称为Encoder,右边是反卷积...
2018-12-04 16:35:39 5668 9
原创 深度学习之Numpy
一、简介NumPy是Python中科学计算的基础软件包。它是一个提供多了维数组对象,多种派生对象(如:掩码数组、矩阵)以及用于快速操作数组的函数及API,它包括数学、逻辑、数组形状变换、排序、选择、I/O 、离散傅立叶变换、基本线性代数、基本统计运算、随机模拟等等。NumPy包的核心是ndarray对象。它封装了python原生的同数据类型的n维数组,为了保证其性能优良,其中有许多操作都是代码...
2018-11-19 21:45:39 589
原创 hog+svm训练自己的分类器
一、原理简述HOG: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征. SVM: (Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识...
2018-09-03 20:58:02 11633 21
原创 随机森林
一、随机森林的定义 作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。如果接触过决策树(Decision Tree)的话,那么会很容易理解什么是随机森林。随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基...
2018-07-03 15:30:10 1314
原创 导向滤波的原理及实现
一、双边滤波双边滤波很有名,使用广泛,简单的说就是一种同时考虑了像素空间差异与强度差异的滤波器,因此具有保持图像边缘的特性。先看看我们熟悉的高斯滤波器:其中W是权重,i和j是像素索引,K是归一化常量。公式中可以看出,权重只和像素之间的空间距离有关系,无论图像的内容是什么,都有相同的滤波效果。再来看看双边滤波器,它只是在原有高斯函数的基础上加了一项,如下其中 I 是像素的强度值,所以在强度差距大的地...
2018-06-12 17:29:45 4780 1
原创 tensorflow的模型保存与恢复
一、模型保存与恢复1.模型保存saver = tf.train.Saver()2.模型恢复restore(self, sess, save_path)二、模型的训练此次用比较简单的卷积网络训练cifar10,实现图像的分类,今天的重点不在训练的网络结构上,模型的保存和恢复不仅可以保留上次的训练数据继续训练,还可以快速呈现之前的训练结果,话不多说下面上代码。import tensorflow as ...
2018-06-01 17:33:45 524
原创 opencv 仿射变换和透视变换
一、话说仿射变换和透视变换对于平面区域,有两种方式的几何转换:一种是基于2×3矩阵进行的变换,叫仿射变换;另一种是基于3×3矩阵进行的变换,叫透视变换或者单应性映射。关于仿射变换和透射变换的矩阵变换,这篇博文不做重点讨论,因为图像本质就是矩阵,对矩阵的变换就是对图像像素的操作,很简单的数学知识。仿射变换可以形象的表示成以下形式。一个平面内的任意平行四边形ABCD可以被仿射变换映射为另一个平行四边形...
2018-05-15 10:09:13 6559
原创 opencv fast特征点检测
一、话说FastFAST算法的思想是,若某像素与其周围邻域内足够多的像素点相差较大,则该像素可能是角点。即当你发现周围人的表演跟你不同时,你就要考虑下是不是走错片场了。在FAST算法中有一个重要的区间:在这个区间中,像素会过亮或过暗,在接下来步骤讲解中会用到。二、原理1确定候选角点某个像素 ,其像素值为 ,以 为圆心,半径为3,确定一个圆,圆上有16个像素,记为 。确定一个阈值,记为 。...
2018-05-13 11:21:13 2303
转载 语义分割发展小结
一、话说语义分割语义分割方法在处理图像时,具体到像素级别,也就是说,该方法会将图像中每个像素分配到某个对象类别。下面是一个具体案例。左边为输入图像,右边为经过语义分割后的输出图像。该模型不仅要识别出摩托车和驾驶者,还要标出每个对象的边界。因此,与分类目的不同,相关模型要具有像素级的密集预测能力。目前用于语义分割研究的两个最重要数据集是VOC2012和MSCOCO。VOC2012:点击打开链接MSC...
2018-05-09 20:17:06 6997 1
转载 opencv 彩色图像的高斯反向投影
一、话说反向投影图像反向投影的最终目的是获取ROI然后实现对ROI区域的标注、识别、测量等图像处理与分析,是计算机视觉与人工智能的常见方法之一。图像反向投影通常是彩色图像投影效果会比灰度图像效果要好,原因在于彩色图像带有更多对象细节信息,在反向投影的时候更加容易判断、而转为灰度图像会导致这些细节信息丢失、从而导致分割失败。最常见的是基于图像直方图特征的反向投影。我们这里介绍一种跟直方图反向投影不一...
2018-05-07 20:50:41 500
原创 darknet的实现
一、下载与安装下载网络与权重文件:点击打开链接darkflow实现了将darknet翻译成tensorflow,可以用tensorflow加载darknet训练好的模型,并使用tensorflow重新训练,输出tensorflow graph模型,用于移动设备。dark flow需要安装的依赖库有numpy,tensorflow,opencv,python等。打开下载好的文件夹,里面有如下文件:在...
2018-05-05 21:13:11 2389 2
原创 YOLOv2
一、话说YOLO1.1 YOLOv1YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。每个格子预测B个bounding box及其置信度(confidence score),以及C个类别概率。bbox信息(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,均被归一化.置信度反映是否包含物体以及包...
2018-05-05 19:23:55 800
原创 opencv mean-shift图像分割
一、话说mean-shift均值漂移算法是一种通用的聚类算法,它的基本原理: 对于给定的一定数量样本,任选其中一个样本,以该样本为中心点划定一个圆形区域,求取该圆形区域内样本的质心,即密度最大处的点,再以该点为中心继续执行上述迭代过程,直至最终收敛。可以利用均值偏移算法,可实现彩色图像分割。 (本质是经过迭代,将收敛点的像素值代替原来的像素值,从而去除了局部相似的纹理,同时保留了边缘等差异较大的特...
2018-05-05 10:34:27 1416
原创 opencv Kmeans之图像分割
一、话说kmeansKMeans算法MacQueen在1967年提出的,是最简单与最常见数据分类方法之一并且最为一种常见数据分析技术在机器学习、数据挖掘、模式识别、图像分析等领域都用应用。如果从分类角度看KMeans属于硬分类即需要人为指定分类数目,而MeanSift分类方法则可以根据收敛条件自动决定分类数目。从学习方法上来说KMeans属于非监督学习方法即整个学习过程中不需要人为干预的学习方法,...
2018-05-04 10:07:20 868
原创 opencv 无缝克隆
一:API函数介绍OpenCV3.x的图像计算模块多了新算法API-无缝克隆(Seamless Cloning),主要是针对图像编辑,局部修改等应用场景实现迁移对象与原图像场景的无缝克隆。相关函数与参数说明如下:void seamlessClone( InputArray src, InputArray dst, InputArray mask, Point p, OutputArray blen...
2018-05-03 11:21:02 1347
原创 opencv 浅谈图像修复
一、话说图像修复在实际应用中,我们的图像常常会被噪声腐蚀,这些噪声或是镜头上的灰尘或水滴,或是旧照片的划痕,或者是图像遭到人为的涂画(比如马赛克)或者图像的部分本身已经损坏。如果我们想让这些受到破坏的额图片尽可能恢复到原样,Opencv能帮我们做到吗?OpenCV真的有这个妙手回春的功能!别以为图像修补的工作只能用PS或者美图秀秀那些软件去做,其实由程序员自己写代码去做更加高效!图像修复技术的原理...
2018-04-24 10:51:11 4204 1
原创 opencv 透视变换
一、话说透视变换 透视变换是将图像从一个视平面投影到另外一个视平面的过程,所以透视变换也被称为投影映射(Projection Mapping)。我们知道在图像的仿射变换中需要变换矩阵是一个2x3的两维平面变换矩阵,而透视变换本质上空间立体三维变换,根据其次坐标方差,要把三维坐标投影到另外一个视平面,就需要一个完全不同的变换矩阵M,所以这个是透视变换跟OpenCV中几何仿射变换最大的不同。 Open...
2018-04-22 11:03:41 24708 5
原创 opencv 漫水填充
一、话说漫水填充漫水填充是一种用特定的颜色填充连通区域,通过设置可连通像素的上下限以及连通方式达到不同的填充效果的方法。漫水填充经常用来标记或者是分离图像的一部分,以便对其进行进一步处理货分析,也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或者只处理指定的像素点,操作的结果总是某个连续的区域。他的基本作用有两个:1、标记或分离目标区域;2、获取掩码区域,只处理掩码指定的像素点,加速处理过程...
2018-04-21 10:50:27 2810 1
原创 opencv LBP特征与行人识别
一、话说LBP特征局部二值模式(Local Binary Pattern, LBP)是一种有效的纹理描述算子,它具有旋转不变性和灰度不变性的显著的有点。已经广泛的应用于纹理分类、纹理分割、人脸图像分析等领域。本文就LBP算法做简单的讲解,并在opencv中加以实现。二、LBP算子局部二值模式是一种灰度范围内的纹理描述方式。算法的思想是利用结构化思想提取窗口特征,再利用统计化做最终整体特征的提取。最...
2018-04-20 11:20:30 3147 1
原创 opencv 直线拟合
一、话说直线拟合霍夫直线检测容易受到线段形状与噪声的干扰而失真,这个时候我们需要另辟蹊径,通过对图像进行二值分析,提取骨架,对骨架像素点拟合生成直线,这种做法在一些场景下非常有效,而且效果还比较好。前面已经讲过霍夫变换,这里就不再叙述,直接上干货。二、距离变换距离变换是二值图像处理与操作中常用手段,在骨架提取,图像窄化中常有应用。距离变换的结果是得到一张与输入图像类似的灰度图像,但是灰度值只出现在...
2018-04-18 15:12:13 16289 5
原创 opencv 角点检测
一、话说角点三种基本的图像特征边缘,对应下图黑框部分角点,对应下图红框部分团块,对应下图蓝框部分下面介绍三种经典的角点检测的算法(前方公式高能,非战斗人员可直接跳到API和Demo部分)Harri算法Shi-Tomasi算法亚像素级角点检测二、Harri算法Harri算法作为一种角点检测的经典算法,核心思想还是对像素进行梯度运算,总结角点处梯度的特征,前面讲到了XY角点的梯度特征,小林就以这个特征...
2018-04-15 11:04:51 1477
原创 Numpy 入门 二
参考来源:点击打开链接本文主要分为以下几个部分:Numpy--数组域的数组 (Array from numerical ranges)Numpy--索引和分片 (Indexing & slicing)Numpy--高级索引 (Advanced indexing)Numpy--广播(Broadcasting)Numpy--数组上的迭代 (Iterating over array)Numpy-...
2018-04-12 10:33:26 263
原创 Numpy 入门 一
参考来源:点击打开链接本文主要分为以下几个部分:Numpy--简介 (Introduction)Numpy--Ndarray对象 (Ndarray object)Numpy--数据类型 (Data types)Numpy--数组属性 (Array attributes)Numpy--数组创建例程 (Array creation routines)Numpy--从现有数据创建数组 (Array fr...
2018-04-12 10:06:26 418
转载 如何学习opencv
本文授权转载自贾老师的微信公众号"OpenCV学堂"。更多信息可扫描文末二维码关注公众号(知乎已将二维码转换成链接,可自动跳转到微信)。一:学习OpenCV三个阶段人工智能带火了计算机视觉的人才需求,作为计算机视觉应用开发框架OpenCV也越来越受到欢迎,市场需求大增,很多人听说了之后就迫不及待的想加入这波大军,这其中很多人他可能懂应用编程,但是计算机视觉零基础,一般都是我要识别个什么,而且还有时...
2018-04-12 09:20:03 23120 3
转载 tensorflow常用函数
摘要:本文介绍了tensorflow的常用函数。1、tensorflow常用函数TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU。一般你不需要显式指定使用 CPU 还是 GPU, TensorFlow 能自动检测。如果检测到 GPU, TensorFlow 会尽可能地利用找到的第一个 GPU 来执行操作.并行计算能让代价大的算法计算加速执...
2018-04-11 16:33:31 239
原创 opencv 提取直线与验证码
一、原理图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。我们可以通过使用两个最基本的形态学操作 – 膨胀与腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。膨胀:输出的像素值是结构元素覆盖下输入图像的最大像素值。腐蚀:输出的像素值是结构元素覆盖下输入图像的最小像素值。二、结构元素上述膨胀...
2018-04-11 10:36:53 920
原创 opencv 浅谈反向投影
一、话说反向投影首先,讲解下它的英文名,projection除了项目工程的意思外,还有投影的意思,数学中也用 表示投影。反向投影其实是直方图运算的逆过程。直方图运算是统计每个灰度值对应的像素个数,而反向投影则是将像素个数回送到该像素个数对应灰度区间的像素位置。来看一个例子。假设有下面这个图像矩阵:然后计算直方图,将灰度值划分为如下四个区间:[0,2] [3,5] [6,7] [8,1...
2018-04-09 10:55:07 2030 1
原创 opencv 形态学处理
一、话说形态学图像形态学中的几个基本操作:腐蚀、膨胀、开操作、闭操作。1.1 腐蚀结构A被结构B腐蚀的定义为, A⨀B={z|(B)z⊆A}A⨀B={z|(B)z⊆A}可以理解为,移动结构B,如果结构B与结构A的交集完全属于结构A的区域内,则保存该位置点,所有满足条件的点构成结构A被结构B腐蚀的结果。 1.2 膨胀结构A被结构B膨胀的定义为, A⨁B={z|(B^)z⋂A≠∅}A⨁B={z|(B^...
2018-04-06 10:11:35 9795 2
原创 深度学习之图片风格转换
一、话说风格转换以目前的深度学习技术,如果给定两张图像,完全有能力让计算机识别出图像具体内容。而图像的风格是一种很抽象的东西,人眼能够很有效地的辨别出不同画家不同流派绘画的风格,而在计算机的眼中,本质上就是一些像素,多层网络的实质其实就是找出更复杂、更内在的特性(features),所以图像的风格理论上可以通过多层网络来提取图像里面可能含有的一些有意思的特征。 根据前面第一篇论文中提出...
2018-04-05 19:46:33 5050 3
原创 opencv 轮廓
一、话说轮廓关于轮廓,我们一定能想起前面的边缘检测,但直接进行边缘检测后会出现一个尴尬的情况:只计算出了边缘,但对机器来说不知道哪些是物体的轮廓,而很多时候我们确实肥肠希望能找出物体的轮廓。轮廓检测能较好的化解这一尴尬的情况。对于轮廓,官方指导中给出了这样的解释:“轮廓可以理解为图像中具有相同颜色或密度的位于边界的连续点的集合,轮廓是形状分析和对象识别的有利工具。”在OpenCV中,我们常用fin...
2018-04-05 12:03:42 585
原创 opencv 霍夫变换
一、霍夫线变换坐标系的角度:说起直线,我们会想到笛卡尔坐标系(即x-y坐标系)下的直线方程,细分之则有点斜式、截距式等, 是我们最熟悉的一种。但直线垂直于x轴时斜率 不存在,这给我们带来许多不便之处。这时极坐标就carry全场了,它与笛卡尔坐标系的转换关系: ,变形可得 , 为原点到直线的距离,也常用 表示,示意图如下:由此极坐标下,直线可用 表示。这就启发我们,同一直线上的点具有相同...
2018-04-04 11:20:12 704
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人