日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pybullet GGCNN数据集制作(三)

發布時間:2024/1/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pybullet GGCNN数据集制作(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

深度相機

驅動安裝

pyrealsense2安裝

學校端口問題用以下方法安裝?

其它相關環境安裝?

Vscode配置anaconda環境

數據集制作和加載

調用深度相機進行數據集制作

代碼部分

?運行效果

展示的代碼文件

數據集標注

?相關環境配置

代碼理解?

標簽代碼

可視化標簽代碼

?數據增強


康奈爾數據集下載(沒有深度相機可以直接用這個數據集學習)

鏈接:https://pan.baidu.com/s/1lgPBUT4NPKYXNbzKgBIzCQ 提取碼:1n7s

數據集如圖所示

day01--數據集制作(一)_m0_46154334的博客-CSDN博客_cornell數據集1.Cornell數據集下載鏈接:https://pan.baidu.com/s/1sVH5cgWWzyISv5v1XaPllg?pwd=udc6提取碼:udc6圖一 cornell grasp data文件圖二 cornell文件兩者內容解壓后內容差不多(圖一為linux下壓縮包)1.1Windows下解壓tar.gz文件1、進入解壓包所在的文件夾,按住shift點擊鼠標右鍵,打開Powershell窗口。2、輸入命令tar -zxvf 文件名3、解壓完成后,應該有4種文件,一https://blog.csdn.net/m0_46154334/article/details/124119048?此處注意需要進行相關轉換

先說明一下:沒有深度相機也可以學習,直接用的康奈爾數據集里的進行標注

相關資料:

鏈接:https://pan.baidu.com/s/1Q6UXKxAqkjerpSZkRBW4pA 提取碼:02eo --來自百度網盤超級會員V4的分享

深度相機

注意要用USB3.0連接

?如果是這種情況確定插入的是usb3.0的插口的情況下,那就是線不對(不能用type-c的手機數據線)

要用

?這種

用手機數據線的話只能通過代碼開攝像機

驅動要關閉

測量的實際深度越多誤差越大

左邊第一個和右邊第二個是紅外主動測距立體相機

左邊第二個大的是紅外投影(投射紅外點陣,然后用紅外主動測距相機捕捉反射測量距離)

最右邊是RGB彩色相機

工作原理:

通過紅外主動測距立體相機可以拍攝到場景包含紅外信息的圖像

(通過三角測距法來獲得每一點的深度)

驅動安裝

Window10 intel realsense D435安裝并實現opencv顯示realsense讀取的彩色和深度數據(QT+openCV+rsD35)_Pabebe的博客-CSDN博客

?這個可以查看圖像

深度指令(平時是不用的)

?右上角可以選擇2D或者3D模式

左邊已經顯示連接到了USB接口上

第一個選項是查看深度圖像,第二個選項RGB

pyrealsense2安裝

?Windows下使用Python配置環境、調用Intel realsense D435/D435i,即pyrealsense2庫的安裝_GRF-Sunomikp31的博客-CSDN博客_d435i windowsWindows下使用Python配置環境、調用Intel realsense D435/D435i前言錯誤嘗試嘗試一嘗試二配置過程創建Python3.6環境安裝**pyrealsense2**、opencv、numpy庫測試記錄筆記后言Bibliography前言近來太懶了,想拿起Python玩玩,突然想到可以把手邊的D435i配置一下,在windows下利用python調調;經過幾個小時的配置,解決了一些問題,總結如下;由于只使用RGB和深度圖,不使用IMU,因此D435i和D435配置是完全相同的https://blog.csdn.net/qq_44847636/article/details/113821588?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165270910516780357213382%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165270910516780357213382&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-113821588-null-null.nonecase&utm_term=Windows%E4%B8%8B%E4%BD%BF%E7%94%A8Python&spm=1018.2226.3001.4450

安裝的時候如果有問題可以臨時換源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

恢復源

https://www.csdn.net/tags/MtjaYg4sOTAxNDctYmxvZwO0O0OO0O0O.html

?

學校端口問題用以下方法安裝?

在python中安裝包出現Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))_lsf_007的博客-CSDN博客先向大家展示以下困擾了我好久的問題死活就是安裝不上,總是說出錯,其實就是說連接超時,下載不了安裝包,我這里也沒有科學上網的工具,經過多方百度,找到了辦法通過幾次pip的使用,對于默認的pip源的速度實在無法忍受,于是便搜集了一些國內的pip源,如下:阿里云 http://mirrors.aliyun.com/pypi/simple/中國科技大學 https://pypi.mirrors....https://blog.csdn.net/lsf_007/article/details/87931823

