自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 离线安装Pytorch 最简单 高效的方法

由于之前手动升级了一下pytorch,发现自己的cuda版本不够,一顿骚操作之后我的pytorch崩了,我就想直接重装吧。结果,我之前装过两次pytorch,这次来安装竟然又搞了一天才搞好,为了不在这个问题上跌倒第三次,同时也不能总是白嫖别人的文章,决定记录下来这次安装过程,希望能帮助大家快速安装pytorch.1 基础设置首先还是需要安装anconda,同时创建一个环境。这里网上的教程较多,我就不详细说明了。我创的环境名字叫torch367。**2设置镜像**依然是给anconda配置国内镜像

2021-02-05 11:04:56 37589 13

原创 Python 分割PPT成多份,每份保留第一页和最后一页

【代码】【无标题】Python 分割PPT成多份,每份保留第一页和最后一页。

2023-08-15 15:56:39 608

原创 YOLO tensorRT遇到的问题

找不到工具箱问题],一定要放到C盘下的VS里,不能放到安装目录下面(https://blog.youkuaiyun.com/weixin_46363611/article/details/126177727?导出成功后找不到dll,python版本问题,换小于3.8的版本即可。cmake编译失败找不到cuda tool工具箱,查看这个连接。

2023-02-16 20:13:16 350

原创 CF目标检测(YOLO格式)标注数据集1w张

CF1w张人工标注的数据集,帮你训练目标检测网络。标了一个多月,有偿出售,白嫖勿扰。

2022-12-24 15:05:47 2283 2

原创 MySQL小白之redo log

本文适合零基础小白,用来解释和记录一下为什么innodb需要 redo log。

2022-09-05 18:36:27 512

原创 Element-ui不显示表格数据问题

在学习vue的时候,使用element-ui插件,按照官方教程导入表格发现在界面里除了表格没有数据,其他都能正常显示。在vue中的组件里也能拿到对应表格中的数据,但就是无法显示表格中的数据。

2022-07-17 12:16:13 3543

原创 Access to XMLHttpRequest at ‘xxxx‘ from origin ‘http://localhost:63442‘ has been blocked by CORS pol

解决IDEA跨域报错

2022-07-09 15:44:40 1892 1

原创 KDTree与grid_sub_sampling栅格采样

1.kdt.query利用KDTree.querry可以快速查询点的邻居索引,这样就能快速完成对点云的邻居搜索。from sklearn.neighbors import KDTreeimport numpy as npX = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])print(X.shape)kdt = KDTree(X, leaf_size=30, metric='euclidean')result =

2022-05-17 19:31:55 1214

原创 endnote插入引用变成代码

Word在复制的十分endnote里面的内容变成了这个的代码。解决方案:按alt+F9

2022-04-02 21:05:13 3061 1

原创 QT dsigner简单设置布局小技巧

1.现象大家在使用QT的时候会发现设计好的界面在放大的时候会出现一些问题,即控件的尺寸不会随着界面的缩放而自适应改变,出现界面大,控件小的情况。如下图所示当我们拉大界面的时候,就会出现下面的情况:控件不会随着界面进行自适应缩放。要达到自适应缩放的效果,就需要对页面进行布局(Layouts)。但是,designer中的布局对于初学者是十分不友好的,往往达不到我们想要的效果。因此,接下来分析一中简单的方法,来快速完成界面的布局,达到我们想要的效果。2.方法打开designer,找到左侧的空间中的W

2022-04-02 11:33:08 3299

原创 Pyside2 利用QLabel插入图像和生成对话框选择文件夹

Pyside2插入图像Pyside2的QLabel不仅能够插入文字,也可以利用它来插入图像 或者将这个图像当成背景图像。通过上述代码就可以实现对图像的插入。 l = self.ui.Q_1 l.setText("待载入图像") l.setAlignment(Qt.AlignCenter) # 设置字体居中现实 l.setPixmap(img_path) l.setFixedSize(250, 250)其中self.ui.Q_1是在

2022-03-29 18:59:24 2151 2

原创 语义分割只显示指定类别的预测结果

介绍目前,语义分割的预测结果会将数据集内所有的类别都预测,并展示出来。例如,在下图中我们只想获得人这个类别的预测结果,在不修改模型的前提下,如何实现呢?方法可以通过以下代码解决这个问题:from PIL import Imageimport numpy as np#生成染色版def get_voc_palette(num_classes): n = num_classes palette = [0]*(n*3) for j in range(0,n):

