自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Learning to Segment Object Candidates(deepMask)

请注意,输出平面中的每个像素分类器必须能够利用包含在整个特征图中的信息,从而具有对象的完整视图。这是至关重要的,因为与语义分割不同,网络必须为单个对象输出掩码,即使存在多个对象。可局部或完全连接的像素分类器:这两种选择都有缺点,在前者中,每个分类器只有对象的部分视图,而在后者中,分类器有大量冗余参数。其中,如果物体中心点没有包含分割对象,也就是YK=-1,则前者为0,只计算目标检测分数;(2)输入补丁mk对应的二进制掩码(mij k∈{±1},其中(i, j)对应输入补丁上的像素位置),

2023-06-21 14:25:28 145

原创 Machine learning and data mining(一)

【代码】Machine learning and data mining(一)

2023-05-17 20:20:04 195

原创 搭建自己的YOLOV1检测器,训练自己的数据集

借鉴了YOLOv2工作给出的多尺度配置,每训练10次,就随机从{320,352,384,416,448,480,512,544,576,608}中抽取一个新的尺寸,用做接下来训练中的图像尺寸。SPP接受的输入特征图大小是13x13x512,经过四个maxpooling分支处理后,再汇合到一起,那么得到的是一个13x13x2048的特征图,这里,我们会再接一个1x1的卷积层(conv1x1+BN+LeakyReLU)将通道压缩一下,这个1x1的卷积层没有在图中体现出来。1.改进Backbone。

2023-05-10 11:11:53 200

转载 YOLOV1目标检测算法复现一

4.3 bbox预测 在YOLOv1中,bbox分支就是学习中心点的偏移量 ��,�� 和归一化的边界框的宽高 �,ℎ ,但是不论是哪个量,YOLOv1均使用线性函数来输出,未加任何约束限制,很明显会有以下两点问题: a) 由于偏移量��,��是介于01范围内的数,因此,其本身就是有上下界的,而线性输出并没有上下界,这就容易导致在学习的初期,网络可能预测的值非常大,导致bbox分支学习不稳定。在训练过程中,在正样本候选区域处(�����,�����) 处: 第1步:YOLOv1网络输出B个预测框;

2023-05-06 15:06:59 340

原创 Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks

1.Proposal Layer有3个输入:positive vs negative anchors分类器结果rpn_cls_prob_reshape,对应的bbox reg的 变换量rpn_bbox_pred,以及im_info;在作者的论文中,默认在每一个点上抽取了9种Anchors,具体Scale为{8, 16, 32}, Ratio为{0.5, 1, 2},将这9种Anchors的大小反算到原图上,即得到不同的原始Proposal,实际上通过anchors就引入了检测中常用到的多尺度方法。

2023-04-05 15:12:22 268

原创 Rich feature hierarchies for accurate object detection and semantic segmentation

(1) Pre-training,由于目标检测的数据量相对较少,不足以训练一个好的CNN网络,因此首先使用一个大的数据集(ILSVRC2012数据集)来训练AlexNet,得到一个预训练的分类网络模型。3.SVM要寻找的最优解:每一个可能把数据集正确分开的方向都有一个最优决策面,而不同方向的最优决策面的分类间隔通常是不同的,那个具有“最大间隔”的决策面。2.在计算2k个建议框的CNN特征时,在硬盘上保留了2K个建议框的Pool5特征,虽然这样做只需要一次CNN前向网络运算,但是耗费了大量磁盘空间。

2023-03-23 19:30:53 89

原创 OpenCV轻松入门读书笔记(七)

如果我们的信号是由采样产生的离散信号好组成,我们会得到类似的频谱图,只不过前面是连续的,现在是离散。各个命名空间是独立的,没有任何关系的,所以一个命名空间中不能有重名,但不同的命名空间是可以重名而没有任何影响。我们举一个计算机系统中的例子,一个文件夹(目录)中可以包含多个文件夹,每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名。,模块中定义的名称,记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。,函数中定义的名称,记录了函数的变量,包括函数的参数和局部定义的变量。

2023-03-13 17:12:47 49

原创 OpenCV轻松入门读书笔记(六)

h.它们分别代表三角形的三条边长,判断这三条边是否能组成一个三角形,当判断为是时,你应该使用print语句输出Is a triangle,当判断为否时,则使用print语句输出Not a triangle。Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,从而处理需要重复处理的相同任务,直到不满足给定条件时,才会结束循环。t.输入一个正整数n,输出元素值不超过n的三元组中,能组成三角形的三条边边长的元组个数。中获取一个正整数n,并输出区间[1,n]内所有数的和。

2023-03-10 21:32:06 75

原创 论文学习笔记(Densely Connected Convolutional Networks)

何恺明在提出ResNet时做出的假设: 若某一较深的网络多出另一较浅网络的若干层,且这些层有能力学习到恒等映射, 那么这一较深网络训练得到的模型性能一定不会弱于该浅层网络。在Denseblock中,假设每一个卷积操作的输出为K个feature map, 那么第i层网络的输入便为(i-1)×K +(上一个Dense Block的输出channel), 这个K在论文中的名字叫做Growth rate, 默认是等于32的。假设输入为一个图片X 0, 经过一个L层的神经网络, 第 l 层的特征输出记作 X l.

