目标检测领域的经典模型
前言
此文是我对目标检测领域各个经典模型的一个总结
Faster RCNN
Fast RCNN 的ROI是通过 SS(选择性搜索)得到的, 他的速度比较慢, 而且是在CPU里面执行的, 基于此, 在Fast RCNN 基础上提出了 RPN(区域建议网络), 直接通过主干网络提取出来的特征生成ROI
RPN
首先对于主干网络使用3x3的卷积进一步的提取特征(特征图大小不变), 然后将特征图分别送入 分类分支(背景还是前景), 回归分支(预测目标框位置)
RPN 里面引入了锚框的概念, 锚框就是以某一个点为中心点, 生成不同大小或者不同比例的框, 为什么引入锚框, 以及有什么用?
引入锚框是为了生成预选框, 这样生成是比SS快的, 我们的特征图中的每个点其实就是一个中心点, 然后将锚框对应特征图区域的特征值送入分类器和回归器得到预选框
锚框其实是使用了我们人的经验, 因为我们知道生活中物体大概都是多大的, 所以我们就可以基于此设计锚框
对于特征图每个点都会根据k个锚框生成k个预测框, 包含4个参数(位置信息), 2个参数(分类信息)
分类器
根据RPN产生的预测框, 生成对应位置的特 ...
yolo框架学习
本文看的是yolov5的源代码, 后续的yolo除了网络架构不同, 其他地方是差不多的
数据集构建规则
必须使用中心点加宽高模式, 而且必须都归一化, 所有值必须大于等于0
1234assert lb.shape[1] == 5, f"labels require 5 columns, {lb.shape[1]} columns detected"points = lb[:, 1:]assert points.max() <= 1, f"non-normalized or out of bounds coordinates {points[points > 1]}"assert lb.min() >= 0, f"negative label values {lb[lb < 0]}"
数据集yaml编写规则
yolo的数据集加载类是LoadImagesAndLabels, 他搜索数据的方式如下:
从所给目录拿到这个目录及其子目录下的所 ...
论文阅读方法论
前言
方法
三遍法:
第一遍(海选): 看标题, 摘要, 然后直接跳到结论, 看完这些大概知道文章在讲什么, 然后看看实验和方法部分的图和表, 经过这些步骤就可以判断文章怎么样, 有没有必要继续下去
第二遍: 从头读到尾, 但是没必要在意太多的细节,比如公式证明, 但是 要搞清楚图和表 以及 作者提出了什么方法, 以及他的方法和别人的区别, 对于不懂的地方先做标记,比如他参考的文献你不懂的地方
第三遍: 精读文章, 每一句话在干什么, 即使不看文章, 你也知道这篇文章到底是在干啥了
pytorch学习
nn模块
权重初始化
123456789import torchimport torch.nn as nn# 定义线性层linear_layer = nn.Linear(in_features=10, out_features=5)# 直接赋值给权重和偏置linear_layer.weight.data.fill_(0.01) # 将权重全设置为 0.01linear_layer.bias.data.fill_(0) # 将偏置设置为 0
广播机制
广播机制的核心流程可以概括为:
从右往左逐个对比两个张量的维度。
相等时继续:如果对应维度大小相等,直接匹配。
不相等时判断是否有1:如果不相等,检查其中一个维度是否为1。如果是,则可以广播扩展成相等的维度。
无法匹配时停止:如果对应维度大小不相等,且都不为1,则广播机制无法继续,运算会报错。
缺少的维度补1:如果一个张量维度数量少,从右侧开始自动补充1,以便进行对比。
例如,如果有两个张量:
a 的形状是 (3, 1, 5)
b 的形状是 (4, 5)
按照广播机制,从右往左依次匹配:
最右边的维度 5 匹配。
中 ...
深度学习
学习链接
前言
神经网络就是用来学习一种我们无法通过公式和算法显式的写出来的规则, 比如 目标检测, 我们人脑能很快的从一副图像中检测某个物体, 并且分类, 但是我们是无法直接写出这个检测和分类的代码的, 所以我们需要神经网络这个黑盒子去帮我们隐式的表达出来
前馈神经网络(FNN)
即多层感知机(MLP), 输入层 与 隐藏层 之间, 以及隐藏层和输出层之间 采用全连接的方式
激活函数
有了激活函数, 我们可以将多层感知机的表达能力变得更强,而不局限于线性表达, 如果没有激活函数, 多层感知机和线性模型那些没有啥区别, 这里可以以一个只有一个隐藏层的模型推导
O=(XW(1)+b(1))W(2)+b(2)=XW(1)W(2)+b(1)W(2)+b(2)=XW+b. \mathbf{O} = (\mathbf{X} \mathbf{W}^{(1)} + \mathbf{b}^{(1)})\mathbf{W}^{(2)} + \mathbf{b}^{(2)} = \mathbf{X} \mathbf{W}^{(1)}\mathbf{W}^{(2)} + \mathbf{b}^{(1 ...
sci论文各个组成部分
SCI(Science Citation Index)论文的结构通常是标准化的,遵循IMRaD格式,即:引言(Introduction)、方法(Methods)、结果(Results)和讨论(Discussion)。除此之外,还有其他一些关键部分。以下是SCI论文的常见模块及其功能说明:
题目(Title):
功能:简洁明确地概括论文的核心内容,让读者一目了然地知道研究主题。题目通常包括关键的研究方法、对象、研究变量或结论。
摘要(Abstract):
功能:摘要是整篇论文的简短总结,通常在200-300字之间。它包含了研究背景、目的、方法、结果和结论,目的是帮助读者快速了解论文的主要内容和结论。
关键词(Keywords):
功能:关键词是论文内容的核心术语,帮助研究人员和数据库快速检索相关研究。通常是3到5个关键词。
引言(Introduction):
功能:介绍研究的背景、现有研究现状(文献综述)、研究的目的及意义。通过提出研究的科学问题或假设,激发读者兴趣,阐明研究的必要性。(没有研究方法和和结论)
材料与方法(Materials and M ...
文献阅读指令集
指令集
指令1
请你阅读井理解这篇文献,然后将该篇文章的标题作为一级标题,将摘要和各个大标题作为二级标题,将小标题作为三级标题,将小标题下每一部分内容作为四级标题,给我以markdown的语言输出中文的翻译。去掉致谢和参考文献的部分。
指令2
请你以“该篇文章的笔记“为一级标题别以"该篇文章的研究目的”、“2.该篇文章的研究方法”、”3该篇文章的研究内容”、“4该篇文章的最大创新点”、“5该篇文章给我们的启发“为二级标题,总结的这五部分内容作为三级表题,给我总结后以markdown的语言输出。
指令3
请你对该文章中的所有的图例和表例按照顺序给我依次翻译成中文。
指令4
这是图X,请你结合该篇文章内容,首先给我介绍每个图中的横坐标和纵坐标各自表示的含义,然后针对每一个图给我详细的解释。
指令5
我对XX内容”不是很理解,请你用通俗的语言给我解释,并给我举出一个实例以让我更加深刻的理解。
gcc环境配置
Windows
来到mingw官网, 根据自己的喜好选择, 我这里选择mingw64
进去之后点击GitHub链接来到下载页面
i686 和 **x86_64 **分别代表32位和64位
posix 和 win32 代表默认使用线程库, 其实就是编译器默认参数选择, 如果是posix 链接的时候就回默认带上 -lpthread, 其实无论怎么选, pthread库都是包含的
msvcrt 和 ucrt 代表不同的运行时库, 就是一些基础函数, 库函数
配置环境变量
Linux 场景解决方案
前言
用于记录Linux使用的时候遇到的一些特殊场景, 以及对应的解决方案
多用户同时使用图形界面
机房有一台很好配置的服务器, 但是同学们不太会直接使用命令行界面, 都需要图形化的使用, 这个时候我们就需要多个用户同时使用, 就不用等某个同学的使用了
解决方案: vnc+内网穿透 或者 vnc+向日葵 (这个可能有点问题, 我尝试没成功)
要在CentOS服务器上设置VNC以便远程多用户访问,您可以按照以下步骤进行:
VNC安装
1. 安装VNC Server和桌面环境
首先,您需要安装一个VNC服务器和一个桌面环境。这里以TigerVNC和GNOME桌面环境为例:
123sudo yum install epel-release -ysudo yum install tigervnc-server -ysudo yum groupinstall "GNOME Desktop" -y
2. 设置VNC Server
创建VNC Server的配置文件:
1sudo cp /lib/systemd/system/vncserver@.service /etc/sy ...