其它相關環境安裝?

?

?

?用以下方式安裝即可

pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python

?此時cv2不再報錯

?安裝imageio

pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn imageio

?

WARNING: The scripts imageio_download_bin.exe and imageio_remove_bin.exe are installed in 'C:\Users\SZU\AppData\Roaming\Python\Python38\Scripts' which is not on PATH.Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

?出現這個提醒

加入提示的環境變量

Vscode配置anaconda環境

下載相關拓展

關聯VSCode與Anaconda
在VSCode里使用快捷鍵 Ctrl + P ,搜索 >select intetrpreter ,點擊圖片上這個:

?點擊這個python旁邊的版本數字

選擇要用的環境即可?

數據集制作和加載

自己制作數據集最好是100張以上的圖片

調用深度相機進行數據集制作

沒有深度圖也沒事,可以直接用數據集里的圖片?

以下是相機拍攝效果

代碼部分

打開對應的編碼文件?

?這一部分是建立相機到程序的聯通

def run():pipeline = rs.pipeline()#Create a config并配置要流??式傳輸的管道config = rs.config()config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)align_to = rs.stream.coloralign = rs.align(align_to)

這一部分是建立保存圖像的文件夾(文件夾名為日期)

# 按照日期創建文件夾save_path = os.path.join(os.getcwd(), "out", time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime()))os.mkdir(save_path)

這一部分是建立兩個opencv2的兩個窗口

# 保存的圖片和實時的圖片界面cv2.namedWindow("live", cv2.WINDOW_AUTOSIZE)cv2.namedWindow("save", cv2.WINDOW_AUTOSIZE)saved_count = 0

然后進入循環

?因為抓取檢測最好是用彩色圖像和深度圖對齊的

所以獲取了RGB圖像以及和RGB對齊的深度圖像

# 獲取RGB圖像color_frame = aligned_frames.get_color_frame()color_image = np.asanyarray(color_frame.get_data())# 獲取深度圖aligned_depth_frame = aligned_frames.get_depth_frame()depth_image = np.asanyarray(aligned_depth_frame.get_data()).astype(np.float32) / 1000. # 單位為m

?但因為獲取的深度圖是以毫米為單位的,為了單位一致,轉換成米

此處可以補全也可以不補全

# 可視化圖像# depth_image = inpaint(depth_image) # 補全缺失值

先看一下不補全的效果(所以此處注釋掉了補全)
Python-OpenCV中的cv2.inpaint()函數的使用_python_腳本中心 - 編程客棧目錄概念庫函數實現代碼概念修復是圖像插值。數字修復算法在圖像插值,照片恢復,縮放和超分辨率等方面具有廣泛的應用。大多數人會在家里放一些舊的退化照片,上面有一些黑點,一些筆畫等。你有沒有想過恢復它?我們...http://www.cppcns.com/jiaoben/python/402435.html

深度圖轉換成RGB(這樣觀感更好)

depth_image_color = depth2RGB(depth_image)

然后展示出來

cv2.imshow("live", np.hstack((color_image, depth_image_color)))

?然后s鍵保存、q鍵退出(選中窗口)

