- 博客(69)
- 收藏
- 关注
原创 CV计算机视觉(11)——目标跟踪
目录一、Siam-RCNN二、MOSSE三、SiamFC四、SiamRPN五、SiamMask六、Kalman filter一、Siam-RCNN使用孪生网络作为重新预测器,之前的检测器均采用单级检测器结构,对于单目标的检测任务,两级检测网络更好。其中第二阶段主要将感兴趣的ROI与模版区域进行比较,将感兴趣的区域特征连接起来,与参考图像进行对比,实现了对物体大小和长宽比变化的鲁棒性,这一点,使用简单的互相关操作是很难实现的。1、模板抽取 template extraction第一帧框定目标,用训练
2021-02-20 15:10:01
807
原创 深度学习(9)——模型的蒸馏、特征的蒸馏
目录前言一、蒸馏的目的二、蒸馏中的softmax三、蒸馏流程1.step2.step3.step4.总结:前言蒸馏就是把一个大模型变成一个相对小的模型一、蒸馏的目的Distill knowledge from bigger models从大模型中学习知识Use the distilled knowledge to guide the learning of smaller models用学习到的知识指导学习一个更小的模型Use smaller models to mimic the
2021-02-06 12:50:50
5434
原创 CV计算机视觉(10)——图像迁移之风格迁移(学习图片噪声and学习模型参数)
目录前言二、风格迁移 Image Style Transfer1.假设2.假设带来的问题3.做风格迁移的思路(1) backbone(2) content loss(3) style loss(4) Combine contents and styles(5)Generated from white noise4.gram matrix5.另一种思路前言上一篇博客介绍的图像迁移中的图像分割以及几个常用的分割网络,这一篇接着介绍图像迁移中的另一个分支——风格迁移。风格迁移的输入有两个,一个是风格输入,一个
2021-02-06 12:17:30
1596
原创 Ubuntu18.04--Detectron2环境配置与安装
目录环境配置detectron2安装数据集准备Detectron2测试环境配置创建并激活detectron2环境conda create --name detectron2 python=3.6conda activate detectron2安装pytorch、torchvision、cudatoolkit,添加国内源解决网络问题,依次执行以下命令:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anacon
2021-02-06 10:47:03
1116
原创 CV计算机视觉(9)——图像迁移之图像分割(FCN\U-Net\Mask RCNN)
图像迁移Image Transfer前言一、图像分割Image Segmentation1.FCN2.UNet3.ENet4.Mask RCNN前言本文主要介绍图像迁移,图像迁移有两个主要的研究方向,一个是分割,一个是风格迁移。本文主要介绍图像分割。其中分割又包括语义分割(同类别是同一个mask表示,比如下图第二张,车都是蓝色表示,人都是红色表示,可以理解为“车”“人”就是一种语义)、实例分割(具体到个体,车A和车B是同一语义的不同实例,所以不同实例也要用不同的mask表示,如图三,车与车之间也用不同色
2021-02-01 18:22:26
2326
原创 (剑指offer)python刷leetcode(2)
文章目录剑指offer39:数组中出现次数超过一半的数剑指offer40:最小的K个数剑指offer41:数据流中的中位数剑指offer42:连续子数组的最大和剑指offer39:数组中出现次数超过一半的数题目已经说了,出现次数超过一半,说明一半的数是同一个数,最简单的方法就是排序后的数组中点就是这个数class Solution: def majorityElement(self, nums: List[int]) -> int: nums.sort()
2021-01-27 17:43:21
620
1
原创 CV计算机视觉(8)——目标检测one stage detection:yolov1、v2、v3
文章目录前言一、YOLOV1二、YOLOV2前言前面基于Faster-RCNN系列讲了two stage的检测算法,核心思想是先把检测物体框出来,对这个物体进行粗定位和分类,然后再精细定位。而onw stage可以理解为省去粗定位这一步,直接精细定位。用faster-RCNN举例,他有一步RPN,是为了生成候选框的,这是一个粗定位的步骤,有这个步骤就是two stage,没有RPN功能的步骤,直接一步到位就是one stage。一、YOLOV1相比Faster-RCNN速度快,精度低,但是如果换ba
2021-01-23 15:20:03
533
原创 面试官爱问的Faster-RCNN面试题总结
Faster-RCNN面试题前言一、基于Faster-RCNN家族的问题1.从RCNN到Fast-RCNN到Faster-RCNN,各网络是如何改进的?优缺点是什么?1.1 RCNN到Fast-RCNN:(1)候选框的生成方式:(2)卷积生成特征是否重复:(3)尺寸归一化方式:(4)用什么分类:1.2 Fast-RCNN到Faster-RCNN:(1)候选框的生成方式:(2)卷积生成特征是否重复:(3)尺寸归一化方式:(4)用什么分类:二、Faster-RCNN中的RPN1.前/背景分类为什么用sigmoi
2021-01-20 17:41:14
2174
原创 (剑指offer)刷LeetCode(1)
文章目录剑指offer04:二维数组中的查找剑指offer05:替换空格剑指offer06:从尾到头打印链表剑指offer07:重建二叉树剑指offer09:用两个栈实现队列剑指offer11:旋转数组中的最小数字剑指offer04:二维数组中的查找思考过程:首先这个数组有一个特征就是,从左到右,从上到下是递增的,第一反应就是从左上角开始找,但是判定过程中就会遇到两条路都能走的情况:我是往上走,还是往右走?没有一个明显的判定条件来决策行动。所以换个思路,从右上角开始查找:如果当前元素值比target
2021-01-18 21:54:20
177
原创 非极大值抑制NMS代码实现(Python)
文章目录前言NMS代码实现1.导入必要的库2.人为生成一组位置坐标,模拟候选框3.定义NMS(1)获取位置坐标,本代码用对角坐标表示位置(2)计算每个Bbox的面积(3)对Bbox的置信度得分排序(4)初始化结果集,对应伪代码中D(5)选取最大值,遍历并计算iou5.1 读取置信度最高的框,并直接送入结果集中5.2 计算其余框和最高分框的重叠面积5.3 计算iou5.4 按照IOU阈值删选Bbox(6)返回结果集4.测试总结前言NMS的原理传送门伪代码:NMS代码实现1.导入必要的库# 1.
2021-01-15 15:53:10
1203
1
原创 CV计算机视觉(7)——目标检测two stage detection:RCNN &Fast-RCNN& Faster-RCNN对比向总结
文章目录前言一、RCNN二、Fast-RCNN三、Faster-RCNN前言对这周学习的RCNN,Fast-RCNN,Faster-RCNN进行总结对比.一、RCNNRCNNregion proposal用selective search生成2K+;对region proposal做卷积操作提取特征;对特征图resize尺寸送入模型训练;SVM进行分类;线性模型进行回归。二、Fast-RCNNFast-RCNN卷积操作提取特征得到整张图片的特征图;region proposal
2021-01-14 16:47:24
282
原创 CV计算机视觉(6)——目标检测及Faster-RCNN流程梳理
文章目录前言Faster-RCNN组成1.输入样本并数据预处理2.backone提取特征3.RPN生成候选框4.Fast-RCNN5.输出分类和回归pred总结前言上一篇博客把Faster-RCNN的关键技术说了一下,但是流程梳理那部分我觉得写得不妥当,所以单独写一篇梳理整个网络的工作流程再挖一下网络细节。Faster-RCNN组成以训练阶段为例,我把整个网络结构模块化为包括输入、数据预处理、backbone提取特征、RPN、Fast-RCNN、输出这五大部分。1.输入样本并数据预处理首先,假
2021-01-14 15:43:22
526
原创 leetcode(python)——169多数元素、200岛屿数量
题号169方法1:排序法对数组排序,重复的元素会排在一起,题目定义的多数元素为数组中出现次数 大于 ⌊ n/2 ⌋ 的元素,对排序后的数组求中间元素值,这个中间元素就是多数元素class Solution: def majorityElement(self, nums: List[int]) -> int: nums.sort() left = 0 right =len(nums)-1 mid = (left+right)/
2021-01-13 21:41:43
133
原创 CV计算机视觉(5)——目标检测及Faster-RCNN解读(RPN原理)
文章目录前言一、Faster-RCNN快在哪儿?二、RPN的工作原理1.RPN的作用2.读入数据总结前言从RCNN到Fast-RCNN到Faster-RCNN,从名字也能看出是越来越快的一个过程。前面写了Fast-RCNN是在卷积部分加快了速度,那么Faster-RCNN又是做了什么导致更快的呢?一、Faster-RCNN快在哪儿?Faster-RCNN在Fast-RCNN的基础上改进了候选区域的生成方式。Faster-RCNN沿用selective search生成候选区域,为了改进regio
2021-01-13 19:20:36
1400
原创 CV计算机视觉(4)——目标检测及Fast-RCNN解读(特征投影,ROI Pooling,ROI Align,Precise ROI Pooling)
文章目录前言一、Fast-RCNN主要技术1.共享卷积计算2.ROI POOLING3.SVM替换成两个FC二、Fast-RCNN总结三、Fast-RCNN缺点四、ROI Pooling的改进1.ROI Align2.Precise ROI Pooling3.三种 ROI Pooling对比前言前面讲了两阶段检测的RCNN算法,我们提到它有一个缺陷就是2k个候选区域在测试阶段是存在大量重复的特征提取过程的,为了改进这一点,诞生了Fast-RCNN。一、Fast-RCNN主要技术1.共享卷积计算为
2021-01-12 19:49:39
1071
原创 吴恩达机器学习视频课提纲+随堂选择练习题——week17大规模机器学习&week18应用实例
文章目录一、WEEK17大规模机器学习(Large Scale Machine Learning)17 - 1 - Learning With Large Datasets17 - 2 - Stochastic Gradient Descent17 - 3 - Mini-Batch Gradient Descent17 - 4 - Stochastic Gradient Descent Convergence17 - 5 - Online Learning17 - 6 - Map Reduce and Da
2021-01-12 14:31:19
939
原创 吴恩达机器学习视频课提纲+随堂选择练习题——week14降维&week15异常检测&WEEK16推荐系统
文章目录一、WEEK14 降维(Dimensionality Reduction)14 - 1 - Motivation I_ Data Compression14 - 2 - Motivation II_ Visualization14 - 3 - Principal Component Analysis Problem Formulation14 - 4 - Principal Component Analysis Algorithm14 - 5 - Choosing The Number Of Pri
2021-01-12 10:27:59
1116
原创 CV计算机视觉(3)——目标检测及RCNN解读(NMS,Soft-NMS)
文章目录一、Detection二、从RCNN开始设计检测1.提取候选区域2.经过卷积提取候选区域的特征向量3.对特征向量进行分类和定位3.1 SVM部分3.2 NMS部分(1)NMS思想(2)NMS的改进soft-nms4.RCNN的缺点一、Detection先回顾一下前面说的分类任务:图片分类的任务是对于一个给定的图片,预测其中的类别标签。比如猫狗分类,数字0-9识别等。而对于检测任务,除了要输出分类结果(输出形式跟分类相同,标量或编码),还要输出定位信息(输出形式是一个横平竖直的框,叫boudi
2021-01-11 22:35:23
904
原创 leetcode(python)——56合并区间,57插入区间
题号56考虑两个问题:1.怎么判断有没有重叠?令前面的是p,后面的是q,观察p的结束结点和q的开始结点即可区间有重叠,需要合并p[end]>q[start];区间端点重叠,需要连接p[end]=q[start];区间无重叠,无操作,p[end]<q[start].2.怎么合并区间?如果有重叠,比较两个区间的结束结点,谁大用谁class Solution: def merge(self, intervals: List[List[int]]) -> List[List
2021-01-11 21:56:11
191
原创 吴恩达机器学习视频课提纲+随堂选择练习题——week12支持向量机&week13聚类
文章目录一、WKKE12 支持向量机(Support Vector Machines)12 - 1 - Optimization Objective12 - 2 - Large Margin Intuition12 - 3 - Mathematics Behind Large Margin Classification (Optional)12 - 4 - Kernels I12 - 5 - Kernels II12 - 6 - Using An SVMWEEK12 课后习题二、聚类(Clustering)
2021-01-11 11:02:04
1694
1
原创 LeetCode(Python)哈希表题——217存在重复元素、49字母异位词、560和为K的子数组
题号217方法一:对数组进行排序,然后遍历数组,遇到等于前一个元素的就返回,定义一个pre记录前一个元素的值class Solution: def containsDuplicate(self, nums: List[int]) -> bool: if len(nums) == 0 : return False nums.sort() pre= nums[0] for i in range (1,le
2021-01-08 16:29:30
239
原创 LeetCode(Python)链表题——206翻转链表、21合并有序链表、24两两交换链表中的节点
题号206我们一直用的链表插入都是尾插法,头插法可以逆序实现.秉承先连后断,利用头插法插入Q,q.next = p.next; p.next=qclass Solution: def reverseList(self, head: ListNode) -> ListNode: newlist = ListNode() #一个新链表头结点 p = newlist #P指向新链表 q= head #q指向旧链表
2021-01-08 15:36:44
173
原创 吴恩达机器学习视频课提纲+随堂选择练习题——week10应用机器学习&week11设计机器学习
文章目录一、WEEK 10:应用机器学习的建议(Advice for Applying Machine Learning)10 - 1 - Deciding What to Try Next10 - 2 - Evaluating a Hypothesis10 - 3 - Model Selection and Train_Validation_Test Sets10 - 4 - Diagnosing Bias vs. Variance10 - 5 - Regularization and Bias_Vari
2021-01-08 12:37:55
2095
1
原创 LeetCode(Python)数组题——268丢失的数字、78子集、90子集
题号268方法一:排序。给一个数组,数组是乱序的,题目的意思是指定了数组元素的个数也限制了数组元素的取值范围找不在里面的元素。例如n=3,取值只能从0,1,2,3里面取,可以想到对其先排序,然后再遍历,如果遇到不存在的就输出。class Solution: def missingNumber(self, nums: List[int]) -> int: nums.sort() #因为题干要求了空间,所以没有新建一个数组 for i in range(le
2021-01-07 21:11:16
244
原创 吴恩达机器学习视频课提纲+随堂选择练习题——week8&week9神经网络
文章目录一、WEEK8:Neural Networks: Representation8 - 1 - Non-linear Hypotheses8 - 2 - Neurons and the Brain8 - 3 - Model Representation I8 - 4 - Model Representation II8 - 5 - Examples and Intuitions I8 - 6 - Examples and Intuitions II8 - 7 - Multiclass Classifi
2021-01-07 16:02:29
1089
原创 吴恩达机器学习视频课提纲+随堂选择练习题——week6逻辑回归&week7正则化
文章目录前言一、WEEK66 - 1 - Classification6 - 2 - Hypothesis Representation6 - 3 - Decision Boundary6 - 4 - Cost Function6 - 5 - Simplified Cost Function and Gradient Descent6 - 6 - Advanced Optimization6 - 7 - Multiclass Classification_ One-vs-allWEEK6 课后习题二、WEE
2021-01-06 17:09:20
2703
1
原创 leetcode刷题预备Python知识——基本数据类型(number,list,tuple,set,dictionary,string)
文章目录一、number数字二、list列表三、tuple元组四、set集合五、dictionary字典六、string字符串一、number数字在Python中number长这个样子:1或1.5或False是单一的值。刷题常备number类型数字类型intfloatbool举例10.5True刷题常备number运算操作运算+-*///%举例1+2=32-1=11*1=13/2=1.53//2=13/2=0
2021-01-06 11:28:09
615
原创 Leetcode(python)——24两两交换链表中的结点,27移除元素,35搜索插入位置,49字母异位词分组
题号24原链表:有一个head指针指向表头元素:定义一个新的链表res,让其next指针指向old链表,并定义一个指向新链表表头元素的指针Cur:对new链表进行元素交换:首先定义一个指向head.next的指针nxt一个指向nxt.next的指针temp新链表的头指针cur的next指向头结点的next,即nxt;nxt的next指向head;经过上面步骤,链表被划分成了两部分(因为2,3之间的链被断开了)连接断链:head.next=temp第一波的交换完成。更新交换完位
2021-01-05 19:46:49
130
原创 吴恩达机器学习视频课提纲+随堂选择练习题——week4多变量线性回归&week5Octave教程
文章目录前言一、WEEK4:多变量线性回归(Linear Regression with Multiple Variables)4 - 1 - Multiple Features4 - 2 - Gradient Descent for Multiple Variables4 - 3 - Gradient Descent in Practice I - Feature Scaling4 - 4 - Gradient Descent in Practice II - Learning Rate4 - 5 - F
2021-01-05 10:48:23
1687
原创 Leetcode(python)——两数之和,两数相加,有效括号,合并有序链表
题号1:两数之和1.暴力_双指针i指向value:2时,j依次指向7,11,15,显然这个例子在j指向7的时候就已经找到了target,如果target为18:那么蓝色指针需要遍历完7—>15位置的元素,i指针需要移动到指向7,j指针需要从11开始进行第二轮比较遍历。以此类推。设置两个指针,嵌套两层循环,当指针指向i时,j指针寻找第i+1到数组最后元素的位置,并计算i和j所指的对应元素之和,满足target则返回下标;如果没有,i移动到下一个位置,j依然从i的后面位置开始遍历直至找到或遍历完整
2021-01-04 15:27:17
245
原创 吴恩达机器学习视频课提纲+随堂选择练习题——week1机器学习概述&week2单变量线性回归
文章目录前言一、WEEK1:intorduction1 - 1 - Welcome:1 - 2 - What is Machine Learning1 - 3 - Supervised Learning1 - 4 - Unsupervised Learningweek1课后选择题节选二、WEEK2:线性回归2 - 1 - Model Representation2 - 2 - Cost Function2 - 3 - Cost Function - Intuition I &&2 - 4 -
2021-01-04 11:22:19
2659
原创 利用pytorch实现交通标识分类
一、下载数据集train文件夹中有62个文件夹,每个文件夹中是一类标志,每个文件夹的数量不一,有多又少,所以存在样本不均衡问题。二、样本标签转换打开train_label文件夹,发现有62类标签,对于62个类别,如果用标量表示会引入很大的数量等级差距,所以考虑采用独热编码对类别标签编码成向量形式。1.数据预处理:利用python sklearn 将类别数据转换成one-hot数据import pandas as pd#类别数据转换成one-hot# 1. 读取csv文件train_la
2020-12-31 16:16:45
1779
5
原创 CV计算机视觉(2)——图像分类中的多标签分类任务
多标签任务每个图片有多个标签,而且标签个数不固定,如果一共有C类,那么每张图片最多可以有2的C次方个标签。其编码方式也可采用ONEHOT编码,只不过向量中有多个位置是1.多标签任务VS单标签任务1.每张图片的类别数不固定,单标签每张图片只对应一个类别,多标签每张图片对应多个类别,好比一个是单选,一个是不定项多选2.多标签的类别之间可能有依赖关系,而这些依赖关系不一定是先验的3.多标签的标注难度大4.多标签的输出维度高多标签任务的pytorch接口实现#MULTI-LABEL#multi-l
2020-12-30 17:12:42
928
原创 CV计算机视觉(1)——图像分类中的单标签分类任务及pytorch接口实现
图像分类定义图像分类:通过输入图像,输出对该图像内容分类的描述的问题。它是计算机视觉的核心,实际应用广泛。图片分类的任务是对于一个给定的图片,预测其中的类别标签。比如猫狗分类,数字0-9识别等。对于一张输入(图片,在计算机中以矩阵或张量形式表示)——>经过模型——>得到输出(标量或向量)。在分类问题中,通常用到标量(字典dict{key:value})或向量(独热编码(1,0,0))来表示输出,但是往往不用标量表示,因为标量用0,1,2,3,4…来给类别计数无形中给类别增加了数量大小以及
2020-12-30 16:43:40
2158
1
原创 CUDA&GPU in Python
CPU既然讲到CPU就来复习一下计算机组成原理的一点关于CPU的知识吧~冯诺依曼机有五大组成部分,包括控制器,运算器,存储器,输入设备,输出设备,早期的冯诺依曼机是以运算器为核心的,现代计算机依然沿用冯诺依曼体系,只是不再以运算器为核心,而是以存储器为核心了。现代计算机的系统包括两大部分,一是硬件系统,二是软件系统,详情参考下面我做的思维导图那么CPU是什么作用呢?它的功能主要是解释计算机指令以及处理计算机软件中的数据。是一台计算机的运算核心和控制核心。从cpu的结构中可以看出,cpu需要大量的
2020-12-24 14:54:02
227
原创 机器学习面试之逻辑回归
1.简单介绍一下逻辑回归逻辑回归解决分类问题而不是回归问题(回归问题用于预测),之所以名字中带一个回归是因为决策边界那个假定的是一个满足线性回归的方程,所以取名为逻辑回归。再说回逻辑回归,通过引入一个满足线性回归的决策边界,将其代入非线性变换的sigmoid函数中,将结果映射到【0,1】之间,通过设置阈值进行分类,比如大于0.5的是正样本,小于0.5的就是负样本2.sigmoid函数结果在[0,1]之间。3.LR的假设函数4.LR的损失函数建立在极大似然估计的背景下。极大似然.
2020-12-23 15:19:02
344
原创 机器学习面试题之线性回归
1.简单介绍一下线性回归线性就是两个或者多个变量之间的关系符合一次函数关系,对应到图像上就是一条直线,这叫线性关系。那如果变量之间的关系不符合一次函数,图像就不是直线,也不满足线性关系。而回归是指预测,希望通过计算回归到真实值。线性回归是用于预测问题的有监督学习,通过学习x到y的一个映射关系,希望利用学习到的这个映射关系实现对未知的数据进行预测,另外线性回归还是一个连续值。2.线性回归的假设函数是什么形式?其中x0=1,θ ,θ和x都是列向量3.线性回归的代价(损失)函数是什么形式?.
2020-12-23 14:51:19
790
原创 数据预处理(处理缺失值、属性编码、数据标准化正则化、特征选择、主成分分析)
数据存在的问题在实际中,我们拿到的数据通常是脏数据,数据可能存在以下几种主要问题:1.数据缺失 (Incomplete) :属性值为空的情况2. 数据噪声 (Noisy):数据值不合常理的情况3. 数据不一致 (Inconsistent):数据前后存在矛盾的情况。如 Age = “42” vs. Birthday = “01/09/1985”4. 数据冗余 (Redundant):数据量或者属性数目超出数据分析需要的情况。5. 数据集不均衡 (Imbalance):各个类别的数据量相差悬殊的情况
2020-12-23 10:11:32
1460
原创 从训练一个模型开始学习pytorch(1)——用Alexnet训练CIFAR10数据集
一.导入必要的库import torchimport torch.nn as nnimport torchvisionimport torchvision.transforms as transformsimport torch.utils.data.dataloader as dataloaderimport pdbimport osos.environ["CUDA_VISIBLE_DEVICES"] = "3"pytorch知识点1:导入工具包常用的工具包有如下几个:1.impo
2020-12-18 22:11:12
1387
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人