2021 山东大学软件学院 软件工程应用与实践--YOLOV5项目代码分析——(1)

本文主要分析了YOLOV5项目中的common.py文件,探讨了卷积层的实现,包括标准卷积层Conv和深度分离卷积层DWConv。Conv层包含了自动填充、BN层和Leaky relu激活函数,而DWConv则是GCONV的特殊情况,卷积分组数等于输入通道数。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

先分析common.py文件,主要是封装了不同的通用模块

common.py

import logging
import math
import warnings
from copy import copy
from pathlib import Path

import numpy as np
import pandas as pd
import requests
import torch
import torch.nn as nn
from PIL import Image
from torch.cuda import amp

from utils.datasets import exif_transpose, letterbox
from utils.general import colorstr, increment_path, is_ascii, make_divisible, non_max_suppression, save_one_box, \
    scale_coords, xyxy2xywh
from utils.plots import Annotator, colors
from utils.torch_utils import time_sync

commonpy依赖的头件.可以看到,它包含了一些matplotlib的绘制模块以及xywh转换工具

requests这个库,是yolov5提供的一个很好的技巧,可以让我们直接从http协议拉取视频流放入model中检测

 

卷积层

(1)标准卷积层Conv

# 为same卷积或者same池化自动扩充
# 通过卷积核的大小来计算需要的padding为多少才能把tensor补成原来的形状
def autopad(k,p=None):   # kernel, padding
    # pad to 'same'
    # 如果p是none 则进行下一步
    if p is
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值