自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FPN-Feature Pyramid NetWorks

FPN : Feature Pyramid Networks 即 特征金字塔网络主要想法:用最少的资源进行多层特征融合检测,提升特征提取的效果,提升小目标检测率,提升检测或分割的整体效果;

2022-03-09 17:04:57 3972

原创 RoIAlign in Mask R-CNN

出自文章:Mask R-CNN总结起来就是:No quantization is performed on any coordinates involved in the RoI,its bins, or the sampling points。No quantization = bilinear 即把坐标量化更换为了双线性插值;替换在了:1、RoI:RPN得到的有目标的区域的边界坐标时;2、bins:RoI变成特征固定大小特征图中计算每个特征图的值时;3、sampling poin

2022-02-25 14:23:13 1789

原创 第一个PyTorch程序训练测试流程

1、数据获取的步骤:数据预处理,需要import torchvision.transforms as transforms主要适用函数是transforms.Compose([])可以写一个函数来获取预处理图像,例如:def gettransform(): # img_path = "./ori.jpg" train_transformer = transforms.Compose([ transforms.ToPILImage(), .

2021-10-27 16:41:42 663

原创 深度学习loss方法一览-混个眼熟(基于pytorch)

1、torch.nn.L1Loss平均绝对值误差:运算结果与基准之间对应元素之间的差值的绝对值组成的向量;如果使用mean参数,就是求这个向量的均值作为loss,如果是使用了sum就是这个向量的和作为loss;官方文档实现和原理见:https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html#torch.nn.CrossEntropyLoss2、torch.nn.MSELoss均方误差loss:运算.

2021-08-18 14:12:40 2096

原创 pytorch : Stochastic Weight Averaging理解和用法

SWA has been proposed inAveraging Weights Leads to Wider Optima and Better Generalization.SGD倾向于收敛到loss的平坦的区域,由于权重空间的维度比较高,平坦区域的大部分都处于边界,SGD通常只会走到这些平稳区域的边界。SWA通过平均多个SGD的权重参数,使其能够达到平坦区域的中心,从而得到更优的解。就相当于在一个最优解的附近,梯度都很小了,迭代可能一之在最优解附近震荡,通过平均最优解周围的参数,可以更接近最优.

2021-08-13 09:32:29 1491

原创 深度学习学习率调整方法汇总(pytorch)

1、lr_scheduler.LambdaLR将每个参数组的学习速率设置为给定函数的初始lr倍。学习率设置为函数的值;2、lr_scheduler.MultiplicativeLR将每个参数组的学习率乘以指定函数中给定的系数;3、lr_scheduler.StepLR每隔固定的epoch就根据给定的系数衰减一次学习率,Step指的是epoch;4、lr_scheduler.MultiStepLR给定epoch要更改的地方,然后按照指定系数衰减;注意与StepLR的区别在于,epo

2021-08-12 14:47:05 2322 1

原创 深度学习梯度下降优化方法分类汇总

Adadelta algorithm

2021-08-12 09:59:44 323

原创 深度学习训练Torch使用到的模块汇总

Torch使用数据载入:class MyDataset(Dataset): # TensorDataset继承Dataset, 重载了__init__, __getitem__, __len__ def __init__(self, imagepath,mytransformer): self.imagepath = imagepath self.transformer = mytransformer def __getitem__(se

2021-08-09 17:47:18 684

原创 python filter求素数-埃拉托色尼筛选法

质数:只可以被两个数整除,1和该数本身;埃拉托色尼筛选法说明;(1)先把1删除(现今数学界1既不是质数也不是合数)(2)读取队列中当前最小的数2,然后把2的倍数删去(3)读取队列中当前最小的数3,然后把3的倍数删去(4)读取队列中当前最小的数5,然后把5的倍数删去(5)读取队列中当前最小的数7,然后把7的倍数删去(6)如上所述直到需求的范围内所有的数均删除或读取filter用法说明;filter(func,iter):只返回iter种经过func计算后返回值为True

2021-07-27 15:32:58 368

原创 python map reduce使用

