深度学习
文章平均质量分 78
xiaoyang0307
专注于图像处理,深度学习方向。
从事嵌入式图像处理开发工作
展开
-
DarkNet源码解析——Makefile
本文在解析DarkNet的同时通过注释的方式对其中用到的Makefile相关语法进行讲解。GPU=0 #定义GPUCUDNN=0#定义是否使用CUDNN加速,cuDNN是用于深度神经网络的GPU加速库OPENCV=1#是否使用OPENCV库,OPENMP=1#用于共享内存并行系统的多处理器程序设计的一套编译处理反感DEBUG=1#是否能用于调试,即是否gcc -gARCH= -gencode arch=compute_30,code=sm_30 \ -gencode arch=原创 2021-08-19 17:39:47 · 709 阅读 · 1 评论 -
Pycharm 连接Linux远程服务器
Pycharm 连接Linux远程服务器最近笔者参加阿里天池比赛,因此需要高性能的硬件资源,故不得不租用GPU。(现在GPU资源真贵)本文主要介绍怎么利用Pycharm连接服务器,并运行调试代码。其中也有一些自己遇到的坑。花了钱之后,服务器提供者会给你相关信息,如IP网址,端口号,账户名,密码等信息。这些在配置Pycharm时都会用到。注意,如果你想长期使用该平台的服务器,可以问问客服是否有长期存储资源,以免之后使用时还需要重新上传资源。首先,Pycharm分为社区版和专业版,仅有专业版才可原创 2021-03-16 11:19:22 · 664 阅读 · 0 评论 -
Tensorflow2 图像预处理部分详解
Tensorflow2 图像预处理部分详解本文基于Tensorflow2官方文档(https://tensorflow.google.cn/api_docs/python/tf/keras/preprocessing/image)编写并配合相应的测试代码。tensorflow2提供了一系列实时的图像增强方法。TF提供了4个类和14个方法。四个类主要是批量的获取图像数据以及数据增强:DirectoryIterator:能够迭代的从硬盘中读取图片Iterator:基本图片数据迭代器Nu.原创 2021-03-06 16:52:11 · 1480 阅读 · 0 评论 -
GhostNet解析以及Tensorflow2中实现Ghost模块
GhostNet解析以及Tensorflow2中实现Ghost模块笔者从事嵌入式图像开发相关工作,希望能在ZYNQ上实现目标检测任务,故把更多的注意力放在轻量级网络上。现阶段较为流行的轻量级网络有:MobileNetv1,v2,v3,ShuffleNet,EfficientNet和本文介绍的GhostNet。可能因为GhostNet是华为的成就或单纯的喜欢“Ghost"这个名字,笔者首先介绍GhostNet,其余网络结构将在后续文章中介绍。GhostNet源于华为诺亚方舟实验室,可在同样的精度下原创 2021-03-04 15:42:14 · 1649 阅读 · 1 评论 -
YOLOV4用到的一些tricks以及代码实现(3)——Label_smoothing
YOLOV4用到的一些tricks以及代码实现(3)——Label_smoothingLable Smoothing是分类问题中错误标注的一种解决方法。对于分类问题,特别是多分类问题,常常把向量转换成one-hot-vector(独热向量)理论而言,如果标签为1时,模型应该尽力去获得最接近的output,如0.999。而这样真的好吗?如果某些标签错误,那模型拟合的目标反而离我们需要的结果越来越远。因此,使用label_smoothing可以很好的缓解这样的问题。个人觉得,该原理和focal L原创 2021-03-03 10:16:22 · 811 阅读 · 0 评论 -
YOLOV4中anchor与box之间的关系以及代码实现
YOLOV4中anchor与预测框之间的关系以及代码实现有些同学已经学习目标检测有了一段时间,对于Fast系列和yolo系列的目标检测算法都如数家珍,包括每次改进升级用到了哪些tricks或者新的改进。现在也出现了很多anchor-free的算法,摒弃了anchor的使用。但是,作者想说的是,我们是否真正的把anchor与预测框之间的关系搞得很明白,是否阅读过每一行anchor相关的代码?笔者近阶段写了一系列的博文均以代码为核心,分析算法思想,希望可以帮助大家将理论知识应用于实际而不只是读了多少篇论原创 2021-03-03 09:20:28 · 3001 阅读 · 0 评论 -
YOLOV4用到的一些tricks以及代码实现(2)——CIou_Loss
本篇博客介绍用于计算损失函数的CIOU_LOSS算法继上篇介绍yolov4——Mosaic data argumentaion后,接着介绍yolov4中用到的tricks。CIOU_LOSS算法用于目标检测损失函数的计算。在详细介绍CIOU代码之前,有必要介绍一下CIOU的进化序列。本节介绍交叉熵,Focal loss,L1/L2损失函数、IOU Loss、GIOU、DIOU的相关理论以及CIOU的理论与代码实线。交叉熵:作为图像分类问题最为常用的损失函数,通常接在softmax之后原创 2021-03-02 15:13:33 · 4045 阅读 · 1 评论 -
YOLOV4用到的一些tricks以及代码实现(1)——CutMix and Mosaic data augmentation
YOLOV4用掉的一些tricks以及代码实现(1)——CutMix and Mosaic data augmentation之前的几篇博客将YOLOV4整个流程都过了一边,其中把重心放在相关的语法中,从这篇博客开始,我将YOLOV4中提到的一些tricks逐一进行介绍并用代码实现。首先看下论文提到了哪些tricks:Bag of Freebies(BoF)指那些能够提高精度而不增加推断时间的技术。比如数据增广的方法图像几何变换、CutOut、grid mask等,网络正则化的方法DropOut..原创 2021-03-01 14:27:14 · 749 阅读 · 1 评论 -
基于Tensorflow2的YOLOV4 网络结构及代码解析(4)——Loss和input
基于Tensorflow2的YOLOV4 网络结构及代码解析(4)——Loss和input本部分介绍yolov4源码中Train中内容,包括Input和LossInput:Loss:原创 2021-02-27 22:51:24 · 709 阅读 · 0 评论 -
C语言实现线性回归及梯度下降法
C语言实现线性回归本篇介绍使用C语言实现线性回归以及利用梯度下降方法求最优解(包括单个梯度下降,批量梯度下降以及随机梯度下降)。本篇博文更倾向于实际代码实现,其中算法原理可查看其他博客(网上太多了,懒得复制)线性回归的本质是用一条直线拟合,最简单的是在二维向量中,复杂点的是在多维向量中。理论公式为:公式中θ和x是向量,n是样本数。损失函数公式:。这个损失函数是“最小二乘法损失函数”。针对小规模数据时可使用正则方程直接得出最小值,而本篇博文介绍的梯度下降法求最小值。梯度下降公式:...原创 2021-02-25 16:37:32 · 2616 阅读 · 0 评论 -
基于Tensorflow2的YOLOV4 网络结构及代码解析(3)——yolo_head部分
笔者以tensorflow2代码作为基础,解析yolovV4的网络结构。继上篇《基于Tensorflow2的YOLOV4 网络结构及代码解析(2)——NECK部分》博文后继续解析yoloV4的yolohead本篇博客主要介绍两个个方面:1.yolo解码2.非极大值抑制3.门限筛选在进入yolo_head之前,先看一下源码中的参数配置以及一些语法细节,代码如下: if self.eager: self.input_image_shape = I原创 2021-02-23 16:38:58 · 1608 阅读 · 3 评论 -
基于Tensorflow2的YOLOV4 网络结构及代码解析(2)——NECK部分
笔者以tensorflow2代码作为基础,解析yolovV4的网络结构。继上篇《基于Tensorflow2的YOLOV4 网络结构及代码解析(1)——backbone网络结构》博文后继续解析yoloV4的NECK和YoloHead本篇博客主要介绍三个方面:1.SPPNET:SPP结构使用不同尺度的maxpooling后进行特征图堆叠2.PANet:模型的neck3.YOLOhead:对提取后的特征进行解码feat1, feat2, feat3 = darknet_body(inpu原创 2021-02-21 20:25:52 · 1090 阅读 · 2 评论 -
基于Tensorflow2的YOLOV4 网络结构及代码解析(1)——backbone网络结构
笔者以tensorflow2代码作为基础,解析yolovV4的网络结构。主要从以下几个部分剖析yolov4:1.YOLOV4创新点和backbone网络结构2.YOLOV4的NECK和YoloHead3.YOLOV4的Loss和Input在剖析的同时,会对代码细节进行详细解释。Yolov4论文地址:https://arxiv.org/pdf/2004.10934.pdf创新点:backbone网络结构:yolov4以CSPDarkNet53作为backbone,替换.原创 2021-02-20 14:43:42 · 2075 阅读 · 0 评论