2023-03-06 15:26:02 105

原创 OpenCV轻松入门读书笔记(五)

p.给你一个字典 my_dict 和一个非空列表 nums,将 nums 中的元素替换成 my_dict 中对应的 value,输出替换后的 nums。类似地,B - A 是 B 中但不在 A 中的一组元素。l.给你三个集合my_dict1、my_dict2和my_dict3,输出在前两个集合中都存在,但不在第三个集合中的元素个数。o.给你两个字典my_dict1和my_dict2,请你将其合并成一个字典,输出合并后的字典的大小。A 和 B 的对称差异是 A 和 B 中的一组元素,但两者中的元素相同。

2023-03-04 21:32:06 50

原创 OpenCV轻松入门读书笔记(四)

h.实现splitlines函数功能:将一段文字按行边界符拆分为列表,参数src是一段包含 0 个或多个行边界符的字符串,在函数体中编写代码,在出现行边界符的位置拆分传入的src字符串, 最后返回按照行边界符拆分后的所有字符串中长度最大的字符串,如果出现多个结果,则返回第一个匹配字符串。将 str_1 切片,得到该字符串索引 1 至 4 的数据,即索引 1,2,3的部分,得到新的字符串。输入一个长度为偶数的元组my_tuple,输出两个元组,一个是元组的前一半,一个是元组的后一半。因此,性能略有提升。

2023-03-02 21:57:53 93

原创 OpenCV轻松入门读书笔记(三)

● 使用加号运算符计算图像像素值的和时,将和大于255的值进行了取模处理,取模后大于255的这部分值变得更小了,导致本来应该更亮的像素点变得更暗了,相加所得的图像看起来并不自然。图像像素值相加后让图像的像素值增大了,图像整体变亮。● 形式2:计算结果=cv2.add(数值,图像),第1个参数是数值,第2个参数是图像,此时将超过图像饱和值的数值处理为饱和值(最大值)。● 形式3:计算结果=cv2.add(图像,数值),第1个参数是图像,第2个参数是数值,此时将超过图像饱和值的数值处理为饱和值(最大值)。

2023-02-24 17:19:20 64

原创 深度学习之PyTorch物体检测实战,读书笔记(三)

对于通道数不同的情况,比如每个卷积组的第一个Bottleneck,需要利用1×1卷积对x进行Downsample操作,将通道数变为相同,再进行加操作。a.定义一个名为my_func的函数,my_func函数接收两个int类型参数n和x,找出在1到n里的所有能被x整除的整数,用一个list数组列出这些整数,并让my_func函数返回这个数组以及这个数组的长度。出现的问题:卷积网络不断加深以寻求更优越的性能,然而随着网络的加深,网络却越发难以训练,一方面会产生梯度消失现象;.b.搭建BottleNeck。

2023-02-23 19:15:25 343

原创 论文学习笔记(YOLO-DFAN: Effective High-Altitude Safety BeltDetection Network)

在安全带检测中突出的问题:人体只占据了输入图像的一部分,高空安全带只覆盖了人体的一部分。三.介绍注意力机制(DFAN)(采用轻量级特征提取网络,难以提取高空安全带的特征,因此,引入了注意机制来帮助检测网络提取它们的特征。早期,注意力模型主要用于机器翻译,现在成为cnn的重要组成部分,可以帮助网络模型预测潜在的感兴趣特征。特点:在图像中分布较分散,特征不聚焦,容易与背景混淆,因此,检测网络很难提取出它们的有效特征。解决了网络退化问题,同时增加了网络深度,缓解了梯度分散,使数据传输更加顺畅。

2023-02-22 11:06:05 168

原创 OpenCV轻松入门读书笔记(二)

使用Numpy生成一个由随机数构成的三维数组,用来模拟一幅RGB色彩空间的彩色图像,并使用函数item()和itemset()来访问和修改它。.3.在 IDE 中分别打印出a和b逻辑运算的结果,请按照and,or,not的顺序打印结果,( 使用not时,请分别打印两个变量)一.使用numpy.array来访问像素,并且使用item(行,列)来访问像素,用itemset(索引值,新值)来修改像素值。二.使用Numpy生成一个二维随机数组,用来模拟一幅灰度图像,并对其像素进行访问、修改。

2023-02-17 21:01:47 73

原创 深度学习之PyTorch物体检测实战,读书笔记(二)

2.定义一个名为my_func的函数,my_func函数接收三个int类型参数year、month和day分别作为给定日期的年份、月份和日期,导入datetime模块的datetime类,让my_func函数返回对应日期的正午时间点。nception v1的参数量是AlexNet的12分之一, VGGNet的六分之一,适合处理大规模数据,尤其是对于计算资源有限的平台.最重要的是,两个3×3卷积核的非线性能力要比5×5卷积核强,因为其拥有两个激活函数,可大大提高卷积网络的学习能力。列表的下标从0开始。

2023-02-16 20:17:22 272

原创 opencv入门(一)

使用Numpy生成一个三维数组,用来模拟一幅BGR模式的彩色图像,并对其进行访问、修改。计算机把0设定为纯白,把255设置为纯黑,0-255之间设置为不同的灰度。也就是黑白图像,在计算机眼里,黑色为0,白色为1。.读取一幅彩色图像,并对其像素进行访问、修改。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)九.像素出来,像素是图像处理的基本单元。