map使用:result = map(func,iter)等同于:def func(value): # pro value or gen subresult return subresultresult = []for value in iter: result.append(func(value))reduce的使用:result = reduce(func,iter) #其中可迭代对象iter的value值大于两个等...

2021-07-27 14:58:20 97

原创 python生成函数yield--求杨辉三角

如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个生成函数;一般的函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成生成函数之后,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。下面程序是求杨辉三角的例子:def triangles(): L =[1] while True: yield L[:] L.append(0) L=

2021-07-27 14:05:20 199

原创 python list、tuple、dict、set的主要操作汇总

目录1、list2、tuple3、dict4、Set1、list定义:有序列表,其中元素类型随便,长短随便,可以混合;主要功能:访问、增、删、改、查、翻转、链接、次数统计、拷贝‘、清空等;使用方法:#定义tlist = ['str',100,100.0,0xab,['str'],'test','test']print(tlist)#访问str = tlist[0]tlistf = tlist[-1]tslice = tlist[0:2]print("用位置

2021-07-26 15:12:30 121

原创 常用字符编码关系说明及python中的用法

在编程过程中常常涉及到的编码有:ASCII、UTF8、Unicode等;中文编码有GB2312和GBK等;ASCII编码是最基础的,包含了编程过程中常用的符号和字符,有8bit;Unicode是最全的编码,包含了各种符号、字符和各种语言,也被成为万国码;例如:UCS-4用4个字节编码,UTF-8 和 UTF-16 两种当前比较流行的编码;UTF-81、ASCII编码全称American Standard Code for Information Interchange基础编码为7

2021-07-26 10:10:30 181

原创 OpenCV之findcontours原理参考、理解和用法

OpenCV Findcontours( ) 函数原理出自于该论文的算法:Suzuki, S. and Abe, K., TopologicalStructural Analysis of Digitized Binary Images by Border Following.CVGIP 30 1, pp32-46 (1985)经过证实的资料:首选:https://zhuanlan.zhihu.com/p/144807771如果能看懂,就基本理解看不懂可以再看:https://zhuanlan.

2021-07-22 10:29:05 25506 5

原创 巧妙的颜色分割方法-基于颜色模板再也不用自己卡颜色值

说明:先扣取颜色模板图像为tar.jpg,再在目标图像中获取与模板颜色接近的区域并提取出来;可以用做颜色分割或者其它目标检测或者分割算法的预处理步骤;运算速度快,原理容易懂也可以卡阈值;代码实现:import numpy as npimport cv2 as cvfrom matplotlib import pyplot as plt# roi is the object or region of object we need to findroi = cv.imread('

2021-07-20 16:36:19 1097

原创 图像处理之图像变换(放缩、平移、旋转、仿射变换、透视变换)

目录1、放大缩小图像(Scaling)2、平移图像(translation)3、旋转图像(rotation)4、仿射变换(Affine Transformation)5、透视变换 (Perspective Transformation)源图像1、放大缩小图像(Scaling)改变图像尺寸,即长和宽,可以按照比例即按照长宽比来改变图像大小,也可以不按照图像长宽比按照需求来放大或者缩小图像;可以看到Opencv提供了resize函数,可以通过第二个参数输入图像的...

2021-07-19 14:28:20 4681 2

原创 图像处理之形态学操作汇总(opencv-python实现)

目录形态学基础操作灰度图像膨胀灰度图像腐蚀二值图像膨胀二值图像腐蚀膨胀腐蚀的opencv实现膨胀腐蚀的组合开运算闭运算顶帽变换底帽变换击中击不中形态学梯度形态学基础操作一个例子可以胜过很多定义,所以我们直接上例子。灰度图像膨胀源图像:20912519191682461581423220510111342141122136333716898...

2021-07-16 11:08:03 377 5

原创 图像处理基础之图像滤波汇总(opencv-python实现)

