自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 生成python项目需要的最小requirements.txt

生成项目依赖的requirements.txt

2023-02-22 14:02:44 204 1

原创 医学图像处理png转nii

使用python 将png转nii

2022-06-23 18:19:55 2088

原创 将医学dicom文件转nii文件

# #coding=utf-8import SimpleITK as sitk'''功能:读取filepath下的dcm文件返回值:读取得到的SimpleITK.SimpleITK.Image类其他说明: file = sitk.ReadImage(filepath) 获取基本信息,大小,像素间距,坐标原点,方向 file.GetSize() file.GetOrigin() file.GetSpac

2022-05-22 16:05:05 594

原创 医学图像dcm/dicom的文件转jpg

import SimpleITK as sitkimport numpy as npimport cv2import osimport timefrom PIL import Imagecount = 1path = “dcm/201015”filename = os.listdir(path)print(filename)for i in filename:document = os.path.join(path, i)outputpath = “jpg/”countname =

2022-03-28 19:13:59 3428

原创 将nii格式的文件转换为png

import osimport numpy as npimport nibabel as nibimport imageioimport matplotlibfrom nibabel.viewers import OrthoSlicer3Dfrom matplotlib import pylab as pltdef read_niifile(niifilepath): # 读取niifile文件img = nib.load(niifilepath) # 下载niifile文件(其实是提取

2022-03-28 19:09:29 837 1

原创 提高图像分割的一些tricks

本文来自于百度的论文PADDLESEG: A HIGH-EFFICIENTDEVELOPMENTTOOLKIT FORIMAGESEGMENTATION分割任务中输入与输出的尺寸相同(这点与检测不同)输入图像中的每个像素都被赋予一个类的标签(伪彩色图像中的不同颜色)分割网络用编码器(encoder)和解码器(decoder)组成。在编码器部分,特征图的大小逐渐减小;在解码器部分,特征图的大小逐渐增大,直到与输入图像有相同的大小。如何使网络提高分割精度,这篇论文根据目前的现状总结到有5个方法,如下

2022-03-07 11:50:06 4109

原创 使用百度的paddleclas制作train_list,query_list,labels

import osimport random# 打乱数据def shuffle_data(data_list_path): with open(data_list_path, 'r', encoding='utf-8') as f: lines = f.readlines() random.shuffle(lines) print("训练数据:%d 张" % len(lines)) with open(data_list_path,

2022-01-26 17:37:57 1974

原创 读取voc格式的标注文件,并重写xml标注文件

import osfrom lxml import etreetry: import xml.etree.cElementTree as ETexcept ImportError: import xml.etree.ElementTree as ET#读取xml文件def GetAnnotBoxLoc(AnotPath): tree = ET.ElementTree(file=AnotPath) root = tree.getroot() objsize

2021-10-21 14:10:41 147

原创 关于使用Detectron2中epoch是多少,如何设置呢

比如

2021-09-08 20:23:35 1516 2

原创 MAC clone git加速

1.参考链接参考链接2

2021-09-02 21:53:42 287

原创 Mac 安装Anaconda与PyCharm 并配置

如果在pycharm中运行python代码时 路径都正确,但是就是报错说找不到文件,可以选择重新配置下载Anaconda从官网下载找到对应电脑的版本安装后,在命令行中输入conda --version,如果安装成功,会显示版本号但我并没有显示,所以根据Anaconda之Python环境配置(Mac版)配置了环境变量:首先,找到Anaconda的安装路径下bin文件的位置,我的路径是/opt/anaconda3/bin在此文件夹下点击新建文件夹下的终端窗口修改.bash_profile文件vi

2021-09-02 17:32:40 1086 1

原创 使用yolov5训练自己voc格式的数据集,完整记录

首先根据提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、yolov5环境安装二、yolov5voc格式的数据集1.自己格式的数据集转换成跟yolov5相同的格式3.修改相关文件4.修改models/yolov5x.yaml 文件5.训练参数6.训练总结前言使用yolov5训练自己的数据集,首先需要了解yolov5相关源文件都有什么,提示:以下是本篇文章正文内容,下面案例可供参考一、yolov5环境安装首先在github上搜索yolov5相关的配置文.

2021-08-08 11:16:47 9165 18

原创 cnn中一些基础,卷积核,通道数,池化层,批归一化层,参数量与计算量

