自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心算法总结

贪心算法先找到局部最优,然后全局最优简答题:Leetcode338.分发饼干Leetcode 1005.K次取反后最大化的数组和Leetcode 860.柠檬水找零Leetcode 605.种花问题中等题:Leetcode 376.摆动序列Leetcode 738单调递增的数字股票问题:Leetcode121.买卖股票的最佳时机Leetcode122.买卖股票的最佳时机||Leetcode714.买卖股票的最佳时机含手续费两个维度权衡问题:考虑如何遍历二维数组,先从

2021-10-14 19:55:31 129

原创 回溯算法总结

回溯法回溯法:暴力解法,遍历问题的所有方案不行就返回。即遍历+递归。常见的问题:组合问题:N个数里面按一定规则找出k个数的集合。排列问题:N个数按照一定规则全排列切割问题:一个字符串按照一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集棋盘问题:N皇后,数独问题。解题模板可以讲回溯的题目抽象为树形结构,便于理解void backtracking(参数){ if(终止条件) { 存放结果; return; } for(选择:本层集合中元素

2021-10-05 21:39:12 154

原创 字符串总结

1,字符串常用的操作:反转,替换等。Leetcode 344 反转字符串Leetcode 541 反转字符串||剑指offer 05 替换空格数组填充类问题 ,预先给数组扩容带填充后的大小,然后在从后向前进行操作Leetcode 151 反转字符串里的单词剑指offer 58 -||左旋转字符串2,KMP算法,字符串匹配算法重点求对应的Next数组,然后回退Leetcode 28 实现strStr()Leetcode 459 重复的子字符串3,其他相关操作Leetcode

2021-09-19 16:06:28 136

原创 哈希表总结

哈希表用于快速判断一个元素是否出现在集合中。哈希函数哈希碰撞:拉链法,线性探测法常见的哈希结构:数组set(key)map(key,value)底层实现:set/map :红黑树,key有序,数值不可重复,不可修改,查询效率O(logn),增删(Ologn)multiset/multimap:红黑树,key有序,数值可重复,O(nlogn),O(nlogn)unordered_set/unordered_map:哈希表,key无序,数值不可重复,O(1),O(1)经典题目数组

2021-09-16 09:51:14 98

原创 栈和队列总结

栈和队列栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的,也就是栈底层可用vector,deque,list,主要就是数组或者链表的底层实现在SGI STL,默认情况下是使用deque为底层实现栈的基础Leetcode232 用栈实现队列Leetcode225 用队列实现栈Leetcode 155最小栈经典问题匹配问题Leetcode 20有效的括号Leetcode 1047 删除字符串中的所有相邻重复项Leetcode 150 逆波兰表达式求值

2021-09-10 11:49:35 54

原创 树相关题型总结

树二叉树一,二叉树遍历 (迭代 or 递归)先序遍历 ----自顶向下递归preorder(Treenode *root){ if(root==null) { 边界内容 } 处理 preorder(root->left); preorder(root->right);}迭代 栈 后进先出vector preorderTraversal(TreeNode* root) {vector res;stack<TreeNo

2021-09-06 21:49:45 92

原创 链表操作总结

链表1,基本操作(1)插入给定指针:插入位置的前驱节点pre .若没有则需要先遍历到该节点。temp=pre->next;pre->next=new;//new表示新插入的节点new->next=temp;(2)删除要注意删除的位置,例如位于链表尾部时的边界条件pre->next=new->next->next;//new表示删除的节点(3)遍历迭代遍历cur=head;while(cur!=null){ cout<<cur-

2021-08-23 19:57:09 280

原创 Leetcode 565. 数组嵌套

题目描述:Leetcode解题思路:方法一:遍历数组时间复杂度O(n^2),空间O(1)class Solution {public: int arrayNesting(vector<int>& nums) { int count = 0, max = 0; int start,j; for (int i = 0; i < nums.size();i++) { count

2021-08-17 17:05:10 71

原创 Leetcode 766.托普利茨矩阵

题目描述:Leetcode解题思路:要判断对角线上的数字是否相等,可以采用遍历数组的方式,逐行判断,对角线下一行的元素要等于上一行的元素。class Solution {public: bool isToeplitzMatrix(vector<vector<int>>& matrix) { int row=matrix.size(),col=matrix[0].size(); for(int i=1;i<row;i++

2021-08-15 23:46:49 75

原创 Leetcode 287.寻找重复数

题目描述Leetcode解题思路:假设输入的数组为A=[1,3,4,2,2],由题目可知,该数组原来的形式为S=[1,2,3,4,_].因此我们可以得到该数组的最大值n和最小值1.遍历数组S,小于等于1的个数为1,小于等于2的个数为2,…,小于等于4的个数为4.但是由于数组中加入了重复的数,遍历数组A中可以发现,小于等于1的个数为1,小于等于2的个数为3,小于等于3的个数为4,…说明重复的数就存在小于等于2的范围内,因此要如何定位这个重复数?二分法low=1.high=4,mid=2,n

2021-08-14 15:45:06 75

原创 Leetcode 645. 错误的集合

题目描述:Leetcode解题思路:方法一:时间复杂度O(NlogN)该数组存储的是[1,n]的所有整数!!!1,先对数组进行排序2,找出重复数字3,找到缺少的数,(1)当丢失的数字不为1或者n时,判断相邻两个位置的差(2)当丢失的数字为1或者n时,特殊处理方法二:交换数组元素,时间O(N),O(1)还没看懂…#include<iostream>#include<vector>#include <algorithm>using namesp

2021-08-13 11:44:59 72

原创 Leetcode 378. 有序矩阵中第 K 小的元素

题目描述:Leetcode解题思路:二分法如上图所示 ,因为该矩阵行列都是从小到大排列的,我们可以知道该矩阵的最大值15和最小值1,因此对于任意一个mid(min<mid<max)都可以知道矩阵中大于小于该元素值的个数。例如,mid=8,我们可以知道矩阵中小于8的个数为2。用类似的思想就可以解出该题。以上图矩阵为例,求第k=8小对应的元素,实现过程如下:step 1:left=1,right=15,mid=8 count=2<k=8说明此时的范围太小,应该扩大范围step

2021-08-12 20:44:32 98

原创 Leetcode 240. Search a 2D Matrix II

题目描述:Leetcode解题思路:遍历整个矩阵 超时二分法(没试过)参考的解题思路:因为该矩阵行列都是升序排列,因此可以先判断target是否小于目前行的最大列,如果是则说明target可能存在于该列对应的行中;若遍历该列到target大于对应的数,说明该行不可能存在目标target,row++(因为大小是升序)。class Solution {public: bool searchMatrix(vector<vector<int>>& matr

2021-08-12 10:22:35 88

原创 Leetcode 485,最大连续数1的个数

题目描述:Leetcode解题思路:遍历数组,当对应的数字为0时,判断当前的连续1数目与历史的连续1数目大小。class Solution {public: int findMaxConsecutiveOnes(vector<int>& nums) { int len = nums.size(); int count = 0, i = 0, max = 0; while(i<len) {

2021-08-11 09:43:24 54

原创 Learning with Noisy Labels for Robust Point Cloud Segmentation

Learning with Noisy Labels for Robust Point Cloud Segmentation自己理解,仅供参考Contributions:本文是第一篇针对点云噪音标签问题提出解决方案的文章,本文提出了一种新颖的噪音点自适应学习框架,用于解决点云分割中存在噪音标签数据的问题。针对错误的groundtruth数据,文中首先提出了基于以前的预测结果(分割结果)的逐点置信选择(即判断该店的标签是否正确),然后提取聚类的标签纠正方法,通过投票选择最佳点的标签作为纠正后的标签。P

2021-08-10 15:51:48 474

原创 Leetcode 566.Reshapethe matrix

题目描述:Leetcode解题思路:首先,要满足矩阵reshape的条件,即reshape后个数不变;然后,初始化一个新的数组然后遍历该数组赋值。#include<iostream>#include<string>#include<vector>using namespace std;class Solution {public: vector<vector<int>> matrixReshape(vector<v

2021-08-10 11:40:40 47

原创 Leetcode 283.移动零

Leetcode 283. 移动零题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数解题思路:遍历数组,先找到数组中不为0的数,然后在将数组剩余位置置0#include<iostream>#include<vector>using namespace std;clas

2021-08-09 16:13:02 62

原创 Resnet网络理解及其pytorch实现

1,为什么提出ResNet网络?在不断加深的神经网络的深度时,会出现退化的问题,即准确率会先上升然后达到饱和,再持续增加深度后其准确率下降了。这不是由于过拟合导致的,因为这不仅导致训练集上误差增大,测试集上误差也增大。原因是随着网络越来越深,训练变得越来越难,网络的优化变得越来越难。理论上,层度越深的网络其学习到语义信息越丰富,提取的特征效果会越好;但是,实际上,由于深度增加导致网络难以训练,产生网络退出问题,其效果还没有浅层网络的好。而残差网络的出现解决了这个问题。2,残差网络的创新点文章的基

2021-03-18 10:52:15 568

原创 pytorch反向传播原理

假设我们有一组数据如下表所示,,表示学习时长和分数的关系,我们要推断出当x=4时,y为多少x(hours) y(points) 1 2 2 4 3 6 4 ? 通常情况下我们假设上述模型是一个线性模即y=w*x+b,这里为了简单省略为y=w*x。下面模型模拟pytorch的计算过程:下图是我个人关于整个求导的流程的理解,x=1,y^=2,w的初始值为1。然后根据w=w-learningrate*(learningrate=0.01)获

2021-03-11 11:23:43 2038

原创 DNF-Net: a Deep Normal Filtering Networkfor Mesh Denoising

Contributions:提出了用patch处理网格上面法向量的网络利用网格的连接性,使用每个face的最近邻k个索引老提高特征提取端对端的网络,输出去噪的面法向量​Overview1,Training patch preparation在网格MMM中随机选取种子face(即一个patch的中心),该面要反映网格表面特性,因此,根据该face的one-ring normal 变化尾标准。对于一个种子face,选择其领域的N-1个face构成patch,领域面的选取规则的

2020-12-17 18:50:03 348

原创 Point Transformer

Point TransformerNico Engel, Vasileios Belagiannis, and Klaus DietmayerInstitute of Measurement, Control and MicrotechnologyUlm University, 89081 Ulm, GermanyContributionsPointNet Problems:​ problems arise with set pooling when the reduced feature ve

2020-12-12 21:04:19 3195 6

原创 Pytorch学习(二):实现Cifar分类

Pytorch实现Cifar分类说明1:​ torchvision是pytorch框架一个重要的包,该包由三个主要子包组成,分别为torchvision.datasets,torchvision.models,torchvision.transform.​ torchvison.transforms这个包中包含了resize,crop等常见的data augmentation操作,基本上pytorch的data augmentation操作都可以通过该子包实现。使用方法:train_augment

2020-12-02 22:10:57 460

原创 pytorch学习(一):搭建神经网络

pytorch搭建神经网络torch.nn 只支持小批量输入。整个 torch.nn 包都只支持小批量样本,而不支持单个样本。 例如,nn.Conv2d 接受一个4维的张量, 每一维分别是sSamples * nChannels * Height * Width(样本数*通道数*高*宽)。 如果你有单个样本,只需使用 input.unsqueeze(0) 来添加其它的维数torch.Tensor:一个用于自动调用backward()实现自动梯度计算的多维数组,并且保存关于这个相对梯度。nn.Modu

2020-12-01 21:59:03 233

原创 Edge-Aware Point Set Resampling

#Edge-Aware Point Set Resamplingwe propose a resampling approch to process a noisy and possibly outlierridden point set in an edge-aware manner.作者提出了一个新颖的重采样方法,将扫描获得的噪音数据转化成由可靠法向量的表面点集。该重采样算法的特性:保存尖锐边,平滑表面可以实现任何密度需求的重采样产生可靠的法向量,便于用于表面重建Overview

2020-11-30 16:36:33 1014

原创 windows10安装MinWG

MinGW,Minimalist GNU for Windows,windows最简化的GNU,就是一个C的编译工具集,转为windows操作系统下的C/C++开发者服务。1.首先去MinGW主页下载最新版本的MinGW:http://www.mingw.org/。直接点击网站右上方的Download Installer.2,安装mingw-get-setup.exe,点击exe安装,安装完后会在桌面出现图标3,.MinGW安装管理器的安装程序,右击Mark for Installati

2020-11-07 20:59:13 492

原创 Windows显卡切换

今天在可视化显示点云文件时出现了问题,如下,这是不正常的!后来发现是笔记本自带的显卡问题。我笔记本默认的显卡是集成显卡,切换为高性能显卡就可以啦。解决方法:1,打开NVIDIA CONTROL PANEL2,选择管理3D设置,可以实现整个显卡切换,也可以把某个程序切换到高性能显卡最后就可以正常显示啦!...

2020-10-30 19:32:33 260

原创 Pytorch调试遇到的问题

由于使用的pytorch版本是1.5,但是代码的原来版本是1.0,所以在调试过程中遇到版本不同问题。问题1:UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead。解决办法:例如: #points = Variable(points, volatile=True)改为: with torch.no_grad():

2020-10-17 19:41:02 2268 1

原创 Hierarchical Point-Edge Interaction Network for Point Cloud Semantic Segmentation

1,本文亮点(1)建立了edge branch(边分支)为point branch提供该区域的上下文信息。(2)设计了hierarchical graph 结构,使生成的信息从粗糙到细致2,Overview 本文的结构与pointnet++相似,都是编码-解码的框架。Encodeing stage与pointnet++相似都是经过了sampleing,grouping 和pointnet,如如图(2)所示。经过编码阶段的下采样点云数目减少为N0,并且作为Decoding stage阶段...

2020-10-13 17:10:06 533 3

原创 PointNet:Deep Learning on Point Sets for 3D Classificatiion and Segmentation

本文亮点:直接把点云数据作为神经网络的输入,该网络既可以用于分类也可以用于分割。1,通过空间变换网络解决旋转不变问题。2,利用maxpooling作为对称函数解决点云无序问题。一,点云数据存在的问题(1)无序性 点云本质上是一长串点(nx3矩阵,其中n是点数)。在几何上,点的顺序不影响它在空间中对整体形状的表示。因此,在提取点云特征时需要对无序数据做处理,使其对不同排列数据都有相同结果。 (2)旋转性 相同的点云在空间中经过一定的刚性变化(旋转或平移),坐标...

2020-09-23 19:37:23 271

原创 图像分割

图像分割是将一幅图像分割成有意义区域的过程。该区域可以是图像的前景与背景或图像中的一些单独的对象。这些区域可以利用一些诸如颜色,边界或近邻相似性等特征进行构建。一,图割(Graph Cut) 图割,即将一个有向图分割成两个互不相交的集合。 图割基本思想是,相似且彼此相近的像素应该划分到同一区域。 图像分割思想是用图来表示图像,并对图进行划分以使代价E...

2019-06-11 15:02:57 136

原创 手写体数字识别———LeNet模型

一,Minist数据集特点 MNIST 数据集来自美国国家标准与技术研究所,National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test...

2019-06-02 09:34:43 8507 1

原创 基于KNN算法的图像内容分类

一,KNN算法原理1,KNN算法思想 这种算法把要分类的对象(例如一个特征向量)与训练集中已知类标记的所有对象进行对比,并由k近邻对指派到哪个类进行投票。例如一个未知样本数据x需要归类,总共有ABC三个类别,那么离x距离最近的有k个邻居,这k个邻居里有k1个邻居属于A类,k2个邻居属于B类,k3个邻居属于C类,如果k1>k2>k3,那么x就属于A类,也就是说x的类别完全...

2019-05-16 19:56:05 2306

原创 基于BOW图像检索python实现

代码地址:https://pan.baidu.com/s/1X2Ykoi8j3_6f6qTvhh95jw准备:vlfeat(SIFT的开源实现) 安装sqlite-web:pip install sqlite-web(好像没有用到,python3有自带的sqlite3) 安装cherryPy(轻量级网页服务器):pip install cherrypy 图片库:First1000流...

2019-05-10 16:58:31 2459 6

原创 基于BOW图像搜索相似图片原理

图像检索按描述图像内容方式的不同可以分为两类,一类是基于文本的图像检索(TBIR, Text Based Image Retrieval),另一类是基于内容的图像检索(CBIR, Content Based Image Retrieval)。TBIR方式是利用文本标注的方式对图像中的内容进行描述,从而为每幅图像形成描述这幅图像内容的关键词;在进行检索时,用户可以根据自己的兴趣提供查询关键字,检索...

2019-05-10 16:33:00 719

原创 Sqlite3 ImportError: DLL load failed 问题

windows环境下重装anaconda容易漏掉安装sqlite的dll,因为注册表中还有这个遗留信息,导致sqlite需要的的dll并没有被安装。会出现类似于下面的报错:File "D:\ProgramData\Anaconda3\lib\sqlite3\__init__.py", line 23, in <module> from sqlite3.dbapi2 im...

2019-05-10 14:15:08 1631 1

原创 对极几何与基础矩阵

一,什么是对极几何? 立体成像的基本几何就是对极几何。如下图:C和C'为两个相机(也有可能是一个相机在不同时刻的位置)的主点,X为空间中一个物点,两个相对的白色平面是像面(严格按照光路应该是在C,C'点的后方,与X点相反方向,CV中默认采用这种往前画的方式节省空间)。x和x'是X点在像面上的对应点,e1 e2为像面和C,C'的交点。CC'为基线,也被称作相机的移动方向。在对极几何中...

2019-04-16 23:56:39 538 1

原创 标定手机相机参数

本文利用张正友相机标定方法,标定手机相机的相关参数。手机型号:华为mate81,张正友相机标定实验原理(1)计算单应性矩阵设三维世界坐标的点为X=[X,Y,Z,1]TX=[X,Y,Z,1]T,二维相机平面像素坐标为m=[u,v,1]Tm=[u,v,1]T,所以标定用的棋盘格平面到图像平面的单应性关系为: ...

2019-04-12 23:52:33 6187 6

原创 python增强现实

1,在一平面上放一个立方体实现代码:from pylab import *from PIL import Image# If you have PCV installed, these imports should workfrom PCV.geometry import homography, camera# from PCV.localdescriptorsimport ...

2019-04-05 18:35:04 782

原创 python图像全景拼接

图像的全景拼接包括三大部分:特征点提取与匹配、图像配准、图像融合。1、基于SIFT的特征点的提取与匹配利用Sift提取图像的局部特征,在尺度空间寻找极值点,并提取出其位置、尺度、方向信息。具体步骤:1). 生成高斯差分金字塔(DOG金字塔),尺度空间构建2). 空间极值点检测(关键点的初步查探)3).稳定关键点的精确定位4). 稳定关键点方向信息分配5). 关键点...

2019-03-31 10:04:43 9669 6

原创 仿射变换——图像到图像

一,单应性变换单应性变换就是一个平面到另一个平面的映射关系。如图,两张图片中相同颜色的点叫做corresponding Points,比如两个红点就是一对corresponding points。单应性矩阵(Homography)就是一个从一张图像到另一张图像映射关系的转换矩阵(3*3)。可以由下面的公式来表示:以图像中的红点为例,可以将单应性变换写成如下形式:二,仿射...

2019-03-19 16:04:02 806

空空如也

空空如也

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

TA关注的人

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