本文说的图像都是在空域,且为正常的2D图像;特殊类型的图像可以灵活拓展;图像处理滤波是什么?设源图像为:设滤波之后的图像为:滤波函数(通常用滤波器的形式或者是一般函数的形式来表示);则,滤波操作可定义为;通俗来说就是,源图像的像素值经过滤波函数运算得到滤波之后的图像;滤波函数的自变量就是对应位置像素和其邻域的像素值;影响范围多大也就是邻域多大,由n决定;滤波计算多复杂以及得到什么效果由滤波函数决定;图像滤波分类由滤波的描述可以看出,图像本身和像素邻域都不容易变

2021-07-14 17:43:56 1544

原创 一个简单的各异向性滤波实现和应用

import cv2import osimport numpy as npfrom math import piimport mathdef disfilter(img): # other angle d = 7 # 单数 numdir = 8 # 复数 binarayth = 110 consize = 25 edgesize = 20 mask = np.zeros(img.shape) mask[edgesize:-edges.

2021-07-07 16:24:23 323

原创 OpenCV 学习路线之帮助文档法(请对号入坑)

从文档入手的原因:阅读Opencv帮助文档是入门Opencv最简单、快捷和有效的方式,同样也是系统了解图像处理领域最常用和最基础算法的捷径。如何访问帮助文档:1、官方在线版本的帮助文档访问:https://docs.opencv.org/4.5.2/index.html2、本地编译版本,需要用浏览器打开doc文件夹中的index.html,与在线版本的文档区别主要区别就是在线文档更全一些,自己编译与你自己选择的编译模块有关系;(如何本地编译带doc的opencv)...

2021-06-12 17:20:36 1408 5

原创 Opencv之源码编译 windows+cmake+vs+OpenCV4.5.2

Opencv提供编译好的Opencv库,稳定、方便、好用且问题少。为什么要自己编译?通过Opencv的依赖库和依赖项,对Opencv的功能和算法相关情况有个大致的推断

2021-06-12 11:36:24 6605 12

原创 PCL点云开发资料汇总

对于博客内PCL开发资料进行汇总和整理,以便查看和管理,持续更新。点击超链接到达相应博文PCL配置和常见问题PCL1.11.1+vs2019开发环境配置PCL生成error C4996解决点云定义读取和可视化PCL点云读取、写入、生成和可视化PCL自定义点和点云使用PCL单个程序多幅点云显示PCL点云可视化PointXYZ,PointXYZRGBPCL点云深度图显示方法RangeImageVisualizerPCL常用函数解释和使用方法PCL点云滤波:去除离群

2021-02-23 15:09:30 246

原创 PCL点云配准:ICP使用

目录ICP流程分为4个主要步骤使用一点感受实现代码ICP流程分为4个主要步骤1、对原始点云数据进行采样,得到初始的点云集合;2、确定初始对应点集,模板点集在待匹配点集的位置,对结果有至关重要的影响;3、去除错误对应点对,通过最小二乘法迭代获取正确的匹配点;4、坐标变换求解,得到旋转矩阵R和平移矢量t;完成高精度的变换矩阵估计;使用一点感受初始点集合,非常非常非常之重要,对最后结果有至关重要的作用;迭代次数多了之后,或者点云大了之后,运算速度确实慢;是一种精

2021-01-15 14:18:01 381

原创 PCL点云姿态估计、刚性匹配SampleConsensusPrerejective

目录代码实现结果分析和使用感受点云刚性匹配,rigid objects匹配,假设模板是A点云,要在B点云中找到与A点云形状、大小都一致的点云集合;代码实现代码流程:1、读入点云数据2、对点云数据进行下采样3、求点云数据的法向量4、求点云数据的FPFH特征,其它特征也行6、进行匹配#include <Eigen/Core>#include <pcl/point_types.h>#include <pcl/point_cloud.h

2021-01-12 14:20:53 4238 4

原创 PCL求点云外接立方体:AABB(轴对齐)和OBB(带方向)MomentOfInertiaEstimation

本文主要展示一个样例,在PCL中求 AABB Axis-aligned bounding box轴对齐包围盒 和OBB Oriented bounding box 包围盒,从字面意思就能够理解意思;AABB有点像二维图像中的外接矩形,边与坐标轴是平行的,OBB像二维图像中的最小外接矩,能够比较好的包容整个点集。在实际使用过程中可以根据自己需求来进行计算,例如:可以用在测量点云的宽度、深度等等,来设置一些算法的参数;主要代码如下,具体说明看注释,足以。#include <vector&gt

