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為一份
?然后運行下面的代碼
把點云文件(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
萌新求帶,如果有錯誤,歡迎指正。
總結
- 上一篇: html自动排序数字,JS实现点击表头表
- 下一篇: python-在控制台输出表格,对表格内