自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 c++课后作业

注意⚠️:这里不能从后往前找,因为想从后往前找就只能使用strlen,而strlen本质就是遍历一遍字符串,这样就更慢了。

2024-07-12 15:52:25 1203 6

原创 STL容器

vector就是加强版的数组,是连续的顺序的储存结构(和数组一样的类别),有长度可变的特性。时间复杂度:O(n)

2024-04-19 14:03:11 217

原创 xlsx转换为csv

【代码】xlsx转换为csv。

2024-03-21 10:16:43 555 2

原创 田路分离数据样本不平衡的处理方法

因为农机大部分时间是在田地工作,所以大多数农机轨迹样本存在数据分布不平衡的问题,既田地数据多,道路数据少。因为用于分类的大多数机器学习算法都是围绕每个类别的样本数量均相等的假设来设计的。这导致模型的预测性能较差,特别是针对样本较少类别的预测。针对这一情况,采用过采样加欠采样的方法对数据进行增强、扩充,得到平衡的数据集。SafeLevelSMOTE 是一种改进的 Synthetic Minority Over-sampling Technique(SMOTE)算法,用于处理类不平衡问题。

2024-03-21 10:13:31 439

原创 python中的魔法方法

new和init这两个比较容易搞混,他们的主要区别就是:new是一个class建立object的过程,init是有了这个object之后给object初始化的过程,new是有返回值的,init是没有返回值的。如果我们在创建object的过程中传入了一些参数,这些参数既会传入的new中也会传入到init中,在实际应用中new函数用的比较少(一般只有单例的情况修下才用new)。python中的运算符重载,当我们想要比较两个自己定义的class时,需要对运算符进行重载。

2023-12-11 14:25:21 482

原创 argparse参数总结(方便之后自己看)

description是argparse的具体描述,add_argument用来增加参数。更多的参数介绍如下:5.help:指定参数的说明信息6.nargs:设置参数在使用时提供的个数。例如: 其中x的候选值和含义如下:7.dest:设置参数的变量名。argparse默认的变量名是或后面的字符串,但是你也可以通过dest来设置参数的变量名,然后在代码中用args来获取参数的值。8.action - 命令行遇到参数时的动作,默认值是 store。

2023-04-11 11:08:07 674 1

原创 匈牙利算法

