![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
yolov5
文章平均质量分 88
xjunjin
这个作者很懒,什么都没留下…
展开
-
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十八)总结
2021SC@SDUSC前言本篇博客是本门课程的最后一篇博客,我将简要总结一下yolov5的算法,以及个人的学习心得。yolov5图源知乎深入浅出Yolo系列之Yolov5核心基础知识完整讲解 - 知乎上图是yolov5的主要网络结构,输入经过backbon后经过上采样得到3个feature map,再各自计算各自的anchor预测。yolov5用到了自适应锚框算法,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络.原创 2021-12-27 12:02:08 · 431 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十七)yolo.py-2
2021SC@SDUSC前言本篇继续分析yolo.py文件的剩下部分。剩下的只有Model类的部分,该模块的功能很全,不仅包括了模型的搭建,还包括如特征可视化、打印模型信息、TTA推理增强、融合Conv和BN加速等。init方法 def __init__(self, cfg='yolov5s.yaml', ch=3, nc=None, anchors=None): # model, input channels, number of classes super(原创 2021-12-20 13:21:57 · 903 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十六)yolo.py-1
2021SC@SDUSC前言由于分配任务改动,我增加了一篇yolo.py文件的分析。该文件是模型的定义部分,是整个项目的核心部分。parse_model函数def parse_model(d, ch): # model_dict, input_channels(3) LOGGER.info('\n%3s%18s%3s%10s %-40s%-30s' % ('', 'from', 'n', 'params', 'module', 'arguments')) anchors原创 2021-12-13 12:09:58 · 4070 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十五)torch_utils.py
2021SC@SDUSC前言本文分析yolov5代码中torch_utils.py文件,主要是一些封装好的工具类。torch_distributed_zero_frist函数@contextmanagerdef torch_distributed_zero_first(local_rank: int): """ Decorator to make all processes in distributed training wait for each local_maste原创 2021-12-06 09:40:23 · 3400 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十四)metrics.py-2
2021SC@SDUSC目录前言bbox_iou函数GIoUDIoUCIoUbox_iou函数bbox_ioa函数wh_iou函数plot总结前言本篇继续分析metrics文件,主要是一些计算IOU的方法bbox_iou函数def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, eps=1e-7): # Returns the IoU of原创 2021-11-30 16:12:13 · 2172 阅读 · 1 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十二)yolov3
2021SC@SDUSC前言为了更好的理解yolov5的代码,我在代码解析的中间穿插进其他系列的yolo,此篇介绍yolov3。yolov3论文地址https://pjreddie.com/media/files/papers/YOLOv3.pdfThe Dealyolov3借鉴了许多其他方法,并且训练了一个更好的分类器。Bounding Box Prediction和yolov2一样,yolov3用dimension clusters来作为anchor boxes,对每个b原创 2021-11-21 16:53:41 · 1499 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十一)loss.py
2021SC@SDUSC目录前言smooth_BCEBCEBlurWithLogitsLossFocalLossQFocalLossComputeLoss类__init__build_targets__call__总结前言本篇介绍损失函数,是整个项目里比较重要也是比较难的部分。smooth_BCEdef smooth_BCE(eps=0.1): # https://github.com/ultralytics/yolov3/issues/238原创 2021-11-15 22:59:37 · 2471 阅读 · 1 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十)plots.py-2
2021SC@SDUSC目录前言plot_lr_scheduler函数plot_val_txt函数plot_targets_txt函数plot_val_study函数plot_labels函数profile_idetection函数plot_evolve函数plot_results函数feature_visualization函数总结前言这篇继续分析plots.py的代码plot_lr_scheduler函数def plot_lr_sc.原创 2021-11-08 12:23:34 · 1984 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(九)yolov2
2021SC@SDUSC前言为了对yolov5有更好的理解,在分析yolov5的代码中间我会穿插yolo系列其它的理论讲解,本篇介绍yolov2.yolov2论文https://arxiv.org/abs/1612.08242yolov1作为one-stage目标检测的开山之作,速度快是一大优势,可以实时完成,但是由于定位不够准确,recall较低,因此yolov2在其基础上做了改进Batch Normalizationbatch normalization是对一个batch里.原创 2021-11-02 19:57:17 · 238 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(八)plots.py-1
2021SC@SDUSC前言这篇分析plot.py文件,就如其名称一样,主要是一些用以展示的代码,也不是核心代码外部库from copy import copyfrom pathlib import Pathimport cv2import mathimport matplotlibimport matplotlib.pyplot as pltimport numpy as npimport pandas as pdimport seaborn as snimport原创 2021-11-01 17:09:59 · 1976 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(七)general.py-4
2021SC@SDUSC前言本篇是yolov5代码分析的第四篇,也是general.py的最后一篇。non_max_suppression函数def non_max_suppression(prediction, conf_thres=0.25, iou_thres=0.45, classes=None, agnostic=False, multi_label=False, labels=(), max_det=300): """原创 2021-10-25 18:47:34 · 1681 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(六)yolov1
2021SC@SDUSC前言为了更好地理解yolov5的算法,我会在对代码分析的中间穿插yolo其它系列的算法分析,这篇是对yolov1的介绍。之前的文章提到了滑动窗口来进行目标检测,然而存在着一定的问题:检测效果与时间耗费上的tradeoff。yolo算法,即you only look once,解决了这个问题。yolo算法是一种实时的目标检测算法,一个特点就是实现端到端的检测。相对于其它目标检测与识别方法,yolo将目标区域预测和目标类别预测整合于单个神经网络模型中,更适合应用环境。实现原创 2021-10-20 17:13:55 · 827 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(五)general.py-3
2021SC@SDUSC目录url2file函数download函数check_dataset函数clean_str函数one_cycle函数colorstr函数labels_to_class_weights函数labels_to_image_weights函数xyxy2xywh函数xywh2xyxy函数clip_coords函数xywhn2xyxy函数xyxy2xywhn函数xyn2xy函数segment2box函数segments2原创 2021-10-18 19:58:37 · 1704 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(四)general.py-2
2021SC@SDUSC前言这篇文章我们继续对yolov5项目源码进行解读is_writeable函数def is_writeable(dir, test=False): # Return True if directory has write permissions, test opening a file with write permissions if test=True if test: # method 1 file = Path(dir) /原创 2021-10-11 19:40:19 · 2127 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(三)滑动窗口卷积
2021SC@SDUSC前言为了对算法有更好的理解,在对代码进行解读的同时我会对其它yolo算法以及其它目标检测算法进行一个简单的解读。滑动窗口卷积是传统的目标检测算法。从简单的二分类说起假设我们现在有一张图片我们的任务是判断这张图片里有没有车,如果有车就输出1,没有则输出0。将这张图片作为输入,给到卷积神经网络里,网络会自动地抽取特征,通过不断的迭代下降,最终达到收敛,从而可以识别这是不是一辆车。这样的任务里通常要识别的物体占据了图片的大部分。多分类任务在二分类任务里我们只原创 2021-10-08 22:14:49 · 527 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(二)general.py-1
从这篇文章开始正式对代码进行解读,我会按照函数调用的关系自底向上进行解读,这一篇开始介绍general.py的部分,由于这部分代码量较大,我会分几次来进行解读。引用库import contextlibimport globimport loggingimport mathimport osimport platformimport randomimport reimport signalimport timeimport urllibfrom itertools import原创 2021-10-04 16:33:39 · 1380 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(一)综述
2021SC@SDUSC前言该项目代码主要分为三部分:一、模型定义。这部分代码在models文件夹下。二、封装好的一些工具,包括激活函数、数据增强、数据下载、计算损失、模型评估、展示等等都在其中,在utils文件下。三、模型训练、测试、导出等等。这些是算法落地之后的一些实际应用。由于项目封装得过好,真正模型定义的代码并不多,多数实际操作在utils中,而为了分工方便明确,我们将项目分成了四部分:模型定义、数据处理、其他工具以及模型落地。分别对应以下图片包含的内..原创 2021-09-28 21:31:23 · 457 阅读 · 0 评论 -
2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(零)配置环境
2021SC@SDUSC目录2021SC@SDUSC一、GitHub代码地址二、下载代码三、Anaconda下载配置环境四、安装pycharm五、开始项目六、目标检测小白写文,文中如有错误还请指出,感谢!一、GitHub代码地址https://github.com/ultralytics/yolov5二、下载代码直接在git输入 git clonehttps://github.com/ultralytics/yolov5.git或者进入GitHu...原创 2021-09-24 00:34:52 · 477 阅读 · 0 评论