ssd-caffe中的annotationDatum数据结构

2023-11-16

这篇博客讲解的非常好,我这里只是搬运和总结

SSD目标检测lmdb数据结构剖析

先看一张图,完美解释了AnnotationDatum的数据结构。

 

um的数据结,SSD读取数据,需要将label和图片封装到一个数据结构下,这时候老版本caffe的Datum数据结构不够用了

我们来看看caffe-ssd的 AnnotatedDatum数据

先看 caffe.proto文件(protubuf,不懂的得先了解一下protobuf)

// The normalized bounding box [0, 1] w.r.t. the input image size.
message NormalizedBBox {
  optional float xmin = 1;
  optional float ymin = 2;
  optional float xmax = 3;
  optional float ymax = 4;
  optional int32 label = 5;
  optional bool difficult = 6;
  optional float score = 7;
  optional float size = 8;
}

// Annotation for each object instance.
message Annotation {
  optional int32 instance_id = 1 [default = 0];
  optional NormalizedBBox bbox = 2;
}

// Group of annotations for a particular label.
message AnnotationGroup {
  optional int32 group_label = 1;
  repeated Annotation annotation = 2;
}

// An extension of Datum which contains "rich" annotations.
message AnnotatedDatum {
  enum AnnotationType {
    BBOX = 0;
  }
  optional Datum datum = 1;
  // If there are "rich" annotations, specify the type of annotation.
  // Currently it only supports bounding box.
  // If there are no "rich" annotations, use label in datum instead.
  optional AnnotationType type = 2;
  // Each group contains annotation for a particular class.
  repeated AnnotationGroup annotation_group = 3;
}

我们可以看到,AnnotationDatum下包含AnnotationType、Datum和AnnotationGroup三个结构

其中Datum结构用于存放图片信息,和老版本caffe的Datum是一样的,.

AnnotationGroup里面包含grouplabel和Annotation结构

