- 博客(25)
- 收藏
- 关注
原创 Python的‘/‘、‘//‘
python版本3.7.6‘/’ 和’//’‘/’:浮点数除法,商为浮点数。‘//’:整数除法,结果向下取整,即为不大于其浮点数除法商的一个最大的整数。代码# '/',正数print(4 / 2)print(4 / 3)print(5 / 2)print(5 / 3)print('\n')# '//',正数print(4 // 2)print(4 // 3)print(5 // 2)print(5 // 3)结果2.01.33333333333333332.51.
2022-03-28 16:25:12 1199
原创 【医学影像】Deep Learning for Automatic Pneumonia Detection
写在前面的话:这篇论文是北美放射学会(RSNA)在Kaggle平台上托管的肺炎区域检测挑战赛取得第二名成绩的解决方案。因为笔者需要用到其中的图像增强方案,因此本篇博客只介绍了数据集和图像增强,关于模型的改进和其它改进点没有涉及。论文地址:https://arxiv.org/abs/2005.13899代码地址:https://github.com/tatigabru/kaggle-rsna比赛地址:https://www.kaggle.com/c/rsna-pneumonia-detection-c
2020-11-10 19:00:34 1087 2
原创 【类不平衡】Focal Loss for Dense Object Detection
摘要论文中指出类不平衡是导致一阶段检测器与二阶段检测器之间性能差异的主要原因。论文提出通过重塑标准交叉熵(standard cross entropy loss)来解决类不平衡,继而提出了一个新颖的损失函数:焦点损失(Focal Loss)。Focal Loss重点训练一组稀疏的困难样本(hard examples),并防止大量容易样本在训练过程中淹没检测器。Cross entropy (CE) loss在...
2020-11-01 10:06:34 278
原创 ATSS核心代码解析【Pytorch】
论文全称:Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training论文地址:https://arxiv.org/abs/1912.02424ATSS论文讲解可参考我写的这篇博客笔记:https://blog.csdn.net/chenzhoujian_/article/details/109144860源码:https://github.com/sfzhang15/ATSSATSS核心代
2020-10-19 18:54:24 2120 3
原创 【正负样本选择】Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training(ATSS)
论文地址:https://arxiv.org/abs/1912.02424摘要: 论文首先指出,anchor based与anchor free的本质区别实际上是如何定义正、负训练样本,并提出了一种自适应训练样本选择(ATSS)的方法,根据对象的统计特征来选择正、负训练样本。(一)anchor based与anchor free差异分析anchor based选取RetinaNet,anchor free选取FCOS,来分析两者之间的差异。(1)正负样本的定义RetinaNet:使用IoU同时在空
2020-10-19 08:54:32 887 1
原创 Python中[m: ]、[ :n]、[m:n]、[m::n]的含义
[m: ]从下标为m的元素开始取全部a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print(a[1:])print(a[2:])运行结果:[2, 3, 4, 5, 6, 7, 8, 9, 10][3, 4, 5, 6, 7, 8, 9, 10][ :n]取到下标为n-1的元素a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print(a[:3])print(a[:9])运行结果:[1, 2, 3][1, 2, 3, 4, 5
2020-09-27 09:38:44 13384 4
原创 win10下安装pycocotools
前言:在跑GitHub上的一个目标检测项目时,需要用到pycocotools,所以去安装。安装时遇到很多坑,靠着网上大家写的博客最后终于成功安装。先声明下,这里写的方法仅仅是我自己安装成功的方法,不能保证你也能成功。我写下来纯属提供多一种方法,方便后面安装的人参考。我安装失败的方法:命令行输入pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI(这个方法网上很多人成功)后,就一直停在这个界面
2020-07-31 18:25:08 1181 1
原创 cityscapes数据集标签的处理
在用pytorch实现SegNet算法时,数据集选择了cityscapes,在这里写下cityscapes数据集标签的处理。我用pytorch实现SegNet算法的博客,有兴趣可去看看。()cityscapes数据集的下载和介绍参考这篇博客:https://blog.csdn.net/avideointerfaces/article/details/104139298下载官方的处理脚本脚本地址:https://github.com/mcordts/cityscapesScripts将整个脚本项目
2020-06-20 17:48:14 10953 39
原创 【图像分割】用pytorch实现SegNet算法
论文地址:https://arxiv.org/pdf/1511.00561.pdf官方代码:https://github.com/alexgkendall/caffe-segnet编码器VGG-16的前13层BN层的momentum=0.1下采样时保留最大值的位置以下是pytorch代码:class Encoder(nn.Module): def __init__(self, input_channels): super(Encoder, self).__init__(
2020-06-20 16:40:39 17536 92
原创 【目标检测论文阅读】ScratchDet Training Single-Shot Object Detectors from Scratch
摘要当前最先进的目标检测器通常是基于一种预训练的模型,这种模型先在大型数据集ImageNet预训练,之后再进行微调训练。不过这种方法有局限性:(1)分类和检测对网络平移性的敏感度不同;(2)网络的结构不方便修改。而从零开始训练的检测器不受网络结构的影响,所以可以随意更改网络结构来训练达到最好的检测效果。之前的从零开始训练的检测器表现都比基于预训练模型的检测器差,甚至在训练时会出现无法收敛的情况。论文中指出忽略BatchNorm是导致这一结果的重要原因,通过在网络中加入BatchNorm带来的稳定的且
2020-06-14 18:02:15 361
原创 numpy中索引是bool值的情况
若索引为[False, True, False, True, True],则结果只取位置1、3、4的值。代码import numpy as nparray = np.array([1, 2, 3, 4, 5])index_bool = [False, True, False, True, True]result = array[index_bool]print(result)输出:[2 4 5]...
2020-06-12 22:00:01 1479
原创 np.array()与np.asarray()
两者都能将对象转化为ndarray代码import numpy as np# list-->ndarraylist = [1, 2, 3, 4, 5]array1 = np.array(list)array2 = np.asarray(list)print(list, type(list))print(array1, type(array1))print(array2, type(array2))输出:[1, 2, 3, 4, 5] <class 'list'>
2020-06-12 21:51:50 2108 1
原创 阈值+滑动条
import cv2 as cvimport numpy as npdef nothing(): passimg = cv.imread("D://opencv_test//test_a.jpg")cv.namedWindow("win")cv.createTrackbar("Threshold", "win", 0, 255, nothing)img_gray = cv...
2020-01-17 21:21:17 445
原创 掩膜操作
import cv2 as cvimport numpy as npimg_1 = cv.imread("D://opencv_test//test_4.jpg")img_2 = cv.imread("D://opencv_test//test_5.jpg")r_1, c_1 = img_1.shape[0:2]r_2, c_2 = img_2.shape[0:2]#划定感兴趣区域...
2020-01-17 20:46:55 679
原创 保存录像
cv.VideoWriter_fourcc()返回一种视频编码。例:fourcc = cv.VideoWriter_fourcc(*“DIVX”)win常用视频编码cv.VideoWriter()返回一个对象。第一个参数:保存视频文件路径和名字第二个参数:视频编码第三个参数:保存视频的帧数第四个参数:保存视频的尺寸例:out = cv.VideoWriter(“D://openc...
2020-01-16 23:21:37 220
原创 打开摄像头并自动保存截图
import cv2 as cvimport numpy as np# a 用于计时a = 0# b 用于保存截图的名字b = 0cap = cv.VideoCapture(0)while(1): a = a + 1 ret, frame = cap.read() cv.imshow("win", frame) # 2000ms即2s保存一张截图...
2020-01-16 22:58:57 751 2
原创 cv.waitKey()函数
cv.waitKey(x)x 表示键盘等待用户输入的时间,若无输入,则自动关闭。常将这个函数无限循环形成视频。例如:cv.waitKey(50)表示等待50ms(1s = 1000ms)。无限循环形成视频时,帧率是20fps。(50ms × 20ms = 1000ms)...
2020-01-16 22:53:10 1212
原创 几何变换(2)
仿射变换在仿射变换中,原图中所有的平行线在结果图像中同样平行。为了创建这个矩阵我们需要从原图像中找到三个点以及他们在输出图像中的位置(三个点)。然后 cv2.getAffineTransform 会创建一个 2x3 的矩阵,最后这个矩阵会被传给 函数 cv2.warpAffine。用到的函数:cv.getAffineTransform()得到仿射变换矩阵参数:原图像的三个点仿射变换后是的三个...
2020-01-16 12:08:41 211
原创 几何变换(1)
一、扩展缩放用到的函数:cv.resize()参数:图像名字要放大或缩小的尺寸(不用时写None)fx=…比例因子fy=…比例因子interpolation=…格式类型在缩放时我们推荐使用cv2.INTER_AREA, 在扩展时我们推荐使用 v2.INTER_CUBIC(慢) 和 v2.INTER_LINEAR。 默认情况下所有改变图像尺寸大小的操作使用的插值方法都是cv2.I...
2020-01-15 22:49:09 136
原创 物体跟踪
用到的函数:np.array()创建数组cv.cvtColor()转换颜色空间参数:图像名字格式cv.inRange()参数:原图像名字HSV最低值,低于此值HSV值变成0HSV最高值,高于此值HSV值变成0(在中间HSV值变成255)import cv2 as cvimport numpy as npimg = cv.imread("D://opencv_tes...
2020-01-15 17:45:25 171
原创 图像上的算术运算(2)——阈值、掩膜
按位运算目标:把 OpenCV 的标志放到另一幅图像上。用到的函数:cv.cvtColor()颜色处理图像名字格式cv.threshold()有两个返回值参数:图像名字阈值最大值(一般为255)格式bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=1,0&1...
2020-01-15 15:38:19 987
原创 图像上的算术运算(1)
一、图像加法两幅图像的大小,类型必须一致,或者第二个 图像可以是一个标量值。第一种方法:直接相加:import cv2 as cvimport numpy as npimg_1 = cv.imread("D://opencv_test//test_a.jpg")img_2 = cv.imread("D://opencv_test//test_c.jpg")img_3 = img...
2020-01-14 22:28:59 246 1
原创 图像的基础操作
一、获取并修改像素值将图像看成三维的,x,y和图层(BGR),因此若是[x,y]则输出三个图层的数值,若是[x,y,z]则输出一个数值。第一种方法:import cv2 as cvimport numpy as npimg = cv.imread("D://opencv_test//test_a.jpg")print(img)#直接输出图像的每个像素点print(img[100,...
2020-01-14 21:36:37 355
原创 创建一个简单的画板
用到的函数:1.cv.createTrackbar()有5个参数滑动条的名字窗口的名字数值的最小值数值的最大值函数2.cv.getTrackbarPos()有2个参数滑动条的名字窗口的名字函数的返回值是滑动条的数值。import cv2 as cvimport numpy as npdef nothing(x): passimg = np.zeros(...
2020-01-14 17:29:35 218
原创 用滑动条做调色板
用滑动条做调色板用到的函数:1.cv.createTrackbar()有5个参数滑动条的名字窗口的名字数值的最小值数值的最大值函数2.cv.getTrackbarPos()有2个参数滑动条的名字窗口的名字函数的返回值是滑动条的数值。import cv2 as cvimport numpy as npdef nothing(x): passcv.n...
2020-01-14 15:04:17 171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人