机器人抓取必备:Cornell数据集百度网盘下载+实战应用避坑手册(附缺失深度图修复方案)

【图神经网络基础】认识数据集--异质数据集Cornell 节点(Webpages)每个节点代表一个网页。每个网页有一个特征向量,通常使用词袋模型(Bag of Words)表示网页内容。边(Hyperlinks)每条边表示一个网页到另一个网页的超链接。边是有向的,即超链接有方向性。标签(Labels)每个网页被标注为5个类别之一。 阅读详情

机器人抓取实战:Cornell数据集深度解析与工程化应用指南

如果你正在为机器人抓取检测项目寻找一个经典、可靠的起点,Cornell Grasping Dataset 大概率已经出现在你的候选名单里。这个诞生于康奈尔大学的研究数据集,多年来一直是学术界和工业界验证抓取检测算法的“试金石”。然而,对于国内的研究者和工程师而言,直接访问原官网下载数据、理解其独特的文件格式、并将其顺利整合到自己的训练流水线中,每一步都可能遇到意想不到的“坑”。从神秘的 index 字段到缺失的深度图像素,从TIFF与PNG的对齐到正负样本标签的有效利用,这些工程细节往往比算法本身更耗费时间。本文将从一个实践者的角度,为你彻底拆解Cornell数据集,提供从数据获取、结构解析、预处理到实战应用的完整路径,帮助你绕开那些常见的陷阱,快速搭建起稳定可靠的抓取检测实验环境。

1. 数据集获取与结构全景解析

原Cornell数据集官网的访问不稳定,对于国内用户而言,这成了项目启动的第一个障碍。幸运的是,社区中已有热心的研究者提供了完整的备份。数据集通常包含三个核心压缩包:origin、data-1和data-2。origin文件夹内主要是背景图片和作者提供的一些处理脚本,对于大多数直接应用场景,我们的焦点集中在 data-1 和 data-2 上。这两个文件夹的结构完全一致,只是将庞大的数据分成了两部分以便存储。

每个数据样本(例如对应场景 pcd0100)都包含一组关键文件,它们共同描述了一个抓取场景:

  • pcd0100.txt: 点云数据文件,采用PCD v7格式,存储了场景的三维空间信息。
  • pcd0100.png: 场景的RGB彩色图像,分辨率为480x640。
  • pcd0100d.tiff: 16位深度图像,与RGB图像空间对齐,记录了每个像素点到相机的距离。
  • pcd0100cpos.txt: 正样本抓取矩形框标签。
  • pcd0100cneg.txt: 负样本抓取矩形框标签。

注意:深度图文件是 .tiff 格式,这种格式能无损保存16位整数深度信息,但在用某些库(如OpenCV的 imread)读取时,需要注意指定正确的标志以避免数据被错误缩放。

理解文件之间的对应关系是第一步。RGB图像 (png) 和深度图像 (tiff) 在像素坐标上是一一对应的。点云文件 (txt) 中的每一个点,都通过一个独特的 index 编码与图像中的一个像素位置关联。而抓取标签 (cpos.txt, cneg.txt) 中的矩形框,则是定义在这个统一的图像坐标系(或可由其衍生的三维坐标系)下的。

2. 点云数据深度剖析与缺失像素修复

打开一个 pcd0100.txt 文件,你会看到类似下面的头部信息:

# .PCD v.7 - Point Cloud Data file format
VERSION .7
FIELDS x y z rgb index
SIZE 4 4 4 4 4
TYPE F F F F U
COUNT 1 1 1 1 1
WIDTH 253674
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 253674
DATA ascii
-0.18716 -0.20571 0 4.808e+06 0
-0.18690 -0.20571 0 4.808e+06 1
...

这里最关键的字段是 FIELDS x y z rgb index。与标准的PCD格式相比,Cornell数据集多了一个 index 字段。这个 index 是连接点云与二维图像像素的桥梁。其解码公式为:

