我这里是由于数据整理错误导致的,同一标注区域重复2次送入模型,具体如下: 0.798046875 0.5555555555555556 0.04296875 0.03611111111111111 0.931640625 0.6173611111111111 0.06953125 0.07083333333333333 0.869140625 0.5777777777777777 0.06171875 0.05277777777777778 0.837890625 0.5791666666666…
[代码剖析]   推荐阅读! SSD 学习笔记 之前看了一遍 YOLO V3 的论文,写的挺有意思的,尴尬的是,我这鱼的记忆,看完就忘了  于是只能借助于代码,再看一遍细节了. 源码目录总览 tensorflow-yolov3-master ├── checkpoint //保存模型的目录 ├── convert_weight.py//对权重进行转换,为了模型的预训练 ├── core//核心代码文件夹 │ ├── backbone.py │ ├── common.py │ ├── config…
每当听到有人问“如何入门计算机视觉”这个问题时,其实我内心是拒绝的,为什么呢?因为我们说的计算机视觉的发展史可谓很长了,它的分支很多,而且理论那是错综复杂交相辉映,就好像数学一样,如何学习数学?这问题似乎有点笼统.有点宽泛.所以我都会具体问问你想入门计算机视觉的哪个话题,只有顺着一个话题理论联合实际,才有可能扩展到几个话题. yolo类算法,从开始到现在已经有了3代,我们称之为v1.v2.v3,一路走来,让人能感觉到的是算法的性能在不断的改进,以至于现在成为了开源通用目标检测算法的领头羊(ps:…
结合开源项目tensorflow-yolov3(https://link.zhihu.com/?target=https%3A//github.com/YunYang1994/tensorflow-yolov3),理解YOLO v3实现细节整体套路 简单写写 1.数据预处理 voc_annotation.py生成训练测试txt文件,存储了图片路径,bbox和类别 dataset.py 的功能如下: (1)通过读取voc_annotation.py生成的train.txt文件,对图片进行增强处理(…
图片来自https://towardsdatascience.com/yolo-v3-object-detection-with-keras-461d2cfccef6 数据前处理 输入的图片维数:(416, 416, 3) 输入的图片标注:$[(x_1, y_1, x_2, y_2, class{\_}index), (x_1, y_1, x_2, y_2,class{\_}index), \ldots, (x_1, y_1, x_2, y_2,class{\_}index)]$ 表示图片中标注…
论文地址:https://pjreddie.com/media/files/papers/YOLOv3.pdf论文:YOLOv3: An Incremental Improvement YOLO系列的目标检测算法可以说是目标检测史上的宏篇巨作,接下来我们来详细介绍一下YOLO v3算法内容,v3的算法是在v1和v2的基础上形成的,所以有必要先回忆:一文看懂YOLO v1,一文看懂YOLO v2. 网络结构 从这儿盗了张图,这张图很好的总结了YOLOV3的结构,让我们对YOLO有更加直观的理解.D…
基本思想V1: 将输入图像分成S*S个格子,每隔格子负责预测中心在此格子中的物体. 每个格子预测B个bounding box及其置信度(confidence score),以及C个类别概率. bbox信息(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,均被归一化. 置信度反映是否包含物体,以及包含物体情况下位置的准确性.定义为Pr(Object)×IoU,其中Pr(Object)∈{0,1} 改进的V2: YOLO v2主要改进是提高召回率和定位能力. Batch Normal…
1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f(x) 与真实值 Y 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x)) 来表示. 损失函数越小,模型的鲁棒性就越好. 损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分.模型的风险结构包括了风险项和正则项,通常如下所示: 其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的 Φ 是正则化项(regularizer)或者叫惩罚项(penalty term), 它可以是L1,…
yolo为you only look once. 是一个全卷积神经网络(FCN),它有75层卷积层,包含跳跃式传递和降采样,没有池化层,当stide=2时用做降采样. yolo的输出是一个特征映射(feature map) Yolo是将输入图像划分为sxs个格子,每个格子越策b个bounding box,每个bbx有5个系数. s的取值为输出特征映射的最低维度,例如输入图像为416X416,则输出特征映射为13x13(具体算法为416,208,104,52,26,13,每次降采样相当于图像大小减…
本文好多内容转载自 https://blog.csdn.net/leviopku/article/details/82660381 yolo_v3 提供替换backbone.要想性能牛叉,backbone可以用Darknet-53,要想轻量高速,可以用tiny-darknet 首先,看一下YOLOV3网络结构 DBL: 如图1左下角所示,也就是代码中的Darknetconv2d_BN_Leaky,是yolo_v3的基本组件.就是卷积+BN+Leaky relu.对于v3来说,BN和leaky r…
https://blog.csdn.net/u010976453/article/details/78488279 1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f(x)f(x) 与真实值 YY 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x))L(Y,f(x)) 来表示.损失函数越小,模型的鲁棒性就越好.损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分.模型的风险结构包括了风险项和正则项,通常如下所示:   θ∗=argminθ1N…
目录 原因 表达式计算 类型转换 总结 不知道这个小知识点用得多不多,曾经在书上看到过,所以有一些印象,前段时间顺手写出类似如下的代码 var result; if (parseInt('abc')==NaN) { return "相等"; } else { return "不等"; } 断点调试之后发现无论如何都不相等,方法parseInt()返回的结果确实是NaN,但是与右侧的NaN比较返回的结果却是false,这时候才突然想起来NaN有不等于自身的特性,所以简…
train loss与test loss结果分析 train loss 不断下降,test loss不断下降,说明网络仍在学习; train loss 不断下降,test loss趋于不变,说明网络过拟合; train loss 趋于不变,test loss不断下降,说明数据集100%有问题; train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目; train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不…
nan:not a number inf:infinity;正无穷 numpy中的nan和inf都是float类型     t!=t 返回bool类型的数组(矩阵) np.count_nonzero() 返回的是数组中的非0元素个数:true的个数. np.isnan() 返回bool类型的数组. 那么问题来了,在一组数据中单纯的把nan替换为0,合适么?会带来什么样的影响? 比如,全部替换为0后,替换之前的平均值如果大于0,替换之后的均值肯定会变小,所以更一般的方式是把缺失的数值替换为均值(中…
本节翻译自:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch-part-5/ 在前一节最后,我们实现了一个将网络输出转换为检测预测的函数.现在我们已经有了一个检测器了,剩下的就是创建输入和输出的流程. 必要条件: 1.此系列教程的Part1到Part4. 2.Pytorch的基本知识,包括如何使用nn.Module,nn.Sequential,torch.n…
本教程翻译自https://blog.paperspace.com/how-to-implement-a-yolo-object-detector-in-pytorch/ 视频展示:https://www.youtube.com/embed/8jfscFuP_9k(需要FQ) 深度学习的发展给目标检测任务带来了显著提升.近年来人们开发了许多用于目标检测的算法,包括YOLO.SSD.Mask RCNN和RetinaNet等. 在过去的几个月里,我一直在一个研究实验室致力于改进目标检测.这次经历中我…
背景 要在YOLO v2上作出改进. 方法 (1)分类器改变.从softmax loss改变为logistic loss,作用是处理符合标签,softmax loss只能用来预测只有一种类别的目标,logistic loss可以是多种类别. (2)引入多级预测机制.在三种尺度的特征图上做detection. (3)模仿了ResNet里residual block 的short cut,模型采用Darknet-53. 总结 没创新,效果好.…
目标检测模型主要分为two-stage和one-stage, one-stage的代表主要是yolo系列和ssd.简单记录下学习yolo系列的笔记. 1 yolo V1 yolo v1是2015年的论文you only look once:unified,real-time object detection 中提出,为one-stage目标检测的开山之作.其网络架构如下:(24个卷积层和两个全连接层,注意最后一个全连接层可以理解为1*4096到1*1470(7*7*30)的线性变换) yolo…
暗恋之纯粹,在于不求结果,完全把自己锁闭在一个单向的关系里面. --梁文道<暗恋到偷窥> 本文为读 lodash 源码的第五篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 本篇分析的是 eq 函数. 作用与用法 eq 函数用来比较两个值是否相等.遵循的是 SameValueZero 规范. var obj1 = {test: 1} var obj2 = {test: 1} var ob…
转自:http://blog.csdn.net/xiaodongxiexie/article/details/54352889 在处理数据时遇到NAN值的几率还是比较大的,有的时候需要对数据值是否为nan值做判断,但是如下处理时会出现一个很诡异的结果: import numpy as np np.nan == np.nan #此时会输出为False 1 2 3 4 对np.nan进行help查看,输出如下: Help on float object: class float(object) |…
YOLO3主要的改进有:调整了网络结构:利用多尺度特征进行对象检测:对象分类用Logistic取代了softmax. 1.Darknet-53 network在论文中虽然有给网络的图,但我还是简单说一下.这个网络主要是由一系列的1x1和3x3的卷积层组成(每个卷积层后都会跟一个BN层和一个LeakyReLU)层,作者说因为网络中有53个convolutional layers,所以叫做Darknet-53(我数了下,作者说的53包括了全连接层但不包括Residual层).下图就是Darknet-…
train loss 不断下降,test loss不断下降,说明网络仍在学习; train loss 不断下降,test loss趋于不变,说明网络过拟合; train loss 趋于不变,test loss不断下降,说明数据集100%有问题; train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目; train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题.…
train loss 不断下降,test loss不断下降,说明网络仍在学习; train loss 不断下降,test loss趋于不变,说明网络过拟合; train loss 趋于不变,test loss不断下降,说明数据集100%有问题; train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目; train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题.…
均方误差(Mean Square Error,MSE)和平均绝对误差(Mean Absolute Error,MAE) 是回归中最常用的两个损失函数,但是其各有优缺点.为了避免MAE和MSE各自的优缺点,在Faster R-CNN和SSD中使用\(\text{Smooth} L_1\)损失函数,当误差在\([-1,1]\) 之间时,\(\text{Smooth} L_1\)损失函数近似于MSE,能够快速的收敛:在其他的区间则近似于MAE,其导数为\(\pm1\),不会对离群值敏感. 本文再介绍几…
train loss 不断下降,test loss不断下降,说明网络仍在学习;(最好的)train loss 不断下降,test loss趋于不变,说明网络过拟合;(max pool或者正则化)train loss 趋于不变,test loss不断下降,说明数据集100%有问题;(检查dataset)train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;(减少学习率)train loss 不断上升,test loss不断上升,说明网络结构设计不当…
运行步骤 1.从 YOLO 官网下载 YOLOv3 权重 wget https://pjreddie.com/media/files/yolov3.weights 下载过程如图: 2.转换 Darknet YOLO 模型为 Keras 模型 python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5 转换过程如图: 3.运行YOLO 目标检测 python yolo.py 需要下载一个图片,然后输入图片的名称,如图所示: 我并没有…
问题1 TypeError: function takes exactly 1 argument (3 given) 报错说PIL库中的函数只接收到一个参数,应该给三个,自己在这里记录下解决方法,出错的地方在yolo.py中,在yolo中在测试时需要对检测到的区域进行画出标记框和类别数字,因为作者测试的coco等图库都是RGB图像,会有三个参数输入给rectangle函数,不会发生报错,而在测试图像为灰度图时,就会出错.在解决错误是参考了参考文献[1]中的提示,很感谢! 对于这个错误原因,个人认…
代码地址:https://github.com/YunYang1994/tensorflow-yolov3 https://hackernoon.com/understanding-yolo-f5a74bbc7967 这个网址对YOLO的解释很好, https://zhuanlan.zhihu.com/p/183261974  And this. https://arleyzhang.github.io/articles/1dc20586/ 官网无法下载.…
本节翻译自:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch-part-3/ 前一节我们实现了YOLO结构中不同类型的层,这一节我们将用Pytorch来实现整个YOLO结构,定义网络的前向传播过程,最终能够实现给定一张图片获得检测输出. 这个项目使用python 3.5与Pytorch 0.4进行编写,官方地址. 必备条件: 本教程的part1与part2…
本节翻译自:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch-part-2/ 必备条件: 此教程part1-YOLO的工作原理 PyTorch的基本工作知识,包括如何使用 nn.Module, nn.Sequential and torch.nn.parameter 等类创建自定义网络结构 下面我将假设你有了一定的PyTorch基础.如果您是一个入门者,我建…