![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Machine learning
文章平均质量分 89
coordinate_blog
这个作者很懒,什么都没留下…
展开
-
使用QT和opencv3.3进行目标检测(YOLO)
这篇文章先放个图,准备有时间写 我这里使用的是YOLO2的方法实现的,没有使用cudnn加速,所以速度上慢了点,不过对于高端的显卡来说,我觉得可以做到视屏级的图片产生速度。并且我这里并没有训练好数据,只是一个测试,但是效果还不错。动态链接库文件YOLOv2 dll cpuYOLOv2 dll 头文件前面一个是动态链接库文件,后面是对应的头文件。动态链接库文件,要在QT...原创 2017-11-11 09:47:19 · 8808 阅读 · 22 评论 -
YOLOv2源码分析(六)
文章全部YOLOv2源码分析我们再次回到了parse_network_cfg函数 //parse_network_cfg else if(lt == ACTIVE){ l = parse_activation(options, params); }接着看后面这个parse_activation函数0x01 parse_activa原创 2017-12-27 14:36:00 · 3752 阅读 · 3 评论 -
tf.identity的作用
还是从一个例子开始讲起x = tf.Variable(0.0)x_plus_1 = tf.assign_add(x, 1)#对x进行加1操作#tf.control_dependencies的作用是:在执行y=x前,先执行x_plus_1with tf.control_dependencies([x_plus_1]): y = xinit = tf.initialize_al...原创 2017-12-14 15:40:26 · 9189 阅读 · 4 评论 -
Ubuntu17.04+1080ti+cuda9+cudnn7+tensorflow1.4/1.3配置
在此之前你应该已经装好了Ubuntu17.04,如果你对于装系统有什么疑问的话,请看这篇Dell Alienware Aurora R6 (1080ti)安装Ubuntu17.04记录首先我们要先安装pip源sudo apt-get install python-pip接着cd到根目录,使用ls -la这个时候应该可以看到.config文件夹,进入这个文件夹(cd .c...原创 2017-11-16 09:58:08 · 6263 阅读 · 6 评论 -
RefineDet论文笔记
论文地址:Single-Shot Refinement Neural Network for Object Detection项目地址:RefineDet0x01 Abstract当前的目标检测网络主要分为两大类:single-stage:SSD、YOLO、YOLO9000two-stage:Faster RCNN 、 R-FCN、Mask R-CNNsingle-s原创 2018-01-17 10:24:35 · 7755 阅读 · 1 评论 -
Ubuntu16.04+1080ti+cuda9.0+cudnn7.04+tensorflow1.6配置
关于如何安装Ubuntu16.04以及显卡驱动、网卡驱动问题,你可以阅读这三篇篇Dell Alienware Aurora R6 (1080ti)安装Ubuntu17.04记录(解决显卡驱动、系统安装)Ubuntu17.04+1080ti+cuda9+cudnn7+tensorflow1.4/1.3配置(解决cuda9和tensorflow1.4/1.3不兼容)深度学习主机配置:Ubuntu16.0原创 2018-03-17 15:49:32 · 4012 阅读 · 0 评论 -
Iterative Visual Reasoning Beyond Convolutions论文笔记
论文地址:Iterative Visual Reasoning Beyond Convolutions0x00 论文简述我们碰到过很多这样的问题:如果一个物体很小,或者目标很模糊,或者这个物体被遮住一部分,那么我们在做目标检测时,我们现在的算法会忽略这些目标。但是人类可以通过周边的事物以及物体的大致形状推断出这个目标的类型。如图: 上图左上角中的窗户,从左往右第一个窗户,...原创 2018-04-07 20:19:10 · 2600 阅读 · 1 评论 -
YOLOv3论文笔记
论文地址:YOLOv3: An Incremental Improvement项目地址:darknet0x00 Foreword今天看到YOLOv3发布的信息,第一个反应就是,我×,我之前的模型还没有训练好,现在又出来一个(T_T)。不过我对于YOLOv3的发布还是很激动的,因为我之前和大多数人一样,对于single-stage报以很小的期望了,但是今天的YOLOv3让我又重新...原创 2018-03-26 18:56:37 · 6319 阅读 · 5 评论 -
目标检测中的mAP计算(包括代码)
0x00 基本概念在说明mAP这个概念之前,我们先要说一下两个新的概念:precision和recall。这是论文中经常提及的两个概念。我们举这样的一个例子:我们现在有一个检测狗的任务,但是这个任务数据中包含了猫。那么我们这个时候就有一个问题,我们怎么描述一个物体被检测出来呢?为此,我们引入了IOU这个概念目标检测中的IOU计算问题我们规定IOU > 0.5表示物体被检测出来...原创 2018-04-10 09:04:25 · 26879 阅读 · 16 评论 -
最简单的K-means算法原理和实践教程
0x00 算法简介K-means算法是传统的机器学习算法中非监督学习算法中的一种。算法思想:从空间中K个点为中心进行分类,对最靠近他们的对象归类。通过不断的迭代,依次得到不同类的中心,直到最后所有类的中心不再变化。0x01 算法流程输入:k,data[n]。 输出:满足方差最小标准的k个聚类。选择k个初始中心点,例如c[0]=X[0] , … , c[k-1]=X[k...原创 2018-04-02 19:57:41 · 1027 阅读 · 0 评论 -
最简单的K-means++算法原理和实践教程
在之前的最简单的K-means算法原理和实践教程最后我提到了这样的一个问题,你可以通过一些实验发现,K-means算法的最后聚类结果和初始化k个中心的位置有着极大的关系。而我们在前文中提到过一些不同的初始化方法(前文中使用的是第一种初始化方法)。我们这里的K-mean++算法使用的初始化方法,实际是第三种:随机地选择第一个点,或取所有点的质心作为第一个点。然后,对于每个后继初始质心,选择离已经选取原创 2018-04-03 16:05:06 · 3378 阅读 · 0 评论 -
ResNet理论基础与具体实现(详细教程)
论文地址:Deep Residual Learning for Image Recognition Identity Mappings in Deep Residual Networkspytroch源码地址:resnet0x00 前言ResNet是2015年就提出的网络结构,中文名字叫作深度残差网络,主要作用是图像分类。现在在图像分割、目标检测等领域都有很...原创 2018-05-18 09:10:02 · 7669 阅读 · 2 评论 -
YOLOv2源码分析--reorg layer
文章全部YOLOv2源码分析reorg layer中最关键的代码如下void reorg_cpu(float *x, int w, int h, int c, int batch, int stride, int forward, float *out){ int b,i,j,k; int out_c = c/(stride*stride); for(b = 0; b < b原创 2018-01-02 09:25:02 · 8215 阅读 · 8 评论 -
tf.estimator 快速上手
TensorFlow的高级机器学习API(tf.estimator)可以轻松配置,训练和评估各种机器学习模型。 在本教程中,您将使用tf.estimator构建一个神经网络分类器,并在Iris数据集上对其进行训练,以基于萼片/花瓣几何学来预测花朵种类。 您将编写代码来执行以下五个步骤:将包含Iris训练/测试数据的CSV加载到TensorFlow数据集中构建一个神经网络分类器使用训练数据训练模翻译 2017-12-07 16:56:24 · 15345 阅读 · 3 评论 -
TensorBoard可视化学习
您将使用TensorFlow进行的计算 - 如训练大量的深度神经网络 - 可能会很复杂且令人困惑。 为了便于理解,调试和优化TensorFlow程序,我们包含了一套名为TensorBoard的可视化工具。 您可以使用TensorBoard来显示您的TensorFlow图形,绘制关于图形执行的量化指标,并显示其他数据,如图像。 当完全配置TensorBoard时,看起来像这样: 序列化数据Ten翻译 2017-12-07 16:22:02 · 852 阅读 · 0 评论 -
深度学习主机配置:Ubuntu16.04+1080ti+cuda8+cudnn6+tensorflow1.3
请先阅读这篇Ubuntu16.04+1080ti+cuda9.0+cudnn7.04+tensorflow1.6配置,我相信会对你有帮助的。由于在Ubuntu17.04+1080ti+cuda9+cudnn7+tensorflow1.4/1.3配置后,工作过程中出现了一些问题,比较好的做法是等待tensorflow1.5的发布,但是我没有时间去等QAQ。所以重装系统,QAQ。和之前装机的方...原创 2017-11-28 15:45:42 · 2893 阅读 · 0 评论 -
Dell Alienware Aurora R6 (1080ti)安装Ubuntu17.04记录
写这篇文章的时候,我内心是非常舒畅的,电脑是昨天下午到的,今天终于把Ubuntu17.04配置好了。希望我这篇文章对各位有一些启发。首先我要强调,网络上的一些指导性教程都是有时限的,也就是说可能对你的机器不适用,但是如果你理解了其中的原理的话,万变不离其宗!!!bios的设置先说一下第一个比较头疼的问题,bios的设置(我这里是F2打开)。secure boot选项要设置为disabled,至少我是原创 2017-11-16 08:30:20 · 5743 阅读 · 8 评论 -
TensorBoard计算图可视化
TensorFlow计算图功能强大但复杂。 图表可视化可以帮助您理解和调试它们。 这是一个可视化工作的例子。 命名空间和节点典型的TensorFlow图可能有成千上万个节点 - 太多的节点很难一次看到,甚至无法使用标准的图形工具进行布局。 为简化起见,变量名声明在作用域内,可视化使用这些信息来定义图中节点上的层次结构。 默认情况下,只显示该层次结构的顶部。 下面是一个使用tf.name_sco翻译 2017-12-09 08:38:08 · 2741 阅读 · 0 评论 -
Tensorflow学习始于MNIST
本教程面向刚学习机器学习和TensorFlow的读者。 如果您已经知道MNIST是什么,以及softmax(multinomial logistic)回归是什么,那么您可能更喜欢这个速度更快的教程。 确保在开始任何教程之前安装TensorFlow。当学习如何编程时,首先要做的就是打印“Hello World”。 类似于编程中的Hello World,机器学习对应的是MNIST。MNIST是一个简单的翻译 2017-12-03 18:32:44 · 676 阅读 · 0 评论 -
深入研究MNIST
加载MNIST数据如果您正在复制和粘贴本教程的代码,请从这里开始,下面这两行代码将自动下载并读取数据:from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data', one_hot=True)这里mnist是一个轻量级数据集,它将训练、验证和测试集存储翻译 2017-12-03 18:34:08 · 5779 阅读 · 3 评论 -
YOLOv2源码分析(五)
0x01 make_convolutional_layer终于又回到了make_convolutional_layer这个函数//make_convolutional_layer if(binary){ l.binary_weights = calloc(l.nweights, sizeof(float)); l.cweights = calloc(l.nwe原创 2017-12-22 17:47:46 · 2641 阅读 · 3 评论 -
YOLOv2源码分析(四)
0x01 backward_convolutional_layervoid backward_convolutional_layer(convolutional_layer l, network net){ int i, j; int m = l.n/l.groups; //每组卷积核的个数 int n = l.size*l.size*l.c/l原创 2017-12-21 17:03:20 · 2638 阅读 · 6 评论 -
YOLOv2源码分析(三)
接着上一讲没有讲完的make_convolutional_layer函数0x01 make_convolutional_layer //make_convolutional_layer l.forward = forward_convolutional_layer; l.backward = backward_convolutional_layer; l.update原创 2017-12-20 10:13:30 · 3310 阅读 · 17 评论 -
YOLOv2源码分析(一)
0x00 写在开头写这一系列文章主要是想解析yolov2的具体实现,因为在作者的论文中有很多地方没有进行详细表述,所以不看源代码的话很难知道幕后具体做了什么。另一点是学习一下别人写一个网络的思路,因为你要知道作者的代码相当于自己写了一个小型框架(函数的接口设计的可能不是非常好)。0x01 从main函数开始int main(int argc, char **argv){ //test_re原创 2017-12-18 11:35:47 · 6491 阅读 · 22 评论 -
YOLOv2源码分析(二)
0x01 parse_network_cfg我们继续前面没有说完的parse_network_cfg //parse_network_cfg node *n = sections->front; if(!n) error("Config file has no sections"); 我么先要了解一下list结构typedef struct list{ int s原创 2017-12-19 10:03:45 · 4266 阅读 · 3 评论 -
目标检测中的IOU计算问题
在目标检测中我们有一个基本的操作,形象表述就是画框框,我们要通过我们画的框把我们要标注的目标给框出来,如下面那个狗。我们既可以说这个狗被框出来了,但是也可以说没有,因为你可以观察到左边和上面是存在一些缝隙的。 那问题就出现了。什么样的框才算把目标给框住了呢?这个时候就有了IOU这个评价指标。什么是IOU? IOU想要描述的时黄框(检测到的结果)和绿框(标注的结果)重合的程度。用公式表示为原创 2017-12-15 18:03:41 · 17334 阅读 · 3 评论 -
FPN(特征图金字塔网络)理论基础与具体实现
论文地址:Feature Pyramid Networks for Object Detection项目地址:FPN_pytorch0x00 前言我们在做目标检测和超分辨率重建等问题的时候,我们一般是对同一个尺寸的图片进行网络训练。我们希望我们的网络能够适应更多尺寸的图片,我们传统的做法使用图像金字塔,但是这种做法从侧面提升了计算的复杂度,我们希望可以改善这个问题,所以本文就提出了...原创 2018-05-19 17:02:03 · 50494 阅读 · 7 评论