nn_training
本篇文章主要记录一些GPU训练的内容 GPU情况查看 1nvidia-smi GPU:GPU 编号; Name:GPU 型号; Persistence-M:持续模式的状态。持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态; Fan:风扇转速,从0到100%之间变动; Temp:温度,单位是摄氏度; Perf:性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能(即 GPU 未工作时为P0,达到最大工作限度时为P12)。 Pwr:Usage/Cap:能耗; Memory Usage:显存使用率; Bus-Id:涉及GPU总线的东西,domain:bus:device.function; Disp.A:Display Active,表示GPU的显示是否初始化; Volatile GPU-Util:浮动的GPU利用率; Uncorr. ECC:Error Correcting Code,错误检查与纠正; Compute M:compute...
linux_tools
本文大致介绍一下linux里常用工具,如ffmpeg,simple ffmpeg ffmpeg是经典的视频(图像)编辑工具,可以实现图片制作视频,视频提取图片,制作GIF等功能。这些都是多目标追踪过程中常用的工具。 安装 Windows下直接搜索官网,在“release build”中找到“ffmpeg-x.x.x-essentials_build.zip”下载即可。 解压完成后,将/bin文件的路径添加到系统环境变量中即可。 图片制作视频 1ffmpeg -framerate 30 -i %06d.jpg -vf "scale=1544:1080" -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4 -framerate:设置输入图片的帧率为 30 帧每秒 -i:指定输入文件的格式 -s:设置输出视频的分辨率 -c:v:指定视频编码器,如“libx264” -c:a:指定音频编码器 -r: 设置输出视频的帧率 -pix_fmt yuv420p: 设置像素格式为...
bevformer
本文记录BEVFormer复现中需要注意的一些地方 torch相关安装 在官方教程中,给了推荐的torch的版本。经过实验,pytorch不要超过1.10,因为它取消了一个特性。 [THC/THC.h: No such file or directory报错解决][1] 12pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html# Recommended torch>=1.9 mmcv-full的安装 如果按照官方的做法,往往会卡住(科学上网可能会比较顺利),下面提供其它方法。 我们通过mmcv-full官方推荐的方法进行下载。 [Building wheel for mmcv-full (setup.py) … error解决办法][2] 12pip install -U openmimmim install mmcv-full==1.4.0 安装mmdet and...
yolo
简要介绍yolov5的原理,以及yoloX的提升。 YOLOv5 YOLO系列的核心思想就是把目标检测转变为一个回归问题,利用整张图片作为网络的输入,通过神经网络,得到边界框的位置及其所属的类别。 组成 Backbone 负责从输入图像中提取有用的特征。在较早的层中提取低层次的特征(如边缘和纹理),在较深层中提取高层次的特征(如物体和语义信息)。 Neck 聚集并细化骨干网提取的特征,通常侧重于加强不同尺度的空间和语义信息。 Head 根据特征进行预测,最后非极大值抑制(NMS),过滤掉重叠的预测,只保留置信度最高的检测。 基本工作原理 数据预处理 Mosaic数据增强:按照随机缩放、随机裁剪和随机排布的方式对四幅图像进行拼接。 自适应图像缩放:统一缩放到一个标准尺寸 网络结构 Focus:特殊的下采样模块 CSP:CSP1_X应用于backbone主干网络部分,backbone是较深的网络,增加残差结构可以增加层与层之间反向传播的梯度值,避免因为层数加深而带来的梯度消失。CSP2_X相对于CSP1_X来说,将Resunit换成了2 *...
BEV
本文主要大致介绍一种新的感知框架:BEV。 参考资料:自动驾驶中常聊的BEV感知到底是什么?,小白也能看懂的BEV感知技术(二) 什么是感知模块 以多种传感器的数据与高精度地图的信息为输入,经过一系列的计算和处理,对周围环境精确感知的系统,作用相当于人眼。其感知识别任务本质上是对物理世界进行3D几何重构,使计算机能够“认识”到物理世界中的实体和元素。 BEV的出现 随着车辆上搭载的传感器越来越多、越来越复杂,且安装位置、视角和数据格式不尽相同,因此,以统一的视角将来自不同传感器的多源信息进行数据整合,在统一的视图中表示特征变得至关重要。 BEV的英文全称为Bird’s-Eye-View,即鸟瞰视图,它模拟了从正上方垂直向下观看地球表面的效果,能够清晰地显示地形、建筑物、道路网络等地理要素之间的空间关系和布局。这种视图对于自动驾驶车辆而言至关重要,因为它简化了对周围环境的感知和理解。 ...
pytorch
Pytorch torch.nn torch.nn的基础功能: 创建神经网络 训练神经网络 保存神经网络 恢复神经网络 nn.Linear类(全连接层) 用于创建一个多输入、多输出的全连接层,注意本身并不包含激活函数(Functional)。 CLASS torch.nn.Linear 示例 1model = nn.Linear(in_features=5, out_features=10, bias=True) 参数说明 in_features: 输入的二维张量的大小。一般大小为 n×in \times in×i。其中,nnn 代表样本数(batch size),iii 代表特征数。对于图片数据,特征数可能是多个维度相乘的形式。 out_features: 输出的二维张量的大小。这个参数指定了线性层输出的特征维度。 nn.functional(常见函数) nn.functional定义了创建神经网络所需要的一些常见的处理函数。如没有激活函数的神经元,各种激活函数等。 torch.nn.functional 示例 12output =...
Kalman
卡尔曼滤波在目标跟踪中的作用大致可以分为两个部分:预测和最优估计。 数学原理 状态预测方程: x^k∣k−1=Ax^k−1∣k−1+Buk−1 \mathbf{\hat{x}}_{k|k-1} = \mathbf{A} \mathbf{\hat{x}}_{k-1|k-1} + \mathbf{B} \mathbf{u}_{k-1} x^k∣k−1=Ax^k−1∣k−1+Buk−1 其中,x^k∣k−1\mathbf{\hat{x}}_{k|k-1}x^k∣k−1 是状态预测值,A\mathbf{A}A 是状态转移矩阵,B\mathbf{B}B 是控制矩阵,uk−1\mathbf{u}_{k-1}uk−1 是控制输入。 预测误差协方差方程: Pk∣k−1=APk−1∣k−1AT+Q \mathbf{P}_{k|k-1} = \mathbf{A} \mathbf{P}_{k-1|k-1} \mathbf{A}^T + \mathbf{Q} Pk∣k−1=APk−1∣k−1AT+Q 其中,Pk∣k−1\mathbf{P}_{k|k-1}Pk∣k−1...
Lidar
简要介绍激光雷达的原理 基本原理 测距原理 激光反射,根据飞行时间ToF来计算目标物体的距离。x = ct/2 扫描原理 大致分为两个大类:机械旋转、固态扫描(光学相控阵,微机电系统) 无人机常用的mid360采用的是光学相控阵,原理是光栅衍射。 点云预处理 重采样:包括增加数据和减少数据。上采样一般方法有:插值。常常用作填充缺失的点。下采样:统计滤波,高斯滤波:高斯函数进行加权平滑数据,深度学习。常常用来降噪。 目标检测 Centerpoint 摘自:centerpoint 1.输入:点云数据P 2.经过3D编码器(如VoxelNet或者PointPillars),生成俯视图特征图M 3.进入检测头,首先是一个可学习的3x3卷积层、BN层、ReLU激活函数 4.分支到两个头: (1) 中心点heatmap头:进行几个卷积生成K个热力图,表示K类目标的中心点置信度 (2)...
Hungarian
匈牙利算法是多目标追踪算法中最基础的数据关联方法。 基本思路 在追踪问题当中,我们的目标是将“当前时刻的检测目标”和“过去(上一时刻)已经存在的目标轨迹”进行一一对应。经过过去学者的研究,将这个问题转换为一个分配问题,从而可以用匈牙利算法进行求解。 数学表达 分配问题 对于 \( n \times n \) 的代价矩阵 \( C \),需要求得最小的总代价: min∑i=1n∑j=1ncijxij\min \sum_{i=1}^n \sum_{j=1}^n c_{ij} x_{ij} mini=1∑nj=1∑ncijxij 并且满足以下约束条件: 每个人只能完成一个任务且必须做一个任务: ∑i=1nxij=1∀j=1,2,…,n\sum_{i=1}^n x_{ij} = 1 \quad \forall j = 1, 2, \ldots, n i=1∑nxij=1∀j=1,2,…,n 每个任务只能由一个人完成且必须完成: ∑j=1nxij=1∀i=1,2,…,n\sum_{j=1}^n x_{ij} = 1 \quad \forall i = 1, 2,...
Common Nerual Network
本文介绍图像中经典的网络结构 卷积神经网络(CNN) LeNet 最早期的卷积神经网络之一,由Yann LeCun等人在1998年提出,主要用于手写数字识别,奠定了CNN的基础 AlexNet 2012年ImageNet竞赛的冠军模型,首次引入ReLU激活函数、Dropout等技术,标志着深度学习在计算机视觉领域的崛起 VGGNet 使用小尺寸卷积核和更深的网络结构,显著提高了性能,但计算量较大 生成对抗网络(GAN) GAN 由生成器和判别器组成,用于生成新的图像数据 DCGAN 深度卷积生成对抗网络,基于卷积神经网络的GAN,提高了图像生成质量 目标检测网络 R-CNN系列 包括R-CNN、Fast R-CNN、Faster R-CNN等,基于区域提议的两阶段检测算法 YOLO系列 单阶段检测算法,速度快,实时性好 SSD 多尺度特征图检测,兼顾速度和精度 Vision Transformer(ViT) 将Transformer结构应用于图像分类,取得了优异效果