卷积神经网络中卷积核的高度和宽度通常为奇数,例如 1、3、5 或 7。选择奇数的好处是,保持空间维度的 同时,我们可以在顶部和底部填充相同数量的行,在左侧和右侧填充相同数量的列。通道数:可以将每个通道看作是对不同特征的响应。而现实可能更为复杂一些,因为每个通道不是独立学习的,而是为了共同使用而优化的。因此, 多输出通道并不仅是学习多个单通道的检测器。池化层:降低卷积层对位置的敏感性,同时降低对空间降采样表示的敏感性。使用大于1的池化层可以降维。在每个输入通道上单独运算。跟卷积层不一样。卷积层是在通道上对

2021-07-29 15:57:28 1513

原创 图像特征提取中的一些不变形,平移不变性,旋转不变性 光照不变性

目标检测的不变性:卷积神经网络是将“空间不变性”的这一概念 系统化,用较少的参数来学习有用的特征。从而使物体不管在什么位置,可以利用物体的不变性,来找到物体。平移不变性:不管出现在图像中的哪个位置,神经网络的底层应该对相同的图像区域做出类似的响应。 这个原理即为“平移不变性”。2. 局部性:神经网络的底层应该只探索输入图像中的局部区域,而不考虑图像远处区域的内容,这就是 “局部性”原则。最终,这些局部特征可以融会贯通,在整个图像级别上做出预测。局部性是在每一层只能包含局部信息。旋转不变性:傅立叶变换

2021-07-28 19:09:06 5245 1

原创 python-判断列表中的元素全部满足某条件或存在某元素满足 --遍历列表

#python a = [1, 2, 3, 4, 5]# 必须所有元素小于等于5print(all(_ <= 5 for _ in a)) # True# 存在元素等于5即可print(any(_ == 5 for _ in a)) # True

2021-07-23 14:34:36 2180

原创 python中[:],[:,],[::]分别代表什么意思

关于 [:j] 或者 [:i]:这是切片操作,在下标 i 或者 j 之前的元素都保留关于[:,j] 或者 [:,i] :这也是切片操作,不同的是:保留第一个维度所有元素,第二维度元素保留到j;只适用numpy的科学数据结构关于[::]操作(高阶用法,可看可不看,一般出现在矩阵数据替换运算,例如NLP里的位置编码)。在list中可以用在元素层面,在numpy的数学数据中可以用在任何层面。使用方法[start: end : step ],也就是[ 起始下标 : 终止下标 : 间隔距离 ]切片范围是:.

2021-07-23 14:15:20 52496 2

原创 深度学习的基本常识,梯度下降法与小批量随机梯度下降

梯度下降:通过不断地在损失函数递减的方向上更新参数来降低误差最简单的用法是计算损失函数关于模型参数的导数但实际中的执行可能会非常慢,因为在每一次更新参数之前,必须遍历整个数据集,因此会随机抽取小批量样本(超参数,根据自己的硬件设备调整,以合理的利用硬件资源),计算小批量的平均损失关于模型参数的导数。是否将梯度乘以一个预先确定的正数lr(学习率,超参数,通过训练迭代结果来调整的)在神经网络训练时,常常要采用批(batch_size)输入数据的方法,为此需要设定每次输入的批数据大小batch_size,而

2021-07-23 14:07:45 165

原创 深度学习根据时间评估效率的计时器

#定义一个计时器class Timer:#@save ''' 记录多次运行时间 ''' def __init__(self): self.times=[] self.start() def start(self): '''启动计时器''' self.tik=time.time() def stop(self): '''停止计时器并将时间记录在列表中''' self

2021-07-19 22:03:09 321

原创 python 画出函数的曲线与其中的切线

#使用代码块实现我们的功能主要是将我们自己的思想根据函数的方法将其转化输入到代码块,即可完成主要分三步,1。先有函数2.函数的斜率3。切线公式调用函数,使用matplotlib画图展现import numpy as npfrom matplotlib import pyplot as pltdef fun1(x): return x**3-1/xdef numerical_lim(f,x): h=1e-4 return (f(x+h)-f(x))/hdef ta

2021-07-19 16:55:32 5842

原创 训练深度学习网络中当出现不好结果是高偏差与高方差的解决方案

