自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 libtorch调试——如何保存libtorch生成的张量并在python中加载

如何保存libtorch生成的张量并在python中加载

2022-07-27 15:01:39 1175 1

原创 TensorRT学习笔记(一)——使用Python API调用TensorRT

前言作为在英伟达自家GPU上的推理库,TensoRT仍然是使用英伟达显卡部署方案的最佳选择。TensorRT虽然支持Pytho和C++调用,但是在TensorRT8之前,python api只能在linux上使用,直到TensorRT8才支持python api在window下使用。具体安装在官方文档都有说明,附上官方文档:TensorRT官方文档安装.........

2022-07-19 16:41:53 6494 4

转载 ubuntu升级cmake版本,可任意切换版本

原文链接:ubuntu16.04升级cmake版本,可任意切换版本记录一下,做个备份

2022-05-13 15:22:45 1220

原创 关于在ubuntu20.04下openpose环境安装

系统:ubuntu 20.04显卡:英伟达3070cuda11.1+cudnn8.0.4python:3.6.13首先将openpose整个仓库克隆在本地,仓库地址:openpose官方文档说了“Anaconda 不应安装在您的系统上或应停用Anaconda 包含一个与 Caffe 不兼容的 Protobuf 版本。要么卸载 anaconda 并通过 apt-get 安装 protobuf,要么使用命令停用 conda deactivate”,但是经过实际测试,可以在conda虚拟环境下进行编译,

2022-03-04 11:11:20 5255 3

原创 ubuntu下conda虚拟环境迁移

将conda_dir/envs/实际环境名 打包压缩将conda_dir/pkgs这个目录打包压缩上传到服务器,解压后放在对应的conda_dir目录下vim /home/实际名/condadir/envs/实际环境名/bin/pip修改第一行的路径

2022-03-04 10:30:33 1369

原创 重学语义分割之loss总结篇

目前遇到的loss大致可以分为四大类:基于分布的损失函数(Distribution-based),基于区域的损失函数(Region-based,),基于边界的损失函数(Boundary-based)和基于复合的损失函数(Compounded)。参考文章:语义分割中的 loss function 最全面汇总一文看尽15种语义分割损失函数(含代码解析)【损失函数合集】超详细的语义分割中的Loss大盘点医学影像分割—Dice LossPytorch tversky损失函数回归损失函数:Log-Co

2021-11-30 21:41:42 6308

原创 nnUNet在2D图像上的训练和测试的使用教程

写在前面的话本文是对nnUNet如何在2D数据上进行训练以及预测,是对几篇博文参考之后的总结,由于本人对nnUNet使用也是刚开始不久,所以对于nnUNet的理解肯定还停留在表层,所以原理上的东西就不多介绍了,更侧重于介绍其在2D数据上的使用流程。官方也有nnUNet训练2D数据的例子,一切以官方为准,本文仅作参考。本人的系统环境为:Ubuntu18.04,pytorch为:1.7.1+cu110。其余环境没有测试过。参考文章:保姆级教程:nnUnet在2维图像的训练和测试四:2020.07.2

2021-11-15 22:58:53 9745 11

原创 vs2019中出现PyTorch is not linked with support for cuda devices的解决方法

系统:win10vs版本:vs2019libtorch:1.10.0cuda:10.2.在win10和vs2019配置好libtorch后,发现只能调用CPU,一旦指定GPU,就会报以下错误:PyTorch is not linked with support for cuda devicesException raised from getDeviceGuardImpl at C:\w\b\windows\pytorch\c10/core/impl/DeviceGuardImplInterfa

2021-10-24 13:17:22 2154

原创 ncnn学习笔记(一)——配置ncnn

由于本人使用的系统是win10,所以记录也是在win10下使用ncnn。前期准备网上很多介绍ncnn的配置教程都是从头开始构建编译,其实官方已经编译好一些版本的ncnn,直接下载就行了,没有必要从头开始编译。官方github: https://github.com/Tencent/ncnn从官方仓库的页面,点击releases我用的是vs2019,shared是动态链接版本,我下的就是shared版本解压后随便存放在哪个盘都行,然后记得在环境变量的path把bin路径添加进去,像我就放在D盘

2021-10-12 14:50:56 7024 7

原创 CLAM——论文笔记

最近看了一篇有关多示例学习的paper,题目为Data Efficient and Weakly Supervised Computational Pathologyon Whole Slide Images,对里面提出的模型比较感兴趣,特此做一下笔记。github地址:https://github.com/mahmoodlab/CLAMpaper地址:https://arxiv.org/abs/2004.09666笔记这篇paper提出了一个Clustering-constrained Atten

