yolov5
文章平均质量分 77
昌山小屋
917
展开
-
【传感器标定】路侧激光雷达和相机的标定(2)
接上篇【传感器标定】路侧激光雷达和相机的标定(1),在上文中我提到我手上由若干相机和一个激光雷达,现在要做激光雷达和相机的联合标定,将激光雷达标定到相机。从数学原理来说就是求得激光雷达坐标系相机坐标系的外参矩阵,其中包含旋转和平移。旋转以欧拉角来表示,分别为翻滚(roll),俯仰(pitch)和偏航(yaw)。位移为tx,ty和tz。手动标定代码的过程中,通过按键控制激光雷达的旋转欧拉角以及平移量,将其转化为外参矩阵。通过外参矩阵和相机内参将点云投射到图像上去。不断调整雷达坐标系位姿在可视化...原创 2021-05-22 10:24:29 · 1022 阅读 · 1 评论 -
【玩转yolov5】使用TensorRT C++ API搭建yolov5s-v4.0网络结构(3)
接上篇【玩转yolov5】使用TensorRT C++ API搭建v4.0网络结构(2),backbone部分已经讲完了,现在进入到neck部分。PANet在FPN的基础上增加了Bottom-up Path Augmentation,主要是考虑到网络的浅层特征中包含了大量的边缘形状等特征,他们对于实例分割这种像素级别的分类任务起到至关重要的作用。上图红色的箭头表示在FPN中,因为要经过自底向上的过程,浅层特征传到顶层要经过几十甚至上白层网络,浅层信息丢失严重。红色的箭头表示作者添加的Botto.原创 2021-05-09 11:20:41 · 1155 阅读 · 0 评论 -
【玩转yolov5】使用TensorRT C++ API搭建yolov5s-v4.0网络结构(2)
接上篇【玩转yolov5】使用TensorRT C++ API搭建v4.0网络结构(1)。上篇说完了CBL(conv+bn+激活),现在进入到CSP结构。yolov5s中设计了两种CSP结构,以yolov5s网络为例,CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构应用于Neck中。注意:上图仅供参考,yolov5s-v4.0实际结构以代码为准,有差异。CSP结构的实现统一在下面的C3函数中,通过输入参数控制宽度,深度以及结构类型等。auto bottleneck_C原创 2021-05-08 17:21:29 · 1602 阅读 · 0 评论 -
【玩转yolov5】使用TensorRT C++ API搭建yolov5s-v4.0网络结构(1)
class Focus(nn.Module): # Focus wh information into c-space # 先要做一个切片,然后再做一个concat def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True): # ch_in, ch_out, kernel, stride, padding, groups super(Focus, self).__init__() ...原创 2021-05-08 11:09:48 · 2411 阅读 · 13 评论 -
【玩转yolov5】之anchor匹配策略(build_targets)分析(2)
接上篇yolov5之anchor匹配策略(build_targets)分析(1) gxy = t[:, 2:4] # grid xy gxi = gain[[2, 3]] - gxy # inverse #这两个条件可以用来选择靠近的两个邻居网格 j, k = ((gxy % 1. < g) & (gxy > 1.)).T l, m = ((gxi % ...原创 2021-05-04 22:33:50 · 3269 阅读 · 10 评论 -
【玩转yolov5】之anchor匹配策略(build_targets)分析(1)
这里我们实际推演一下yolov5训练过程中的anchor匹配策略,为了简化数据和便于理解,设定以下训练参数。输入分辨率(img-size):608x608 分类数(num_classes):2 batchsize:1 网络结构如下图所示:def build_targets(pred, targets, model): """ pred: type(pred) : <class 'list'> """ #p:predict,tar...原创 2021-05-04 17:49:18 · 5839 阅读 · 6 评论 -
【玩转yolov5】请看代码之自动anchor计算
早在yolov2时就了解到不同于faster-rcnn中手动设置的anchor,yolov2中的锚点是通过k-means聚类算法得的,这样更贴合实际的训练数据。这次借学习yolov5这个机会把其中关于自动anchor计算的逻辑再理一遍,主要就是分析一下utils/autoanchor.py文件的相关函数。在看代码之前先提几个问题,在后面的分析中会给出答案。1.yolov5中k-means聚类算法具体聚的是什么东西?2.聚类样本之间的距离是怎么计算的? 如果你没有在训练参数中显示...原创 2021-02-08 22:51:04 · 13143 阅读 · 27 评论 -
【玩转yolov5】使用bdd100k数据集训练行人和全车模型
这是一篇yolov5的实操作文章,前提是你对yolov5框架本身有了一个基本的认识。实操的内容也正好是最近要做的一个任务,训练一个全车和行人检测的模型。数据集的话我想就直接先用BDD100k,它是BAIR(加州大学伯克利分校AI实验室)于2018年5月发布的一个目前最大规模、内容也最具多样性的公开驾驶数据集。BDD100K数据集包含了10万段高清(1280x720p)视频,每个视频约40秒,30fps的帧率。对每个视频的第10秒抽取关键帧,以此得到10万张图片,并加以标注。关于BDD100k的详细介...原创 2021-01-30 10:56:36 · 8361 阅读 · 18 评论 -
【玩转yolov5】请看代码之参数管理及学习率调整
yolov5中的优化器(optimizer)将模型可学习的参数分成了三个组,分别为pg0:BN参数,pg1:一般权重(weight)参数,pg2:偏置(biase)参数,通过param_group来管理3组参数。param_group的意义在于可以针对不同的参数组量身定制学习率(lr)、衰减(weight_decay)、动量(moment)等超参数。例如在某一模型中,希望特征提取部分的权值参数的学习率小一点,学习更新慢一点,这时可以把特征提取的参数设置为一组参数,而对于后面全连接分类层,希望其学习率...原创 2021-01-25 00:15:50 · 11183 阅读 · 3 评论 -
【玩转yolov5】yolov5s模型转tensorrt后在服务器以及agx xavier上的测评
略...原创 2021-01-23 17:13:14 · 1369 阅读 · 5 评论 -
【玩转yolov5】请看代码之augment_hsv
augment_hsv作为yolov5的默认数据增量方式之一,试图在hsv颜色空间上对图片进行变换,达到数据增量的效果。那么什么是hsv颜色空间呢?在日常生活中我们描述一件物品的颜色的时候通常会说"它是什么颜色(H)?","颜色深不深(S)?","亮不亮(V)?",这其实就是在表述hsv颜色空间,可见他相比rgb颜色空间更符合人们对颜色的认知。对于hsv颜色空间网上有大量的资料,非本方的重点,这里只是就yolov5的代码和默认配置来直观地了解一下augment_hsv的增量效果。import ...原创 2021-01-23 16:58:14 · 5475 阅读 · 2 评论 -
【玩转yolov5】来自茱丽叶的letterbox
数据集中的图片一般为长方形,当模型输入为正方形时直接将长方形图片resize为正方形会使得图片失真,采用letterbox(啥意思?邮箱盒子!)通过填充边界(通常是灰色填充)的方式来保持原始图片的长宽比例,同时又满足模型正方形输入的需要。这里以我做训练时使用的一张bdd100k中的图片为例直观感受一下即可。import cv2 import matplotlib as pltimport numpy as npimg_size = 640 #yolov5默认输入图片尺寸640x640...原创 2021-01-23 15:03:24 · 7749 阅读 · 8 评论