- 博客(17)
- 收藏
- 关注
原创 深度学习基础知识记录(个人参考)
输入:k个通道的影像,也就代表着输入数据为k*m*n,其中m,n为影像行列数。而点云数据与与此类似,输入数据一般为k*j,其中k为点云的特征数,一般为3+d,其中3代表着点云的x,y,z三个坐标,d为其他特征值,一般为强度值,回波数等特征。所以 K 个通道会需要 K 个卷积核,因为每个通道可能实际所占权重不同,需要采用不同的卷积核,这样在误差传播之后还能进行动态调整,计算之后,合并也就是相加得到一个通道,又因为输出通道为 L,所以需要 KxL 个卷积核。1*1卷积核的意义:改变特征维度。
2023-10-12 21:42:20
117
原创 基于pyqgis的遥感影像智能解译平台开发
考虑到c#实现涉及到跨平台的问题,并且AE里面也没有合适的矢量编辑组件,需要从基础逻辑开始实现鼠标编辑功能,而WebGIS的实现会涉及到前后端的问题,一般遥感影像数据量较大,部署到后端可能会不方便,因此最后考虑利用基于python的pyqgis库进行项目开发。由于项目需要开发一个结合深度学习模型进行智能解译,并且能够对解译完的矢量进行编辑,因此大致制定了三个可行方案:1、基于python现有的gis二次开发库进行实现。主要定义了一个工具类,利用工具类中的鼠标点击和移动函数,对需要编辑的矢量进行捕获和移动。
2023-09-26 17:34:49
511
1
原创 复现IKDNet网络(附踩坑过程)
这一部分加载模块出错,调试发现导入得open3d指向的是系统的,而系统安装的open3d中字典里是缺少一些字段的,这里的解决办法可以是将项目里的ml3d文件夹中文件移动至系统文件夹中,填补缺失的部分文件。完成这一步之后,需要将输入路径(dataset)改为自己的点云路径,记得是点云路径,同时把yml文件中的img_dataset_path改为影像路径,还有个小坑就是要把。查阅了很多资料,发现是缺少了一些辅助库,偶然之下刚好试了安装pylas库和lazrs库,终于解决了,代码开始运行!框选部分改为图中所示。
2023-08-29 15:25:41
675
2
原创 复现RandLA-Net网络,并训练自己的数据集
在训练自己的数据之前,首先要针对数据预处理进行修改,因为官方提供的数据中,标签是以.label格式单独储存于独立文件中,而我在处理标签是直接作为一列储存在点云文件中。此外,由于官方数据时具有颜色的,而我的数据是未着色的,因此直接将颜色赋0.此外,main文件中的类定义也要修改,将分类标签改成自己数据所对应的,同时要将训练集和测试集的划分代码进行修改。此外,数据集的权重也要进行修改,因为我是进行单类别分割,因此只是将权值全部在设置为1.最后,按照正常的训练流程进行训练即可。具体的复现过程可参考前面发的博客。
2023-07-02 19:01:26
2018
3
原创 DeepLabv3+复现以及训练自己代码
DeepLabv3+的Encoder的主体是带有空洞卷积的DCNN,可以采用常用的分类网络如ResNet,然后是带有空洞卷积的空间金字塔池化模块(Atrous Spatial Pyramid Pooling, ASPP)),主要是为了引入多尺度信息;在训练voc数据集时,直接将数据集放置于VOCdevkit中即可,在训练自己数据时,需要运行voc_annotation.py文件,将数据按照训练-验证-测试集分配并将标签另存。将代码Git下来之后,首先按照requirement将所需库配置完成。
2023-07-02 18:06:37
1607
1
原创 PSPNet语义分割网络复现以及训练自己数据
在进行训练之前需要将参数设置好,其中较重的参数有backbone、num_classes、pretrained、model_path、downsample_factor,还有冻结训练以及非冻结训练过程中的bathsize和epoch。在训练voc数据集时,直接将数据集放置于VOCdevkit中即可,在训练自己数据时,需要运行voc_annotation.py文件,将数据按照训练-验证-测试集分配并将标签另存。在设置好参数之后在运行train.py代码即可开始训练过程。
2023-07-02 17:24:24
1903
3
原创 python实现基于CPU的多线程并行计算
主要基于multiprocessing库,如果代码中存在重复运行又较占内存的代码块时,可以考虑采用这种方法。在不想调用GPU进行并行加速,但又想要提升代码效率时,可以考虑CPU多线程并行计算。其中进程数目需要根据自己设备的CPU情况来酌情设定。
2023-07-02 16:48:49
356
1
原创 图像辐射校正之基于BP的辐射校正代码实现
在理想情况下,太阳辐射出的能量在到达地球表面后,有一部分被地物所吸收,还有一部分经过地物反射后被无人机所接收,而这一部分与太阳辐射出来的总能量的比值就是地物的地表反射率。然而在实际的数据采集过程中,即使无人机的飞行高度比较低,由于存在环境因素、传输介质等影响因素,地物的辐射反射的能量也还是会受到大气微粒的吸收和散射作用,导致目标地物的辐射信号减弱,另一方面会受到背景环境的干扰,不能够反映地物目标真实的光谱反射率、光谱辐射亮度等物理特征。因此采取BP神经网络的辐射校正方案能够较大提高辐射校正速度和效率。
2023-07-02 16:33:36
189
1
原创 C#二次开发(四)之调用py代码打包的exe
由于项目中需要实现CPU和GPU的并行计算处理,而考虑到这些功能在python代码中较为容易实现,因此将Python代码封装后再进行调用。
2023-07-02 16:20:14
266
1
原创 C#二次开发(三)之基于Dotspatial的点提取以及坐标获取
而在获取坐标时,由于涉及坐标系转换,因此需要关注坐标的处理。其中,后面两步是为了坐标最后一位四舍五入。
2023-07-02 15:22:30
572
1
原创 C#二次开发(二)之基于Dotspatial的路网数据路径规划
由于项目提出的要求是基于点、线组成的路网,提取出指定起点、终点的路径,同时也需要提取出途经的点。首先是加载数据,利用的是自带的AddLayers函数,相对于AddLayer来说差别是能够一次性加载多个数据。
2023-07-02 15:06:04
615
1
原创 C#二次开发(一)之DotSpatial使用心得记录
由于实验室项目要求开发一个用于铁路数据检索的小软件供甲方人员使用,而一般用于二次开的Arcengine需要配置的库较复杂,因此选用了轻量级的二次开发组件DotSpatial。(GIS)库,以UserControl的形式提供地图控件。在进行二次开发时,按照一般的二次开发步骤进行组件组合。其中存在一个较大问题就是官方组件的大部分名称都是英文,如果需要汉化,Dotspatial提供有官方的Demomap,其中实现了组件中所有的基础功能。组件的函数使用需要参照官方的说明文档,官方给出的是chm格式英文说明文件。
2023-07-02 14:12:54
1410
2
原创 复现基于Tensorflow的Randla-Net(附踩坑过程)
本来想着大功告成,也没有管别的直接就放在那里跑了一晚上,第二天来发现跑的特别慢,测试了一下Tensorflow的GPU可用性,发现果然是在用CPU跑。由于实验室服务器系统为Ubuntu 20.04,CUDA11.4,为避免后续代码因库版本问题报错,一开始考虑按照要求配置相同环境。分析应该是CUDA9.0实际没安装上,还是用的CUDA11.4,因此导致CUDA版本和Tensorflow版本不匹配。其他的库按照推荐进行配置,在安装完后进行测试,发现代码能跑!
2023-05-29 13:27:00
2035
7
原创 利用二维标签影像裁剪点云(基于open3d)
由于项目需求,需要根据二维标签影像来标注点云,因此需要根据标签来裁剪点云。考虑到数据量较大,因此采用对点云中的点进行循环。
2023-05-29 10:45:58
179
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人