2021-05-30 15:45:29 6576 9

原创 mmdetection v2.0版本的一些模型使用技巧

最近在学习如何使用mmdetection,收集了一下目前所看到的一些trick和技巧。参考文章:mmdetection 模型训练技巧入门mmdetection(捌)—聊一聊FP16目标检测比赛中的tricks(已更新更多代码解析)1. FP16训练在mmdetection中,使用FP16非常方便,只需要在configs下的模型文件里添加一行即可。 _base_ = './faster_rcnn_r50_fpn_1x_coco.py'# loss_scale你可以自己指定,几百到1000比

2021-04-25 21:18:09 5019 3

原创 Dual-stream multiple instance learning networks for tumor detection in Whole Slide Image——论文笔记

关于多示例学习的资料网上比较少,但是在医学图像方面还是有人在应用的。主要是因为一般比较大,几个G都是十分常见的,这么大图片是无法直接训练,一般都会进行切图,所以天然契合多示例学习bag和instance的概念。最近看了一篇论文刚好关于这方面的,所以做下笔记。github地址:https://github.com/binli123/dsmil-wsipaper:https://arxiv.org/abs/2011.08939背景知识在多示例学习(MIL)中,一组训练样本被视为包含多个instance的

2021-02-26 00:11:17 2945 1

原创 在docker内启动juputer出现socket.error: [Errno 99] Cannot assign requested address错误

背景本人开发环境是docker容器里有可视化界面的Ubuntu18.0,因为项目需求需要用到jupyter notebook,然而在安装启动后,却出现了以下错误:socket.error: [Errno 99] Cannot assign requested address解决方法创建Jupyter notebook的配置文件jupyter_notebook_config.py,在终端中输入:jupyter notebook --generate-config或者版本不同,可以试下以下命

2020-12-30 14:33:43 1104

原创 关于在jupyter notebook中解决 ipykernel_launcher.py: error

刚使用jupyter notebook的时候,把之前写的py脚本导了进去,一运行,发现了报了以下的错误:usage: ipykernel_launcher.py [-h] [--cfg CFG] [--device DEVICE] ipykernel_launcher.py: error: unrecognized arguments: -f /project/.local/share/jupyter/runtime/kernel-e24ff4da-c615-4d49-8e70-87a7bec2f9e7

2020-11-07 20:53:37 19687 11

原创 Docker常用命令

1. 镜像常用命令docker images:列出docker下的所有镜像docker search XXXX:从dockerhub上搜索镜像的名字docker pull XXXX: 下载镜像(从换过的源),可以从dockerhub上搜索结果复制命令。注意: docker pull tomcat:latest 加版本号,默认latestdocker tag 当前镜像名:TAG 仓库地址/镜像名称:TAG: 镜像打tagdocker push仓库地址/镜像名称:TAG:镜像上传仓库docker

2020-09-24 21:18:02 337

原创 记使用Pytorch的hook机制提取特征时踩的一个坑

因为项目需求,需要用DenseNet模型提取图片特征,在使用Pytorch的hook机制提取特征,调试的时候发现提取出来的特征数值上全部大于等于0。很明显提取出来的特征是经过ReLU的。现在来看一下笔者是怎么定义hook的:...

2020-09-21 11:41:26 1199 2

原创 Docker build出现“The command ‘/bin/sh -c apt-get install -y vim‘ returned a non-zzero code: 100”解决方法

最近在学习docker时,发现使用ubuntu构建镜像时,如果有apt-get install命令,老是出现以下错误:The command ‘/bin/sh -c apt-get install -y gedit’ returned a non-zzero code: 100查了一下,发现很多人都说是使用ubuntu原始的源在apt-get install下载新包时,可能因为网络问题导致出现此报错。尝试了一下换源,果然成功解决了问题,下面附上解决方法。解决方法# 原始命令RUN apt-get i

2020-09-09 23:20:05 19494

原创 Attention UNet结构及pytorch实现

注意力机制可以说是深度学习研究领域上的一个热门领域,它在很多模型上都有着不错的表现,比如说BERT模型中的自注意力机制。本博客仅作为本人在看了一些Attention UNet相关文章后所作的笔记,希望能给各位带来一点思考,注意力机制是怎么被应用在医学图像分割的。参考文章:【语义分割系列:七】Attention Unet 论文阅读翻译笔记 医学图像 python实现医学图像分割-Attention Unet如果不知道什么是注意力机制,可以看看这篇博客:浅谈Attention-based Model【

2020-09-07 11:19:20 11765 5

原创 Pytorch实现Grad-CAM

