OpenMMLab 实战营打卡 - 第 4 课
目标检测基础与 MMDet
目标检测简介
实例应用
人脸识别
身份识别、属性分析
…
智慧城市
垃圾检测、非法占道检测、违章停车检测、危险物体检测、自助服务、烟雾和火灾检测、标准着装检测、危险行为检测
…
自动驾驶
环境感知、路径规划与控制
…
下游视觉任务
文字之别、人体姿态估计
…
滑窗
Sliding Window
未完待续…
MMclassification初实践(小白向)
由于本人之前没有接触过python和机器学习的相关知识,这次图像分类的配置过程可谓一路艰辛……(悲
不过好在最后终于成功训练出了模型并进行了相应的测试,因此就把这次的配置过程记录下来,就当是一次避坑总结了。过程中也借鉴了一些博主的操作,我在文中都会有所提及。
配置环境概览:
平台: Windows 11
Python: 3.9.16
GPU: 本地 GPU
CUDA: 11.7
cuDNN: 8.5
Pytorch: 1.13.1
OpenCV: 4.6.0
MMCV: 1.7.0
MMCls: 0.25.0
PS: 自建训练集
一、环境安装
整体环境框架如下:
1. CUDA 与 cuDNN 安装
网上有很多的教程,这里就不再赘述了,不过我以后有时间会补充上滴。这里推荐一个:【CUDA】cuda安装。
不过有一点要说明,在安装 CUDA 之前要先看一下自己的显卡最高支持的 CUDA 版本和适合于 Pytorch 的 CUDA 版本,版本安装错了后面会出现很多问题。
比如我的 NVIDIA GPU 最高支持到 CUDA 12.0,Pytorch 官网目前最 ...
OpenMMLab 实战营打卡 - 第 3 课
MMcls 实例应用 & 超算平台的使用
MMClasification
深度学习模型的训练涉及几个方面:
1. 模型结构:模型有几层、每层多少通道数等等
2. 数据集:用什么数据训练模型: 数据集划分、数据文件路径、数据增强策略等等
3. 训练策略:梯度下降算法、学习率参数、batch size 训练总轮次、学习率变化策略等等
4. 运行时:GPU 、分布式环境配置等等
5. 一些辅助功能:如打印日志、定时保存 checkpoint 等等
在 OpenMMLab 项目中,所有这些项目都涵盖在一个配置文件中,一个配置文件定义了一个完整的训练过程:
1. model 字段定义模型
2. data 字段定义数据
3. optimizer、Ir_config 等字段定义训练策略
4. load_from 字段定义与训练模型的参数文件
配置文件的运作方式如下:
图像分类模型的构成:
图像分类模型的构建:
数据集的构建:
定义数据加载流水线:
配置学习策略:
预训练模型库:
[MODEL ZOO SUMMARY](https://mmc ...
OpenMMLab 实战营打卡 - 第 2 课
图像分类基础与 MMCls
图像分类概述
图像分类问题就是构建一个可实现的计算函数 $F: \mathbb{R}^{H \times W \times 3} \rightarrow \left{ 1, \cdots, K \right}$ ,且预测结果符合人类认知。但是难点就是图像内容是像素整体呈现出来的结果,和个别像素没有直接的关联,难以设计具体的算法实现。于是需要需要让机器从数据中学习。而机器学习也是有局限的,机器学习算法善于处理低维、分布相对简单的数据,而对于几十万维的复杂数据处理优势就不足了。我们需要更好的图像分类方法。
特征工程
在 90 年代,人们用计算梯度直方图 (Histogram of Oriented Gradients) 等一些人工算法将图片映射成相对低维的特征向量,这样极大的简化了数据的表达,同时也保留了内容相关的信息,使得机器学习得以处理图像分类问题。
但是这些也只是特征工程 + 机器学习算法实现图像分类,性能和效果还有很大的提升。
特征学习
之后人们开始探索从特征工程到特征学习的转变,特征学习其实也就是学习如何产生适合分类的特征,将多个简单 ...
OpenMMLab 实战营打卡 - 第 1 课
初探深度学习与神经网络
1.计算机视觉四大基本任务
1.检测:如特定目标检测,通用目标检测等。
2.分割:如语义分割、实例分割、关键点检测等。
3.定位
4.分类
案例:虚拟主播,人脸识别,人体姿态跟踪等等。
2.MMLab算法框架
MMDetection:目标检测
MMClassification:图像分类
MMSegmentation:语义分割
MMPose &MMHuman3D:人体姿态
MMTracking:目标追踪
MMAction2:视频理解分析
MMOCR:文字检测
MMEditing:图像处理
……
算法框架
3.机器学习
为什么要进行机器学习
从数据中学习经验,来解决特定问题
一般步骤:问题——收集数据——拟合模型
机器学习的典型范式
1.监督学习:数据之间存在某种映射关系,如何基于有限的数据样本推断出这种关系?
2.无监督学习:数据自身是否存在某种“结构或"规律”?
3.强化学习:如何和环境交互,以获得最大收益?
机器学习的基本流程
1.训练:采集一些数据,标注它们的类别,从中选取一 ...
灰度图像变换——阈值化处理
##1、OTSU阈值化
最大类间方差算法,步骤如下:
统计每个像素在整幅图中的个数——计算每个像素的概率分布——对灰度值进行遍历搜索,计算当前灰度值下前景背景类间概率——通过目标函数计算出类内与类间方差下对应的阈值。
代码如下:
int OTSU(Mat srcImg)//输入灰度图像{ int nCols = srcImg.cols;//纵方向x int nRows = srcImg.rows;//横方向y int threshold = 0;//输出的灰度阈值 int nSumPix[256];//灰度级统计数组 float nProDis[256];//灰度级概率分布数组 for (int i = 0; i < 256; i++)//初始化统计数组 { nSumPix[i] = 0; nProDis[i] = 0; } for (int i = 0; i < nRows; i++)//统计灰度 { for (int j = 0; j < nCols; j++) { nSumPix[(int ...
概率论与数理统计之“分赌注问题”
摘要
分赌注问题又称为点数问题,是法国学者梅雷于1654年向法国数学家帕斯卡提出的。
该问题简单来说就是两个水平相同的赌徒A和B,约定先胜$t$局的人赢得赌注,在赌局中的某时刻,两赌徒终止赌博,此时A胜$r$局,B胜$s$局,应该如何合理分配赌注。赌注问题不仅成为概率论的起源,同时荷兰数学家惠更斯在此基础上撰写《论赌博中的计算》一书,提出了数学期望的概念,推动了概率论的发展。
本文用理论分析运算得出赌注分配的最佳方案,并采用MATLAB仿真实验验证结果的正确性。
一、问题假设
假设先胜18局的人赢得赌注,且在A胜10局且B胜7局的时候终止赌博;
假设赌徒A和B的胜率相同,即每一局A和B都有0.5的机会赢得胜利;
由于$r$和$s$的大小不影响问题的讨论,不妨假设$r>s$。
符号
符号说明
$t$
获得赌注需要获胜的次数
$r$
A已经获胜的次数
$s$
B已经获胜的次数
$P_A$
A先获胜$t$局的概率
$P_B$
B先获胜$s$局的概率
$P_a$
A获胜一局的概率
$P_b$
B获胜一局的概率
$i$
比赛结束时的 ...