Annotation结构里又包含 instance_id和NormalizedBBox结构

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ssd-caffe中的annotationDatum数据结构 的相关文章

  • 操作系统原理大题

    一 地址变换和求FAT表大小 某一页表内容自0 7依次为03 07 0B 11 1A 1D 20 22 请计算页面大小为1K和4K时的逻辑地址134D对应的物理地址 首先 将134D转换为二进制数为 0001001101001101 1k为
  • 【2024届校招内推:NTAA84y】腾讯云智研发中心

    云智校招新官网查看最新岗位情况 云智研发中心2024届校园招聘官网 内推码 NTAA84y 云智研发公司2024届校园招聘启动啦 腾讯旗下子公司 八大类岗位 五大城市全面开放 在喜欢的城市 做喜欢的工作 期待正能量 共担当 实干家的你加入云
  • dumpsys meminfo 的原理和应用

    什么是dumpsys meminfo Android中通过命令dumpsys meminfo package name pid 查看指定进程的内存使用情况 通过输出的信息 可以看出来应用在内存哪里分配出现了问题 比如native heap
  • 华为服务器sn号查询网站,linux 查询服务器sn

    linux 查询服务器sn 内容精选 换一换 Linux云服务器变更规格时 可能会发生磁盘挂载失败的情况 因此 变更规格后 需检查磁盘挂载状态是否正常 本节操作介绍变更规格后检查磁盘挂载状态的操作步骤 以root用户登录云服务器 执行以下命
  • top 命令

    NAME top display Linux tasks SYNOPSIS top hv abcHimMsS d delay n iterations p pid pid a 按内存使用排序 b 批处理 c 显示完整的命令 d 指定间隔时间
  • 文章目录 定义 抽象类型定义 存储结构 顺序存储 定长顺序存储结构 堆式顺序存储结构 链式存储 串的链式存储结构 定义 串是一种内容受限的线性表 串 字符串 由零个或多个字符组成的有限序列 子串 串的任意个连续的字符组成的子序列 主串 包含
  • 深度学习部署--tensorflow 用c++调用前向

    使用TensorFlow C API构建线上预测服务 第一篇 Oct 9 2017 tensorflow 文章目录 1 使用Python接口训练模型 2 源码编译TensorFlow 3 使用TensorFlow C API编写预测代码 3
  • 线下零售场景的消费者商品场景终端数字升级

    按照识别的精度排序 确实是虹膜 指纹 人脸的识别精度依次降低 但人脸识别可以根据摄像头的提升而提升 双目摄像头 结构光摄像头 TOF等等 这个上升空间很大 从应用性来看 你现在让所有的用户都去提取虹膜信息 指纹信息 这个很难 不现实 而我们
  • 微信小游戏 can't find variable: window

    最近测试微信小游戏的时候 需要加入一些SDK代码 在加入这些文件到项目并require相应的库的时候 小游戏开发者工具一直报错 can t find variable window 查找了相关资料 https developers weix
  • 逐点插入法实现 Delaunary三角网 ( 附 C++ 代码)

    逐点插入法作为一种经典的凸闭包收缩算法 其思想是 首先找到包含数据区域的最小凸包边形 并从该多边形开始从外到内形成Delaunary三角网 因此其每次插入一个新的点就会删除相应的三角形来构建性的三角网 这个过程中常常伴随着大量的查询计算过程
  • flutter 从A到B,然后在从B返回A页面,A页面刷新数据

    flutter 从A到B 然后在从B返回A页面 A页面刷新数据实现代码如下 Navigator push context MaterialPageRoute builder context gt NoticePage then value
  • 解决java.lang.IllegalArgumentException: Could not resolve placeholder xx.xx.addr 的问题,思路:一定是配置文件问题

    今天启动SpringBoot遇到一个问题 提示 java lang IllegalArgumentException Could not resolve placeholder xx xx addr in value xx xx addr
  • pytorch源码解读——RNN/LSTM篇

    文章的字母中 b batch size t time step n num feature h hidden size 假设输入数据维度input b t n 所设计的LSTM模型如下 class MYLSTM nn Module def
  • OkHttpUtils 下载上传文件

    目录 一 使用时需要先添加依赖 build gradle文件中 二 使用注意事项 三 OkHttpUtils 目前支持 3 1 统一的文件下载管理 DownloadManager 3 2 统一的文件上传管理 UploadManager 四
  • 硬链接与软连接:

    磁盘文件简单的一个框架图 磁盘里的文件系统如何管理 将磁盘划分成几个区域 前面是磁盘信息 第一个区域 放的是超级块 第二个区域 是inode 在磁盘上每创建一个文件 就会对应一个inode的结构体 第三个区域 目录项 目录项分为两项 第一项
  • linux下oracle启动过程

    在linux下启动oracle 和在windows是有差别的 对于一般在windows下操作习惯人有很多不适应 所以我特别写这样文章 以方便新手进行操作 下面就一步一步讲解启动过程 1 通过终端连接到linux服务器 当然这样的软件很多例如
  • 腾讯T2亲自教你!2021年Android工作或许更难找,送大厂面经一份!

    近日一好友去阿里面试 面试失败了 分享了一个他最不擅长的算法面试题 题目是这样的 题目 给定一个二叉搜索树 BST 找到树中第 K 小的节点 出题人 阿里巴巴出题专家 文景 阿里云 CDN 资深技术专家 参考答案 考察点 基础数据结构的理解
  • tronweb 波场导入助记词生成地址

    创建助记词 let tronWeb require tronweb let mne tronWeb createRandom 导入助记词 let tronWalletImport tronWeb fromMnemonic m m 44 19