偏差 偏差度量了网络的训练集误差和贝叶斯误差(即能达到的最优误差)的差距。高偏差的网络有很高的训练集误差,说明网络对数据中隐含的一般规律还没有学好。当网络处于高偏差时,通常有以下几种解决方案。1. 训练更大的网络。网络越大,对数据潜在规律的拟合能力越强。2. 更多的训练轮数。通常训练时间越久,对训练集的拟合能力越强。3. 改变网络结构。不同的网络结构对训练集的拟合能力有所不同。方差 方差度量了网络的验证集误差和训练集误差的差距。高方差的网络学习能力太强,把训练集中自身独有的一些特点也当作一般规律学得,

2021-07-05 23:04:04 1187

原创 可视化coco格式json标注中的box到图片上

#将coco格式的json标注中的box到图片上 太强大了import jsonimport shutilimport cv2def select(json_path, outpath, image_path): json_file = open(json_path) infos = json.load(json_file) images = infos["images"] annos = infos["annotations"] assert len(im

2021-06-12 15:02:01 1158 2

原创 目标检测网络构成部分,backbone + neck + head?分别代表什么意思,都有哪些网络

目标检测网络构成部分detector=backbone + neck + headbackbone部分的网络就是负责从图像中提取特征。neck是放在backbone和head之间的,是为了更好的利用backbone提取的特征。head这一部分的作用就是用于分类+定位。backboneVGGResNet (ResNet18, 50, 100)ResNextDenseNetSqueezeNetDarknet (Darknet19,53)MobileNetShuffleNetDe

2021-04-10 14:00:20 4488 2

原创 记录使用python时机器学习遇的错误 can‘t multiply sequence by non-int of type ‘float‘

记录使用python时机器学习遇的错误 can’t multiply sequence by non-int of type ‘float’ can't multiply sequence by non-int of type 'float'原始代码def forward(x): return x*w然后报错了修改后的代码快def forward(x): return np.array(x)*np.array(w)犯错的代码 本以为 可以修改为def forward(x

2021-03-14 11:46:19 529

原创 python读取csv文件,并从中提取想要的数据列

def read_test(): with open("wine_data.csv","r") as f: data = f.readlines() #按行读取数据 data=data[1:] result = [] for i in data: i_list = i.split(",") #使用逗号分割方法分割 try: result.append([i_list[2], i_lis.

2020-12-23 17:49:11 7320

原创 机器学习中逻辑回归求解代价函数中的多极大似然估计

极大似然估计(Maximum Likelihood Estimate)MLE百度百科中解释:极大似然估计,只是一种概率伦在统计学中的应用,它是参数估计的方法之一。说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次实验,观察其结果,利用结果推出参数的大概值。极大似然估计是建立在这样的思想,已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小的概率大样本,所以干脆就把这个参数作为估计大真实值极大似然估计主要有两种1.离散型统计模型:其概率分布为。 ​

2020-10-30 23:33:06 205

原创 为什么对机器来说识别/检测一张图片那么难?而对人来说,一目了然?

为什么对机器来说识别/检测一张图片那么难?而对人来说,一目了然?关于计算机视觉(CV)的一个问题如果你想要使用机器学习算法来训练一个分类器,去检测图像。如检测图像是否是一辆汽车,当人看到的是一辆汽车,在对于汽车上的一个门把手时,而计算机看到的却是一个数据矩阵(表示像素强度值的网格)。如下图1像素强度代表每个像素的亮度值。计算机根据这个像素点亮度矩阵来告诉我们这些数值,代表一个汽车的门把手假设图片的特征维数是50*50像素的图片。图片已经很小了,长宽各有50个像素但这依然是2500个像素点,因此特征向

2020-10-30 16:13:17 403

原创 深度学习常见的损失函数及其用途

损失函数可以大致分为两类:分类损失(Classification Loss)和回归损失(Regression Loss)回归函数预测实数值,分类函数预测标签回归又分为线性回归(预测的是一个连续值)和逻辑回归(得到‘是’或‘否’)下面介绍回归损失函数交叉熵损失函数CE(Cross Entropy)交叉熵表示的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵越小,两个概率分布就越接近,交叉熵公式:其中p表示真实分布,q表示非真实分布由于交叉熵涉及到计算每个类别的概率,所以交叉熵几乎每次都

2020-07-31 11:56:56 1434

空空如也

空空如也

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

TA关注的人

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