onnx
本文主要记录onnx的相关知识 onnx介绍 开放神经网络交换 ONNX(Open Neural Network Exchange)是一套表示深度神经网络模型的开放格式,由微软和 Facebook 于 2017 推出。 通俗的说,onnx就是不同模型的中间桥梁。pytorch、tensorflow、mxnet等模型都可以转换为onnx模型,然后onnx模型可以转换为其他模型,例如TensorRT等。 从部署流程上认识onnx 下面是一个常规的神经网络部署流程: 前期准备 根据任务问题,我们选择解决的方案,分类、检测、分割等。然后选择合适的模型,例如yolov3、faster rcnn。 模型训练 使用pytorch、tensorflow等框架训练模型,训练完成后,保存模型。 例如训练YOLO模型,我们得到的结果是一个.pt文件 转换模型 将训练好的模型转换为onnx模型,方便后续部署。 onnx可以理解为封装成了一个包,输入输出都是tensor。 具体部署 将onnx模型部署到具体的硬件上,例如NVIDIA的tensorrt、高通的SNPE等。 ...
mmlab学习笔记
本文大致介绍mmlab的基本框架。 基本知识 config 文件 (1)命名规则 1{algorithm name}_{model component names [component1]_[component2]_[...]}_{training settings}_{training dataset information}_{testing dataset information}.py algorithm name: 算法名称。 例如:faster_rcnn model component names: 模型组件名称,包括backbone和neck等。 例如 r50-caffe_fpn_gn-head 表示在算法中使用 caffe 版本的 ResNet50、FPN 和 使用了 Group Norm 的检测头。 training settings: 训练设置, batch...
一些学习思路
写在前面,该文目的性很强,主要针对毕业任务,而非钻研科研,不过融汇百家思想的精华总是好多。非常感谢B站上的资料,让自己收益匪浅。之前总觉得一片茫然,听了之后还算是有了一定的目标和方向。科研思路 ...
mamba模块的简单原理
本文记录Mamba模型的学习。参考资料 提出的目的 新的模型的出现,必然是为了解决过去模型的不足。 Transformer在预测工作时,需要计算之前所有tokens的自注意力矩阵,这个工作的计算量时相当大的。也就是说预测时速度很慢,但是由于Transformer可以并行计算,所以训练非常快。 RNN 推理快,但是训练慢(不能并行计算),而且记忆时间不长。 那么我们就想有一种模型,训练也快推理也快。还有一定的记忆时长。 由简入深 状态空间模型 离散化:零阶保持器 循环表示 循环表示用来推理 卷积表示 卷积表示用来训练 结构化状态空间模型(S4) 引入HiPPO(Hungering Hungry Hippo),用来使得A保持大容量记忆。 其它改进 有选择地保留信息(Selectively Retain Information) 扫描操作(The Scan Operation) 硬件感知算法(Hardware-aware Algorithm)
雷达相机的标定
主要记录使用opencalib来标定相机和激光雷达。在一般的多传感器融合方案中,激光雷达投影到相机的思路是应用最广泛的。 Opencalib github链接 该仓库集合了各种传感器标定的实现方案,大部分由C++实现,部分用python实现视觉的特征提取。 12345678910SensorsCalibration|-- SensorsX2car|-- ...|-- lidar2camera |-- auto_calib |-- ... |-- manul_calib |-- data |-- include |-- src (1)例如我们选择用手动标记雷达到相机的方案。 12345cd lidar2camera/manul_calibmkdir buildcd buildcmake ..make (2)进行标定 12cd /PATH_TO_manual_calib/./bin/run_lidar2camera data/0.png data/0.pcd...
nn_trick
主要记录一些深度网络升点的技巧。参考资料 升点 AI performance = data(70%) + model(20%) + trick(10%),数据是对AI性能影响最大的。 数据处理 数据增强 (Data Augmentation) (1)NLP:回译,词性替换 (2)CV: resize、 crop、flip、ratate、blur、HSV变化、affine(仿射)、perspective(透视)、Mixup、cutout、cutmix、Random Erasing(随机擦除)、Mosaic(马赛克)、CopyPaste、GANs domain transfer等 pseudo label / meta pseudo label (伪标签,半监督学习,比赛常用) (1)pseudo label:伪标签是一种半监督学习方法,旨在利用有限的标注数据和大量的未标注数据来提升模型的性能。 其核心思想是通过一个初步训练的模型对未标注数据进行预测,并将这些预测结果作为“伪标签”,然后将这些伪标签与标注数据一起用于进一步训练模型。 (2)meta pseudo...
MOT任务的主要流程
主要记录MOT任务的大致流程,包括检测,追踪,评价,可视化中的一些细节 评价 对于MOT任务,业界一般采用Trackeval来进行计算。本节以测试MOT17的结果为例,简要介绍一下其使用细节。 选择要评价的数据集 常见的公开数据集都以Trackeval作为自己的官方评价工具,提供一个主函数文件。MOT17也是如此,我们在Trackeval库中可以找到run_mot_challenge.py文件。 1python scripts/run_mot_challenge.py --BENCHMARK MOT17 --SPLIT_TO_EVAL train --TRACKERS_TO_EVAL MPNTrack --METRICS HOTA CLEAR Identity VACE --USE_PARALLEL False --NUM_PARALLEL_CORES 1 前期准备 (1) gt数据准备 准备真值,注意格式要符合要求 (2) sequences...
论文阅读:strongsort
本文是论文“StrongSORT: Make DeepSORT Great Again”的阅读记录 论文概述 StrongSORT论文的主要贡献包括两个部分:对Deepsort的现代化改进(该部分介绍了很多现代技巧),提出两个模块Aflink和GSI。 StrongSORT 检测器模块升级 Faster RCNN —> YOLOX 外貌特征提取器模块升级 CNN —> BoT 特征存储机制小问题解决 为了解决对检测噪声敏感的问题,引入新的特征存储机制(平滑化)方法EMA eit=αeit−1+(1−α)fite_i^t=\alpha e_i^{t-1}+(1-\alpha)f_i^t eit=αeit−1+(1−α)fit 其中 fitf_i^tfit 是原始外貌特征,eite_i^teit 是新外貌特征 相机移动补偿小问题解决 文章提到,多数数据集(KITTI,MOT16,DanceTrack)都存在相机移动的问题,因此需要进行运动补偿。采用的方法是ECC 自适应卡尔曼滤波器 NSA...
数学表达式
本文用来记录一些MOT中的数学表达式 马式距离(Mahalanobis distance) 可以看作是欧氏距离的一种修正,修正了欧式距离中各个维度尺度不一致且相关的问题。它考虑了数据的类型,从而使得距离的表达更加有效。(例如身高和体重两个类型的数据。) DM(x,y)=(x−y)TM−1(x−y)D_{\mathbf{M}}(\mathbf{x}, \mathbf{y}) = \sqrt{(\mathbf{x} - \mathbf{y})^{\mathrm{T}} \mathbf{M}^{-1} (\mathbf{x} - \mathbf{y})} DM(x,y)=(x−y)TM−1(x−y) 其中 x,y 是数据样本点,M 是协方差矩阵。
偶然学会的小技巧
本文记录一些偶然用到的小技巧,跟科研无直接关联(也许?) 暴力破解压缩包密码 参考资料 大致思路 借助工具:join the ripper & hashcat,在命令行中运行。 首先利用join the ripper获得hash值 1rar2john.exe xxxx.rar 假如我们获得的输出是:"$rar5$16$4ce713ae3e7b5bc7f6ccff8fafa09fcc$15$bd7b7c38adefdb434dfb6424b6280e64$8$f6f2a7f332e958e5" 使用hashcat对hash码进行破解 1hashcat.exe -m 13000 -a 3 hash -o password.txt -m 13000: 代表hash的类型值,需要通过hashcat官网进行查询。例如上述例子的类型为 rar5 对应值为13000 hashcat官网 -a 3: 代表破解类型为掩码攻击,即无字典 -o password.txt: 代表结果保存在该文件里