2.未被线覆盖的所有的元素都减去K。2.假如用的线少于n(这里的n为3,匈牙利算法要求为n*n矩阵)就继续循环)。C.对矩阵中的元素做变换,得到更多的0元素(1.找出未被线覆盖的所有元素中的最小值记为K。2.让每一行的所有元素减去其最小值(第一行:减8,第二行:减35,第三行:减22),这样每一行至少有一个0。1.找出每一行的最小值(第一行:8,第二行:35,第三行:22)。3.让每一列的所有元素减去其最小值,这样每一列至少有一个0。4.开始循环(A.用尽量少的线覆盖矩阵中所有的0元素。

2023-01-15 20:05:45 59

原创 冒泡排序、选择排序、插入排序(python)

冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列, 一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行 直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元 苏会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后 的元素会是最大的数。

2022-09-18 21:00:18 173

原创 队列--python

队列是一种先进先出的(First In First Out)的线性表,简称 FIFO。允许插入的一端为 队尾,允许删除的一端为队头。假设队列是 q=(a1, a2,……,an),那么 a1 就是队头元素,而 an 是队尾元素。这样我们就可以删除时,总是 从 a1 开始,而插入时,总是在队列最后。这也比较符合我们通常生活中的习惯,排在第一 个的优先出列,最后来的当然排在队伍最后。队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列(先进先出),栈(先进后出)。

2022-09-18 16:37:28 247

原创 二分查找-python

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求 待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有 序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较, 如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后 fp 两个子表,如果中 间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找 不成功。

2022-09-17 14:12:38 174

原创 python中的链表

单向链表也叫单链表,是链表中最简单的一种形式,他的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的连接域则指向一个空值。(3)变量 p 指向链表的头节点(首节点)的位置,从 p 出发能找到表中的任意节点。(2)链接域 next 用来存放下一个节点的位置(python 中的标识)(1)表元素域 elem 用来存放具体的数据。

2022-09-14 19:45:39 547

原创 2022 百度秋招笔试

小煜购买了两款游戏,第一款游戏中共有n个关卡,通过第i关需要花ai的时间;第二款游戏共有m个关卡,通过第i关需要bi的时间。两款游戏都不允许跳过关卡,既必须通过第i关,才能挑战第i+1关。第二行输入n个整数 a1,a2,a3........an,其中ai表示第一个游戏通关第i关需要的时间。第三行输入m个整数b1,b2,b3.........bn,其中bi表示第二个游戏通关第i关需要的时间。第一行输入三个整数 n, m, t,分别表示两个游戏的总关卡数以及总游戏时长。

2022-09-14 15:28:36 996

原创 python中的栈

栈是一个特殊的有序列表,其插入和删除操作都在一端(栈顶)进行。

2022-09-11 10:23:57 3534

原创 Python版算法实战-二叉树

(7) 节点的层次:从根开始定义起,根为第 1 层,根的子节点为第 2 层,以此类推;(4) 父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;(5) 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;(11)子孙:以某节点为根的子树中任一节点都称为该节点的子孙。(1) 节点的度:一个节点含有的子树的个数称为该节点的度;(6) 兄弟节点:具有相同父节点的节点互称为兄弟节点;(10)节点的祖先:从根到该节点所经分支上的所有节点;(2) 没有父节点的节点称为根节点;

2022-09-09 15:57:42 1003

原创 Ubuntu18.04 pycharm汉化

Setting>plugins中,选择Marketplace,搜索chinese,点击那个有汉这个字的插件进行安装,安装好后重启pycharm就好了。

2022-07-15 10:08:45 697 2

原创 yolox+deepsort实现多目标行人跟踪

源码地址https://github.com/pmj110119/YOLOX_deepsort_tracker配置环境(很关键)一定要检查自己的torch版本和CUDA版本是否对应。我使用的torch版本为1.7.1,CUDA为11.0实现按照github上的历程实现比较容易。但是我发现这个项目只能使用.pth.tar类型的权重。不能加载.pth的权重。试了好久还是不行,于是将YOLOx替换了。github地址如下https://github.com/qfs1980398040/pyto

2022-03-08 17:43:40 83

原创 FPN自学笔记

这篇论文是CVPR2016年的文章,采用特征金字塔做目标检测。针对目标检测任务在cocoAP上提升了2.3个点,pascalAP上提升3.8个点。还是提升比较明显的。上面四个图是论文给出的四幅图。图a是常见的特征图像金字塔结构,在早起被广泛的使用。将图片缩放到不同的尺度,依次经过算法来进行预测,他的缺点也是比较显而易见的这样会造成大量的计算效率低下(我们生成多少个尺度就需要进行多少次预测)。图b就是比较标准的CNN经过特征提取网络得到最后的特征图,最后用特征图进行预测。他的缺点是对小目标不太

2022-02-09 13:59:20 1831

原创 mAP笔记

目标检测网络训练时会得到coco的一系列评价列表。那么这些数都代表什么意思呢。首先要明确几个概念TP(True Positive):IOU>0.5的检测框的数量(同一个Ground True只计算一次。认为匹配成公)。FP(False Positive):IOU<=0.5的检测框(假正类,认为它是但它不是)。FN(False Negative):没有检测到的GT的数量(漏检)。Precision(查准率):TP/(TP+FP)模型预测的所有目标中,预测正确的比例Recall(

2022-01-28 22:37:44 3468 1

原创 ShuffleNetv2 自学笔记

v2是对v1的进一步改进,作者提出网络的计算复杂度不能只看FLOPs,并提出了4条设计高效网络的准则,依据这几条准则提出了新的block设计。原因分析FLOPs知识衡量模型速度一个间接指标,speed才是直接的指标。作者认为除了FLOPs还有一些需要考虑的因素,MAC(memory access cost)(内存访问的时间) 、并行等级(在相同FLOPs下并行度高的网络速度更快)、相同的FLOPs在不同的平台上执行消耗时间也不同。如何设计一个高效的网络 G1:当卷积层的输入特征矩阵与

2022-01-27 19:39:15 2330

原创 Densenet自学笔记

Densenet与Resnet相比两者都是通过建立前面层与后面层之间的联系来提高网络的性能。Resnet(下图1)是使用add,而Densenet(下图2)是采用concat。网络结构Densenet是通过堆叠DenseBlock模块和Transition结构。DenseBlock在DenseBlock中,各个层的特征图大小一致,可以在channel维度上进行拼接。DenseBlock中的非线性组合函数采用的是BN + Relu + 3*3卷积的结构。后续每.

2022-01-25 22:01:08 972

原创 Inception v3 自学笔记

Inception v1GoogleNet也就是inceptionv1 是堆叠了9个inception模块(加入1*1卷积之后的)。上图为inception模块还是比较简单的。由于传统的inception模块计算量太大,所以gooldnet使用了1*1卷积对其进行了降维处理。左侧为传统的inception模块,右侧为加入1*1卷积后的模块。Inception v2创新了三种inception模块。A模块是将5*5的卷积用两个3*3的卷积替代(7*7的卷积可以用三...

2022-01-24 21:33:29 1261

原创 MobileNetv3自学笔记

v3对比v2 主要有三个部分的改动从上图可以看出v3对比v2更准确,更高效。

2022-01-21 21:01:23 929

原创 ShuffleNet v1 自学笔记

从图上可以看出 ShuffleNet v1在精度上较MobileNet有了不小的提升使用组卷积能够减少参数的计算量,但是问题是各组之间没有信息交互。上图a所示每个颜色代表一个组。为了解决这个问题,作者提出了channel shuffle的思想,如上图b所示假设我们采用三个组,那么对每个组再分成三份将他们重新组合。作者提到,在resnet中,1*1的卷积的计算量占到了93.4%。所以作者将所有的1*1卷积换成了组卷积。...

2022-01-19 21:17:14 1225

原创 SSD自学笔记

ssd发布于ECCV2016 ,是一个非常经典的one-stage网络。网络结构上图为SSD的网络结构。输入图像,将其缩放到300*300,然后经过特征提取网络VGG16(贯穿到Conv5的第三层)。后续经过一系列的操作得到6个预测特征层。浅层提取的特征用来检测小目标,随着网络的加深语意信息不断增强,深层网络用来预测大的目标。这样就实现了在不同尺度上去匹配对应的目标,后来的YOLO也是这个思想。Default Box的scale以及aspect设定对于aspect,conv4_.

2022-01-07 22:28:47 1720

原创 EfficientNetV2自学笔记

引入了Fused-MBConv模块引入了渐进式学习策略(训练更快),该方法会根据训练图像的尺寸动态调节正则方法(Dropout,Rand Augment,Mixup)(提高训练速度、准确率)。在EfficientNetV1中作者关注的是准确率,参数数量以及FLOPs( 理论计算两小不代表推理速度快),在V2中作者进一步的关注模型的速度EfficientNetV1中存在的问题:1.训练图像的尺寸很大时,训练速度非常慢2.在网络浅层中使用DW卷积速度会很慢3.同等的放大每个st...

2021-12-24 11:35:27 1710

原创 fast r-cnn

fast r-cnn算法流程可分为三步:1.一张图生成1000~2000个候选区域(使用ss算法)2.将图像输入到网络得到相应的特征图,将ss生成的候选框投影到特征图上获得相应的特征矩阵3.将每个特诊矩阵通过ROI pooling层缩放到7*7大小的特征图,接着将特征图通过一系列全连接层得到预测结果。与R-cnn的区别R-cnn将所有的候选框缩放然后输入到网络中ROI pooling将特征图划分为7*7个小方格,对每一个小方格进行最大池化,这样特征图就缩放到了7*..

2021-11-09 15:07:17 343

原创 卡尔曼滤波

卡尔曼滤波器是一种最优化递归数字处理算法卡尔曼的应用非常的广泛,尤其是在导航之中。卡尔曼滤波器的广泛应用是因为在我们的生活当中存在着大量的不确定性。当我们去描述一个系统的时候不确定性主要体现在三个方面1。不存在完美的数学模型2。系统的扰动是不可控的,也很难建模3。测量传感器自身的误差例子首先,举一个例子。如上图所示,我们请三个人测量一枚硬币。由于每个人测量的方式还有测量工具本身的误差,z为测量值,测量结果分别50.1 , 50.2 ,50.4。此时我们想要得到这个硬币的近似宽度.

2021-10-07 22:05:43 162

原创 RPN自学笔记

RPN是用来提取候选框的网络。rpn出自Faster R-CNN。Faster R-CNN = RPN +FastR-CNN。上图所示为Faster R-CNN的网络结构。Faster R-CNN的算法流程可以分为三个步骤:1.将输入图像输入到特征提取网络中的到特征图2.使用RPN网络生成候选框,投影到特征图上获得相应的特征矩阵。3.将每个特征矩阵通过ROI pooling层缩放到7*7大小的特征图,将特征图展平通过一系列的全连接层得到预测结果。RPN网络的结构:...

2021-10-05 22:21:40 470

原创 Siamese网络

Siamese Network(孪生网络)首先是两两训练Siamese Network首先要选取一个很大的数据集,数据集有标注,每一类下面都有很多的样本。正负样本的选取(这些样本的选取都是随机的),训练时正负样本的数量要一致:图片输入进网络会生成一个特征向量:将两张图输入到网络中(此时的网络是同一个网络),然后将他们生成的特征向量相减再取绝对值。z表示他们两个的区别。再用一些全连接层处理这个z向量,最终生成一个标量,经过sigmoid函数的到的结果是一个介于...

2021-10-04 15:07:57 355

原创 python 矩阵的切片

【代码】python 矩阵的切片。

2021-09-29 16:42:19 1281

原创 anaconda 创建虚拟环境

最简单的创建环境的方法:conda create -n you_name python=3.7conda查看已有的环境:conda create -n you_name python=3.7conda激活已有环境:conda create C:\ProgramData\Anaconda3\envs\deepsort

2021-09-28 22:04:17 53

原创 YOLOv3 spp配置文件解析(自学笔记)

位置cfg/yolov3-spp.cfg。[net]对网络是不起任何作用的。-3的含义spp的搭建上采样层:将输入的高和宽放大为原来的两倍yolo层:接在三个预测器后面对预测结果进行后处理以及生成一系列的anchorcoco数据集的类别个数为80mask是索引anchors:两个一组,第一个数为宽,第二个为前。三个是小目标,中间三个中目标,最后三个大目标...

2021-09-28 15:20:20 269

原创 YOLOv3 spp

github连接:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing进入之后点pytorch_object_detection然后找到yolov3_spp。readme已经写得很详细了。注意:4.2 如果是你自己的数据集 .names文件需要重写。可以先建立一个txt文件 然后重命名为 .names文件。train.py上图为train.py的参数配置。重要的已经加上注释了。freeze-layers打

2021-09-28 14:11:40 208

原创 Focal loss

一张图像中能够匹配到目标的候选框(正样本)个数一般只有十几个活几十个。而没有匹配到的候选框(负样本)大概有10000 - 100000个。在这10000 - 100000个未匹配的候选框中大部分都是简单易分的负样本(对训练网络起不到什么作用,但由于数量太多淹没掉少量但有助于训练的样本)OHEM 是使用正负样本选取的结果,最后一行是Focal loss的结果,可以看到效果还是不错的。focal loss 的设计是为了去应对one stage目标检测里面正负样本极度不平衡的情况(前景和背景极..

2021-09-27 20:11:18 2156 1

原创 IOU GIOU DIOU CIOU 及代码实现

发展过程:IOUIOU(交并比)顾名思义就是两个框的交集除以他们的并集。IOU Loss:或者IOU Loss = 1 -IOU(比较常用)IOU 的优点:1.能够很好的反应重合的程度2.具有尺度不变性缺点:当不相交时候loss为0 (IOU Loss = 1 - IOU)GIOU如图绿色边界框为真实的边界框,红色边界框为网络预测的边界框,蓝色边界框为用最小的矩形把两个边界框给框住。 = 蓝色目标边界框面积。...

2021-09-27 15:08:58 526

原创 Bounding Box与anchor box

之前一直分不清Bounding Box与anchor box,直到问了一下YOLO会将输入的图片分成S*S个网格,每个小网格会生成n个anchor Box。图像的真实框会和图像中心点所在的小网格生成的anchor box做IOU计算。回归出来的框就是Bounding Box(也就是网络输出的框,他与真实框和anchor Box都有差距)...

2021-09-26 13:05:51 4411 7

原创 目标追踪初试yolov5+deepsort(自学笔记)

项目地址mikel-brostrom/Yolov5_DeepSort_Pytorch: Real-time multi-object tracker using YOLO v5 and deep sort (github.com)此文章所用版本为v2.0clone下的项目缺少YOLOv5 需要自行下载YOLOv5选择相对应的版本下载完成后解压到yolov5的文件夹下即可1. 在文件目录下打开powershell窗口(shift+右键)创建虚拟环境(我已经创建过了此时不需要创建了) 然后激活.

2021-09-11 10:17:27 2727 2

原创 flv转mp4(ffmpeg)

1.下载ffmpeg链接:https://pan.baidu.com/s/1pjrSoIuF4GbSUx5RDE1L9Q提取码:cmsl2找到bin文件打开将你所要转换的视频拷贝到bin文件下3 win+r 输入cmd打开 运行窗口 cd到当前的目录下(bin文件要拷贝到c盘目录下)输入指令 ffmpeg -i xxx.flv -c copy xxx.mp4 xxx.flv是你输入文件的名称根据自己的情况自行修改,xxx.mp4是输出的文件名称。...

2021-09-11 09:39:37 1171 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除