自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jiongnima的博客

博主实名:张宇潇,硕士毕业于电子科技大学,现就职于海康威视。本博客不定期分享一些工程项目与科研的记录与经验,欢迎订阅与分享。

原创 PyTorch经验分享:新手如何搭建PyTorch程序

笔者从2016年开始接触深度学习,2017年开始利用深度学习进行的一些工程与科研项目中,笔者一直使用的是Caffe与TensorFlow。在2018-2019年,PyTorch已经成为热度越来越高的主流深度学习框架,笔者也对PyTorch进行了尝试与摸索。本篇博客主要讲解如何搭建基础的PyTorch程序,欢迎阅读与分享!

2019-12-01 15:07:26 698

原创 全天候道路图像分割数据集UAS(UESTC All-Day Scenery)介绍

UAS数据集简介UAS数据集全称UESTC All-Day Scenery,旨在提供全天候道路图片以及对应的二值标签,标示图像中的可行区域与不可行区域。整个数据集包含四种天候(黄昏天候,夜间天候,下雨天候和艳阳天候)共计6380张图像。其中,我们1使用海康威视DS-2CD2155F(D)-I(W)S采集黄昏天候,夜间天候,艳阳天候的道路图像;使用HUAWEI Mate 8采集下雨天候的道路...

2018-07-20 09:49:23 4416 21

原创 详细的Faster R-CNN源码解析之RPN源码解析

本篇博文逐行讲解了Faster R-CNN中的RPN代码。向大家讲解了RPN中的难点:如何生成anchor,如何对anchor进行前景背景的判断,如何为anchor找到坐标变换值。良心干货,欢迎阅读与分享~

2018-04-02 22:08:09 14419 31

原创 实例分割模型Mask R-CNN详解:从R-CNN,Fast R-CNN,Faster R-CNN再到Mask R-CNN

   Mask R-CNN是ICCV 2017的best paper,彰显了机器学习计算机视觉领域在2017年的最新成果。在机器学习2017年的最新发展中,单任务的网络结构已经逐渐不再引人瞩目,取而代之的是集成,复杂,一石多鸟的多任务网络模型。Mask R-CNN就是典型的代表。本篇大作的一作是何凯明,在该篇论文发表的时候,何凯明已经去了FaceBook。我们先来看一下,Mask R-CNN取得了...

2018-01-21 10:46:47 68048 55

原创 干货!caffe源码深入学习9:caffe框架神经网络反传代码解析(三)之contrastive_loss_layer源码解析

本篇博客是Caffe深度学习梯度反传代码解析的第3篇。从本篇博客开始,在对Caffe框架中的反传代码进行解析时,笔者将解析更复杂的实现代码,比如包含可训练参数的层与复杂求导过程的层。本片博客解析了对比损失层,即contrastive_loss_layer,对比损失是在人脸验证,图像检索中使用的非常广泛的一个层。希望给大家带来收获,欢迎阅读与分享!

2019-10-13 14:57:11 255

原创 caffe源码深入学习8:caffe框架深度神经网络反传代码解析(二)之pooling层源码解析

caffe源码深入学习8:caffe框架深度神经网络反传代码解析(二)之pooling层源码解析写在前面池化层源码及注释池化层源码解析最大池化平均池化写在前面在上一篇博客,即重启caffe源码深入学习7中,笔者从最简单的激活层开始,进行了caffe源码的解析,尤其讲述了梯度反传的部分。在本篇博客中,笔者将解析另一个基础层的源码,即池化层,池化层与激活层类似,其中不包含任何可训练参数。caffe...

2019-10-07 21:23:22 579

原创 重启caffe源码深入学习7:caffe框架深度神经网络反传代码解析(一)之ReLU层源码解析

