目标检测
冰菓(笑)
希望写一些有质量的东西
展开
-
CK数据集分类处理
import osimport shutil #七种表情分类emotions = ["anger", "contempt", "disgust", "fear", "happy", "sadness", "surprise"]path= "cohn-kanade-images"path_label= "Emotion_labels/Emotion"#创建文件夹if not os....原创 2019-10-23 20:01:02 · 6172 阅读 · 2 评论 -
[x y w h]转化为[ymin xmin ymax xmax]
bbox[:, 2] = bbox[:, 0] + bbox[:, 2]bbox[:, 3] = bbox[:, 1] + bbox[:, 3]bbox[:, [0, 1]] = bbox[:, [1, 0]]bbox[:, [2, 3]] = bbox[:, [3, 2]]首先,将x和y分别加上w,h 变为xmax 和ymax然后,交换列完成...原创 2018-12-09 21:00:41 · 3125 阅读 · 1 评论 -
string 坐标转为numpy格式坐标 (从txt文本中读取坐标)
f = open(datapath,"r")a = f.readline()x = a.split()x = [int(x) for x in x if x]bbox = np.stack(x).astype(np.float32)首先,读取4位坐标(x y w h)再把读取的坐标按空格分开然后转为list数组最后转为numpy格式...原创 2018-12-09 20:57:17 · 1067 阅读 · 1 评论 -
图片 bbox 翻转
图片翻转:def random_flip(img, y_random=False, x_random=False, return_param=False, copy=False): y_flip, x_flip = False, False if y_random: y_flip = random.choice([Tru...原创 2018-11-16 20:55:21 · 879 阅读 · 0 评论 -
pytorch 显存逐渐增大
在训练过程中,显存随着batch的增加而增大,特别是在预测的时候.这时候可能是因为在训练过程中存储的数组是添加的而不是覆盖的.例如在预测过程中将所有结果逐渐添加保存到一个list中,导致list越来越大,占用的显存越来越多,从而导致oom或者卡死现象.如果一定要使用添加数组,可以考虑使用np.save分布存储,再使用np.load读取,这样就不会添加进显存.使用torch.cuda...原创 2018-11-05 09:51:57 · 10064 阅读 · 0 评论 -
难样本
用 active learning 去找那些比较难的样本去学习有这5个步骤1. 首先,把所有的未标注图片数据在大量自然图像中训练的网络,大家知道现在有很多常用的网络,从最初的LeNet、AlexNet、GoogLeNet、VGG、ResNet这样的网络中去测试一遍,得到预测值。 然后挑出来那些最难的、信息量大的样本去标注2. 用这些刚刚标注了的样本去训练深度学习网络,得到一个网络N3....转载 2018-11-01 09:24:56 · 1292 阅读 · 0 评论 -
loss
l2def l2_loss(gt, pred): B, C, H, W = gt.size() # loss = t.sum(t.abs(gt - pred)) loss = t.sum((gt - pred) * (gt - pred)) / (B * C * H * W * 10) return loss原创 2018-10-24 16:23:15 · 171 阅读 · 0 评论 -
txt文件修改
1.保存19类path='19'path2='源文件'path3='1'f = open(path, "a")f2 = open(path2, "r")f3 = open(path3,"a")for i in range(5011): a=f2.readline() if a[7:9]==' 1': f3.write(a[0:6]+'\n') ...原创 2018-10-24 13:49:54 · 988 阅读 · 0 评论 -
SPP: Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
为了适应不同大小的图片, 该篇论文使用池化层将卷积得到的特征图池化成固定大小例如使用三层池化的SPP采用了三个卷积核大小,卷积核大小为图像大小除以1,4,16,这样就可以获得固定特征大小为1,4,16.然后将特征图累加成长度为21一维特征.最后放入fc,就解决了输入大小不一致的问题 class SPPLayer(nn.Module): def __init__(self...原创 2018-12-21 21:09:49 · 216 阅读 · 0 评论 -
focal loss
Focal Loss for Dense Object Detection首先,需要了解交叉熵是怎么工作的: https://blog.csdn.net/tsyccnh/article/details/79163834本文的核心公式如下:借用上面博客中的概率表:* 猫 青蛙 老鼠 Label 0 1 0 Pred 0.3 ...原创 2018-12-22 15:47:27 · 410 阅读 · 0 评论 -
深度学习:图像扩增方法
一个良好的图像预处理能够有效提升模型的准确率。本文总结了常用的图像预处理方法。常见的模型输入一般为固定大小的图像输入,而数据集中的图像常常是不规则大小的图像,因此,对于大小不规则的图像需要放缩至固定大小,而直接使用resize()函数会使得图像变形,因此需要对图像继续填充后继续放缩。图像大小变化import cv2import numpy as npdef preprocess(...原创 2019-05-03 15:14:00 · 3142 阅读 · 0 评论 -
AttributeError: 'module' object has no attribute 'interpolate'
由于我的pytorch一致安装不了1.0.0以上的版本,所以一直用的是0.4.0,很多更新的函数.AttributeError: 'module' object has no attribute 'interpolate'这个问题上只要把interpolate替换成upsample就可以了....原创 2019-03-19 20:47:57 · 3797 阅读 · 0 评论 -
pytorch 从头开始YOLOV3(三):训练过程中的真值标签
1.获得真值标签用于计算损失从数据集获得的真值标签为整个样本的标签,而在训练过程中预测的标签是每一个特征图上每一个像素的(x,y,w,h,c),因此需要把对每一个特征图上每一个像素制作相应真值标签.首先,初始化真值标签数组. nB = target.size(0) #batch_size nA = num_anchors #锚点数 nC = num_class...原创 2019-02-26 16:16:56 · 2627 阅读 · 4 评论 -
pytorch 从头开始YOLOV3(二):训练模型
1.基本流程pytorch在训练过程有一个很基本的流程,正常情况下就按这个流程就能够训练模型:1.加载模型,2初始化数据,3.预定义优化器,4.训练 # 模型加载 model = Darknet(opt.model_config_path) # pytroch函数 Module.apply 对所有子模型初始化 # https://pytorch.org/...原创 2019-02-26 10:43:35 · 6529 阅读 · 1 评论 -
pytorch 从头开始YOLOV3(四):测试
本文实现了mAP函数,其中计算了精确率(Precision),召回率(Recall)首先需要了解mAP的概念和计算方式.具体原理可以查看:https://www.cnblogs.com/lixiunan/articles/9566627.html https://tarangshah.com/blog/2018-01-27/what-is-map-understanding-the-s...原创 2019-03-05 11:24:13 · 1726 阅读 · 0 评论 -
pytorch 从头开始YOLOV3(五):检测
github地址:https://github.com/18150167970/pytorch-yolov3-modifiy预测完,只要读取模型,然后进行预测就ok了.1.读模型# Set up modelmodel = Darknet(opt.model_config_path)model.load_weights(opt.weight_path)model.cuda(...原创 2019-03-05 10:36:44 · 1584 阅读 · 2 评论 -
pytorch 从头开始YOLOV3(一):COCO数据集准备和读取
YOLOV3是工业上可以用的兼顾速度和准确率的一个深度学习目标检测模型,本系列文章将详细解释该模型的构成和实现,本文代码借鉴:https://github.com/eriklindernoren/PyTorch-YOLOv3YOLOv3: An Incremental Improvement:https://pjreddie.com/media/files/papers/YOLOv3.pdf...原创 2019-02-25 14:33:39 · 16130 阅读 · 14 评论 -
ROI pooling的一系列介绍
1.SPP:https://blog.csdn.net/a362682954/article/details/851736932.是ROI pooling:https://www.cnblogs.com/wangyong/p/8523814.html和ROI Align: https://blog.csdn.net/WZZ18191171661/article/details/794537...原创 2019-01-09 20:25:09 · 481 阅读 · 0 评论 -
目标检测 获得的boundingbox 绘制并且保存
可能我是读了一个假的研究生,这么简单的弄了3个小时,本来打算用现成的 可是一直保存不了,后面没办法自己写了一个。其中 VOC_BBOX_LABEL_NAMES是list数组 保存对应的标签名,如果类别多的话可以用循环来写(我写在第二个代码上),颜色全部固定一致的,我第一种写法颜色是不一致的。 pred_bboxes_, pred_labels_, pred_scores_ ...原创 2018-09-30 14:47:29 · 4553 阅读 · 0 评论 -
目标检测 相关改进操作
转自新智元微信公众号(AI_era)https://www.sohu.com/a/201486319_99901730NEXET 数据库Nexar介绍,对于这个挑战,他们发布了世界上最大和最多样化的道路数据集之一。他们的愿景是创造一个“无碰撞”的世界,这是一个全球性的计划,所以,他们选择开源部分自己的训练数据,让更多的研究者开源从Nexar每日搜集的海量图像和视频数据中获利。目前为...转载 2018-10-15 16:58:27 · 436 阅读 · 0 评论 -
目标检测 计算召回率和准确率(recall and precision)
其中传入的pred_bboxes格式为3维的数组的list格式,也就是说每个list都是一个3维数组(有batch的考量),为一个样本的所有bbox。其他的同理如pred_labels 同理。list化可以参考下面代码pred_bboxes, pred_labels, pred_scores = list(), list(), list()gt_bboxes, gt_labels, ...原创 2018-09-29 15:13:37 · 7420 阅读 · 4 评论 -
pytorch 从头开始faster-rcnn(零):使用到的函数
本篇博客是在写faster-rcnn遇到的没见过的函数,所以这篇博客随着代码的编写不定期更新。1.tqdmtqdm在阿拉伯语中的意思是进展。tqdm可以在长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator),是一个快速、扩展性强的进度条工具库。from tqdm import tqdmfrom time import sleepfor i in...原创 2018-09-20 15:09:39 · 1174 阅读 · 0 评论 -
pytorch 从头开始faster-rcnn(二):数据集处理
一个神经网络的开始首先是要对数据进行处理。目标检测图像分为两个部分,一个是原始图像,另外一个是标志的xml文件。由于pytorch数据使用迭代器加载,所以处理都是一张一张图像的处理。1.加载图像和标签。标签包括boundingbox和其名称标签,由于boundingbox和其标签有多个,所有使用循环读取。返回图像及其标签。 def get_example(self, i...原创 2018-09-20 14:11:55 · 2211 阅读 · 2 评论 -
pytorch 从头开始faster-rcnn(一):代码知识准备
本文代码是参考github上的simple-faster-rcnn-pytorch:https://github.com/chenyuntc/simple-faster-rcnn-pytorch有需要的可以自行下载参考,就不放上自己写的,上面的已经写的很详细了!!!一:class config: def _parse(self, kwargs): state_...原创 2018-09-18 12:47:51 · 5448 阅读 · 3 评论 -
样本挖掘概念
正样本:我们想要正确分类出的类别所对应的样本,例如,我们要对一张图片进行分类,以确定其是否属于汽车,那么在训练的时候,汽车的图片则为正样本。负样本:不是汽车的其他图片。难正样本(hard positives):错分成负样本的正样本,也可以是训练过程中损失最高的正样本难负样本(hard negatives):错分成正样本的负样本,也可以是训练过程中损失最高的负样本易正样本(easy ...原创 2018-09-04 08:28:20 · 1181 阅读 · 0 评论 -
faster rcnn配置好之后运行 ./tools/demo.py出现如下错误:: Check failed: registry.count(type) == 1 (0 vs. 1) Unknown
两种可能:1.makefile 文件下LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs没有加上2.makefile.config 文件下WITH_PYTHON_LAYER := 1的注释没去掉转载 2018-09-03 19:52:38 · 398 阅读 · 0 评论 -
转载:基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN
转载:https://www.cnblogs.com/skyfsm/p/6806246.htmlobject detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。object detection要解决的问题就是物体在哪里,是什么这整个流程的问题。然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方...转载 2018-09-03 16:33:45 · 132 阅读 · 0 评论 -
转载 目标检测基础知识 别点进来
转载from:https://blog.csdn.net/attitude_yu/article/details/807271221.目标检测 “目标检测”主要解决两个问题:图像上多个目标在哪里(位置),是什么(类别)人们一般把其发展历程分为3个阶段: a.传统的目标检测方法 b.两阶段检测器 以R-CNN为代表的结合region proposal和CNN分类...转载 2018-08-14 16:27:53 · 717 阅读 · 0 评论 -
转载 目标检测算法综述 一
转载from:https://blog.csdn.net/xiaohu2022/article/details/79600037目录 目录 概述 数据集和性能指标 数据集 性能指标 R-CNN SPP-net Fast R-CNN Faster R-CNN 参考文章 概述图像分类,检测及分割是计算机视觉领域的三大任务。图像分类模型(详情见这里)是将图像...转载 2018-08-14 16:15:43 · 2738 阅读 · 0 评论 -
torchnet .meter
原文档:https://github.com/torchnet/torchnetimport torchnettnt.Meter Meters provide a standardized way to measure a range of different measures, which makes it easy to measure a wide range of proper...原创 2018-10-02 15:57:50 · 6929 阅读 · 0 评论 -
pytorch 从头开始faster-rcnn(三):vgg16 (带有网络冻结的写法)
由于pytorch自带了一些网络结构可以直接使用,所以直接调用有的模型,详细的可以查看官方文档:https://pytorch.org/docs/stable/torchvision/models.htmldef decom_vgg16(): if opt.caffe_pretrain: model = vgg16(pretrained=False) ...原创 2018-09-26 15:23:00 · 5418 阅读 · 0 评论 -
IoU:Intersection over Union
图片来自:https://blog.csdn.net/iamoldpan/article/details/78799857#传入的是真值标签和预测标签 二维数组def bbox_iou(bbox_a, bbox_b): if bbox_a.shape[1] != 4 or bbox_b.shape[1] != 4: raise IndexError ...原创 2018-09-29 13:38:36 · 861 阅读 · 2 评论 -
NMS 非极大值抑制 Python
#coding:utf-8 import numpy as np #nms 非极大值抑制#输入为bbox数据,包含[ymin,xmin,ymax,xmax];每个bbox的评分;每个bbox的标签,如果没有标签就注释掉def py_cpu_nms(dets,socres,label, thresh=0.4): x1 = dets[:, 0] y1 = d...原创 2018-09-29 13:27:26 · 589 阅读 · 0 评论 -
转:知识蒸馏
转:https://www.cnblogs.com/jins-note/p/9679450.html本文为转载,主要是给自己看的,最好可以到原文查看。蒸馏神经网络取名为蒸馏(Distill),其实是一个非常形象的过程。我们把数据结构信息和数据本身当作一个混合物,分布信息通过概率分布被分离出来。首先,T值很大,相当于用很高的温度将关键的分布信息从原有的数据中分离,之后在同样的温度下用新模...转载 2018-10-14 10:49:02 · 1114 阅读 · 1 评论 -
TypeError: unicode argument expected, got 'str'
将输入的文本转化为unicode格式:line = line.decode("utf-8") 反之亦然line = line.encode("utf-8")原创 2018-09-28 15:12:46 · 2043 阅读 · 0 评论 -
目标检测 合并检测框方法
1.利用并查集合并检测结果窗口使用SimilarRects来计算窗口相似度定义好窗口相似性函数后,就可以利用并查集合并窗口函数了,大致过程如下: 调用Partiton方法进行窗口分组。在该方法中,首先建立Rect对象的并查集初始结构,然后遍历整个并查集,用SimilarRects::operator()判断每2个窗口相似性,若相似则将这2个窗口放入一个组; 运行完步骤1后会...原创 2020-03-27 17:37:07 · 835 阅读 · 0 评论 -
pytorch 从头开始faster-rcnn(四):rpn
具体参数可以查看:https://www.cnblogs.com/wangyong/p/8513563.htmlRPN流程:1.每一张图片生成固定数量的锚节点,锚节点个数是最后一次特征图大小,比如说最后一层特征大小为(37,50),所以有37*50个锚节点.锚节点之间的步长为16像素点,这是因为vgg16有4次maxpool,所有图像缩小了16倍,所以步长为16像素。每一个锚节点又生成9个...原创 2018-09-26 19:29:54 · 3479 阅读 · 0 评论 -
pytorch 从头开始faster-rcnn 最后:使用自己的数据集
本文代码是参考github上的simple-faster-rcnn-pytorch:https://github.com/zylhub/simple-faster-rcnn-pytorch由于代码原作者能力太强 ,我太弱了,很多看不懂,所有先提前把使用放上来供大家参考。修改2个地方就可以使用自己的数据集,不过数据集需要制作成voc2007里面的格式。1.将voc_dataset.py和...原创 2018-10-02 21:23:35 · 2544 阅读 · 23 评论 -
pytorch 从头开始faster-rcnn(五):roi
更新:2019/8/12上文说到最终获得的检测框将用于ROI层真值标签的生成,以及进行筛选3:1的正负样本放入ROI层进行训练(共128个);同时进入ROI层的还有vgg16生成的特征图,这个特征图用于上面说的3:1正负样本坐标将相应位置的特征图抠出来用于ROIpooling层进行金字塔池化,通过金字塔池化生成固定尺寸大小(7*7)特征图;在用来全连接层分类和定位,计算损失方式与PRN...原创 2018-10-02 21:12:55 · 1927 阅读 · 0 评论 -
修改xml文件部分内容
修改xml文件部分内容#coding=utf-8import xml.etree.ElementTree as ETimport globpathload=os.getcwd()print pathloadpath=glob.glob(pathload+'/Annotations/*.xml')print pathfor pathname in path:#读取待修改文件 ...原创 2018-08-14 14:36:20 · 3598 阅读 · 0 评论