Tensoflow-SSD代码解读(github-balancap代码)
1)先验框计算
对于一个大小 为m*n 的特征图,共有 mn 个单元,每个单元设置的先验框数目记为 k ,那么每个单元共需要 (c+4)k 个预测值,所有的单元共需要 (c+4)kmn 个预测值,由于SSD采用卷积做检测,所以就需要 (c+4)k 个卷积核完成这个特征图的检测过程。
2)先验框匹配
原则一:每个ground truth匹配与其IOU最大的先验框(为正样本);原则二:剩余未匹配的先验框与所有ground truth匹配,IOU大于一定阈值(0.5)(先验框为正)。先验框数量较ground truth大很多,所以负样本数量很多,所以SSD算法采取了Hard negativate mining技术对负样本进行抽样,抽样时按照置信度误差(预测背景的置信度越小,误差越大)进行降序排列,选取误差的较大的top-k作为训练的负样本,以保证正负样本比例接近1:3。
置信度的理解:
Pr(Object)是先验框内存在对象的概率,并不管是哪个对象,它体现的是有或没有对象的概率
表示先验框与ground truth的IOU
代码:此部分代码主要是在代码,bbox编码部分,ssd_vgg_300.py,ssd_common.py
3)损失函数
N是参与训练的正样本数, 为一个指示参数,表示第i个先验框与第j个ground truth在类别为p时是否匹配,匹配为1,不匹配为0。由于此参数的存在,所以位置误差仅是针对正样本计算的。
先验框位置用 表示,其对应边界框用
表示,那么边界框的预测值
其实是
相对于
的转换值:
是ground truth相对于先验框的转换值:
代码部分:
4)预测部分
1)参数初始化
2)网络结构
3)预测结果reshape
4)Anchor坐标获取
5)bbox解码
6)bbox选择
发现问题:
(1)Anchor获取部分,关于Anchor的w,h计算部分
(2)代码收敛问题,推荐代码链接https://github.com/HiKapok/SSD.TensorFlow
(3)关于损失函数计算部分
参考链接:https://zhuanlan.zhihu.com/p/37635878(纪录了检测流程)
https://zhuanlan.zhihu.com/p/37635878
Tensoflow-SSD代码解读(github-balancap代码)相关推荐
- java车间调度算法_混合算法(GA+TS)求解作业车间调度问题代码解读+完整JAVA代码...
程序猿声 代码黑科技的分享区 前两篇文章中,我们介绍了FJSP问题,并梳理了一遍HA算法.这一篇文章对小编实现的(很乱很烂的)代码进行简单解读. 往期回顾: 代码下载请关注公众号,后台回复[FJSPH ...
- matlab sift代码解读,MATLAB SIFT 代码
[实例简介] matlab 实现的 sift 变换 的代码,包含整个过程的详细步骤. [实例截图] [核心代码] sift-0.9.0 ├── data │ ├── img3.jpg │ ├─ ...
- BERT:代码解读、实体关系抽取实战
目录 前言 一.BERT的主要亮点 1. 双向Transformers 2.句子级别的应用 3.能够解决的任务 二.BERT代码解读 1. 数据预处理 1.1 InputExample类 1.2 In ...
- GoogLeNet代码解读
GoogLeNet代码解读 目录 GoogLeNet代码解读 概述 GooLeNet网络结构图 1)从输入到第一层inception 2)从第2层inception到第4层inception 3)从第 ...
- 基于SegNet和UNet的遥感图像分割代码解读
基于SegNet和UNet的遥感图像分割代码解读 目录 基于SegNet和UNet的遥感图像分割代码解读 前言 概述 代码框架 代码细节分析 划分数据集gen_dataset.py UNet模型训练u ...
- 图像分割套件PaddleSeg全面解析(一)train.py代码解读
首先祝贺百度团队百度斩获NeurIPS2020挑战赛冠军,https://www.jiqizhixin.com/articles/2020-12-09-2. 在此次比赛中使用的是基于飞桨深度学习框架开 ...
- shfflenetv2代码解读
shufflenetv2代码解读 目录 shufflenetv2代码解读 概述 shufflenetv2网络结构图 shufflenetv2架构参数 shufflenetv2代码细节分析 概述 shu ...
- Inception代码解读
Inception代码解读 目录 Inception代码解读 概述 Inception网络结构图 inception网络结构框架 inception代码细节分析 概述 inception相比起最开始兴 ...
- AlexNet代码解读
AlexNet代码解读 目录 AlexNet代码解读 概述 网络结构图 AlexNet代码细节分析 概述 AlexNet的网络结构很简单,是最初级版本的CNN,没有使用什么技巧. 网络分成两个部分,分 ...
- 飞桨PP-HumanSeg本地实时视频推理代码解读
文章同样发布在百度AIStudio,Fork后即可在线运行,请点击这里 本人希望基于PaddleSeg对视频实时进行图像分割,但在AiStudio中检索分割和实时两个关键词后并没有得到理想的结果,大部 ...
最新文章
- 日志多租户架构下的Loki方案
- City of Angels
- IOS开发中的变量、方法、属性
- 如何更好的与人沟通?[图]
- Nagios安装部署与Cacti整合文档超精细版本
- ef ddl生成不了脚本_如何使用Hibernate从Play生成DDL脚本! 框架项目
- 狄慧201771010104《面向对象程序设计(java)》第十周学习总结
- iterator remove_Iterator与fast-fail机制
- 2015湖南省选集训DAY5——work(BZOJ4177)
- MySQL 字段类型解析
- tensorflow 模型权重导出
- 开课吧Java课堂之如何使用FilenameFilter
- sqlplus下无法shutdown情况下不妨试试crsctl stop crs
- RF-实现接口自动化
- RTL8211千兆网PHY芯片LED灯配置
- 前端资源汇总-酷站分享[转载]
- 实参可以是任意类型吗_5本可以解决书荒的粮草小说,类型随机,看看有你喜欢的吗?...
- 为什么有了FineBI后还会有FineReport?这两者的区别真的很大
- Python 位操作符(Bitwise)
- 7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format
热门文章
- YurunOAuthLogin v2.0.2,第三方 OAuth2 授权一把梭
- js函数、作用域和闭包
- Haproxy+Rabbitmq中的问题
- 解锁区块链的创业密码
- Vector3 *2 ,ToString()自动四舍五入
- ASP.NET MVC 重点教程一周年版 第八回 Helper之演化
- Java实现动画逐字打印
- classpath理解
- oracle时间戳效率问题,时间戳问题 - Oracle开发 - ITPUB论坛-中国专业的IT技术社区...
- 关于读入带空格的字符串与输入输出重定向