# 假设 index 是从文本中读取的整数值
row = (index // 640) + 1  # 行号,范围1-480
col = (index % 640) + 1   # 列号,范围1-640

这个公式揭示了图像分辨率是640列(宽)x 480行(高)。然而,一个立即会引起困惑的问题是:为什么点云文件中的点数(例如253674)远小于 480 * 640 = 307200?

原因在于深度传感器的局限性

抓取检测数据集Cornell数据解析 从Cornell数据集网站:http://pr.cs.cornell.edu/grasping/rect_data/data.php中,我们可以得到比较详细的数据集格式信息,但是其中关于pcd文件的说明不太详细,经过一段时间的查询,记录一下。 以pcd0100.txt为例,打开文件,第一行就是“# .PCD v.7 - Point Cloud Data file format”,说明文件采用的... 阅读详情

相关推荐

基于学习的机械臂抓取研究综述

本文主要总结了2020年的一篇机械臂抓取综述类的论文A Survey on Learning-Based Robotic Grasping,文末有本领域重点的一些论文。

qq_47997583的博客 1万+

实战指南:从Cornell数据集到训练就绪的TIFF图像

本文提供了一份详细的实战指南,指导如何将经典的Cornell机器人抓取数据集从原始点云格式转换为适用于深度学习模型训练的TIFF深度图像。文章深入解析了数据集结构、核心转换原理(3D点云到2D深度图的投影),并提供了完整的Python脚本实现,涵盖环境搭建、数据读取、投影计算、空洞修复及结果验证等关键步骤,是完成数据集制作流程的实用教程。

iii12的专栏 447

手把手教你用OpenCV处理Cornell抓取数据集:解决PCD文件与480x640图像对齐难题

本文详细解析了Cornell抓取数据集中非标准PCD文件的处理难点,重点介绍了如何解码其中的`index`字段以实现点云与480x640图像的精准对齐。通过Python和OpenCV实战演示了从PCD解析、深度图重建(包括零填充与最近邻填充两种策略)到抓取标签可视化的完整流程,为机器人抓取检测任务提供了关键的数据预处理解决方案。

weixin_29281941的博客 228

抓取检测数据集Cornell生成抓取检测标签.mat文件

在学习古月居课程《基于深度学习的机器人平面抓取》的过程中,针对GGCNN抓取网络,训练GGCNN需要两个文件:.mat格式的标签文件和.tiff格式的深度图,因为文件体积太大,我分成两个文件来发。 本资源是根据pcd****label.txt文件生成的pcd****grasp.mat文件

康奈尔影评数据集

该语料由电影评论组成,其中持肯定和否定态度的各1,000 篇;另外还有标注了褒贬极性的句子各5331句,标注了主客观标签的句子各5000句。该语料可以被应用于各种粒度的,如词语、句子和篇章级情感分析研究中。 情感分析资源大全:http://blog.csdn.net/qq280929090/article/details/70838025

双轴按键摇杆模块原理与嵌入式驱动实战

双轴按键摇杆是一种融合模拟量(X/Y轴)与数字量(Z轴按键)的复合型人机交互传感器,其本质基于电位器分压原理与机械开关通断特性。通过ADC采集连续电压信号并结合数字IO检测按键状态,可实现高鲁棒性的二维运动感知与触发控制。该方案技术门槛低、成本可控、兼容性强,广泛应用于智能小车、DIY游戏手柄、工业HMI及教育开发板等嵌入式场景。文中深入解析电位器线性度、KEY引脚开漏特性、ADC参考电压稳定性及软件消抖状态机等关键工程要素,为基于Arduino、STM32或ESP32平台的快速集成提供可复用的技术路径。

weixin_30995917的博客 78

数据标注的下一代SOP,可能不是Word,而是一段Prompt

再给几个反例:“这个只是正常纹理,不算。真正用于数据生产的Prompt,可能至少包含:任务定义、正例、反例、边界案例、优先级、输出格式、验收逻辑。一个项目100个人,如果100个人对这句话有100种理解,最后返工的就不是一个框,而可能是几十万帧数据。一个项目启动以后,项目经理先研究SOP,培训组长,组长再培训标注员,最后几百个人按照同一套规则干活。实际上一个成熟的项目经理,最重要的能力之一,就是:把客户的业务语言翻译成生产规则。真正让项目难交付的,从来不是80%的普通数据,而是那20%的长尾数据。

AI数据标注猿 290

代码复现5——VLMaps

报错“AttributeError: module 'clip' has no attribute 'load'”,运行下述命令解决。运行后接着报错:“ModuleNotFoundError: No module named 'pytorch_lightning'”运行后命令后会弹出一个RGB窗口,可以用键盘上的“W”“A”“D”键控制移动视角的变化,“空格”键开始记录,“q”键停止。并更改相关代码文件,vlmaps/vlmaps/lseg/modules/models/lseg_vit.py。

qq_44100524的博客 593

城市仿真软件:AnyLogic_(8).行人与人群动态仿真

定义行人个体的行为和属性,如行走速度、目标位置等。// 创建一个行人// 设置行走速度为1.5 m/s// 设置目标位置为入口// 创建另一个行人// 设置行走速度为1.2 m/s// 设置目标位置为出口// 创建行人// 创建乘客行人与人群动态仿真在城市规划、交通管理和紧急疏散等领域具有广泛的应用。通过AnyLogic提供的行人模型模块,可以有效地模拟行人的个体行为、群体动态和与环境的交互。

kkchenjj的博客 1242

【推荐100个unity插件】性能极高的逼真爆炸、火焰和烟雾效果——UNI VFX

这是一篇关于Unity中高性能GPU粒子特效插件UNI VFX的使用指南。文章介绍了该插件提供逼真的爆炸、火焰和烟雾效果,支持URP和HDRP渲染管线。主要内容包括:插件安装方法(需预先安装Visual Effect Graph和Shader Graph包)、事件系统使用方法(如create/loop/stop等事件控制)、特效分类(自动结束型和持续型特效)、检视面板配置技巧以及性能优化建议(特别提醒灯光特效对性能的影响较大)。文末还推荐了多个Unity开发相关的专栏内容。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1475

【100%通过率】华为OD机试真题 Python【数字最低位排序】【最低位排序】

2023华为OD机试真题 Python【数字最低位排序】【最低位排序】 给定一个非空数组(列表) 起元素数据类型为整型 请按照数组元素十进制最低位从小到大进行排序 十进制最低位相同的元素,相对位置保持不变 当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位

MISAYAONE的博客 1889

复制幻灯片到另一个PPT编程

请确保将源PPT文件和目标PPT文件的文件名修改为你实际使用的文件名。运行上述代码后,目标PPT将包含源PPT中的所有幻灯片和形状。这里假设源PPT文件名为"source.pptx",目标PPT文件名为"target.pptx"。方法将每个幻灯片的布局添加到目标PPT中。是一个强大的库,可以用于创建、修改和操作PPT文件。要将一个PPT中的幻灯片复制到另一个PPT,可以使用Python的。这段代码遍历源PPT的每个幻灯片,并使用。步骤 3: 打开源PPT和目标PPT。这将保存修改后的目标PPT文件。

ByteSparkX的博客 1315

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: RHCE证书过期了怎么办?3种续期方案全解析(附最新政策)
下一篇: 测试工程师的DeepSeek Prompt实战:从用例生成到缺陷洞察
三十六陂
博客等级 码龄10年 49粉丝 1539原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值