近年来,TensorFlow和PyTorch等安装简洁,使用灵活,不需要构造反传代码的深度学习框架越来越多地走进了深度学习研究者的视野,为大家提供了很多便捷。不过同时,也造就了很多**调包侠**,调包侠们既编程能力有限,也不明了底层原理,仅仅知道调包解决问题,脱离深度学习框架之后无法解决深层次的深度学习问题。因此,笔者重重启caffe源码解析博客,为大家分享深度学习底层实现相关干货!

2019-10-03 23:53:51 275

原创 干货!如何修改在TensorFlow框架下训练保存的模型参数名称

干货!如何修改在TensorFlow框架下训练保存的模型参数名称为何要修改TensorFlow训练的模型参数名?如何修改TensorFlow训练保存的参数名?为何要修改TensorFlow训练的模型参数名?在TensorFlow框架下的深度学习程序中,我们将训练得到的模型参数进行保存。在我们进行某些训练任务时,也许要从已经保存的预训练模型中载入参数,或者将TensorFlow框架训练得到的参数...

2019-01-24 21:09:27 5902 15

原创 TensorFlow框架下的残差网络(ResNet)逐行代码解析,以及如何在finetune时调节输出特征的尺度

TensorFlow框架下的残差网络(ResNet)逐行代码解析,以及如何在finetune时调节输出特征的尺度TensorFlow残差网络代码解析与输出特征尺度调节ResNet代码解析功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释...

2019-01-10 21:47:16 4096 8

原创 神坑警告!图像分割数据集SYNTHIA之标签读取

神坑警告!图像分割数据集SYNTHIA之标签读取神坑警告!图像分割数据集SYNTHIA之标签读取图像分割与SYNTHIA数据集简介SYNTHIA数据集图像分割标签读取神坑警告!图像分割数据集SYNTHIA之标签读取本篇博客主要阐述了如何读取SYNTHIA RAND-CITYSCAPES数据集1的图像分割标签,笔者找到并解决这个bug用了大半天,因此在本篇博客中进行记录。文末有正确的标签读取方法...

2018-12-21 11:49:37 2490 4

原创 深度学习计算机视觉图像分割领域指标mIoU(平均交并比)计算代码与逐行解析

深度学习计算机视觉图像分割领域指标mIoU(平均交并比)计算代码与逐行解析mIoU相关mIoU计算代码与逐行解析注意事项mIoU相关在计算机视觉深度学习图像分割领域中,mIoU值是一个衡量图像分割精度的重要指标。mIoU可解释为平均交并比,即在每个类别上计算IoU值(即真正样本数量/(真正样本数量+假负样本数量+假正样本数量))。在本篇博客中,笔者本想详细地列举计算公式,但是看到kangdk博...

2018-12-03 10:34:55 24976 42

原创 经验干货:使用tf.py_func函数增加Tensorflow程序的灵活性

   不知不觉,笔者接触Tensorflow也满一年了。在这一年当中,笔者对Tensorflow的了解程度也逐渐加深。相比笔者接触的第一个深度学习框架Caffe而言,笔者认为Tensorflow更适合科研一些,网络搭建与算法设置的自由度也更大,使用Tensorflow实现自己的算法也更迅速。   但是,笔者认为Tensorflow还是有不足的地方。第一体现在Tensorflow的数据机制,由于te...

2018-06-03 14:22:04 14878 39

原创 详细的Faster R-CNN源码解析之proposal_layer和proposal_target_layer源码解析

   在笔者之前的解析RPN和ROI-Pooling的博客中,已经给大家详细解析了目标检测Faster R-CNN框架中的两大核心部件。纵观整个Faster R-CNN代码,比较难和经典的部分除了上述两大模块,还有根据RPN输出的前景分数选择出roi和为选择出的roi置ground truth类别和坐标变换的代码。在本篇博客中,笔者就这两部分代码为大家做出解析。   首先是如何选择出合适的rois...

2018-05-28 15:50:28 11058 10

原创 详解GAN代码之搭建并详解CGAN代码