# s 保存圖片if key & 0xFF == ord('s'):cv2.imwrite(os.path.join((save_path), "{:04d}r.png".format(saved_count)), color_image) # 保存RGB為png文件imsave(os.path.join((save_path), "{:04d}d.tiff".format(saved_count)), depth_image) # 保存深度圖為tiff文件saved_count+=1cv2.imshow("save", np.hstack((color_image, depth_image_color)))# q 退出if key & 0xFF == ord('q') or key == 27:cv2.destroyAllWindows()break

?運行效果

?先切換到配置好的環境

1.不補全缺省值的情況下

這個live窗口是實時的

?

然后點擊live窗口,再按一下s?

?

多摁幾次s多保存幾張

?

?然后保存好之后摁q退出

?保存在這個目錄下

進入對應目錄

?彩色圖像保存為.png格式

深度圖保存為.tiff格式

因為后續的GGCNN使用的就是tiff格式

2.打開補全

?live效果(比剛剛生動一點)

?補全后就沒有缺失點了

但是其實還有一點糊

可能是因為就是消費級深度相機

展示的代碼文件

第二個文件是用來展示剛剛保存的圖像

?展示路徑為

path = './out/2021_12_24_14_59_49/0000d.tiff'

的圖像?

?

然后搭建拍攝平臺對著足夠的物體或者樣本進行拍攝

數據集標注

GGCNN其實沒有標注 (其實只是轉換了康奈爾數據集的標簽)

但是他不精確,因為康奈爾原本的數據集就不精確

?打開網絡的代碼文件

?相關環境配置

切換到對應環境?

conda activate GGCNN

安裝(版本號一定要對上)

conda install scikit-image==0.18.3

?更新numpy庫不然會報錯

pip install -U --user -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn numpy

安裝mkl

pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn mkl

同樣的環境在vscode和在pycharm中運行報錯不一樣

主要原因有可能是VSCode

默認使用項目文件夾根目錄作為工作目錄(cwd),這會使得子文件夾中的程序無法使用相對路徑。

可以在File -> Preference -> Settings,再搜索Execute in File Dir,勾上這個即可

?配置好環境后就運行成功了

代碼理解?

主要的程序就是main_label.py

if __name__ == '__main__':path = './test' # 數據集圖片路徑label_win_name = 'labeling'files = glob.glob(os.path.join(path, 'pcd*[0-9]r.png')) # 匹配所有的符合條件的文件,并將其以list的形式返回

就是對指定的path下的

pcd*[0-9]r.png

進行標注

(.png)彩色圖命名為pcd+四位數編號+r?

? (.tiff)格式圖命名為pcd+四位數編號+d

?注意這里有一個pcd0100Label的.txt文件這是因為此時的test文件夾的圖片都是標注好的

所以如果想標注(但是沒有數據集,可以先把里面的.txt文件刪掉或者移除到別的地方)

?程序運行

此時有兩個窗口

labeling是可以開始標注的窗口

labeled是顯示標注結果的窗口

?操作說明

****** 操作說明 ****** 1 用鼠標左鍵畫出一條適合夾持器抓取的直線 2 按 上/下 調整線寬(抓取區域寬度)上: 增加線寬下: 減小線寬3 按 W/S/Q/E 設置抓取模式:w: 朝向紅色點單向抓取S: 朝向綠色單向抓取E: 對稱抓取Q: 圓形抓取4 按 左/右 調整抓取寬度 (抓取寬度比物體寬2cm,兩側各1cm)左: 增加右: 減小換下一張:空格 退出標注:Esc在換下一張時,當前圖像上標注的數據會保存至pcd****label.txt, 退出時,當前圖像的標注不保存

1.

?按住左鍵拖動然后放開兩邊出現了一個紅色的點和綠色的點(這條直線代表線上的點或者線周圍點是可以作為抓取點的)

?按方向鍵上下可以調節線的寬度(抓取區域寬度)

最好不要超過6

