GGCNN笔记

先上总结:

需要RGB图片 进行标注

**r.png ------main_label.py----->  **Label.txt ------generate_target_ggcnn.py---------> **grasp.mat

有  **grasp.mat ,  **r.png, 和 **d.tiff 时 就已经可以训练了。

如果没有 **d.tiff (因为没有深度相机所以无法获得深度图)。

使用 点云文件转化成 深度图      pcd*[0-9].txt  ------>  pcd*[0-9]d.tiff

使用grasp_label项目下的main_label.py

对**r.png 文件标注   

        (**r.png,普通彩色图,给人看的,在这个上面标注)

结果是生成  **Label.txt  

        里面是 : 抓取点的坐标,抓取角度,宽度。

使用grasp_label项目下的generate_target_ggcnn.py

读取**Label.txt 转化成 **grasp.mat

**grasp.mat 的内容是:

        生成ggcnn抓取检测标签

        抓取点、抓取角、抓取宽度 合成一个mat (3, 480, 640)

                抓取点: 1通道

                抓取角:1通道。单位弧度

                抓取宽度:1通道。单位像素

然后下载cornell数据集

里面是三个txt加一个png为一份

GGCNN笔记_第1张图片

 然后运行下面的代码

把点云文件(pcd*[0-9].txt) 转化成了 d.tiff 的深度图。

这个txt可不是 上面讲的 Label.txt,注意区分

# import glob
# import os
# import numpy as np
# from imageio import imsave
# import argparse
# from utils.dataset_processing.image import DepthImage
#
# #康奈尔提供的数据是:pcd*[0-9].txt,并没有.tiff
# #这个程序就是把点云文件(pcd*[0-9].txt) 转化成了.tiff的深度图。
# if __name__ == '__main__':
#     parser = argparse.ArgumentParser(description='Generate depth images from Cornell PCD files.')
#     parser.add_argument('path', type=str, help='Path to Cornell Grasping Dataset')
#     # parser.add_argument('--dataset-path', type=str, help='Path to Cornell Grasping Dataset')
#     args = parser.parse_args()
#
#
#     pcds = glob.glob(os.path.join(args.path, '*', 'pcd*[0-9].txt'))
#     pcds.sort()
#
#     for pcd in pcds:
#         di = DepthImage.from_pcd(pcd, (480, 640))
#         di.inpaint()
#
#         of_name = pcd.replace('.txt', 'd.tiff')
#         print(of_name)
#         imsave(of_name, di.img.astype(np.float32))


import glob
import os
import numpy as np
from imageio import imsave
import argparse
from utils.dataset_processing.image import DepthImage

# #康奈尔提供的数据是:pcd*[0-9].txt,并没有.tiff
# #这个程序就是把点云文件(pcd*[0-9].txt) 转化成了.tiff的深度图。
if __name__ == '__main__':
    path = r'E:\GGCNN\code\CORNELL_DATA\0-1034'
    pcds = glob.glob(os.path.join(path, 'pcd*[0-9].txt'))
    pcds.sort()
    # print(pcds)

    for pcd in pcds:
        print(pcd)
        di = DepthImage.from_pcd(pcd, (480, 640))
        di.inpaint()

        of_name = pcd.replace('.txt', 'd.tiff')
        # print(of_name)
        imsave(of_name, di.img.astype(np.float32))

课程补充:训练GGCNN的数据集说明 - 古月居 (guyuehome.com)

然后在这个文件夹里有 **r.png 和 **d.tiff 了。

最后把 **r.png ,**d.tiff ,**grasp.mat  三种文件放到一个路径下,让网络的数据集路径指向这里就可以了。

训练时

在训练的代码中,读取该路径下的:

**grasp.mat ,然后 

depthf = [f.replace('grasp.mat', 'd.tiff') for f in graspf] #把.mat 替换为 .tiff
# print("depthf hahhahh ahhah ",depthf)

rgbf = [f.replace('grasp.mat', 'r.png') for f in graspf]

把  **d.tiff 和 **r.png 文件读进来,训练参数。

总结:

需要RGB图片 进行标注

**r.png ------main_label.py----->  **Label.txt ------generate_target_ggcnn.py---------> **grasp.mat

有  **grasp.mat ,  **r.png, 和 **d.tiff 时 就已经可以训练了。

如果没有 **d.tiff (因为没有深度相机所以无法获得深度图)。

使用 点云文件转化成 深度图      pcd*[0-9].txt  ------>  pcd*[0-9]d.tiff

萌新求带,如果有错误,欢迎指正。

你可能感兴趣的:(GGCNN,python,numpy,深度学习)