![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
深度学习
文章平均质量分 76
深度学习算法应用,包括视觉图片和3D点云的目标识别、语义分割等。
GHZhao_GIS_RS
本科毕业于武汉大学资源与环境科学学院,地理信息系统(数字制图方向)专业,硕士毕业于中国科学院地理科学与资源研究所,地图学与地理信息系统专业。平时喜欢读小说,尤其痴迷武侠、历史类小说,有好看的这类书可以推荐给我呀。
展开
-
3D点云目标检测:VoxelNext解读
voxelnext论文阅读原创 2023-11-27 19:55:38 · 1606 阅读 · 0 评论 -
3D点云目标检测:CT3D解读(未完)
就是基于单阶段的网络获取box作为Proposal,文章中使用的是Second网络,其他的如pointpillar、centerpoint都可以作为。对于给定的一个proposal,选择ROI区域内的点,ROI区域是一个没有高度限制的圆柱体,然后随机选取ROI范围内的256个点。训练过程中confidence的真值被设置为Proposals和对应的gt的3D IoU值。将经过编码-解码模块的输出送入两个FFN网络中,预测得到confidence和相对于输入的Proposal的box残差值。原创 2023-11-27 15:43:27 · 2040 阅读 · 0 评论 -
torch-scatter安装失败解决办法
安装torch-scatter时可以直接下载whl安装,但是会遇到版本不一致的问题,虽然可以安装但是会提示.so文件不存在或者undefined symbol: 的问题,可以在下面的地址中找到跟自己的torch和cuda版本对应的torch-scatter安装文件。原创 2023-10-11 15:01:33 · 1953 阅读 · 0 评论 -
3D点云目标检测:数据增强可视化及使用经验
3D目标检测数据增强原创 2023-01-21 11:36:27 · 2461 阅读 · 2 评论 -
交叉熵损失导数推理
在深度学习网络训练中,交叉熵损失是一种经常使用的损失函数,这篇文章里我们来推导一下交叉熵损失关于网络输出z的导数,由于二分类是多分类的特殊情况,我们直接介绍多分类的推导过程。一、Softmax交叉熵损失求导基于softmax的多分类交叉熵公式为LSCE=−∑j=1Cyjlog(pj)L_{S C E}=-\sum_{j=1}^{C} y_{j} \log \left(p_{j}\right)LSCE=−j=1∑Cyjlog(pj)其中CCC表示类别总数,包含背景类别,pjp_jpj通过S原创 2022-04-14 15:46:36 · 6145 阅读 · 0 评论 -
Equalization Loss理解-更新中
文章目录一、前言二、公式三、Pytorch实现四、参考一、前言二、公式三、Pytorch实现四、参考原创 2022-04-01 15:15:43 · 2416 阅读 · 1 评论 -
BAAF-Net源码阅读
BAAF-Net代码是基于RandLANet编写的,所以在数据预处理和训练策略是基本是一致的,这里我们只介绍一下BAAF-Net的网络结构。原创 2021-12-16 17:36:48 · 1940 阅读 · 2 评论 -
Tensorflow的数据处理中的Dataset和Iterator
完整机器学习实现代码GitHub欢迎转载,转载请注明出处https://www.cnblogs.com/huangyc/p/10339433.html0. 目录1. 前言2. Dataset原理2.1 Dataset创建方法2.2 Dataset数据进行转换(Transformation)3. Iterator原理3.1 Iterator Init初始化3.2 Iterator get_next遍历数据3.3 Iterator Save保存4. 总结 1. Tensorflow高效流水线Pipe转载 2021-11-12 16:26:46 · 572 阅读 · 0 评论 -
Tensorflow高效流水线Pipeline
完整机器学习实现代码GitHub欢迎转载,转载请注明出处https://www.cnblogs.com/huangyc/p/10340766.html0. 目录1. 前言2. Pipeline Structure输入流水线结构2.1 最佳Pipeline步骤3. 优化性能3.1 prefetch预取数据3.2 map并行处理数据转换3.3 并行处理远程数据提取4. 性能考虑因素4.1 map映射和batch批次4.2 map映射和cache缓存4.3 map映射和interleave交错/prefetch预转载 2021-11-12 16:21:51 · 516 阅读 · 0 评论 -
tensorflow中tensor的静态维度和动态维度
tf中使用张量(tensor)这种数据结构来表示所有的数据,可以把张量看成是一个具有n个维度的数组或列表,张量会在各个节点之间流动,参与计算。张量具有静态维度和动态维度。在图构建过程中定义的张量拥有的维度是静态维度,这个维度可以被定义为不确定的,例如定义一个tensor的维度是[None,10],表示这个tensor的第一个维度是不确定的,可以是任意的,None 表示具体维度值要在图运行过程中确定。在图运行的时...转载 2021-11-11 13:53:05 · 513 阅读 · 0 评论 -
BAAF-Net训练Semantic3D数据集
BAAF-Net训练Semantic3D数据集二、训练和测试代码修改三、训练四、测试BAAF-Net的作者在github上只放出了S3DIS数据集的训练和测试代码,而且我也问了作者近期并没有放出关于Semantic3D数据集的训练和测试代码的计划,但是作者说他是基于RandLA-Net的代码做的,可以参考RandLA-Net训练Semantic3D数据集的代码进行修改,刚好我们已经对Randla-Net的代码非常熟悉了。在这篇文章里我们就尝试使用BAAF-Net训练Semantic3D数据集。# 一、原创 2021-11-01 15:29:15 · 2226 阅读 · 16 评论 -
点云语义分割:BAAF-Net解读
论文地址:一、前言主要分析RandLA-Net的不足二、Bilateral Context Module2.1、Bilateral Context block2.1.1、Bilateral Augmentation2.1.2、Mixed Local Aggregation三、Adaptive Fusion Module原创 2021-10-29 15:47:42 · 2559 阅读 · 10 评论 -
点云语义分割大合集-持续更新中
一、PointNet1.1、论文解读1.2、公开数据集测试1.3、源码解读二、PointNet++2.1、论文解读2.2、公开数据集测试2.3、源码解读三、KPConv3.1、论文解读点云语义分割:KPConv解读-更新中3.2、公开数据集测试S3DIS测试:点云语义分割:KPConv训练S3DIS数据集Semantic3D测试:在tensorflow2.0环境下使用KPConv训练Semantic3D数据集3.3、源码解读源码阅读:KPConv之Dataset类源码阅读:K原创 2021-10-26 14:07:11 · 3467 阅读 · 0 评论 -
BAAF-Net训练S3DIS数据集
一、数据集预处理S3DIS数据集下载和清洗参考文章在tensorflow2.0环境下使用RandLA-Net训练S3DIS数据集。二、BAAF-Net2.1、编译sh compile_op.sh2.2、训练2.3、交叉验证原创 2021-10-25 15:52:12 · 1241 阅读 · 5 评论 -
在windows环境下离线编译tensorflow2.2.0的C++动态链接库
环境系统: windowspython:3.7cuda:10.1cudnn:7.6vs:2019GPU:2080ti记录一下在win10系统下如何离线编译tensorflow2.2.0的C++动态链接库,为使用C++版本的tensorflow调用pb模型进行推理做准备。首先给出编译时主要参考的两篇文章:Windows编译Tensorflow2.2.0 C++ dll (CPU bazel)Windows10 Bazel 编译 Tensorflow 2 C++ dll 和 lib 文件上原创 2021-09-28 15:54:14 · 1993 阅读 · 4 评论 -
从零开始点云语义分割:RandLANet教程
这是一个关于如何从零开始学习点云语义分割的教程,之所以说从零是因为我自己就是从零开始接触点云的语义分割任务的,希望这个系列的博客能对想要做点云语义分割的同学有一点点的帮助。原创 2021-09-09 16:36:35 · 7217 阅读 · 9 评论 -
win10系统下使用pytorch版本的KPConv模型训练S3DIS数据集bug修改
一、pytorch版本github地址:二、系统环境三、bug修改3.1、编译下采样和最近邻搜索模块bug3.2、原创 2021-08-05 16:28:31 · 1952 阅读 · 9 评论 -
点云语义分割:KPConv解读-更新中
一、规则卷积二、可变形卷积三、语义分割网络四、训练数据集参见KPConv训练S3DIS数据集、KPConv训练Semantic3D数据集原创 2021-07-30 16:02:50 · 3665 阅读 · 8 评论 -
在tensorflow2.0环境下使用RandLA-Net训练S3DIS数据集
之前的文章介绍了在tensorflow2.0环境下使用RandLA-Net训练Semantic3D数据集,这里我们记录一下如何在在tensorflow2.0环境下使用RandLA-Net训练S3DIS数据集。由于作者提供的代码是基于tensorflow1.11写的,想在2.0的环境下运行该程序需要做些修改,修改方法已在训练Semantic3D数据集中给出。训练S3DIS数据集1、下载数据集2、数据集预处理3、6折交叉训练4、验证...原创 2021-07-28 10:20:31 · 3625 阅读 · 36 评论 -
在tensorflow2.0环境下使用RandLA-Net训练Semantic3D数据集
最近在做点云语义分割,RandLA-Net是比较新的针对大规模点云的语义分割网络,之前一直使用的是torch版本的代码在训练自己的数据集,训练结果一直很差,同时我在Semantic3D数据集上训练的效果也很差,有几类精度始终为0,最终平均iou只有20%多,这和作者论文中给出的实验结果相差很大。为了验证是否是我使用的pytorch工程代码的问题,我打算在作者自己提供的代码上测试一下Semantic3D数据集,RandLA-Net作者在github上发布的是tensorflow版本的代码,而且是tensor原创 2021-07-26 17:24:57 · 7299 阅读 · 74 评论 -
Pytorch中model.train()和model.eval()的作用
我们在使用pytorch训练模型的时候会先加上一句model.train()模型训练完做推理时,也会先加上一句model.eval()这两句话的作用是告诉模型当前阶段是在训练还是推理。因为我们的模型的某些部分在做训练和推理时的操作是不一样的,如BN层的计算过程,Faster RCNN在训练和推理时预选框的选择等等。那么这两句话背后是做了什么操作来告诉模型当前阶段是训练还是推理呢?其实train()和eval()方法是在torch的Module类中实现的。源码如下class Module(ob原创 2021-07-15 20:46:06 · 3172 阅读 · 0 评论 -
基于深度学习的整景遥感影像语义分割推理方法(Python+Torch)
遥感影像推理时的两个问题影像过大,无法一次读入,需要分块,分块导致有缝隙出现。方法叠加窗口方法代码原创 2020-06-07 13:02:13 · 1582 阅读 · 0 评论 -
点云语义分割:RandLA-Net解读
一、局部特征聚合模块1.1、局部空间编码(Local Spatial Encoding)作用:获取每个点的邻域特征。方法:获取局部空间编码主要有3步,以一个点AAA为例,第一步是找邻域点(Finding Neighbouring Points),通过KNN算法找到该点最邻近的K个点(包括该点);此时该点的邻域表达形式是K X (3+d)的矩阵。第二步是相对位置编码(Relative Point Encoding),具体实现是通过一个共享的MLP网络,形式如下:rik=MLP(pi⊕pik⊕(p原创 2021-07-07 09:21:23 · 5173 阅读 · 4 评论 -
如何使用语义分割的数据集训练Mask RCNN网络
语义分割的标签是与原始图片一一对应的Mask文件,做Mask RCNN需要知道每个图片内部每个对象的类别,边框,Mask。如果我们的手里只有语义分割的Mask标签文件,那么如何训练Mask RCNN网络呢?1、读取mask文件2、使用opencv的提取边界线方法3、操作每个实例对象,提取label,box,mask二值化图片。该方法最好在同类数据不相邻的场景下使用...原创 2021-07-05 15:00:22 · 852 阅读 · 2 评论 -
遥感影像实例分割:Cascade Mask RCNN训练自己的数据
遥感影像实例分割:Cascade Mask RCNN训练自己的数据原创 2021-06-15 14:28:07 · 2198 阅读 · 1 评论 -
遥感影像实例分割:Cascade Faster RCNN训练自己的数据
上篇文章我们介绍了如何将Mask RCNN修改为Cascade Mask RCNN,我们知道Mask RCNN是在Faster RCNN的基础上加上了Mask分支。这里我们顺道也测试一下Cascade Faster RCNN的效果。一、Cascade Faster RCNN二、Colab测试三、测试结果...原创 2021-06-14 10:07:31 · 1027 阅读 · 0 评论 -
关于目标检测中bounding box编码和解码时weight参数的理解
关于目标检测中的Bounding box回归原理网上已经有很多解释的文章了,但是为了更好的阐述我的问题,一开始我还是先简单的过一下边框回归的基本原理,然后解释我在看源码时遇到的一点疑惑,最后介绍一下在网上找的解释和我自己的理解。(文章中涉及到的源码来自torchvision)1、Bounding box 回归原理简要说明2、BoxCoder源码class BoxCoder(object): def __init__(self,weights,bbox_xform_clip=math.log(1000原创 2021-06-09 20:25:48 · 3269 阅读 · 3 评论 -
遥感影像目标检测:Faster RCNN训练自己的数据集
前几篇文章写了如何使用maskrcnn训练自己的数据集以及如何在maskrcnn中加入pointrend模块,我使用的都是torchvision官方提供的maskrcnn,因为torchvison版本的mask rcnn是继承自FasterRCNN的,所以这里顺便介绍下如何使用torchvision的fasterrcnn网络训练自己的数据集。1、Faster RCNN模型获取import torchvisionfrom torchvision.models.detection.faster_rcnn原创 2021-06-02 17:30:24 · 1145 阅读 · 0 评论 -
遥感影像实例分割:PoinRend训练自己的数据集
遥感影像实例分割:PoinRend训练自己的数据集原创 2021-05-11 20:48:53 · 3605 阅读 · 10 评论 -
遥感影像语义分割:PointRend训练自己的数据集
遥感影像语义分割:PointRend训练自己的数据集原创 2021-05-11 20:46:01 · 1772 阅读 · 3 评论 -
PointRend理解
PointRend理解在实例分割上的使用在语义分割上的使用原创 2021-05-10 14:17:36 · 6178 阅读 · 5 评论 -
遥感影像语义分割:C++部署DLinkNet模型-更新中
继续优化加入注意力机制1、通道注意力机制Se-Resnet50se-Renext502、Non-Local3、GC-Net4、DNL-Net原创 2021-04-10 17:22:15 · 322 阅读 · 0 评论 -
遥感影像语义分割:D-LinkNet精度提升Trick(更新中)
修改backboneresnet50resnext50原创 2021-04-10 17:20:07 · 1227 阅读 · 6 评论 -
C++部署pytorch训练的模型如何设置batch_size
一、数据读取、预处理std::string input_img="";std::string model_path="";//读取图片cv::Mat img = cv::imread(input_img);cv::cvtColor(img,img,cv::COLOR_BGR2RGB);//加载模型torch::NoGradGuard no_grad;torch::jit::script::Module module=torch::jit::load(model_path);module.原创 2021-01-30 16:21:49 · 2980 阅读 · 9 评论 -
遥感影像实例分割:MaskRcnn训练自己的数据集
mask rcnn训练原创 2020-12-18 09:37:42 · 1587 阅读 · 1 评论 -
基于深度学习的整景遥感影像目标识别推理方法(Python+Torch)
随着分辨率的提高,整景遥感影像存储量也变大。由于计算机性能的限制(内存与GPU显存),在使用深度学习模型进行推理预测时,模型无法一次读入,需要分块将数据读入内存处理。在做目标识别推理时,分块会导致一个目标对象被切割到两个位置上,因此需要采用叠加滑动窗口的方法进行推理,但是这样又会导致同一个目标被识别两次,所以最后还需要对所有的识别结果进行NMS操作,去除重复识别的结果。代码...原创 2020-11-16 15:48:00 · 1422 阅读 · 0 评论 -
遥感影像语义分割:D-LinkNet训练自己的数据集
遥感影像中道路的分割方法总结UnetD-LinkNetPP-LinkNet原创 2020-11-09 11:17:19 · 2355 阅读 · 1 评论 -
Focal Loss的理解以及在多分类任务上的使用(Pytorch)
理解关键点一二分类和多分类的交叉熵的区别二分类交叉熵多分类交叉熵理解关键点二多分类和二分类focal loss理解关键点三alpha到底该如何设置原创 2020-12-17 11:12:26 · 37876 阅读 · 43 评论 -
中值频率平衡:图像分割中一种定量计算类别权重的方法
中值频权比原创 2020-11-09 14:37:59 · 1829 阅读 · 5 评论 -
Pytorch中使用Tensorboard,并且在本地打开远程服务器上的tensorboard
1、Pytorch中使用Tensorboardfrom torch.utils.tensorboard import SummaryWriterwriter =SummaryWriter("logs")for i in range(1000): writer.add_scalar("y=x",i,i) #这里在实际应用中是写入loss和精度writer.close()cmd中输入tensorboard --logdir=logs在本地打开结果2、在本地浏览器打开远程服务器上开启原创 2020-10-16 19:36:23 · 844 阅读 · 0 评论