2021-01-07 14:38:46 5201

原创 PCL求点云法向量与NormalEstimation的使用

目录原理说明适用场景和使用感受法向量求取实例原理说明核心是把局部点当作一个平面,利用平面的法向量与平行于平面的法向量乘机为零,来计算;法向量的方向是不确定的,可能朝平面上,也可能是朝平面下,因此,如果需要统一法向量的方向,需要设置视点,原理是求取法向量点为起点,以视点为终点形成的向量与法向量的乘积大于零,也就是夹角是锐角;适用场景和使用感受PCL中把法向量作为点云的一个特征来求,即归类为3Dfeature,因此也可以单独作为一个特征使用;在很多环节中都需要求点云的法向量,

2021-01-07 11:11:51 4564 4

原创 PCL八叉树使用说明以及getPointIndicesFromNewVoxels举例

目录原理八叉树建立过程,参考1中链接:PCL八叉树用途PCL八叉树用途举例知识点说明代码原理八叉树是一种基于树的数据结构,用于组织稀疏的三维数据。八叉树建立过程,参考1中链接:伪代码:(1). 设定最大递归深度(2). 找出场景的最大尺寸,并以此尺寸建立第一个立方体(3). 依序将单位元元素丢入能被包含且没有子节点的立方体(4). 若没有达到最大递归深度,就进行细分八等份,再将该立方体所装的单位元元素全部分担给八个子立方体(5). 若发现子立方体所分配到的单

2021-01-04 15:26:08 1141

原创 PCL点云转深度图、求深度图边界并显示

目录PCL点云转深度图、求深度图边界并显示代码运行结果理论说明和结果分析PCL中点云转换核心代码核心函数PCL中边缘检测核心代码核心函数PCL点云转深度图、求深度图边界并显示代码详细说明看注释#include <iostream>#include <pcl/range_image/range_image.h>#include <pcl/io/pcd_io.h>#include <pcl/visualizat.

2020-12-31 15:05:38 1607 3

原创 PCL点云深度图显示方法RangeImageVisualizer