训练数据集:填充轮廓->建筑照片下载链接:https://pan.baidu.com/s/1xUg8AC7NEXyKebSUNtRvdg 密码:2kw1   CGAN是Conditional Generative Adversarial Nets的缩写,也称为条件生成对抗网络。条件生成对抗网络指的是在生成对抗网络中加入条件(condition),条件的作用是监督生成对抗网络。本篇博客通过简单...

2018-05-05 22:16:00 21207 110

原创 详解GAN代码之简单搭建并详细解析CycleGAN

训练数据集1:斑马与马下载链接:https://pan.baidu.com/s/1Zf6hvoDMsMi51WIPEOoqzg 密码:gua5训练数据集2:橘子与苹果下载链接:https://pan.baidu.com/s/1R0s2eaBxMCozbCCs7_1Juw 密码:z9y1训练数据集3:填充轮廓->建筑照片下载链接:https://pan.baidu.com/s/1xUg8AC7...

2018-04-29 21:29:06 23590 157

原创 详解GAN代码之逐行解析GAN代码

训练数据集:手写数字识别下载链接:https://pan.baidu.com/s/1d9jX5xLHd1x3DFChVCe3LQ 密码:ws28   在本篇博客中,笔者将逐行解析一下NIPS 2014的Generative Adversarial Networks(生成对抗网络,简称GAN)代码,该篇文章作为GAN系列的开山之作,在近3年吸引了无数学者的目光。在2017-2018年,各大计算机顶会...

2018-04-21 21:28:53 25633 65

原创 详细的Faster R-CNN源码解析之ROI-Pooling逐行代码解析

   在笔者的上一篇博客中,解析了Faster R-CNN中的RPN代码,在本篇博客中,笔者详细地解析一下ROI-Pooling代码。为大家讲解2015年Fast R-CNN的核心贡献(ROI Pooling被Faster R-CNN沿用)ROI Pooling的实现原理。(笔者其实一年半之前就看过这个代码,只是当时没有写到博客上,感慨.jpg)   在代码解析正式开始之前,笔者声明几点:1. 本...

2018-04-20 19:45:56 9934 12

原创 实例分割初探,Fully Convolutional Instance-aware Semantic Segmentation论文解读

进入2017年之后,深度学习计算机视觉领域有了新的发展。在以往的研究中,深度神经网络往往是单任务的,比如图像分类(AlexNet, VGG16等等),图像分割(以FCN为代表的一众论文),目标检测(R-CNN,Fast R-CNN和Fatser R-CNN,以及后来的YOLO和SSD,目标检测领域已经实现多任务)。而在最新的研究中,上述的任务往往被集成了,通过一个框架完成,代表就是实例分割。先来看

2018-01-03 14:52:43 16385 4

原创 深度学习源码剖析:使用双线性插值方式初始化神经网络的可训练参数

双线性插值方法在初始化神经网络的可训练参数,Mask R-CNN和deeplab中都有使用,在本篇博客中,笔者分别借用c++和python的两种源码,与大家分享双线性插值在初始化神经网络可训练参数方面的原理,欢迎阅读与分享。

2017-11-20 08:45:39 6698 6

原创 FCN训练不收敛的原因分析和最详细的FCN训练与测试自己的数据程序配置

本文分析了FCN训练不收敛的原因并给出了解决方案。同时给出了详尽的完善的FCN训练与测试程序配置,欢迎阅读与分享。

2017-11-16 11:31:10 15760 172

原创 如何在tensorflow中判断tensor(张量)的值

本文记录了如何使用tf.cond函数去判断张量的值。

2017-11-13 20:48:36 18722 4

原创 tensorflow2caffe(4) : caffemodel的生成与tensorflow2caffe框架转换的总结

本篇是tensorflow2caffe模型转换的最终章,描述了如何生成caffemodel和对tensorflow2caffe模型转换的一些总结,欢迎阅读与分享~

2017-11-03 14:43:39 5170 24

原创 如何在tensorflow程序中对梯度进行反转

本篇博客讲述了在tensorflow框架下训练深度神经网络时,如何对参数的梯度进行反转,欢迎阅读与分享~

