![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
目标检测
go ahead
嘻哈过路人
这个作者很懒,什么都没留下…
展开
-
对MobileNet V1-V3的理解
可分离卷积分为:空间可分离卷积与深度可分离卷积MobileNet用的是深度可分离卷积深度可分离卷积:深度可分离卷积=深度卷积(depthwise convolution)+逐点卷积(pointwise convolution)一、MobileNet V1详解1.设输入特征图是M维,卷积核是Dk * Dk,输出特征图是N维,大小是Dg * Dg普通卷积:计算量:Dk * Dk * M * N * Dg * Dg计算量:5 * 5 * 3 * 256 * 8 * 8 ≈ 123W深度卷.原创 2020-08-12 16:07:30 · 5336 阅读 · 0 评论 -
对特征金字塔FPN的理解
论文地址:https://arxiv.org/abs/1612.03144一、图像金字塔顾名思义,就是对源图像的尺寸进行放大或者缩小变换,通过向下采样,金字塔的底部是高分辨率,而顶部是低分辨率,层级越高,则图像越小,分辨率越低。主要解决图像分析尺度问题的,构造特征时:可以适应尺度变化,增加特征维度,构造高维特征。第k层通过平滑,下采样获得第k+1层。一张图片通过下采样上采样可以获得很多张图片,对于人眼而言,一张二维图片好像从近到远,增加了一个维度,可以提供更多的信息。二、浅层特征和深层特征复杂原创 2020-08-11 15:26:05 · 2463 阅读 · 0 评论 -
RPN与ROI Pooling
Faster R-CNN网络结构一、RPN第一条线路:在原图尺度上,设置了密密麻麻的候选Anchor。然后用cnn去判断哪些Anchor是里面有目标的positive anchor,哪些是没目标的negative anchor。feature maps每一个点都有9个anchors,同时每个anchors又有可能是positive和negative,所有这些信息都保存WxHx(9*2)大小的矩阵。通过softmax获得positive anchors,相当于初步提取了检测目标候选区域box(一般认原创 2020-08-10 16:01:57 · 1504 阅读 · 0 评论 -
读取labelimg生成的xml标签
win10 在anaconda下输入pip install labelimg,可能下的比较慢,翻墙下载宿舍很快输入labelimg打开这就可以对自己的数据集打标签了,生成xml类型标签读取文件中所以xml类型import xml.etree.ElementTree as ETimport os sorce = 'C:/Users/msi/Desktop/a/label' # 文件夹路径dir = os.listdir(sorce)for i in range(len(dir原创 2020-08-08 14:08:27 · 5035 阅读 · 3 评论 -
pytorch SSD代码解读(2)
一、预测过程letterbox_image为了防止失帧,不进行简单的resize,先放大图片,进行三次样条插值,创建一个300*300的灰色图片,把放大后的图片粘贴到灰色图片上,相当于在边缘加上灰条。def letterbox_image(image, size): iw, ih = image.size w, h = size scale = min(w/iw, h/ih) nw = int(iw*scale) # nw,nh一定有一个是300 nh = in原创 2020-08-07 16:34:33 · 1155 阅读 · 0 评论 -
pytorch SSD代码解读(1)
SSD总共11个block,网络结构如下import torchimport torch.nn as nndef VGG(): vgg = [] # conv1 # 300,300,3 -> 150,150,64 vgg.append(nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, stride=1, padding=1)) vgg.append(nn.ReLU(inplace=Tr原创 2020-08-04 15:49:06 · 1618 阅读 · 4 评论 -
对SSD理解
SSD是把一张图片先变到360 * 360,为了防止失真,并不是直接resize,而是在边缘加上灰,再划分成六种不同的网格,38 * 38,19 * 19,10 * 10,5 * 5和1 * 1,其中38 * 38,19 * 19用于检测小物体,其余用来检测大物体。...原创 2020-07-31 20:23:30 · 241 阅读 · 0 评论 -
对空洞卷积的理解
一、空洞卷积:不用池化层,因为池化在提供更大的感受野的同时,分辨率降低,会导致空间信息丢失,数据丢失。空间卷积可以避免使用down-sampling,并且在相同的计算量的前提下,提供更大的感受野。设置不同的dilation rate,感受野就会不同,就会有多尺度的信息。在原始特征f0上进行扩张率为1(普通的卷积)的空洞卷积生成f1,f1的一点相对f0感受野为33如图,在f1上做2-dilated的3 * 3卷积,生成的f2上的一点相对于f0感受野为7 * 7;若仍用普通3 * 3的卷积,则生成的原创 2020-07-30 14:05:37 · 2674 阅读 · 0 评论 -
Inception V1理解及pytorch实现
一、Inception V1用全局平均池化层代替了最后的全连接层全连接层几乎占据了中大部分的参数量,会引起过拟合,去除全连接层之后模型可以训练的更快且避免了过拟合的情况。在Inception v1中1*1卷积用于降维,减少参数量和feature map维度。输入28 * 28 * 192的图像,如果直接通过3 * 3 * 256的滤波器(padding=1,stride=1),输出数据是28 * 28 * 256,参数量是192 * 3 * 3 * 256=44w;如果我们在3*3的滤波器前插入原创 2020-07-29 17:52:22 · 2494 阅读 · 2 评论 -
IOU与NMS实现代码
import numpy as npimport cv2# A[0-3]分别代表左上角横坐标,左上角纵坐标,右下角横坐标,右下角纵坐标def IOU(A, B): #交集框的左上角,右下角 xA = max(A[0], B[0]) yA = max(A[1], B[1]) xB = min(A[2], B[2]) yB = min(A[3], B[3]) areaA = (A[2] - A[0] + 1) * (A[3] - A[1] + 1) # 1原创 2020-07-28 14:17:51 · 369 阅读 · 0 评论 -
pytorch实现VGG16网络
import torchimport torch.nn as nnclass VGG16(nn.Module): def __init__(self, nums): super(VGG16, self).__init__() self.nums = nums vgg = [] # 第一个卷积部分 # 112, 112, 64 vgg.append(nn.Conv2d(in_channels=3,.原创 2020-07-27 17:33:00 · 6987 阅读 · 12 评论 -
【目标检测】基础知识:IoU、NMS、Bounding box regression
https://zhuanlan.zhihu.com/p/60794316转载 2020-07-23 12:26:27 · 234 阅读 · 0 评论 -
吴恩达目标检测
目标定位特征点检测滑动窗口速度太慢,受限于窗口大小与滑动步长全连接层用卷积层来代替 定位不准确bounding box图像分成了33个小格,每个小格有八个向量,所以我们目标输出33*8的矩阵(yolo)交并比非极大值抑制选取概率最大的边框,调暗概率低的边框锚框...原创 2020-07-22 19:02:01 · 176 阅读 · 0 评论