PCL range image 显示方法 pcl::RangeImage rangeImage; pcl::visualization::RangeImageVisualizer range_image_widget("Range image"); range_image_widget.showRangeImage(rangeImage); while (!range_image_widget.wasStopped()) { range_...

2020-12-31 13:28:07 822

原创 PCL生成error C4996解决

错误描述1>\pcl\range_image\range_image.h(810,4): error C4996: 'pcl::PointCloud<pcl::PointWithRange>::mapping_': rewrite your code to avoid using this protected field (It will be removed in PCL 1.12)解决方法项目属性->C/C++->所有选项->SDL检查->否具体

2020-12-30 16:04:41 1442 2

原创 PCL自定义点和点云使用

目录自定义点云步骤自定义点云示例具体使用样例定义点步骤1、定义自己的点云结构2、注册这个点云结构3、在程序中合理使用(可能不能用viewer显示了,可以保存相应文件)自定义点示例//第一步:自定义点云结构struct MyPointType{ float x; float y; float z; float i; float ring; float time; //其它的值都可以} ;

2020-12-29 16:43:00 1722 1

原创 PCL单个程序多幅点云显示

在之前使用opencv的小伙伴们,也希望PCL像opencv那样,N个imshow()+Waitkey()来显示点云;PCL最简单的是通过以下方式来显示一幅点云:pcl::visualization::CloudViewer viewer("Cloud Viewer"); viewer.showCloud(cloud_filtered_show,"cloud filtered"); while (!viewer.wasStopped()) { }那么,如果想在一个...

2020-12-24 16:35:52 486 1

原创 PCL点云滤波:去除离群点StatisticalOutlierRemoval和适用场景

目录PCL去除离群点StatisticalOutlierRemoval使用方法和效果显示去除离群点StatisticalOutlierRemoval原理说明去除离群点StatisticalOutlierRemoval适用情况和使用感受PCL去除离群点StatisticalOutlierRemoval使用方法和效果显示所需点云资源见文章末尾的参考链接;程序写了去除离群点的基本操作方法,并且显示每一步的运行效果,在运行时关闭一个窗口后,再显示下一个点云窗口;算法本身主要参数:(1

2020-12-23 17:13:21 6044 5

原创 PCL点云滤波:体素网格法VoxelGrid和适用场景

目录PCL体素网格法VoxelGrid使用方法和点云效果显示体素网格法VoxelGrid原理说明适用场景和使用心得PCL体素网格法VoxelGrid使用方法和点云效果显示资源下载链接和参考教程在文章最后;程序中实现最基本的滤波功能和对一个点云多次滤波的实现;参数0.01f是1cm,调整后可以看效果;/*20201213 by 手口一斤*/#include <iostream>#include <pcl/io/pcd_io.h>#include

2020-12-23 13:41:27 2385 4

原创 PCL点云滤波:直通滤波PassThrough(简单卡阈值留点)和适用场景

目录PCL直通滤波使用和点云打印直通滤波的原理直通滤波的使用场景和使用体验CL直通滤波使用和点云打印除了对PCL直通滤波的常用基本功能实现,具体看注释。说明了多维度直通滤波的用法,即卡多个阈值得到点云结果,例如PointXYZ,对“x” “y” 三个值都需要卡阈值时的使用方法;/*20201022 by 手口一斤*/#include <iostream>#include <ctime>#include <pcl/point_types.h&g

2020-12-22 16:11:00 2942 1

原创 PCL点云滤波:双边滤波BilateralFilter和适用场景

目录PCL双边滤波使用和结果显示双边滤波实际计算过程(定义)双边滤波适用场景和使用体验PCL双边滤波使用和结果显示先用最简单的例子来说明PCL双边滤波如何使用#include <pcl/point_types.h>#include <pcl/io/pcd_io.h>#include <pcl/kdtree/kdtree_flann.h>#include <pcl/filters/bilateral.h>#include &lt

2020-12-22 14:42:27 6452 17

原创 PCL点云可视化PointXYZ,PointXYZRGB

目录1.可视化PointXYZ2.可视化PointXYZ,每个点显示固定颜色2.可视化PointXYZRGB,每个点显示相应的颜色;1.可视化PointXYZboost::shared_ptr<pcl::visualization::PCLVisualizer> simpleVis(pcl::PointCloud<pcl::PointXYZ>::ConstPtr cloud){ boost::shared_ptr<pcl::visualizati..

2020-12-18 13:36:42 10206

原创 如何给main(int argc, const char** argv)进行赋值

很多时候,C++生成exe然后在命令行中运行,会找不到dll,并且不容易进行代码调试,对main(int argc, const char** argv)参数直接进行赋值,能够直接对程序调试和运行相应得结果:具体方法如下,详情看代码注释::intmain(int argc, const char** argv){ // 当刚进来时,argc=1,argv[0]为exe的路径 //argc是一共有多少个参数 argc = 2; std::string aa = "

2020-12-16 17:11:37 2746

原创 PCL点云读取、写入、生成和可视化

目录代码功能代码运行结果一个代码完成功能,不需要下载其它的点云文件数据,代码功能1.生成一个在正方体内的随机点云;2.将生成的点云保存为PCD文件;3.读取PCD文件得到点云;4.可视化点云;代码/*by : 手口一斤date : 2020-12-16*/#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#inc

2020-12-16 16:23:40 3871 8

原创 opencv旋转矩形定义以及求交叉面积

目录代码:运行结果:结果分析:用途可以用来计算目标检测或者分割等结果IOU代码import cv2# 旋转矩形的定义((中心点x,中心点y),(宽,高),角度值)rect1 = ((0, 0), (100, 100), 10) # x,y w,hrect2 = ((0, 0), (50, 50), 10)r1 = cv2.rotatedRectangleIntersection(rect1, rect2) # 区分正负角度,逆时针为负,顺时针为正ar.

2020-12-09 14:56:11 1111 2

空空如也

空空如也

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

TA关注的人

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