自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YMilton的专栏

Write more blog!

  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

原创 YOLOv6、YOLOv7、YOLOv8网络结构图(清晰版)

YOLO系列网络结构图

2024-02-26 23:51:18 1769 4

原创 YOLOX训练代码分析3-损失函数

yolox构建模型时,是通过yolox_base.py中的get_model函数获取,其中分成两部分YOLOXPAFPN与YOLOXHead两个类,由YOLOX加载封装整个网络。if getattr(self, "model", None) is None: # 该对象中是否存在model属性,默认值为None,设置成模型 in_channels = [256, 512, 1024] backbone = YOLOPAFPN(self.depth, self.width, in_cha

2021-10-11 12:01:41 15790 22

原创 YOLOX训练代码分析2-trainer.py

1. yolox网络构建(1) 网络加载通过tools/train.py中main函数get_exp构建网络,其中get_exp可以通过名称与文件获取网络模型与参数。if exp_file is not None: return get_exp_by_file(exp_file) # 通过文件获取模型参数else: return get_exp_by_name(exp_name) # 通过名称获取模型参数get_exp_by_name最终是调用get_exp_by_fil

2021-10-08 15:30:31 2945 6

原创 YOLOX训练代码分析1-COCO与VOC训练

1. YOLOX的网络结构图与代码YOLOv3、YOLOv4、YOLOv5、YOLOx的网络结构图(清晰版)_YMilton的专栏-CSDN博客​​​​​((1) 网络结构图​(2) yolox代码URL:https://github.com/Megvii-BaseDetection/YOLOX.git2. yolox如何训练coco数据(1) 第一步:yolox...

2021-09-30 17:35:30 2888 5

原创 公开人脸识别数据集

1. 口罩遮挡人脸数据由武汉大学多媒体研究中心发起,目前是全球最大的口罩遮挡人脸数据集。分为真实口罩人脸和模拟口罩人脸两部分,真实口罩人脸包括525人的5000张口罩人脸和9万张正常人脸。模拟口罩人脸包含1万个人共50万张模拟人脸数据集。应用项目:人脸检测、人脸识别URL:https://github.com/X-zhangyang/Real-World-Masked-Face-Dataset2. Wider Face人脸数据香港中文大学发起的,包含3万张图片共40万张人脸。应用项.

2021-09-27 10:38:24 8558

原创 YOLOv3、YOLOv4、YOLOv5、YOLOx的网络结构图(清晰版)

YOLO系列网络结构图2. Yolov4网络结构图3. Yolov5网络结构图4. Yolox网络结构图

2021-09-13 16:03:52 37929 77

原创 BBox边界框损失函数演进

边界框损失计算的演进边界框回归损失近些年的发展过程:1. MSE Loss2. IoU Loss计算IoU交并比示意图如图,蓝色为真实目标框,橘红色为预测目标框。IoU Loss存在的问题,存在检测框大小相同,重叠区域面积相等的情况(IoU相等),无法区分不同相交情况。3. GIoU Loss为了改进IoU Loss存在的问题,提出了GIoU方法。GIoU Loss的计算公式其中 表示真实框与预测框的最小闭包区域面积,即外接矩形面积。...

2021-09-02 18:58:42 1144

原创 yolov4与yolov5的区别

不同点:1. yolov4采用了较多的数据增强方法(图像增强方法(Data Augmentation)_YMilton的专栏-CSDN博客,博客中方法都使用),而yolov5进行了3中数据增强:缩放、色彩空间调整与Mosaic数据增强。2. yolov5锚点框是基于训练数据集自动学习的,而yolov4没有自适应锚点框。3. yolov5采用的激活函数包括leakyReLU和Sigmoid,yolov5的中间隐藏层使用的是leakyReLU激活函数,最后的检测层使用的是Sigmoid激活函数。而y

2021-09-02 09:54:32 18151

原创 目标检测图像增强方法(Data Augmentation)

1. 图像遮挡1.1 Random Erase用随机值或训练集的平均像素替换图像区域。Paper: Random Erasing Data Augmentation URL: https://arxiv.org/pdf/1708.04896.pdf1.2 Cutout仅对CNN第一层的输入图像使用随机剪切框Mask。Paper:Improved Regularization of Convolutional Neural Networks with Cutout...

2021-09-01 16:05:21 4829 1

原创 YOLOX环境搭建与运行效果

通过git clone [email protected]:Megvii-BaseDetection/YOLOX.git或者下载方式获得旷世在github上共享的工程文件。1. 虚拟环境创建通过如下命令在conda下创建用于工程YOLOX的虚拟环境,假设虚拟环境为yoloxconda create -n yolox python=3.8然后通过命令conda activate yolox进入yolox虚拟环境,接着下面的安装。2. pycocotools的安装在Linux环境下安装

2021-08-16 23:47:47 2868

原创 YOLOX采用的最新技术

YOLOX检测器的锚框:采用anchor-free的方式,以及使用例如网络头解耦(decoupled head),与以标签分配策略为主导(leading label assignment strategy SimOTA)的技术生成网络模型。YOLOX使用的相关技术论文1.anchor-free detectors: (1) Hei Law and Jia Deng. Cornernet: Detecting objects as paired keypoints. In ECCV, 2...

2021-08-06 14:49:22 468

原创 yolov4中带groups的route理解

1. yolov4-tiny配置文件示意图其中yolov4-tiny.cfg文件[route]中多出了groups与group_id

2021-06-29 16:37:10 608 1

原创 yolov2中的reorg网络层数据理解

yolov2的reorg数据理解 以上是yolov2的reorg层在整个yolov2网络的示意图。yolov2的reorg层的输入是38x38x64=92416,通过reorg重组得到输出19x19x256。本文需要理解的是reorg是如何重组的。1.reorg的darknet代码2. 根据程序理解矩阵重组本文只考虑长、宽、通道维度上的变化过程。(1) 根据yolov2中的参数,可以得到reorg层:stride=2, in_c=64, [out_w, out_h...

2021-05-26 11:37:18 1262 2

原创 Batch Normalization的Darknet代码解析

Batch_Norm公式推导与Darknet代码理解论文:《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》URL:https://arxiv.org/pdf/1502.03167.pdf1. Batch_Norm的正向推导2. Batch_Norm反向推导其中对均值与xi的求导会用到复合函数的求导计算:3. darknet代码3.

2021-05-19 09:46:55 264

原创 darknet的batch_norm是如何融合到卷积层conv的

前向传播中,batch_norm与conv的融合1. batch_norm层的前向传播其中mean(X)表示训练过程中得到的滑动平均值,var(X)表示训练过程中得到的滑动方差。具有泛化整个训练过程所有的图片的像素值。表示缩放因子,表示为平移因子,为学习过程中学习到的值。2. conv层的前向传播其中W表示为卷积核,b表示为偏置,卷积层一般为0。3. 合并batch_norm与conv4. darknet中的函数fuse_conv_batchnorm...

2021-05-07 16:41:16 595

原创 coco数据集的理解

coco数据集的理解一键式下载:https://github.com/pjreddie/darknet/tree/master/scripts/get_coco_dataset.sh,然后在Linux环境下运行.sh文件。1. coco数据集下载地址(1) 图像集下载地址训练图像集:https://pjreddie.com/media/files/train2014.zip验证图像集:https://pjreddie.com/media/files/val2014.zip(2) 图像

2021-04-14 16:53:19 942 1

原创 评估计算recall、precision、AP、F1、mAP(PyTorch-YOLOv3代码解析二)

目标检测评估计算(Python+Pytorch)代码github地址:https://github.com/eriklindernoren/PyTorch-YOLOv31. 检测的评估函数# reference: https://github.com/eriklindernoren/PyTorch-YOLOv3/blob/f917503ffe4a21d2b1148d8cb13b89b834517d76/utils/utils.pydef ap_per_class(tp, conf, pre

2021-04-13 11:44:03 5773 8

原创 非极大值抑制(PyTorch-YOLOv3代码解析一)

目标检测中的非极大值抑制之代码解析(Python)1. 非极大值抑制函数代码# reference: https://github.com/eriklindernoren/PyTorch-YOLOv3/blob/f917503ffe4a21d2b1148d8cb13b89b834517d76/utils/utils.pydef non_max_suppression(prediction, conf_thres=0.5, nms_thres=0.4): """ 剔除目标置信度小

2021-04-09 15:30:07 1494

原创 “[...]“、“[::]“与torch.cat的解析(YOLOv5 Focus common.py)

"[...]"、"[::]"与torch.cat的解析YOLOv5中common.py的函数Focus.forward,返回为self.conv(torch.cat([x[..., ::2, ::2], x[..., 1::2, ::2], x[..., ::2, 1::2], x[..., 1::2, 1::2]], 1)),这句话的解析。def forward(self, x): # x(b,c,w,h) -> y(b,4c,w/2,h/2) return self.conv(

2021-03-18 20:18:18 779 3

原创 图像缩放后单应性还原(Image Stitching 4)

图像缩放后的单应性还原1. 公式推导假设待拼接的两幅图像分别为与,两幅的单应性矩阵为。再假设图像的坐标点与图像的坐标点单应性对应。则有等式(1-1): (1-1) 再假设按照尺度缩放的图像为与,缩放的两幅图像间的单应性矩阵为,同理有等式(1-2): (1-2) 由于图像与是通过尺度缩放后,得到的两幅图像分别为与,因此图像、的坐标点与图像、的关系表为等式(1-3): (1-3) 令 (1-4) 根据公式(1-2)(1-3)(1-4),则有以下推导

2021-03-11 14:02:41 890 2

原创 动态规划最佳缝合线查找(Image Stitching 3)

相关链接:https://github.com/xitu/gold-miner/blob/master/TODO1/real-world-dynamic-programming-seam-carving.md

2020-10-29 15:27:17 6880 8

原创 centos7编译opencv4.1.2(带sift、surf特征)

1、下载opencv4.1.2与opencv_contrib4.1.2Opencv: https://github.com/opencv/opencv/releasesOpencv_contrib: https://github.com/opencv/opencv_contrib/releases2、camke opencv4(1)解压opencv4.1.2与opencv_con...

2020-01-08 17:48:03 1099

原创 任意个摄像头数据采集与显示

C++中的OpenCV打开多个摄像头需要声明多个VideoCapture对象,这是大部分同学能够想到的。但是如果在不清楚自己设备上连接有多少个摄像头的情况下,这样的方式打开摄像头并采集数据会非常的麻烦。于是本文为了解决这一问题,有一种新的解决办法,主要的思想是通过创建指针的形式来完成,并且把创建的指针放入vector中。具体如下:vector<VideoCapture*&...

2019-12-23 12:02:30 682 1

原创 python最佳缝合线(Image Stitching 2)

最佳缝合线能够有效的去除拼接中运动物体移动出现的鬼影,如何寻找最佳缝合线对于图像拼接去除鬼影比较的重要。寻找最佳缝合线涉及到比较重要的一个思想是动态规划,寻找强度值最优的路径。 关于强度值的计算,具体情况如下:以上公式是重叠像素点的颜色值之差,是结构值之差。这里的结构值计算采用Sobel算子,也可以考虑其他的边缘检测算子,其中x,y方向的算子如下: ...

2019-12-20 17:02:14 8441 23

原创 python加权平均融合矩阵运算(Image Stitching 1)

考虑到python通过for循环实现加权平均融合效率比较低,本文采用矩阵运算的形式实现加权平均融合。其中加权平均融合的公式如下:是融合图像,是需要拼接的两幅图像,是渐入渐出法中的权重,权重的计算公式如下:也就是上面的两个公式,挺简单的,相对于C++而言,用python实现加权平均融合的矩阵运算更加容易理解。直接上结果图,以下是加权平均融合之前与融合之后的对比。加...

2019-12-20 16:00:56 5398 27

原创 VS2019/VS2022编译opencv4.1.2/4.5.5(带sift等额外算法)

编译opencv4.1.2opencv4中的sift、surf受专利保护,不能直接使用,所以需要自己动手编译相关的库。1. 下载opencv与opencv-contrib代码,其中下载的版本为4.1.2,另外还需要cmake工具。它们具体的下载地址如下:Opencv: https://github.com/opencv/opencv/releasesOpencv_contrib: .........

2019-11-04 16:31:18 6737 10

原创 隐写算法(DE: Diamond Encoding)

1. DE直译过来为钻石编码,以下称钻石编码。其模型公式根据上面的公式可以得到钻石编码模型的图形大致如下:2. 钻石编码编码的进制确定,则3. 钻石特征值的计算公式(DCV):4. 列举,秘密信息与钻石特征值的距离:,其中决定着选择的位置,若,则秘密信息嵌入的在D1,D2,D3中对应的位置如下图红色方框所示。于是相应的像素值的改为如下:,,其...

2019-07-18 22:43:35 2249

原创 隐写算法(EMD: Exploiting Modification Direction)

1. EMD算法介绍 该算法嵌入过程分成5中情况: (1) 当,则不用改变,函数能够表示秘密信息; (2) 当,则; (3) 当,则; (4) 当,则; (5) 当,则; 该算法秘密信息的提取过程,用以下函数: 其中,是两个相邻的像素值。...

2019-07-17 20:28:40 2104

原创 隐写算法(OPAP: Optimal Pixel Adjustment Process)

设像素值为,假定待嵌入的二进制为,则嵌入数据的位数,值为。把秘密二进制替换到像素点最右边的最低位得。其中像素值最右边的最低位,,于是。因此,嵌入到最低位,即157为嵌入秘密二进制的像素值。提取时,只需要提最低位二进制。 OPAP方法中,为了减少图像的失真,则相应的调整如下:其中,是像素点最右边位被秘密信息二进制替换的结果;为待嵌入二进制位数,为像素值最右边位二进制...

2019-07-15 21:37:37 1430 2

原创 远程访问CentOS的jupyter,相关配置

1. 生成jupyter notebook的配置文件,命令:jupyter notebook --generate-config会生成文件~~./jupyter/jupyter_notebook_config.py2. 生成sha1码,需要在python环境中生成。相关命令:>>> from notebook.auth import passwd>&g...

2019-07-05 18:10:09 763 1

原创 Centos无法ping通百度,不能上网的解决办法

1. 首先查看Linux服务器的ip地址,命令ifconfig, 或者ifconfig 网卡。主要是查看是否配置DNS,如果没有配置DNS就无法上网。情况如下:2. 配置DNS相关信息,编辑 /etc/resolv.conf,添加如下信息:search localdomainnameserver 网关nameserver 61.139.2.69/电信 (或其他)3. 重新...

2019-05-30 15:06:18 1944 1

原创 最简单的梯度下降法求最优值

梯度下降法,主要通过梯度方向与学习率两个值,一步一步迭代求出最优值的过程。1. 随机产生开始迭代的初始值,包括x值,学习率;2. 计算函数的导数,通过学习率与导数的乘积更新x,即其中是学习率,是函数的导数。3. 用更新的x,更新y,重复2与3,直到相邻两个y值相同,或者相邻两个y的差值小于某个值终止。假设以为例,则相关python代码实现如下:# 第一步:随机生成一个...

2019-05-15 21:20:53 2120 1

原创 深度学习图绘制工具汇总

1. NN-SVG麻省理工学院弗兰克尔生物工程实验室, 该实验室开发可视化和机器学习工具用于分析生物数据。GitHub地址:https://github.com/zfrenchee画图工具体验地址:http://alexlenail.me/NN-SVG/2. PlotNeuralNet萨尔大学计算机科学专业的一个学生开发。https://github.com/HarisI...

2019-04-25 10:59:49 2528 1

原创 PyQt5界面快速开发(QtDesigner与PyUIC工具)

首先要实现PyQt5界面的快速快发,需要两个工具QtDesigner与PyUIC。它们功能分别是界面设计与界面代码转换工具。(1) 打开PyCharm中file的setting,定位到Tools下的External Tools,如图1所示。 ...

2019-04-23 14:27:06 2416

原创 CIFAR10中的KNN分类

1. KNN思路 相对于NN算法而言,KNN的关键在于,通过欧式距离计算待分类图像与训练集图像之间的距离,做距离之间从小到大的排序,找出前K个从小到大出现次数最多的标签作为预测分类标签。具体的示意图如图1所示。 图1 KNN分类CIFAR10大致思...

2019-04-16 21:46:56 2526 1

原创 PCA(主成分分析方法)

目录1. 降维问题2. 向量与基变换2.1 内积与投影2.2 基2.3 基变换的矩阵3.协方差矩阵及优化目标3.1 方差3.2协方差3.3协方差矩阵3.4协方差矩阵对角化4. 算法与实例4.1 PCA算法4.2 实例5. 讨论 PCA(Principal Component Analysis)是常用的数据分析方法。...

2019-04-13 00:16:15 21474 3

原创 CIFAR10图像生成与NN分类

1. CIFAR10的数据集描述 整个CIFAR10数据集包括5个batch,一个test,整个数据集文件如图1所示。其中数据集以字典形式存放,包括数据集的名称、标签、数据矩阵、图片文件名称四个数据。标签范围从0到9变化,数据矩阵大小为10000*(3*32*32),后面的数字表示图像的大小为32*32的彩色图像。具体键名称为'batch_label', 'labels', 'da...

2019-04-10 14:51:01 807 1

原创 git使用篇

GIT篇目录 GIT篇1. 分布式与集中式管理2. 时光穿梭2.1 版本回退2.2工作区与暂存区2.3 管理修改2.4 撤销修改2.5 删除文件3. 远...

2019-04-06 00:14:07 158 1

原创 DataFrame中resample函数时间戳筛选

例如dataframe.resample('M',how=np.mean) # 按照每个月求平均值dataframe.resample('M',how=np.median) # 按照月求中位数最新的计算方式如下:data = df.loc[:,['total_purchase_amt','total_redeem_amt']].resample('D').apply(np.sum)...

2019-03-20 10:58:19 4846 1

原创 anaconda虚拟环境与pip安装源设置

1、设置pip安装镜像源为国内,使用的命令阿里云 https://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban) http://pypi.douban.com/simple/清华大学 https://pypi.tuna.tsinghua.edu.cn/simp...

2018-11-21 12:06:19 5243

李宏毅__一天搞懂深度学习

课程一:深度学习的介绍 课程二:训练深度神经网络的技巧 课程三:神经网络的变体 课程四:下一个浪潮

2019-05-05

libsvm matlab

把C++编译成能在matlab中运行的二进制文件,包括32位系统与64为系统

2015-12-08

图像的全景拼接介绍

提取图像特征,对相同特征点的图像进行匹配,然后做图像的旋转工作,最后融合

2015-12-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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