2022-03-19 17:02:59 2685 7

原创 Pyhook3安装

记录一下pyhook3的安装过程:先按这个教程先把hook下载下来[https://www.cnblogs.com/maybaco/p/13336851.html]然后看这个教程 安装swig.exe添加链接描述用conda 安装 就没有环境变量问题最后再在pycharm终端执行pip install pyhook3...

2022-02-16 11:13:25 5683

原创 Pytorch已知一个tensor的索引,并对它进行重新排序

之前遇到了一个问题,我有一个tensor,它的形状是b c h w ,和与它一样长的一个索引 b c 1 1 。我们要根据这个索引对原始tensor进行重新排序。百度了一圈貌似没有直接解决的api,感觉只能用循环处理,因此我用循环写了一个函数来搞定这个问题。#第一个参数是原始要排序的tensor,和索引,返回排好序的结果。def sort_with_idx(source,idx): #根据索引对tensor进行排序 "source: b c h w , idx: b c 1 1"

2022-01-23 15:59:28 6794 3

原创 PointNet++分割预测结果可视化

目前网上对于PointNet++的预测结果可视化的资料比较少,一般都是直接可视化数据集。下面介绍一种我利用Matplotlib可视化预测的代码,希望能够对大家有所帮助。原理:简单阐述一下代码的原理,首先我们利用网络给出输入图像的预测结果,并存入为txt文件;然后利用Matplotlib读取txt文件,画出3d图像。预测效果由于3d图像无法直接显示,需要特定的软件才行,因此我们只能将它转换为2d图像报错,其结果如下准备材料1)网络模型。本代码是基于 pytorch版的PointNet++实现的,

2021-12-12 11:49:00 18958 70

原创 RuntimeError: expected scalar type Long but found Float

我在运行网络预测脚本的时候遇到这个问题RuntimeError: expected scalar type Long but found Float翻译过来就是:RuntimeError: 预期的标量类型 Long 但发现 Float这里非常坑,我把输入 网络的数据都加上.long() 转换为Long之后还是报这个错误。、、它好像报错报反了!!!!!几经周折,我终于发现,Pytorch的权重是float型的,所以要求输入数据也是float型的。标签是long型(整数),要求标签也是整数。所以

2021-12-08 17:07:13 6733 2

原创 PointNet++报错RuntimeError: shape ‘[1, 1, 3]‘ is invalid for input of size 6

如果在运行PoinNet++和一些需要FPS采样的代码时候遇到这个错误File “G:\QY\Pointnet_Pointnet2_pytorch-master\utils\pointnet2_utils.py”, line 84, in farthest_point_samplecentroid = centroid.view(B, 1, 3)RuntimeError: shape ‘[1, 1, 3]’ is invalid for input of size 6经过检查后发现就是这里出了问题

2021-12-03 11:01:35 12023 1

原创 matplotlib绘图报错Fail to allocate bitmap

之前用matplotlib画很多张遇到这个问题,内存不足的。这个里面的解决方法试了一次,没效果,继续报错[https://blog.youkuaiyun.com/wavehaha/article/details/118682689?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-4-118682689.pc_agg_new_rank&utm

2021-11-29 20:37:59 4295

原创 S3DIS数据集学习笔记

S3DIS是一个大型的3d室内数据集,关于它的介绍网上很多了。它主要是由xyz+rgb+法向量 9个特征 和一个标签组成的,长度为10的向量。由于这个数据集比较大,不利于训练,PointNet++训练之前会将它进行预处理,划分为1mx1m的区域,然后再放入网络进行训练。下面是关于它的代码分析,这个数据集运行的前提是,你已经按照PointNet++的readme运行了collect_indor3d_data,将txt文件转换为了.npy文件class S3DISDataset(Dataset):

2021-11-29 11:09:50 15249 25

原创 PointNet++上采样(Feature Propagation)

PointNet++在处理分割任务的时候需要将下采样的点还原到与输入相同的点数,便于做每个点的预测。但是在论文中只给了一个简单的描述和公式,不是很好理解,因此在这里记录一下我的理解过程。1.FP模块的目的PointNet++会随着网络逐层降低采样的点数,这样来保证网络获得足够的全局信息,但是这样会导致无法完成分割任务,因为分割任务是一个端到端的,必须保证输出与输入点数相同。一种完成分割任务的方法就是不下采样点,始终将所有点放入网络进行计算。但这样需要消耗大量计算成本。另一种比较常用的方法就是进行插值了

2021-11-08 20:05:52 9221 8

原创 one of the variables needed for gradient :.....with torch.autograd.set_detect_anomaly(True).

一个很神奇的错误:RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [16, 8, 1024]], which is output 0 of LeakyReluBackward1, is at version 2; expected version 1 instead. Hint: enab