2017-10-30 15:34:13 2893 1

原创 tensorflow2caffe(3) : 如何将tensorflow框架下训练得到的权重转化为caffe框架下的权重参数

   在前两期专栏tensorflow2caffe(1)和tensorflow2caffe(2)中,笔者向大家介绍了caffemodel文件类型下的参数架构和如何取出tensorflow框架下训练参数。在本期中,笔者将向大家阐述,如何去将tensorflow框架下训练得到的参数转化为caffe框架下的规定格式的参数。首先,我们来捋一捋目前我们手里面已经有了哪些东西:1. 我们有自己的tenso...

2017-10-29 09:50:25 10644 61

原创 良心长文:深度学习框架的选择和有关tensorflow编程经验的分享

本文介绍了笔者接触深度学习一年以来的对于两个主流框架(caffe,tensorflow)的体会,并且分享了一些tensorflow框架下的工程经验,都是干货,欢迎大家阅读与讨论!

2017-10-25 09:59:11 4188 14

原创 tensorflow2caffe(2) : 如何在tensorflow中取出模型参数

本文是tensorflow2caffe的第二步,讲述了如何从tensorflow中提取出训练参数,分享给大家~

2017-10-24 10:12:22 6899 7

原创 tensorflow2caffe(1) : caffemodel解析,caffemodel里面到底记录了什么?

本系列开始介绍如何进行tensorflow到caffe的框架转换。由于目前介绍从tensorflow里面取出训练参数的文章比较多,可是解析caffe框架下生成的模型参数的文章比较少,本文讲解了如何可视化生成的caffemodel。

2017-06-07 22:14:24 19471 31

原创 caffe工程化实例:将caffe分类程序编译成.so文件并在程序中调用

在上一篇博客中,笔者提到了对caffe分类程序的工程化,那么本篇博客笔者就来实践一下对caffe分类的工程化。   首先进行一下需求分析:在工程中,往往是用一张图片作为输入,并返回该输入图片的分类结果,也就是说,需要把分类程序放在一个.so链接库中,并在主函数中调用该链接库。   请各位读者朋友们注意,笔者在进行实验时,还是引用了上一篇博客中提到的检测图片中是否包含岔路口的模型,因此请对实

2017-04-16 23:18:12 9514 30

原创 在c++程序中调用caffe训练完毕的模型进行分类

本文讲述了如何在c++程序中调用caffe训练好的模型进行分类,并使用cmake编译分类文件。同时附上classification.cpp解析

2017-04-16 20:39:43 21775 47

原创 nvidia jetson TX2配置caffe

本文阐述了nvidia jetson TX2配置caffe的过程

2017-04-10 23:54:37 24611 36

原创 caffe源码深入学习6:超级详细的im2col绘图解析,分析caffe卷积操作的底层实现

在本篇博客中,笔者通过绘图,详细解析了caffe中im2col的实现,分析了卷积的底层实现原理。

2017-04-08 19:26:00 16859 28

原创 caffe卷积层延伸:卷积核膨胀详细解析

在笔者的上一篇博客中,解析caffe的卷积层时,在conv_layer.cpp中有一个卷积核膨胀操作,在conv_layer.cpp的第17行有如下代码const int kernel_extent = dilation_data[i] * (kernel_shape_data[i] - 1) + 1;   上面的代码描述了卷积核的膨胀操作,我们不妨来做个假设,卷积核为3*3的,膨胀系数为

2017-04-06 22:33:09 15054 7

原创 caffe源码深入学习5:超级详细的caffe卷积层代码解析

caffe实现的卷积层是一个功能强大完整,同时也是一个相对复杂的层,涉及conv_layer.hpp,conv_layer.cpp,base_conv_layer.hpp和base_conv_layer.cpp,请读者朋友们仔细欣赏~

2017-04-04 11:00:53 12219 15

原创 实用:使用caffe训练模型时solver.prototxt中的参数设置解析