2023-02-14 08:51:45 57

原创 深度学习之PyTorch物体检测实战,读书笔记(一)

3.对于不同的检测任务,卷积层的前两三层的作用都是相同的,都是提取图像的边缘信息,因此为了提高模型训练中的稳定性,前两三层一般不进行参数的学习,比如VGG,设置前三层不进行网络的学习,代码实现:4.,得到建议框,保证足够的准召率,然后在第二个阶段专注于对建议框进行分类,寻找更精确的位置,典型算法如Faster RCNN。3.对于一个检测器的好坏,我们需要用一个IOU也就是预测框和真实框的贴合程度来预测,来量化这个检测器的好坏,即正确预测框与所有预测框的比值(包括正确和错误的预测框);

2023-02-13 17:42:24 473

原创 C++入门6

本身就是一个常量指针,返回这个对象本身,不可以修改这个this,只能在成员函数中使用,全局函数和静态函数不能使用this指针,在普通成员函数中是一个指向非cosnt对象的const指针。b.在指定默认参数的时候,默认值必须在不默认值的右边,一旦某个参数开始制定默认值,他右边的参数都必须是默认的。构造函数:在类中一种特殊的成员函数,他的名字和类的名字相同,我们在创建类对象的时候,系统会自动调用这个函数。用mutable修饰的成员变量,永远处于可以被修改的状态,哪怕他是被const修饰的。

2023-02-04 21:12:02 42

原创 C++入门5

编译时进行转化类型的检查,重新解释类型。.public 成员是暴漏给外界,提供给外界的接口,private成员提供实现各种类方法的细节问题,不爆露给外界,因此外界无法使用。//静态转换,字面理解就是正常的转换,要注意转换的安全性和正确性,比如不能把字符串类型转化为整形;struct结构,默认是pubic属性,都是公开的,class成员默认是私有的private。只能用来去除指针和引用的const的属性,在编译时进行类型转换。总结.所有的强制类型转换都不建议使用,会干扰系统的内容检查,会抑制编译器报错。

2023-01-21 11:27:55 59

原创 C++入门4

任何在for循环中加容器中元素的操作都要慎重,因为这样很容易导致迭代器的失效,代表,这些指针无法代表容器中 的元素。a.*iter运算符:返回迭代器iter所指向的引用,并且不能指向end(),必须是一个有效的内容;通过迭代器我们可以访问容器中的元素,如果是string类型就是某个字符,还可以修改这些元素和字符;6.普通的迭代器是可以对容器中的数据进行读写操作,但是带cosnt的常量迭代器只能进行读数据的操作。7.cbegin()和cend()返回的都是常量迭代器,都是可以读数据,但是不能改。

2023-01-13 20:11:44 126

原创 C++入门3

来自于一个标准库代表的是一个集合的概念和动态数组,可以把若干对象放在里面,但是类型必须是相同的。public:用这个修饰符,修饰结构中的成员变量或者是成员函数,那么这些成员函数和成员对象是可以被外界访问的。1.在结构中我们把变量叫做结构变量,在类中我们把变量叫做对象,它们都可以表示为一段内存,内存中有一些东西。private,被这个修饰符修饰的成员函数和成员变量,只有被内部定义的成员函数和成员变量才可以被访问。2.在结构中,里面的成员函数和成员变量默认的访问权限都是公共属性;在类中,相反默认都是私有属性。

2023-01-11 22:16:07 173

原创 C++入门2

堆,理论上物理硬盘有多大,就可以有多大的内存,好处是灵活,可以程序员手动分配,手动释放,缺点肯定比栈的分配速度慢;.内联函数主要解决一个问题,对于一个被频繁调用的函数,并且函数本身很小,因为频繁调用函数会消耗资源,因此我们引入内联函数的概念;实际上,也有一些方法可以改变,但是不建议,如下:(刚开始学习,能不改就不改,会有很多错误)在C++11中,引入另一种后置返回类型,就是在函数声明和函数定义中,返回类型在参数列表之后。栈,系统分配用于存放局部变量,好处是分配速度快,但是空间有限,程序员控制不了;

2023-01-10 19:14:55 107

原创 C++入门1

如果两个.cpp文件中包括两个完全一样的函数,那么将无法编译(同名实体:同名函数,同名变量,同名的类定义);解决方法:命名空间,防止名字冲突引入的一种机制,系统中可以定义多个命名空间,且不可以同名;相当于一个作用域,实现方式namespace 命名空间名同名内容(在同一文件下)外界如何访问,命名空间的函数格式如下:命名空间名::+实体名,其中::称为作用域运算符;\n,换行符(在不同.cpp文件中)调用,需要生成.h 的头文件,把需要的函数包含在里面。

2023-01-09 22:42:22 72

空空如也

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

TA关注的人

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