随机推荐

  • echarts laben 饼图指示线条+文字颜色继承

    注意 label并不支持HTML片段 版本5 30 label show true alignTo edge position outside formatter name b n time c 小时 formatter b b n cst
  • Vue3挂载全局方法及组件中如何使用

    文章目录 前言 一 在mian ts mian js 中配置全局变量 1 如何封装 二 如何调用 1 template中调用 2 在script标签中如何拿到 前言 在Vue3项目中 需要频繁使用某一个方法 配置到全局感觉会方便很多 例如
  • Nodejs中electron IpcMain & IpcRenderer通信

    1 事情起因 原因是本人在使用nedb数据库进行数据插入的时候 发现莫名其妙多出了很多很多的数据 很容易想到 那么就是插入语句被调用了N多次 并且每一次插入的数据都是之前已经插入过的数据 比如说第一次插入的是 id 1 name xx 第二
  • MongoDB 聚合

    MongoDB 聚合有什么用 实际项目中 我们经常需要将多个文档甚至是多个集合汇总到一起计算分析 比如求和 取最大值 并返回计算后的结果 这个过程被称为 聚合操作 根据官方文档介绍 我们可以使用聚合操作来 将来自多个文档的值组合在一起 对集
  • 我赌你不懂系列:char占几个字节

    前言 我百度搜索 char占几个字节 得到下面的答案 image png char用于C或C 中定义字符型变量 只占一个字节 取值范围为 128 127 27 27 1 char类型占1字节 就是8位 所能存储的正整数是 0111 1111
  • linux status文件,linux的 functions之status函数详解

    检测一个二进制可运行程序是否运行 使用方法 status p pidfile program status local base pid pid file Test syntax 测试调用该函数时的参数格式 if 0 then echo U
  • Mpvue-echarts发布自定义事件

    引入库 npm install mpvue echarts 直接上源码
  • MyBatis学习-getMapper接口绑定方案及多参数传递

    一 采用接口绑定方案的作用 创建一个接口后 MyBatis框架将mapper xml通过反射机制生成接口的实现类 通过调用接口对象就可以获取mapper xml中编写的sql 方便sql语句的调用 方便多个参数的传递 在未使用接口绑定方案前
  • Layui实现登录注册共用页面

    正文 创建一个Spring Boot项目 勾选Web Thymeleaf即可 pom文件中导入图片验证码的依赖
  • shiro通过注解方式自定义控制接口无需认证访问的解决过程

    1 需求背景 用过Shiro的小伙伴都知道 shiro提供两种权限控制方式 通过过滤器或注解 我们项目是springboot vue前后分离项目 后台对于权限控制一直使用的是过滤器的方式 并且还有自定义的过滤器 大概如下 Bean shir
  • 博途V16:找不到step7basic许可,解决办法

    1 启动服务项 打开服务 找到Automation License Manager Service服务项 如果未启动 启动该项 并 启动方式改为自动 这应该就行了 打开博途试试 2 再次装在秘钥 至于是不是这样装载我也不确定
  • Temporary failure in name resolution

    File usr local lib python2 7 dist packages pip 9 0 1 py2 7 egg pip vendor cachecontrol adapter py line 47 in send resp s
  • 快速解决Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126问题

    42000 1118 Row size too large The maximum row size for the used table type not counting BLOBs is 8126 This includes stor
  • 前端工作过程遇到的问题总结(九)

    目录 JS中every 和some 的用法 置换元素和非置换元素 ES6的map数据类型转换 关于原生方法增加参数的问题 element增加参数 element ui中的表格el table滚动条样式修改 vue设置路由title 实现在v
  • Markdown表格合并单元格

    Markdown表格合并单元格 Markdown表格语法介绍 基本语法 属性1 属性2 属性3 value1 value1 value1 value2 value2 value2 实例 实现 属性名 含义 常用属性值 border 设置表格
  • 字节跳动面试官总结的SQL调优教程,让你调优就跟吃饭喝水一样简单,教你抓住SQL的本质!

    前言 SOL 优化并不简单 做好 SOL 优化需要掌握数据库体系结构 表和索引设计 高效 SOL法 高级 SOL 语法 多种优化工具等知识 甚至还得分析业务特点 以及了解优化器的缺点 只有建立 SOL 优化方法论体系 才能够迅速找到最适合的
  • Maven引入log4j日志

    1 1依赖导入
  • 6.4行为型模式——责任链模式

    在现实生活中 常常会出现这样的事例 一个请求有多个对象可以处理 但每个对象的处理条件或权限不同 例如 公司员工请假 可批假的领导有部门负责人 副总经理 总经理等 但每个领导能批准的天数不同 员工必须根据自己要请假的天数去找不同的领导签名 也
  • SQL-计算留存率cohort

    目录 1 留存率cohort介绍及其业务价值 2 计算思路 3 实操 3 1 日对日留存cohort 3 2 周对周留存cohort 3 3 月对月留存cohort 1 留存率cohort介绍及其业务价值 留存率cohort也叫做同期群留存
  • ssd-caffe中的annotationDatum数据结构

    这篇博客讲解的非常好 我这里只是搬运和总结 SSD目标检测lmdb数据结构剖析 先看一张图 完美解释了AnnotationDatum的数据结构 um的数据结 SSD读取数据 需要将label和图片封装到一个数据结构下 这时候老版本caffe