笔者之前发布了关于解析caffe的层的博客,解析caffe常用层的博客正在不断更新中。本篇博客是一个插播的博客,目的在彻底解决使用caffe训练模型时的参数设置问题,为什么要发这篇博客呢?是因为笔者最近在自定义网络时,需要构造自己的solver.prototxt,由于之前使用别人的网络时,很多设置参数都没有变,举个例子,下面是caffe官方例程中关于训练LeNet的配置参数文件:# The t

2017-03-31 19:50:26 9567 2

原创 caffe源码深入学习4:支持魔改的layer:layer.hpp与layer.cpp

到caffe源码深入学习3为止,我们解析了caffe底层的数据相关代码,了解了caffe这个深度学习框架中数据的存储与流通实现细节,那么,从本篇博客开始,笔者将开始解析更高层的代码,首先解析的是caffe中构成深度神经网络的网络层layer,在使用caffe架构的程序员眼中,各种layer就像一块一块的积木一般,可以通过搭建,拼接成各种各样好看的玩具城堡,同时,这些积木本身还支持各种魔改,在...

2017-02-20 21:26:08 1571 1

原创 caffe源码深入学习3:更底层的数据信息存取与交换代码:syncedmem.hpp和syncedmem.cpp

还记得在上一期博客中,当我们解析Blob类相关时,遇到一些成员函数如Update(),cpu_data(),mutable_gpu_data()等等,这些函数在完成对应功能的同时,调用了更多底层的函数,这些函数与Blob中的函数同名,如cpu_data(),gpu_data(),mutable_cpu_data(),mutable_gpu_data()等,在上一篇博客中的代码注释部分我们提到,这些

2017-02-19 09:53:33 1408

原创 caffe源码深入学习2:blob.hpp+blob.cpp

在caffe源码深入学习1中我们提到了caffe.cpp文件调用用户定义的solver.prototxt文件进行网络的训练,其中,网络训练的接口是train()函数,而在train()函数中,使用了Solve()这个函数接口去求解网络参数,那么,找逻辑来说,接下来该解析solver.cpp文件,可是,事情并没有想象那么简单!如果打开solver.cpp文件,你会发现里面调用了Net相关的东西,这个

2017-02-15 21:14:15 2387 1

原创 caffe源码深入学习1:caffe.cpp解析

距离笔者接触深度学习已经将近半年了,在这段时间中,笔者最先接触的是lenet网络,然后就学习了2015-2016年非常火爆的fast-rcnn与faster-rcnn,到最近自己利用深度学习搞事情,笔者的最大感受是,经过一些例子的实践,已经对深度学习有了大概的了解,但是离熟练上手还有很可观的距离,这时,笔者不由得想起来一句老话:read the fxxx source code。因此,笔者开始学习

2017-02-13 20:20:35 8020 5

原创 caffe初探4:对训练得到的模型进行测试

续caffe初探1,2,3,在我们训练出自己的模型之后,就可以测试,或者说使用我们的模型来分类了,在我们使用网络模型对单张图片进行分类测试之前笔者还是列出测试所需物资清单:兹测试所需物资清单如下:(1)类名文件,未准备。标定分类名称的txt文件。(2)测试图片,未准备。准备若干张供网络模型分类的图片。(3)后缀名称为.caffemodel的网络模型文件,已准备。笔者

2016-09-27 16:23:53 15108 8

原创 caffe初探3:结合数据集与设计的网络模型进行训练

续caffe初探1和caffe初探2,回首一下,此时已经有一些收获了呢,已经生成了数据集,并准备了均值文件还有网络结构文件,现在就可以进行模型的训练了。首先,我们来清点一下训练所需要的物资清单吧。兹训练物资清单如下:(1)数据集                   准备完毕,分别是./caffe/forkrecognition/train_lmdb和./caffe/forkreco

2016-09-27 10:26:20 3845 3

提示
确定要删除当前文章?
取消 删除