Select Language

AI社区

公开数据集

NORB  3D物体图像识别数据集

NORB 3D物体图像识别数据集

5.76G
774 浏览
0 喜欢
3 次下载
0 条讨论
Action/Event Detection 3D Model

NORB 是 3D 物体图像识别数据集。此数据库用于从形状进行3D对象重新定位的实验,从不同的角度对 5 大类别(四条腿的动物、人像、......

数据结构 ? 5.76G

    Data Structure ?

    * 以上分析是由系统提取分析形成的结果,具体实际数据为准。

    README.md

    NORB 是 3D 物体图像识别数据集。此数据库用于从形状进行3D对象重新定位的实验,从不同的角度对 5 大类别(四条腿的动物、人像、飞机、卡车、小汽车)中的 50 个玩具模型进行图像拍摄。拍摄采用了 2 个照相机,6 种不同的光照条件,9个高度(每5度30到70度)和18个方位角(每20度0到340个)。 训练集合中包括每个类别的 5 个实例,余下 5 个实例为测试集。
     

    内容

    gzip压缩文件以供下载。在未压缩之后,它们采用简单的二进制矩阵格式,文件后缀为“.mat”。文件格式将在后面的部分中介绍。

    “-dat”文件存储图像序列。“-cat”文件存储相应的图像类别。每个“-dat”文件存储29,160个图像对(6个类别,5个实例,6个照明,9个高程和18个方位角)。第6类用于没有对象的图像,可用于训练系统拒绝图像,而不是5个对象类别。每个相应的“-cat”文件包含29,160个类别标签(动物为0,人为1,飞机为2,卡车为3,汽车为4,空白为5)。

    每个“-info”文件存储29,160个10维向量,其包含关于相应图像的附加信息。向量中的前4个元素是:
    - 1.类别中的实例(0到9)
    - 2.高程(0到8,表示相机是30,35,40,45,50,55,60,分别距离水平65,70度)
    - 3.方位角(0,2,4,...,34,乘以10得到方位角度)
    - 4.照明条件(0到5)
    和接下来的6个元素描述了当叠加到杂乱的背景上时添加到对象的扰动。(见下一节)

    对于常规培训和测试,“-dat”和“-cat”文件就足够了。如果需要某些其他形式的分类或预处理,则提供“-info”文件。

     

    抖动的物体和破碎的背景

    捕获后,处理每个图像,使对象在图像中居中(对象像素的质心位于图像的中心),缩放使得边界框大约为80x80像素,并放置在制服上背景,包括投射阴影。

    然后将3个变化源添加到数据集中: - 对象被攻击 - 对象叠加到复杂背景上 - 将distractor对象添加到背景中

    物体以5种方式随机地被扰乱。它们按0.78到1.0之间的因子进行缩放; 面内旋转-5至+5度; 并在水平和垂直方向上移动-6到+6像素。图像强度(在0到255的范围内)是-20到+20之间的随机值; 图像对比度在0.8到1.3的范围内。这些扰动存储在“-info”文件的最后6个元素中:
    - 5.水平移位(-6到+6)
    - 6.垂直移位(-6到+6)
    - 7.亮度变化(-20到+20)
    - 8.对比度(0.8到1.3)
    - 9.对象比例(0.78到1.0)
    - 10.旋转(-5到+5度)

    从Corel图像库的自然场景图像的子集中提取复杂背景图像。这些图像包含具有大区域对比度的场景,例如湖泊山脉和不规则区域边界。

    每个图像都添加一个分心器对象。牵开器位于图像的边界,但可能使主要物体在中心变得杂乱。

    有些图像只有背景和干扰物。这些图像属于他们自己的类别,如类别文件中所示。

     

    文件格式

    文件以所谓的“二进制矩阵”文件格式存储,该文件格式是用于各种元素类型的向量和多维矩阵的简单格式。二进制矩阵文件以文件头开头,该文件头描述矩阵的类型和大小,然后是矩阵的二进制图像。

    标题最好由C结构描述:

    struct header {
    int magic; // 4字节
    int ndim; // 4个字节,小尾数
    int dim [3];
    };

    请注意,当矩阵的维度少于3维时,比如说它是1D向量,那么dim [1]和dim [2]都是1.当矩阵的维度超过3时,标题后面会跟着更大的维度信息。否则,在文件头到来之后,矩阵数据与最后一维中的索引一起存储的变化最快。

    幻数编码矩阵的元素类型:
    -用于0x1E3D4C51单精度矩阵
    - 0x1E3D4C52用于打包矩阵
    - 0x1E3D4C53用于双精度矩阵
    - 0x1E3D4C54为一个整数矩阵
    - 0x1E3D4C55为字节矩阵
    - 0x1E3D4C56一小段矩阵

    由于文件是在Intel机器上生成的,因此它们使用little-endian方案对4字节整数进行编码。在使用big-endian的机器上读取文件时要特别注意。

    - “-dat”文件存储尺寸为29160x2x108x108的4D张量。
    - “-cat”文件存储尺寸为29,160的1D向量。
    - “-info”文件存储尺寸为29160x10的2D矩阵。

    这是一段Matlab代码,用于说明如何阅读一些示例文件。(为了避免endian混淆,我们读取标题的字节):

    >> fid = fopen('norb-5x46789x9x18x6x2x108x108-training-10-dat.mat','r');
    >> fread(fid,4,'uchar'); %result = [85 76 61 30],它是一个字节矩阵
    >> fread(fid,4,'uchar'); %result = [4 0 0 0],ndim = 4
    >> fread(fid,4,'uchar'); %result = [232 113 0 0],dim0 = 29160(= 113 * 256 + 232)
    >> fread(fid,4,'uchar'); %result = [2 0 0 0],dim1 = 2
    >> fread(fid,4,'uchar'); %result = [108 0 0 0],dim2 = 108
    >> fread(fid,4,'uchar'); %result = [108 0 0 0],dim3 = 108
    >> imshow(transpose(reshape(fread(108 * 108),108,108)),[0 255]); %显示第一张图片

    >> fid = fopen('norb-5x46789x9x18x6x2x108x108-training-10-cat.mat','r');
    >> fread(fid,4,'uchar'); %[84 76 61 30],整数矩阵
    >> fread(fid,4,'uchar'); %[1 0 0 0] ndim = 1
    >> fread(fid,4,'uchar'); %[232 113 0 0] dim0 = 29160(= 113 * 256 + 232)
    >> fread(fid,4,'uchar'); %[1 0 0 0](忽略这个)
    >> fread(fid,4,'uchar'); %[1 0 0 0](忽略这个)
    >> fread(fid,10,'int'); %[0 1 2 3 4 5 0 1 2 3](在小端CPU上)

    >> fid = fopen('norb-5x46789x9x18x6x2x108x108-training-10-info.mat','r');
    >> fread(fid,4,'uchar'); %[84 76 61 30],整数矩阵
    >> fread(fid,4,'uchar'); %[2 0 0 0] ndim = 2
    >> fread(fid,4,'uchar'); %[232 113 0 0] dim0 = 29160(= 113 * 256 + 232)
    >> fread(fid,4,'uchar'); %[10 0 0 0] dim1 = 10
    >> fread(fid,4,'uchar'); %[1 0 0 0](忽略这个)
    >> fread(fid,10,'int'); %[8 5 10 4 -3 0 -6 1 0 -4](在小端CPU上)

    这是从“norb-5x46789x9x18x6x2x108x108-training-10-dat.mat”读取的前30个图像对的屏幕截图,排列自上而下和从左到右(列主要)。每对下面的标题显示相应“-cat.mat”和“-info.mat”文件中的内容。它们是“类别/实例/高程/方位角/照明”。对于背景图像,后面的4个数字都是-1。


    暂无相关内容。
    暂无相关内容。
    • 分享你的想法
    去分享你的想法~~

    全部内容

      欢迎交流分享
      开始分享您的观点和意见,和大家一起交流分享.
    所需积分:10 去赚积分?
    • 774浏览
    • 3下载
    • 0点赞
    • 收藏
    • 分享