注意:如果物體很窄,那畫線跟它對齊就行

抓取模式設置(此時要設置為英文輸入法)

3 按 W/S/Q/E 設置抓取模式: (實際上就是抓取角)

w: 朝向紅色點單向抓取

S: 朝向綠色單向抓取

E: 對稱抓取

Q: 圓形抓取

下圖為按了E鍵的效果?

?

?對稱抓取是針對二指抓取器的

如果是單側的話

代表一邊的抓手先到紅色點然后再抓取

?4 按 左/右 調整抓取寬度 (抓取寬度比物體寬2cm,兩側各1cm)

左: 增加

右: 減小

代表抓手的張開寬度?(一定要物體更寬防止碰撞)

?換下一張:空格

在換下一張時,當前圖像上標注的數據會保存至pcd****label.txt,

這是生成的遙控器的抓取配置

.txt 命名是pcd+編號+Label

每一行五個數

?前兩個數代表第一條畫的線上的點(沒有寬度時)

?第三個數和第四個數就是抓取角的弧度

?如果使用單側抓取模式

此時只有一個抓取角弧度

?

?最后一個數代表抓取寬度

是以像素為單位的

注:圓形抓取

1.先按住左鍵點一個點

2.按上下調整點的大小

?3.選擇圓形抓取模式并用左右鍵調整寬度

?

此時只有三個數

?前兩個數是抓取點的橫軸和縱軸

第三個數就是抓取寬度也就是直徑

?沒有角度是因為在這種情況下怎么抓取都是可以的

標簽代碼

?對應修改path為剛剛的test的路徑即可(記得調整反斜杠)

?運行前

?運行后

對每個圖片生成了.mat格式文件

?里面的內容是

3代表3個通道

480 640 代表圖片大小

?抓取點這個通道其實就是對這個480*640的圖片上每個像素的抓取置信度

剛剛標注的就是淺藍色上的點都是置信度都是1其他都是0

抓取角是當時標注時的第一個角

比如說第一行這里它就只選擇3.03914880008267作為抓取角

抓取寬度是除以一個數讓它在0-1之間

這樣就可以直接用sigmod

.mat格式可以通過python的scipy直接讀取

可視化標簽代碼

修改path為test的路徑

注意反斜杠

?

?保存路徑如下(此處將保存函數注釋掉了,需要的話可以解開注釋)

?

?運行結果

?數據增強

?

?縮放

旋轉(抓取配置也要對應旋轉)

裁剪出適合圖像訓練的尺寸

隨機的翻轉

def __getitem__(self, idx):# 讀取img和標簽image = DepthImage(self.depth_files[idx])label = GraspMat(self.grasp_files[idx])# 數據增強if self.argument:# resizescale = np.random.uniform(0.9, 1.1)image.rescale(scale)label.rescale(scale)# rotaterota = 30rota = np.random.uniform(-1 * rota, rota)image.rotate(rota)label.rotate(rota)# cropdist = 30crop_bbox = image.crop(self.output_size, dist)label.crop(crop_bbox)# flipflip = True if np.random.rand() < 0.5 else Falseif flip:image.flip()label.flip()else:# cropcrop_bbox = image.crop(self.output_size)label.crop(crop_bbox)# img歸一化image.normalize()# 獲取targetlabel.encode()img = self.numpy_to_torch(image.img)grasp_point = self.numpy_to_torch(label.grasp_point)grasp_cos = self.numpy_to_torch(label.grasp_cos)grasp_sin = self.numpy_to_torch(label.grasp_sin)grasp_width = self.numpy_to_torch(label.grasp_width)return img, (grasp_point, grasp_cos, grasp_sin, grasp_width)

歸一化就是減去均值,讓其位于-1~1之間 (0均值標準化使其符合正態分布)

?角度就是生成論文的cos和sin那個

總結

以上是生活随笔為你收集整理的pybullet GGCNN数据集制作(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。