2021-11-07 15:54:00 6310 3

原创 S3DIS数据集的几个bug

在处理S3DIS的txt文件时候会遇到几个bug.在Stanford3dDataset_v1.2这个版本中 的Area_5\office_19\ceiling_1,路径如下\S3DIS\Stanford3dDataset_v1.2\Area_5\office_19\Annotations\ceiling_1.txt会存在字符串,导致代码老是出错,经过查找发现在323474行,需要手动删除在Stanford3dDataset_v1.2_Aligned_Version这个版本中也会遇到bug具体位置

2021-11-05 14:34:49 5953 1

原创 Windows安装torch-points3d点云工具箱

torch-points3d是一个点云工具箱,里面集成了分割检查分类等一系列点云网络,我们需要使用的时候可以直接调用他们,就可以一键运行他们,非常方便。但是这个是在linux里面安装会比较方便,windows无法直接安装上去,需要一些安装经验才能安装上去。下面分步骤分享一下我的安装经验:1. VC2017安装这个库需要编译c语言的代码,所以要安装VC2017。有2019的需要卸载了装这个版本的。2.新建环境这个库需要安装许多库,如果在原来的环境进行的话会覆盖掉,所以最好新建一个环境。pytho

2021-10-22 16:05:08 7858 4

原创 Windos cuda cudnn10.1 10.0 10.2免费下载

cudnn cuda对应10.2版本链接:https://pan.baidu.com/s/1m7jOwBcgHSwlNI7dIIV4Iw提取码:ogo9cudnn cuda对应10.1版本链接:https://pan.baidu.com/s/1flDyUOFeazSajNKS47zqnQ提取码:3o2fcuda10.0链接:https://pan.baidu.com/s/1djNA1WVpmw_x_Y10pjWlSQ提取码:m1fzcuda10.2链接:https://pan.ba

2021-10-22 09:37:04 4450

原创 ShapeNet数据集及dataset代码分析

1数据集简介ShpaeNet是点云中一个比较常见的数据集,它能够完成部件分割任务,即部件知道这个点云数据大的分割,还要将它的小部件进行分割。它总共包括十六个大的类别,每个大的类别有可以分成若干个小类别(例如,飞机可以分成机翼,身体等小类别),总共有五十个小类别。下面可视化一下,经过采样和上色后它长什么样子:可以发现,它不仅将桌子和椅子进行了分割,还对它的桌子腿等小部件也分割为不同的颜色。2.数据集结构下载好数据集之后,数据集就是这样,其中,数字文件夹里面放的都是每个大类的点云数据。例如,第一个

2021-10-19 12:50:56 17360 14

原创 RandLa-Net学习笔记

RandLa-Net开创了使用随机采样来处理点云的先河,并在大规模点云上取得了非常好的效果。然而,作者在论文中只讲述了如何搭建模型,并没有详细讲述如何进行数据预处理,如何进行随机采样,而这对点云处理也是十分重要的。因此,本文首先会从数据的角度出发,探析RanLa-Net数据预处理的方式,然后详细讲解RandLa-Net的模型结构,最后对其在S3DIS数据集上的处理过程进行分析。1. 引言作者在论文中开片就提出了PointNet++中对数据进行采样存在的缺陷:1.FPS仅适应小规模点云,对大规模点云采样

2021-10-11 10:52:04 10099 12

原创 ModuleNotFoundError: No module named ‘hydra‘

之前在安装hydra的时候一直安装不上去,按照网上的建议要先安装一个VC++的编译环境,我把这个装上去之后还是一直报错:ERROR: Command errored out with exit status 1: ‘d:\anaconda\envs\torch371\python.exe’ -u -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] = ‘"’"‘C:\Users\lenovo\AppData\Local\Temp\pip-in

2021-10-08 09:35:13 18445 10

原创 ModelNet10/40数据集的下载及dataset代码分析