因为有一个分类模型始终得不到比较好的结果,所以查阅资料发现可以使用类激活图(CAM)的方式来看看模型究竟学到了什么,是不是重点关注我们希望的区域,所以特此记录一下学习过程。简介CAM全称是Class Activation Map,即类激活图。可以理解为模型某次预测中,对哪个区域的响应最大,可以说这个区域很大程度上决定了模型这次预测结果。以猫狗大战为例,如下面这张图一个任意的分类网络,输入一个既包含着一只狗,又包含着一只猫的猫狗合影图片,它会输出一个2维度的概率向量,分别对应着图片分类为猫和图片分类

2020-08-11 20:47:11 6891 1

原创 加载pytorch预训练模型densenet121出现Missing key(s) in state_dict Unexpected key(s) in state_dict

在手动加载densenet121权重时,报了一下的错误:

2020-08-04 18:09:46 1982

原创 SSD原理及Pytorch代码解读——标签生成与损失求解

前面已经生成了6个特征图上所有的PriorBox的位置和已经将特征图转化为相应的分类和边框位置的预测值。为了可以进行训练,我们还需要进行标签的生成和计算损失。标签生成这一步主要是按照一定的原则,对所有的PriorBox赋予正、负样本的标签,并确定对应的真实物体标签,以方便后续损失的计算。我们已经求得了求得8732个PriorBox坐标及对应的类别、位置预测后,首先要做的就是为每一个PriorBox贴标签,筛选出符合条件的正样本与负样本,以便进行后续的损失计算。判断依据与Faster RCNN相同,都是

2020-07-30 17:17:34 623

原创 SSD原理及Pytorch代码解读——网络架构(二):特征提取网络及总体计算过程

特征提取网络前面我们已经知道了SSD采用PriorBox机制,也知道了SSD多层特征图来做物体检测,浅层的特征图检测小物体,深层的特征图检测大物体。上一篇博客也看到了SSD是如何在VGG基础的网络结构上进行一下改进。但现在的问题是SSD是使用哪些卷积层输出的特征图来做目标检测的?如下图所示:从上图中可以看到,SSD使用了第4、7、8、9、10、11层的这6个卷积层输出作为特征图来做目标检测,但是这些特征图通道大小不一且数量很大,所以SSD在每一个特征图后面都接上了一个分类与位置卷积层使得输出的通道数符合

2020-07-26 15:24:47 814

原创 SSD原理及Pytorch代码解读——PriorBox生成

PriorBox本质上是在原图上的一系列矩形框,如下图所示。某个特征图上的一个点根据下采样率可以得到在原图的坐标,SSD先验性地提供了以该坐标为中心的4个或6个不同大小的PriorBox,然后利用特征图的特征去预测这4个或6个PriorBox的类别与位置偏移量。PriorBox生成虽然Faster RCNN与SSD都采用类似的先验框机制,但是两者还是存在着很大的不同,可以总结为以下两点。得到RoI区域的方式不同。Faster RCNN首先在第一个阶段对固定的Anchor进行了位置修正与筛选,得到感

2020-07-25 16:18:50 1208

原创 SSD原理及Pytorch代码解读——网络架构(一):基础结构

