- 博客(115)
- 资源 (23)
- 收藏
- 关注
原创 医学图像分割常用的评价指标
在医学图像分割的论文中,常常看到Dice、VOE、RVD、MSD等指标,但是具体这些指标是什么意思呢,我们进行相应的简单说明。
2022-06-17 10:52:36 6566 2
原创 windows系统下各种LibTorch下载地址
windows系统下各种LibTorch下载地址1、libtorch 1.0.02、libtorch 1.0.13、libtorch 1.1.04、libtorch 1.2.05、libtorch 1.3.06、libtorch 1.4.07、libtorch 1.5.08、libtorch 1.5.19、libtorch 1.6.010、libtorch 1.7.011、libtorch 1.7.112、libtorch 1.8.013、libtorch 1.8.114、libtorch 1.8.2(LT
2022-05-30 18:24:47 3440 4
原创 高版本CUDA安装torch1.1.0和torchvision0.3.0
高版本CUDA安装torch1.1.0和torchvision0.3.0 在项目中遇到比较麻烦的事情,需要根据项目需要安装torch1.1.0和torchvision0.3.0,但是图像工作站是CUDA的版本分别是10.2和11.6,在官网的安装教程中并没有找到安装方法,并且分开安装会自动安装pytorch的1.11.0甚至更高版本,这个很烦人。 在网上找了相关教程,安装还是比较方便的,现在贴在下面: sudo pip3 install --upgrade pip sudo
2022-05-13 18:19:22 2077 3
原创 目标检测YOLO系列------YOLO V1
目标检测YOLO系列------YOLO V11、YOLO V1详解 YOLO V1是YOLO系列的开山鼻祖,他的思路是开创性的。本文重点讲一下它的思路以及自己的一些思考。1、YOLO V1详解 目标检测算法发展的相当迅速,尤其是近几年,他的发展历程大体如下:...
2022-02-23 11:03:59 2864
原创 目标检测YOLO系列------YOLO简介
目标检测YOLO系列------YOLO简介1、为什么会出现YOLO算法2、YOLO算法会逐渐成为目标检测的主流吗 YOLO以及各种变体已经广泛应用于目标检测算法所涉及到的方方面面,为了梳理YOLO系列算法建立YOLO系列专题,按照自己的理解讲解YOLO中的知识点和自己的一些思考。本文是开篇之作,首先简单介绍一下YOLO算。1、为什么会出现YOLO算法 目标检测算法发展的相当迅速,尤其是近几年,他的发展历程大体如下: 从2012年的AlexNet开始,目标检测算法在深度学习领域开
2022-02-15 18:24:47 4177
原创 opencv3中Mat转IplImage遇到的问题与解决方案
近期在使用opencv3.4过程中,出现一个不大不小的问题,即Mat转IplImage格式中频繁报错,显示“不存在用户定义的从 “cv::Mat” 到 “IplImage” 的适当转换”。 首先声明一点,我在使用opencv2.4.8中,使用一下代码是没有问题的,是可以转换的IplImage imgTmp = image;IplImage* img = cvCloneImage(&imgTmp); 但是将代码在3.4.9中进行使用就会报文章开头那样的错误。也试过很多办法
2022-02-08 17:15:08 3695 1
原创 Pycharm运行YOLO V5遇到的问题或是BUG
再运行YOLO V5原程序过程中,晕倒几个需要解决的问题,具体如下:一、paycharm运行train.py需要添加参数,具体如下:python train.py --img 640 --batch 16 --epochs 5 --data ./data/BCC.yaml --cfg ./models/yolov5s.yaml --weights '' 如果对源码中的参数部分进行了相应的改进,或是默认设置,可以不用再次设置。二、yolov5报错:RuntimeError: a vie
2021-12-30 16:59:08 2226
原创 conda安装医学图像处理库SimpleITK、nibabel、pydicom等
最常见的医学图像有CT和MRI,这都是三维数据,相比于二维数据要难一些。而且保存下来的数据也有很多格式,常见的有.dcm、.nii(.gz)、.mha、.mhd(+raw)。所有的文件格式都可以使用SimpleITK进行处理,但是也可以使用nibabel处理.nii(.gz)格式的图像,pydicom可以对.dcm文件图像进行读取和修改。本文将讲述如何使用conda安装这三类图像处理库。 自己使用python版本为python3.7(3.6也适用),其中,SimpleITK在安装过程中使用c
2021-10-27 13:15:26 1919 1
原创 使用opencv批量读取图像 C++
在图像算法的测试与实际使用中,往往需要读取文件夹中的多张图像进行连续处理,以增加实用性和测试的方便性。本文将使用opencv + C++结合的方式进行图像的批量读取,可读取正文路径的图像。直接贴出代码,代码如下:#include<iostream>#include <opencv2/imgproc/types_c.h>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;
2021-10-26 10:53:18 2933 2
原创 目标检测算法的大体框架-------backbone、head、neck
在基于深度学习算法的目标检测算法其实大体上都是由三部分组成的,即backbone、head、neck。整个算法的设计流程基本都是:输入->backbone->neck->head->输出。1、具体含义backbone 骨干网络也称为主干网络,主要用于特征提取,提取图片中的信息;head 检测头,主要用于预测目标的种类和位置(bounding boxes);...
2021-10-11 14:04:57 3585
原创 One-Stage与Two-Stage区别
在基于深度学习算法的目标检测算法主要分两类:One-Stage与Two-Stage。One-Stage与Two-Stage是两种不同的思路,其各有各的优缺点,本文做一个简单的讲述。1、思路简述One-Stage 主要思路:直接通过卷积神经网络提取特征,预测目标的分类与定位;Two-Stage 主要思路:先进行区域生成,即生成候选区域(Region Proposal),在通过卷积神经网络预测目标的分类与定位;2、优缺点优缺点One-StageTwo-Stage
2021-10-09 15:04:01 15828
原创 一文读懂分类算法的评价指标
在机器/深度学习分类任务中,评价模型性能的指标有很多种,在本文中将详细简介一下各个指标的含义。1、模型评价术语 在本文中我们假设是二分类问题,即只分两类:正例(positive)和负例(negative)。那么,在实际预测中就会存在以下几种情况:True positives(TP): 被正确地划分为正例的个数,即实际为正例且被预测为正例的实例数,这个在医学中称为真阳性;False positives(FP): 被错误地划分为正例的个数,即实际为负例但被预测为正例的实例数,这个在医学
2021-09-16 18:29:34 894
原创 图像分割UNet系列------UNet3+(UNet3plus)详解
UNet3+发表于2020年的ICASSP,它是对UNet非常重要的改进,它的性能我认为是可以超过UNet++的,至少在我的使用过程中我会直接使用UNet3+,而不是UNet++。1、UNet3+解读 UNet3+解读有很多文章,自己本来想好好捋一下发在这里,后来发现有两本篇文章相当的好,所以自己偷点懒不在写了,把文章连接发在这,大家真的可以好好看看:UNet++解读 + 它是如何对UNet改进 + 作者的研究态度和方式...
2021-09-10 09:13:56 20563 17
原创 图像分割UNet系列------UNet++详解
图像分割unet系列------UNet++详解1、UNet++主要目标 UNet++发表于2018年中期,它也是UNet非常重要的改进版本之一,我认为也是最直接的改进版本。当然,UNet++在论文中主要是用息肉(polyp)、肝脏(liver)和细胞核(cell nuclei)等医学图像分割进行实验。1、UNet++主要目标...
2021-08-17 18:33:47 7856 2
原创 图像分割UNet系列------Attention Unet详解
图像分割unet系列------Attention Unet详解1、Attention Unet主要目标2、Attention Unet网络结构 Attention Unet发表于2018年中期(比Res-UNet要早一些),它也是UNet非常重要的改进版本之一。当然,Attention Unet同样也是应用在医学图像分割领域,不过文章主要是以胰脏图像分割进行实验与论证的。1、Attention Unet主要目标 作者在摘要与简介中很清楚的表明了要解决的问题以及要达到的目标。具体如下所示:
2021-08-12 13:12:40 41191 23
原创 图像分割UNet系列------Res-UNet详解
图像分割unet系列------Res-UNet详解1、Res-UNet要解决的问题2、Res-UNet主要网络结构3、引发的思考 Res-UNet发表于2018年,是UNet非常重要的改进版本之一。当然,Res-UNet同样是应用在医学图像分割领域-----视网膜血管分割。1、Res-UNet要解决的问题 作者在文章的简介中就提到了视网膜血管分割任务的主要难点和挑战,这也是Res-UNet重点解决的问题,具体如下所示(直接翻译):小血管缺失:位于血管末端的小血管有时甚至人眼也难以分辨
2021-08-10 18:47:24 36338 11
原创 图像分割UNet系列------UNet详解
图像分割unet系列------UNet详解1、UNet网络结构2、UNet网络结构高性能的原因分析 UNet最早发表在2015的MICCAI上,到2020年中旬的引用量已经超过了9700多次,估计现在都过万了,从这方面看足以见得其影响力。当然,UNet这个基本的网络结构有太多的改进型,应用范围已经远远超出了医疗图像的范畴。我们先从最原始的UNet网络模型开始讲解。1、UNet网络结构 开始时,UNet主要应用在医疗图像的分割,并且快速成为大多做医疗影像语义分割任务的baseline,而后
2021-08-06 22:32:51 16719
原创 GoogleNet------超经典神经网络结构解读
GoogleNet------超经典神经网络结构解读与PyTorch实现1、GoogleNet网络结构 在上文中详细介绍了经典神经网络VGGNet,但是同年获得ImageNet冠军分类任务的是GoogleNet。GoogleNet相比VGGNet,网络结构更深,其拥有22层(一说为27层,此时应该包括了池化操作)。GoogleNet虽然比VGGNet网络结构深,但是参数相对要少很多,具体下文进行介绍与说明。1、GoogleNet网络结构 GoogleNet的网络结果从感觉上确实是比VGGN
2021-07-23 16:12:10 1030 2
原创 VGGNet------超经典神经网络结构与PyTorch实现
VGGNet------超经典神经网络结构1、VGGNet网络结构2、VGGNet网络结构的优缺点 在上文中详细介绍了经典神经网络AlexNet,它为神经网络的发展打开了一片天地。VGGNet可以说是经典中的经典,它是所有学习深度学习的同学们都必须熟知网络。VGGNet是AlexNet的升级版,本文将详细介绍VGGNet的网络结构与相应的优缺点。1、VGGNet网络结构 VGG有众多版本,主要包括VGG11、VGG11-LRN、VGG13、VGG16-1、VGG16-3和VGG19,首先我
2021-07-09 10:59:05 1035 1
原创 AlexNet网络结构详解(含各层维度大小计算过程)与PyTorch实现
AlexNet网络结构详解(含各层维度大小计算过程)1、AlexNet之前的思考2、AlexNet网络结构3、AlexNet网络结构的主要贡献 在上文中详细介绍了第一个神经网络LeNet,但是在其提出20年的时间里并没有引起学者和各研究机构的重视,随机机器学习的兴起,LeNet网络基本被遗忘了。而真正打破机器学习和传统特征提取方法限制的深度神经网络就是本文要讲述的AlexNet。1、AlexNet之前的思考 在AlexNet网络问世之前,大量的学者在进行图像分类、分割、识别等工作时,主要是
2021-07-08 10:18:31 71569 17
原创 LeNet------识别手写数字图像的经典卷积神经网络与PyTorch实现
LeNet------识别手写数字图像的经典卷积神经网络1、LeNet简介1.1 卷积模块1.2 全连接模块2、LeNet主要贡献3、LeNet网络结构PyTorch实现1、LeNet简介LeNet的网络结构如下图所示。 由上图可以看出,LeNet模型主要有两部分组成:卷积模块(红色区域)与全连接模块(绿色区域)。而在卷积模块中主要是由卷积操作与最大池化层。1.1 卷积模块 在卷积层块中,每个卷积层都使用5×55\times 55×5的窗口,并在输出上使用sigmoid激活函数。第一
2021-07-06 14:16:41 1129
原创 去除二值图像图像中面积较大较小部分 opencv
去除二值图像图像中面积较大较小部分 opencv不废话直接上代码/****************************************************************************** 功能:* 输入二值图像,去除较大或较小面积面积(利用轮廓的大小),返回结果* 参数:* src: 输入灰度图像* AreaLargerLimit: 去除阈值* AreaSmallerLimit: 去除阈值*************
2021-07-02 17:09:38 1049 2
原创 图像的平移与旋转 opencv
图像的平移与旋转 opencv1、图像的平移2、图像的旋转1、图像的平移2、图像的旋转直接上程序import cv2import mathimport numpy as nppoint_low_x = 394point_low_y = 351point_center_x = 400point_center_y = 300img = cv2.imread('Revise1_084043.bmp', 0)rows, cols = img.shapetranslation_x
2021-06-08 16:11:39 493
原创 python中常用的字符串操作
python中常用的字符串操作 Python主要的字符串操作包括复制、连接、比较、删除、查找、替换、分割等;本文将一一介绍:1、复制a='hello'b=aprint(a,b)输出结果:hello hello2、连接或拼接a='hello'b='world'print(a+b)输出结果:hello world3、比较原来python2使用cmp(x, y)函数,此函数是比较x,y两个对象返回一个整数。x< y,返回值是负数 ,x>y 返回的值为正数。但是pyt
2021-05-26 18:16:35 657
原创 conda主要命令说明(含Anaconda创建python虚拟环境)
Anaconda-用conda创建python虚拟环境以及conda主要命令说明1、创建/删除python虚拟环境2、conda主要命令说明 Anaconda是Python学习中不可获取的工具,其核心功能是包管理和环境管理。conda将几乎所有的工具、第三方包都当作package进行管理,甚至包括python 和conda自身。Anaconda是一个打包的集合,里面预装好了conda、某个版本的python、各种packages等。Anaconda官网有时下载较慢,本文提供清华大学镜像下载:清华大学
2021-05-18 09:41:46 230
原创 深度学习中特征提取的本质
深度学习中特征提取的本质什么是特征通道内特征通道间特征通道信息融合什么是特征 传统的图像处理或是计算机视觉中的图像特征主要包括颜色特征、边缘特征、形状特征、纹理特征等。颜色特征主要有颜色直方图算法,边缘特征主要有sobel、canny等算法,形状特征主要是特征点(sift)、HOG特征、Haar特征等,纹理特征主要有LBP、灰度共生矩阵等。那深度学习的特征主要包括什么呢? 深度学习中的学习实际上就是对“特征”的学习,权重是对特征的有效表达。而深度学习的特征主要是在黑盒子中进行,当然我们可以
2021-05-10 17:55:16 4117
原创 MLP-Mixer简介和一些想法
最近Google Research的Brain Team又发表了重磅文章,纯MLP架构------MLP-Mixer,这个团队即原来的ViT团队,实力强横。作者通过与ViTs模型(包含ViT、HaloNet、BiT)和CNN模型(NFNet、MPL、ALIGN等)做了对比,效果还是不错的。总体设计思路整体架构如下图所示: 其整体思路为:先将输入图片拆分成多个patches(每个patche之间不重叠),通过Per-patch Fully-connected层的操作将每个patch转换成
2021-05-07 17:31:36 7635 10
原创 pytorch动态调整学习率之Multistep策略
在过去的文章中讲到学习率的动态调整问题,同时在《影响网络模型性能的主要因素》这篇文章中提到,根据经验学习率的调整最好的方法是Step和Multistep,已经讲过了epoch_step策略,下来讲一下Multistep策略。 首先讲一下Step和Multistep的区别。这两种方法都是step对学习率进行操作,但是二者还是有一定的区别的。最主要的区别就是:Step策略是根据固定的步长对学习率进行调整,而Multistep策略则是根据非均匀步长对学习率进行调整。一般情况下,这两种方法都是根据步
2021-05-07 11:32:07 2256
原创 [C++] string转为int, float, double
在使用C++编程过程中,string转为int, float, double是极为常见的操作,本文进行必要的总结,以供参考。第一种方法:使用对应的函数 使用atoi()、 atil() 、atof()函数 进行转换,其中atoi()是将string转为int型,atol()是将string转为long int型,atof()是将string转为double型。注意一点:atof()并不会将string转为float型,再转为double型后可以强制转换为float型。具体代码如下所示:#
2021-04-29 17:27:29 9410 2
原创 sleep()函数中的坑 C++
在运行程序过程中,多线程、测试程序、循环等操作中,常常涉及到sleep()函数,这个函数有一些坑,需要注意一下。 首先说明一下sleep()函数的作用,其功能就是程序执行到此后,执行挂起一段时间。用法是:unsigned sleep(unsigned seconds);第一个坑:头文件 在VC中使用带上头文件:#include <windows.h> 在gcc编译器中,使用的头文件因gcc版本的不同而不同 linux系统需要添加的头文件#includ
2021-04-28 18:06:54 1419
原创 影响网络模型性能的主要因素
在上一节中讲到,从AlexNet到VGG的过程可以看出,深度增加确实对模型的性能有较大的提升。但是,在其过程中VGG随着网络模型深度的增加准确度反而降低,这就说明,模型性能的影响因子不可能只来自于网络的深度。也就是说,并不是网络深度越深模型的性能就越好,当网络深度达到临界状态时,再盲目加大模型的深度,模型性能反而会降低。那影响模型性能的主要因素有哪些呢?主要有5个因素,如下所示:网络深度;学习率的设计策略;最优化方法;卷积核的设置;其他因素;1、网络深度 网络深度上文已经讲过
2021-04-28 17:51:33 2057
原创 深度学习需要更深网络结构的原因
从近些年来深度学习的发展看,深度学习模型结构越来越复杂,越来越丰富,同样网络深度也随之增加,由此引发了很多猜测,比如为什么需要更深的网络结构?更深的网络结构就使算法的性能一定很好吗?本文大概说一下前一个问题,后面在讨论第二个问题。1、引发此问题的模型 本人认为正真让学者开始重视网络深度的模型应该是VGG模型的出现,当然以前也有学者提出过增加网络深度的问题,但是让学者普遍接受“深度增加可以提升网络模型性能”是由于VGG的出现。当然,VGG的出现也引发了第二个问题,此处不进行分析。 A
2021-04-25 17:59:43 1559 1
原创 深度学习算法在医学领域应用的几点思考
近些年来医学成像技术、计算机技术和深度学习算法等都有较大的进步,利用深度学习算法进行医学图像分析已经成为非常热点的研究方向,这对临床疾病诊断和治疗提供了新的技术手段。但是,深度学习算法对于医学图像的处理依然存在较大的问题。1、最在的障碍------数据1)样本数量的限制 由于医疗图像涉及到患者的隐私、专业性较强等现实问题,医学图像能在大众中展现的部分相对较少,内部交流采用的数据也并不是非常丰富。尽管有一些公开的数据集(如MICCAI、ISBI等挑战赛数据集),但是这些数据集中图像的数量依
2021-04-25 14:01:32 2037
原创 OpenCV中resize()函数的插值方式对比
在进行图像缩放过程中,opencv中的resize函数是最常用的,其速度相对较快,只需要一行代码即可。此函数中提供5种缩放插值的方法。在下文中将进行对比。1、resize函数简介void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR );参数含义参数含义: InputArray src -原图像 Output
2021-04-23 14:01:08 2488
原创 Jetson Xavier NX安装opencv3.x以及踩过的坑
Jetson Xavier NX默认安装的是opencv4.x,在很多项目中其与opencv3.x,其中opencv3与opencv4中有部分函数是完全不同的,这就造成opencv程序在Jetson Xavier NX运行出现问题,因此,本文将集中讲述一下自己走过的全过程以及碰到的一些坑。我是用的主要是opencv3.4.5,将整个过程分享一下。1、首先下载opencv3.4.5 由于官网下载较慢,所以将本人的链接发在此处:https://pan.baidu.com/s/1u_fWEYa
2021-04-22 17:05:35 3110 2
原创 C++常用数学计算函数
在编写程序过程中,常常用到数学计算方法。C++提供简单公式的计算方法。但是在编写程序过程中要注意头文件cmath.h或math.h。常用的方法如下所示:一、幂计算开方:double sqrt(double x);x的y次方:double pow(double x, double y);常数e的x次方:double exp(double x);二、绝对值整型绝对值:int abs(x);长整型绝对值:long int abs(long int x);双精度绝对值:double fabs(
2021-04-09 16:29:09 5778
原创 Jetson Nano Ubuntu环境下VScode配置OpenCV的C++开发环境
Jetson Nano是非常常用的nvidia深度学习开开发板,其已经配置了opencv4.1.1,并已经安装了VSCode,由于项目需要本人必须应用VSCode中进行C++的编译。因此,经过不断的尝试终于配置好了相关的环境,并将其展现出来供大家参考。首先,配置C++的编译环境。第二,新建文件夹编写代码,用vs code打开。第三、编写launch.jsonvscode左侧方的debug按钮(小虫子)–Debug -> Open Configurations -> 打开备选框 ->
2021-03-31 16:13:05 2584 4
opencv3.4.5+opencv_contrib-3.4.5.rar
2021-04-02
VTK-8.2.0-Release.rar
2020-09-16
LeastSquares.rar
2020-07-21
机器学习常用算法的优缺性比较.doc
2020-07-17
机器学习中的目标函数总结.docx
2020-07-17
top-hat.rar
2020-06-09
ImageNet中文翻译.pdf
2020-05-13
Going Deep in Medical Image Analysis
2019-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人