ModelNet10/40是一个3d图像分类的一个数据集,简单记录一下如何下载这个数据集和打开显示这个图像。1.去它的官网下载你想要的数据集,然后解压。网址为:http://modelnet.cs.princeton.edu/2.解压完成后,你会发现是.off的文件,无法直接打开。3.这个时候需要下载一个软件,交meshlab,才能打开.off文件,像正常2d图像一样去显示出来。下载的网站为:https://www.meshlab.net/#download根据自己的电脑版本选择下载,然后安装

2021-09-10 15:57:38 36179 32

原创 最详细的语义分割---05利用训练好的模型进行预测

前面已经将模型训练好了,并将权重文件保存在weights文件夹中,接下来可以利用predict脚本对模型做一个简单的预测,看一下模型的预测效果。首先就是导入之前训练的模型,并加载权重。注意这里归一化的均值和方差一定要填写你训练时候的均值和方差。然后填写对应的权重路径和图像路径,和预测结果的保存路径。本次预测的图像为:将以上准备工作做好之后就可以运行脚本来进行预测。主要的思路就是将图片归一化之后送入网络,然后对预测结果进行处理,根据要求还原图像。主要的代码如下:语义分割的预测结果一般是有N个通道

2021-09-07 10:46:57 9203 14

原创 YOLO 中的Anchor机制笔记

众所周知,Yolo v2最大的改进就是锚框机制,并且锚框的生成不是和以前靠经验所得,而是通过更加科学K-Means聚类获得的。那么这个Anchor是如何与yolo相结合的呢? 首先来了解一下锚框机制,锚框(Anchor)就是预设好的一堆虚拟的框,它们的尺寸和大小是固定的,但是它们与物体的真实标注框(GT)存在一些差异。人为设置锚框参数时要尽量使它能够贴近真实框。我们期望锚框是接近于真实框的,但是这显然是不可能的(因为真实框大小不一样,而锚框尺寸是固定不变的)。但是我们可以通过网络预测的结果去调整锚框..

2021-08-31 11:50:51 9590 4

原创 caffe2_detectron_ops_gpu.dll“ or one of its dependencies一种可能解决方案

之前电脑太卡了,我把他重置了一下。后来我发现,我的pytorch用不了了,一运行就报下面这个错误Traceback (most recent call last): File "D:/1Apython/Pycharm_pojie/Semantic_segmentation/pytorch_segmentation-master/train.py", line 4, in <module> import torch File "D:\Anaconda\envs\torch371\

2021-07-12 20:52:08 12151 2

原创 DarkNet53Pytorch实现和.pth的预训练权重下载

DarkNet53是Yolov3的主干网,当我们想拿来做分割或者分类的时候需要将其单独编写出来,并加载预训练的权重。我在网上找了挺久,不知道为什么权重文件都是.weights或者.conv结尾的,这样的文件貌似pytorch无法直接加载,所以本文给大家分享一下它的预训练权重,大家有需要的可以来下载:链接:https://pan.baidu.com/s/1n6PRMSQGtdWzQqkyYTDc5w提取码:3h03关于代码,我是在别人的基础上进行了一些修改,使得最后两个block的步长为1,最后两个bl

2021-07-11 14:34:31 2564 5

原创 最详细的语义分割---08预测图像染色

对于语义分割来说,网络输出的图像为HxW的二维矩阵,其上面每个像素点的值是这个像素点的类别(如,像素点值为1 ,表示这个像素点属于第一类)。然而,对于一个二维矩阵,生成的图像是一个灰度图,并且灰度值很低,非常不利于人观察(如下图为voc2007的标签,图中白色为人为标记的,真正的网络预测并没有这一部分)那么我们就需要对其进行染色处理,使其变成利于人观察的图像(如下图这样)对图像染色有很多方法,下面介绍一种最简单的一种方法:def cam_mask(mask,palette,n): seg_

2021-06-28 13:51:03 2428 9

原创 目标检测---SSD

中心思想SSD是一阶段目标检测算法,它没有rnp结构,采用在多个卷积层去预测结果(提取结果用的是卷积,不是线性层),所以在小目标上预测的效果更好(小目标由于网络层数变深,仅在最后一层预测效果会很差,如图所示,在8x8的特征图上预测较小的目标猫,在4x4的特征图上预测较大的目标狗)这是原文中的图,图(b)和 图(c)中的虚线框就是生成的 default box(Faster-Rcnn中叫anchors),然后在不同特征层上去生成不同尺寸的dfault boxes,并且每个defalut boxes有着不