基础VGG结构SSD采用VGG16作为基础网络,并在其基础上做了一些改动,如下图所示。输入图像经过预处理后大小固定为300×300,首先经过VGG16网络的前13个卷积层,然后利用两个卷积Conv 6与Conv 7取代了原来的全连接网络,进一步提取特征。与原来的VGG16的网络结构相比,主要的改动在这三个方面:使用两个卷积模块Conv 6与Conv 7取代了原来的全连接网络。原始的VGG 16的池化层统一大小为2×2,步长为2(这样设计使得特征图经过conv层不改变特征图的尺寸,经过pool层特征

2020-07-24 16:15:25 935

原创 SSD原理及Pytorch代码解读——总览

这篇博客记录我在学习《深度学习之PyTorch物体检测实战》一书中关于SSD(Single Shot Multibox Detecor)这一算法的理解,以及pytorch代码的解读。pytorch复现代码链接:https://github.com/dongdonghy/Detection-PyTorch-Notebook/tree/master/chapter5/ssd-pytorch虽然本篇博客会提到关于SSD的一些原理介绍,但是更多是侧重于pytorch代码方面的介绍,如果对SSD的原理感兴趣可以去

2020-07-21 22:56:41 989

原创 Faster RCNN原理及Pytorch代码解读——全连接RCNN模块

经过上一篇的RoI Pooling层之后,大小不一的RoI被池化到相同的维度上,因此接下来我们可以可以利用全连接网络进行分类与回归预测量的计算。在训练阶段,最后需要计算预测量与真值的损失并反传优化,而在前向测试阶段,可以直接将预测量加到RoI上,并输出预测量。全连接RCNN模块整个模块的流程图如下:从图中我们可以看出,原本的256个RoI经过池化之后得到了512×7×7的特征,因为后面接的是一个全连接网络,所以我们需要将其拉成一维,即将。三个维度延展为一维。接下来利用VGGNet的两个全连接层,得到

2020-07-16 23:33:40 811

原创 Faster RCNN原理及Pytorch代码解读——RoI Polling

前面我们花了很大的功夫介绍RPN的工作流程,然后我们得到了256个RoI,以及每一个RoI对应的类别与偏移量真值。前面的VGGNet网络已经提供了整张图像的feature map,因此自然联想到可以利用此feature map,将每一个RoI区域对应的特征提取出来,然后接入一个全连接网络,分别预测其RoI的分类与偏移量。然而,由于RoI是由各种大小宽高不同的Anchors经过偏移修正、筛选等过程生成的,因此其大小不一且带有浮点数,然而后续相连的全连接网络要求输入特征大小维度固定,这就需要有一个模块,能够

2020-07-16 23:09:35 1135

原创 Faster RCNN原理及Pytorch代码解读——RPN(六):进一步筛选得到最终候选框

上一篇博客已经知道了如果是训练过程,那么生成的候选框是2000个,但是实际上这还是会有很多背景框,真正包含物体的框仍然是十分少的。所以为了加速网络收敛和平衡正负样本之间的差距,对已生成的候选框可以进行再一步筛选,过程与RPN中筛选Anchor的过程类似,利用标签与Proposal构建IoU矩阵, 通过与标签的重合程度选出256个正负样本。这一步有3个作用:1. 筛选出了更贴近真实物体的RoI,使送入到后续网络的物体正、负样本更均衡,避免了负样本过多,正样本过少的情况。2. 减少了送入后续全连接网络的数

2020-07-13 16:18:49 1023

原创 Faster RCNN原理及Pytorch代码解读——RPN(五):生成候选区域

我们前面已经计算出了RPN的损失了,而RPN的另一个功能就是区域生成 即生成较好的Proposal, 以供下一个阶段进行细分类与回归。整个过程的示意图如下这一部分的内容理解不难,首先是生成大小固定的全部Anchors,关于如何生成Anchors这一点在前面已经讲过了。然后将网络中得到的回归偏移作用到Anchor上使Anchor更加贴近于真值, 并修剪超出图像尺寸的Proposal,得到最初的建议区域。之后按照分类网络输出的得分对Anchor排序,保留前12000个得分高的Anchors。 由于一个物体

2020-07-09 08:58:48 1121 3

原创 Faster RCNN原理及Pytorch代码解读——RPN(四):损失函数

前两篇博客已经知道了RPN输出的预测值和真值,有了这些我们就可以计算RPN的损失了。RPN的损失函数主要包含分类与回归两部分,具体公式如下:L(Pi,ti)=1Ncls∑i=1Lcls(Pi,Pi∗)+λ1Nreg∑i=1Pi∗Lreg(ti,ti∗)L({P_{i}, t_i}) =\frac{1}{N_{cls}} \sum_{i=1} L_{cls}(P_i, P^*_i)+ \lambda \frac{1}{N_{reg}} \sum_{i=1} P^*_iL_{reg}(t_i, t^

2020-07-06 13:55:24 2787

原创 Faster RCNN原理及Pytorch代码解读——RPN(三):RPN训练标签的生成

上一篇大体介绍了RPN的网络结构,这一篇开始介绍RPN训练时标签是怎么生成的,以及使用了什么样的损失函数。RPN真值上一篇已经知道了RPN两个分支的输出了,分别是18×37×50和36×37×50(9个锚框的前景背景分类预测和中心点横纵坐标及宽高这4个量相对于真值的偏移量)。预测值有了,想要训练网络,还需要知道真值。在介绍怎么生成真值时,还要多解释几句基础知识,如果已经知道这部分知识的跳过就好了。RPN的真值究竟是什么?对于物体检测任务来讲, 模型需要预测每一个物体的类别及其出现的位置, 即类别、

2020-07-05 23:09:27 1895 5

原创 Faster RCNN原理及Pytorch代码解读——RPN(二):RPN网络结构

上一篇介绍了Anchor,这篇开始介绍RPN。整个RPN模块其实总的来说可以分成两部分来讲,一个是RPN的训练,这个很容易理解,网络肯定是需要训练优化的;另一个是生成候选区域,这个是RPN的主功能。RPN网络结构RPN的网络结构很简单,如下图所示整个网络一共有两个分支,左边是分类分支,右边是回归分支。具体实现时, 在feature map上首先用3×3的卷积进行更深的特征提取, 然后利用1×1的卷积分别实现分类网络和回归网络。分类分支在物体检测中, 通常我们将有物体的位置称为前景, 没有物体的位

2020-07-01 17:37:08 2979 1

原创 Faster RCNN原理及Pytorch代码解读——RPN(一):Anchor的生成

这里省略了特征提取模块部分,个人感觉没什么好讲的,就是选用一个网络充当特征提取器,这个不是我们这个系列的重点,后面讲的部分都是以VGG16作为特征提取网络,需要注意一点就是由于VGG16的网络设计,经过conv层不改变特征图的尺寸,经过pool层特征图尺寸会缩小到原来的一半。VGG16一共有5个pool层,我们选用第4个pool层的输出作为提取出来的特征图,这样相比于原图就缩小了16倍,即下采样率是16。为了方便理解,假设输入图像的维度为3×600×800。详解RPNAnchor(锚框)理解什么是A

2020-07-01 17:32:04 1733

原创 Faster RCNN原理及Pytorch代码解读——Faster RCNN总览

这篇博客记录我在学习《深度学习之PyTorch物体检测实战》一书中关于Faster RCNN这一算法的理解,以及pytorch代码的解读。pytorch复现代码链接:https://github.com/dongdonghy/Detection-PyTorch-Notebook/tree/master/chapter4/faster-rcnn-pytorch当然pytorch官方已经在torchvision 模块集成了 FasterRCNN代码。Faster RCNN总览纵观整个网络,其结构如下论文

2020-07-01 17:27:02 2110

原创 Neural-Transfer及Pytorch实现

什么是Neural-Transfer,并无一个严格的定义,简单来说就是,就是将一张图片的“风格”迁移到另外一张图片的“内容”上,进而重新生成一张新的图片。这样讲比较模糊,但是看一张图就一目了然了。左上角是建筑物图片,通常称为Conten(内容图片),简记为C。右上角是梵高的星空,通常称为Style(风格图片),简记为S。下图是融合了Content的内容和Style的风格生成的图片,称为Generated。吴恩达有关于Neural-Transfer的讲解,在B站和网易云都能搜到他的课程,这里就不放出链接

2020-06-15 15:10:03 449

原创 Focal Loss原理解读以及Pytorch实现

论文:Focal Loss for Dense Object Detection论文链接:https://arxiv.org/abs/1708.02002Focal Loss这篇文章是He Kaiming和RBG发表在ICCV2017上的文章,详细的论文地址在上面,这里记录下我学习过程,下面我参考的几篇博客Focal LossFocal Loss论文阅读 - Focal Loss for Dense Object Detection如何评价Kaiming的Focal Loss for Dense

2020-06-11 14:43:43 2088

原创 WSI中基于面积方式获取组织掩码图

这篇博客主要记录一下我在获取组织掩码的常用方法或者是看到相关资料中介绍的方法。

2020-06-04 10:17:54 622

原创 weldon pool的keras版本

在看多示例学习资料的时候,发现有的模型使用一种叫weldon pooling laye的池化层。简单来说,就是max pooling的基础上再加上min pooling,即MaxMIn pooling,其实就是从特征图中选出最大的K个特征值和最小的K个特征值,K是一个超参数。源码下面是...

2020-05-11 23:23:41 160

原创 OpenSilde安装与入门

安装openslide是处理医学图像经常用到的一个包,因为WSI(whole slide image)是非常大的,在一般情况下是没有办法处理的,所以才要借助openslide进行处理。下面是openslide在ubuntu下的安装方法pip3 install openslide-python如果导入时发生报错,那一般是缺少依赖项,在终端运行:sudo apt install python...

2020-04-30 22:54:02 2435 2

原创 颜色标准化工具——StainTools

染色标准化工具——StainTools为什么要使用标准化工具函数介绍为什么要使用标准化工具在处理医学图像时经常会遇到切片染色不均衡问题,这也很容易理解,每个医生染色的剂量不同,容易造成颜色深浅不一。所以为了避免颜色不均衡给模型带来误差,通常会使用了一些颜色标准化工具来平衡不同病理图片颜色不一的问题。这里记录一下我使用StainTools这个工具包,以做备份。官方文档说明:https://st...

2020-04-30 21:24:59 3156 8

空空如也

空空如也

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

TA关注的人

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