自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cuiy24的博客

记录学习心得,还请指教

  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 dell Win10利用easyBCD装ubuntu双系统误删了Win10启动项,修复笔记

Pointnet网络已全部跑完,开始接触Pointnet++代码,由于代码中包含C++工具包,需利用linux进行编译。我的电脑是win10,故此想装个双系统进行训练代码。别人推荐easyBCD傻瓜式安装双系统,但是自己笨拙,主动设置了启动菜单,导致windows启动项丢失,真的心里吓哭了,想要利用pe系统重装系统,却发现本地硬盘全部不见消失,一度想要花钱拿去电脑城修,之后还是在查寻各种解决博客,各种方法尝试,最终一一解决恢复win10系统启动,特此记录!

2020-06-20 21:48:45 3373 1

转载 python setup.py install报错“error: can‘t create or remove files in install directory”

运行python setup.py install 报错:running installerror: can't create or remove files in install directoryThe following error occurred while trying to add or remove files in theinstallation directory: [Errno 13] Permission denied: '/home/xxx/anaconda3/

2022-05-10 21:51:50 4208 4

转载 Python字典update()方法

目录描述语法参数返回值实例正文描述Python 字典 update() 方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中。用法与 Python dict() 函数相似。语法update() 方法语法:D.update(key/value)参数key/value – 用于更新字典的键/值对,此处可以表示键/值对的方法有很多,请看实例。返回值该方法没有任何返回值。实例以下实例展示了 update() 方法的使用方法:D = {'one

2021-08-18 16:31:59 7853

原创 clean_pvnet:报错 task must be specified

运行clean_pvnet遇到如下错误:task must be specified从没有遇到过这样的报错,加上百度也没有搜到相关结果,内心急躁,困扰了我很久一直想不出解决办法;后逐行debug 发现是配置出了问题。这是作者在编写配置文件的时候写的代码,后逐个参数修改解决了报错问题,特此铭记,凡是报错先debug找问题。解决方法debug发现是配置参数的task设置为空导致报错。后将其修改为pvnet,cfg.network也一并修改...

2021-08-16 15:42:49 462 3

转载 点云配准介绍

1.点云配准——————————————————————————————————————点云配准过程,就是求一个两个点云之间的旋转平移矩阵(刚性变换或欧式变换),将源点云(source cloud)变换到目标点云(target cloud)相同的坐标系下。可以表示为以下的方程:其中,Pt ,Ps 就是目标点云和源点云中的一对对应点。而我们要求的就是其中的R与T的旋转平移矩阵。这里,我们并不知道两个点集中点的对应关系,这也是配准的核心问题。————————————————————————————

2021-05-26 20:55:16 10247

转载 Spatial Transformer Networks空间变换网络

一、相关背景如果网络能够对经过平移、旋转、缩放及裁剪等操作的图片得到与未经变换前相同的检测结果,我们就说这个网络具有空间变换不变性(将平移、旋转、缩放、裁剪不变性统称为空间不变性)。具有空间变换不变性的网络能够得到更精确的分类结果。传统CNN网络的池化层具有平移不变性(网络在平移小于池化矩阵的范围时具有平移不变性。所有只有平移小于这个范围,才能保证平移不变性。)但是CNN网络对于大尺度的空间变换并不具备不变性。STN提出的空间网络变换层,具有平移不变性、旋转不变性以及缩放不变性等强大的性能。如下图所示:

2021-01-03 18:01:22 308

转载 深入理解Batch Normalization批标准化

https://www.cnblogs.com/guoyaohua/p/8724433.html

2020-12-27 21:14:05 140

原创 list.extend()

描述extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。语法extend()方法语法:list.extend(seq)参数seq – 元素列表。返回值该方法没有返回值,但会在已存在的列表中添加新的列表内容。实例以下实例展示了 extend()函数的使用方法:aList = [123, 'xyz', 'zara', 'abc', 123]bList = [2009, 'manni']aList.extend(bList)print("Ex

2020-09-23 09:28:43 1451

原创 logits and labels must be broadcastable: logits_size=[131072,9] labels_size=[131072,8]的错误

提示的错误为logits和标签必须是可广播的:logits_size = [131072,9] labels_size = [131072,8],我理解的大致意思就是预测结果与标签尺寸不匹配,无法进行计算loss。这是我在debug到train_one_epoch以下部分时,出现了问题。summary, step, _, loss_val, pred_val, _ = sess.run( [ ops["merged"], .

2020-09-07 11:18:27 4982 2

原创 Python join()方法

描述Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。语法str.join(sequence)参数sequence – 要连接的元素序列。返回值返回通过指定字符连接序列中元素后生成的新字符串。实例str = "-";seq = ("a", "b", "c"); # 字符串序列print str.join( seq );以上实例输出结果如下:a-b-c注:语法:’sep’.join(seq)参数说明sep:分隔符。可为空seq:要连

2020-09-03 10:04:17 388

原创 subprocess模块和.communicate()(学习更新中)

subprocess模块的作用DESCRIPTIONThis module allows you to spawn processes, connect to theirinput/output/error pipes, and obtain their return codes.允许创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入、标准输出、标准错误以及返回码等。注意:使用这个模块之前要引入该模块。Popen类subprocess模块中定义了一个Popen类,通过它可以来

2020-09-03 09:44:39 14242

原创 PointASNL自适应采样非局部神经网络的点云鲁棒操作初探

原始点云数据不可避免地从3D传感器或在重建算法中包含了异常值。本文提出了一种用于鲁棒点云处理地新型端到端网络,称为PointASNL。其完成了一个指标:在对含有噪声地点云数据处理问题上,具有良好地性能和鲁棒性。该网络中的关键部分是自适应采样(Adaptive SampLing)模块。简单来说,首先利用最远点采样法以及KD树搜索邻近点,对采样点的领域进行加权,然后在整个点云中自适应的调整采样。AS模块不仅有益于点云的特征学习,二千缓解受异常值的影响。为了进一步捕捉邻域信息和长期依赖于采样点,作者从非局部操

2020-08-21 16:20:33 851

原创 tf.batch_gather,tf.gather,tf.gather_nd

简单来说,batch_gather就是通过索引来获取数组的值import tensorflow as tftensor_a = tf.Variable([[1,2,3],[4,5,6],[7,8,9]])tensor_b = tf.Variable([[0],[1],[2]],dtype=tf.int32)with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print(sess.run(tf.

2020-08-12 10:32:04 1054

原创 RandLA-Net中特征学习提取模块解析

RandLA-Net实现了两个核心指标:一个是利用Random_sampling进行提速,二是设计特征提取模块解决Random_sampling带来的信息丢失问题。下图为特征提取模块示意图:由三个模块组成,分别为LocSE,Attentive Pooling,Dilated Residual BlockLocal Spatial Encoding(局部空间编码)给定点云P以及每个点的特征(例如原始RGB或中间学习的特征),此局部空间编码单元会明确嵌入所有相邻点的x-y-z坐标,从而使相应的点特征始终

2020-08-11 11:18:51 1831

转载 Python使用Pickle模块进行数据保存和读取的讲解

转载博客pickle 是一个 python 中, 压缩/保存/提取 文件的模块,字典和列表都是能被保存的.但必须注意的是python2以ASCII形式保存,而在python3中pickle是使用转换二进制的数据压缩方法保存数据所以,在保存或者读取数据的时候,打开文件应该使用‘wb’ 'rb’的方式import picklea = 'owoof'with open('111.pkl', 'wb') as file: pickle.dump(a, file)在Pickle模块中还有dum

2020-08-04 22:37:40 1392

转载 TensorFlow导入数据详解

tf.data API带来了TensorFlow的两种新抽象:tf.data.Dataset : 表示元素的序列,其中每个元素包含了一个或多个Tensor对象。例如,一个图像数据管道中,一个元素可能是一个具有一对张量表示其图像数据和标签的训练样本 。有两个不同的方法创建dataset :创造source (例如Dataset.from_tensor_slices()) 从一个或多个tf.Tensor对象中构建dataset使用transformation(例如Dataset.batch()) 从一个或

2020-07-31 15:39:01 704

原创 TensorFlow随机值函数:tf.random_uniform

TensorFlow随机值函数:tf.random_uniformtf.random_uniform 函数random_uniform( shape, minval=0, maxval=None, dtype=tf.float32, seed=None, name=None)定义在:tensorflow/python/ops/random_ops.py.从均匀分布中输出随机值.生成的值在该 [minval, maxval) 范围内遵循均匀分布.下

2020-07-30 11:20:06 746

原创 TensorFlow:tf.map_fn函数

map_fn( fn, elems, dtype=None, parallel_iterations=10, back_prop=True, swap_memory=False, infer_shape=True, name=None)map_fn 的最简单版本反复地将可调用的 fn 应用于从第一个到最后一个的元素序列.这些元素由 elems 解压缩的张量构成.dtype 是 fn 的返回值的数据类型.如果与elems 的数据类型不同,用

2020-07-30 11:13:07 588

转载 python错误解决TypeError: () must be callable

我遇到的问题和转载的这篇博客类似,在使用函数时,传入的参数,在生成该参数的函数调用带了括号,导致报错以下位转载博客问题:我在使用_thread.start_new_thread(func(), ())时,报错:TypeError: first arg must be callable。分析:由于传入的function名带了括号,相当于在此处调用这个方法。所以这个参数本来应该是方法名,却成了该方法的返回值。解决办法:去掉方法后的括号:_thread.start_new_thread(func

2020-07-29 18:01:40 4313

转载 tensorflow中os.environ[“TF_CPP_MIN_LOG_LEVEL“]

本文转自:https://blog.csdn.net/qq_40549291/article/details/85274581感谢作者的知识分享~看代码时遇到 os.environ[‘TF_CPP_MIN_LOG_LEVEL’] = ‘0’ 是设置log输出信息的,也就是程序运行时系统打印的信息。源码(https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/platform/default/logging.h)解析如下:

2020-07-29 09:04:35 242

转载 [论文阅读]CVPR 2020——RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

本文提出了目前制约对大场景点云的实时语义分割的因素有以下三点:目前常用的点采样方法要么费时要么费内存,比如常用的FPS算法。大多数现有的本地特征学习者通常依靠计算昂贵的内核化或图形构造,从而无法处理大量点。对于通常由数百个对象组成的大规模点云,由于其有限的接收场大小,现有的局部特征学习器要么无法捕获复杂结构,要么效率低下。从而引出本文提出了一种针对大场景的轻量级、高效点云语义分割新算法。完成了两个任务:随机采样 random sampling,减少了计算量和内存。设计了 局部特征提取块,

2020-07-24 16:58:10 382

转载 summary()函数与tensorboard可视化

tensorboard 作为一款可视化神器,可以说是学习tensorflow时模型训练以及参数可视化的法宝。而在训练过程中,主要用到了tf.summary()的各类方法,能够保存训练过程以及参数分布图并在tensorboard显示。tf.summary有诸多函数:1、tf.summary.scalar用来显示标量信息,其格式为:tf.summary.scalar(tags, values, collections=None, name=None)例如:tf.summary.scalar(‘m

2020-07-24 11:33:59 585 2

转载 tensorflow基本使用(构建图和会话)

Tensorflow的特点使用图(graph)来表示计算任务在被称之为会话(Session)的上下文(context)中执行图使用tensor表示数据通过变量(Variable)维护状态使用feed和fetch可以为任意操作赋值或者从中获取数据TensorFlow 综述TensorFlow 是一个编程系统, 使用图来表示计算任务.图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个Tensor, 执行计算, 产生 0 个或多个 Tensor. 每个

2020-07-24 09:31:19 413

原创 pandas随记

1.read_csv()基于 Python 和 NumPy 开发的 Pandas,在数据分析领域,应用非常广泛。而使用 Pandas 处理数据的第一步往往就是读入数据,比如读写 CSV 文件,而Pandas也提供了强劲的读取支持。pandas读取csv文件时通过read_csv函数读取的,也可以读取txt文件,为dateFrames数据框格式。for pc_path in glob.glob(os.path.join(dataset_path, '*.txt')): d = pd.read_c

2020-07-22 22:36:25 109

原创 Semantic3D_pointnet2训练预测随记

train()def train_one_epoch(sess, ops, train_writer, stack): log_string(str(datetime.now())) update_progress(0) loss_sum = 0 confusion_matrix = metric.ConfusionMatrix(NUM_CLASSES)在训练代码中增加了datetime时间显示和加载进度条的用法,更加人性化1.datetim

2020-07-21 21:28:17 880

原创 Semantic3D数据集----Open3D_PointNet2_Semantic3D_master实现

1.下载下载数据集Semantic3D并通过运行以下命令将其提取:cd数据集/ semantic_raw。bash download_semantic3d.shOpen3D-PointNet2-Semantic3D /数据集/ semantic_raw├──bildstein_station1_xyz_intensity_rgb.labels├──bildstein_station1_xyz_intensity_rgb.txt├──bildstein_station3_xyz_intensit

2020-07-21 11:11:20 5633 30

原创 随记(之后再整理)

单纯的想复制代码…class SemanticDataset: def __init__( self, num_points_per_sample, split, use_color, box_size_x, box_size_y, path ): # Dataset parameters self.num_points_per_sample = num_points_per_sample self.spli

2020-07-20 10:27:42 123

原创 multiprocessing--基于进程的并行教程学习(持续更新)

本文是在学习Open3D_Semantic_pointnet2_master的过程中,进而学习multiprocessing主要流程:下载Semantic数据集,首先将txt文本转换为pts,再利用open3d的读写功能,read_point_cloud和write_point_cloud将pts文件全部转换为pcd。完成数据预处理第一步。读取写好pcd文件以及对应的label文件,将所有点非0标签去除创建索引,利用open3d,np.asarray()根据索引将点云数据都提取出来,为numpy形式

2020-07-17 10:35:03 635

原创 numpy高阶函数笔记(持续更新)

将遇到的numpy函数进行补充

2020-07-15 21:14:52 1245

转载 python中os.path.isdir()和os.path.isfile()的正确用法

之前网上查找os.path.isdir()和os.path.isfile()的使用;发现很多是错误的,主要原因是,传入的参数不是绝对路径。先介绍一下os.listdir()方法,此方法返回一个列表,其中包含有指定路径下的目录和文件的名称import osdirct = '/home/workespace/notebook/'for i in os.listdir(dirct): print(i)redisstudy_test.ipynbmnist_dataset.ipynb_che

2020-07-14 20:57:59 830

原创 open3d函数教程学习(持续更新)

Open3D:3D数据处理的现代库Open3D的核心功能包括:3D数据结构3D数据处理算法场景重建表面对齐3D可视化基于物理的渲染(PBR)在C ++和Python中可用导入open3d模块和打印出帮助信息。import open3d as o3dpcd = o3d.io.read_point_cloud("../../TestData/ICP/cloud_bin_0.pcd")print(pcd)geometry::PointCloud with 198835 points.

2020-07-14 15:53:56 11067 8

转载 python strip()函数

python strip()函数 去空格\n\r\t函数的用法在Python中字符串处理函数里有三个去空格(包括’\n’, ‘\r’, ‘\t’, ’ ')的函数:strip 同时去掉左右两边的空格lstrip 去掉左边的空格rstrip 去掉右边的空格具体示例如下:>>>a=" gho stwwl ">>>a.lstrip() 'gho stwwl '>>>a.rstrip() ' gho stwwl'>>>a.st

2020-07-14 10:28:25 223

原创 linux安装Open3d库

安装python版的open3d我是在anaconda创建了一个虚拟环境,在虚拟环境中安装open3dpip install --user open3d-pythonsudo apt-get install libglfw3-devpythonimport open3d

2020-07-13 20:58:06 3977 2

原创 Semantic3D

包含8个语义类,涵盖了广泛的城市户外场景:教堂、街道、铁轨、广场、村庄、足球场和城堡。我们精心选择了各种不同的自然和人工场景,以防止分类器的过度拟合。所有发布的场景都是在中欧捕获的数据格式ascii text files with format {x, y, z, intensity, r, g, b}semantic-8:包含8个语义标签1:人造地形:主要是路面2:自然地形:以草地为主3:高植被:树木和大灌木丛4:低植被:小于2米的花或小灌木5:建筑物:教堂、市政厅、车站6:硬景观:一

2020-07-11 11:24:32 2973 4

原创 np.unique()

np.unique(ar, return_index=False, return_inverse=False, return_counts=False,axis=None)去除数组中的重复数字,并进行排序后输出不选参数:>>> b=np.random.randint(0,5, size=(10))>>> barray([1, 4, 3, 0, 1, 0, 0, 1, 4, 4])>>> np.unique(b)array([0, 1, 3,

2020-07-11 10:57:31 1488

原创 pointnet++ 语义分割scannet/train.py

for epoch in range(MAX_EPOCH): log_string('**** EPOCH %03d ****' % (epoch)) sys.stdout.flush() """ 强制刷新缓冲区""" train_one_epoch(sess, ops, train_writer)if epoch % 5 == 0: acc = eval_one_epoch(sess, ops, test_writer) acc = eval_whole_

2020-07-09 22:30:47 1555 3

转载 numpy.where()和tf.where()

numpy.where() 有两种用法:np.where(condition, x, y)满足条件(condition),输出x,不满足输出y。如果是一维数组,相当于[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]aa = np.arange(10)np.where(aa,1,-1)array([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) # 0为False,所以第一个输出-1n

2020-07-09 10:03:31 257

原创 pointnet++语义分割PointNet2_sem_seg.py代码解读

get_modell1_xyz, l1_points, l1_indices = pointnet_sa_module(l0_xyz, l0_points, npoint=1024, radius=0.1, nsample=32, mlp=[32,32,64], mlp2=None, group_all=False, is_training=is_training, bn_decay=bn_decay, scope='layer1')l2_xyz, l2_points, l2_indices = poi

2020-07-07 16:58:01 1740 6

原创 PointNet++分类train.py

def train(): with tf.Graph().as_default(): with tf.device('/gpu:'+str(GPU_INDEX)): pointclouds_pl, labels_pl = MODEL.placeholder_inputs(BATCH_SIZE, NUM_POINT) """ pointclouds_pl= (16,1024,3) label_pl = (16,)

2020-07-06 10:12:42 626 1

原创 PointNet_sem_seg制作npy数据集文件

代码中利用collect_indoor3d_data.py制作npy数据集collect_indoor3d_data.pyanno_path包含了272个训练数据的相对路径import osimport sysBASE_DIR = os.path.dirname(os.path.abspath(__file__))ROOT_DIR = os.path.dirname(BASE_DIR)sys.path.append(BASE_DIR)import indoor3d_utilanno_p

2020-07-05 17:30:58 2461 2

pointnet++的.so文件包

pointnet++代码系列均可以使用,tf_ops文件夹下包含了三个部分的所有需要的文件,包含FPS算法模块,grouping以及插值模块

2020-09-02

空空如也

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

TA关注的人

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