2021-06-12 14:39:51 541

原创 最详细的语义分割---07交叉熵到底在干什么?

目前深度学习中基本都会用到交叉熵作为损失函数,那么为什么不使用别的函数作为损失函数,而要选择交叉熵呢?多类的交叉熵到底该如何计算?熵什么是熵? 在信息论中,熵其实就是衡量信息量的一个指标。一个事物它发生的概率越大,那么它携带的信息就越低。例如太阳从西边出来,这个事情发生的概率是很低的,所以它携带的信息量很大。如果我们想用数学公式表达上述现象,那么我就要找到一个函数,输入是概率,输出是它的信息量,而且概率越大的时候,信息量应该越小,概率越小,信息量越大。所以香农就找到了log函数来定义信息量(可以回忆一

2021-06-10 19:33:10 2683 1

原创 Faser-RCNN之ROIPooling详解

在Faster-rcnn中,ROIPooling的作用是将原图像上不同大小的proposal映射到特征图上同等大小的区域,以便后面进行分类和回归预测。既然是pooling,它的本质也是一种最大池化。那么究竟是如何映射的呢?可以通过代码来了解一下这个是roi的代码部分,其中输入feature是网络输出的特征图,proposal是RPN网络生成的,并且经过筛选的候选框,image_shapes是原始图像的尺寸。输出就是经过roi之后固定区域的候选框。通过debug来详细看一下各个部分的形状featur

2021-06-06 11:59:17 2200 1

原创 Pytorch之view,reshape,resize函数

对于深度学习中的一下数据,我们通常是要变成tensor格式,并且需要对其调整形状,很多时候我们往往只关注view之后的结果(比如输出的尺寸),而不关心过程。但有时候还是要关注一下这个到底是怎么变换过来的,不仅要知道结果,还要了解过程。假设这里有一个tensor是这样的打印出来的结果是这样,两个batch 每个矩阵是2x3的形状。这种情况可以想成两个矩阵堆叠在一起的样子。然后我对他进行reshap view 之类的操作,这些操作都可以改变tensor的形状,达到相同的结果。结果如下,我们可以发

2021-05-21 20:32:47 1953

原创 最详细的语义分割---04PSPNet的训练

**实例化模型**由于我们前面已经把相应的模块都已经准备好了,我们在这一部分只需要把他们导入过来,并对相应的超参数进行赋值即可。这里device是对设备的类型进行判断,若存在GPU,我们则使用GPU加速训练。实例化我们之前写好的dataloder和网络。拿到网络的优化器,和学习率调整方式、损失函数。这里需要注意的是,voc数据集的背景类,即标签中黑色的部分,它的标签是255,所以我们在这里计算预测结果和真实标签的时候忽略背景。关于如何忽略背景,只要在交叉熵函数中的ignore_idex=255即可

2021-05-15 18:05:28 2067 8

原创 最详细的语义分割---03PSPNet的搭建

前面讲了一些语义分割的准备工作,接下来就来介绍我们分割网络的重头戏,PSPNet.其实它的结构也是非常简单。PSPNet是利用ResNet为主干网络,再配上池化金字塔模块进行上采样还原特征,其主要结构见下图。主要就是通过循环叠加不同尺寸的全剧平均池化后的特征图来构建的。注意:这里池化之后是有1x1卷积的PSP模块池化金字塔模块能够有效聚合不同尺度上下文信息,是语义分割中常用的模块。下面,我们先对它的池化金字塔模块进行讲解。先看类的定义部分,整个池化金子塔的核心就是按照不同大小的尺寸对主干网络提取的

2021-05-11 21:17:38 1357

原创 最详细的语义分割---02Dtaloader及主干网络搭建

有了前面的基础,我么就可以搭建语义分割的主干网络,对他进行训练,我们需要Dataloerd来提供数据,下面就来一一介绍dataloder及主干网络的搭建**datasets生成**我们前面定义好dataset类之后,生成一个VOCdatasets就非常容易了,我们只需对他进行实例化,传入相应参数就可以了。这里我们直接把训练集和验证集的datasets全部实例化,root参数传入的是数据集路径,num_classes是最后分类的数量,crop_size是裁剪的大小。**dataloader生成

2021-05-08 21:21:14 1046

vs_Community2017.exe

在跑深度学习代码时,需要有c++的编译环境,只能是vs2017,2019会报错

2021-10-22

空空如也

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

TA关注的人

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