前提・実現したいこと
python3.8
realsenseD435を使用しています
現在、realsenseを使いpythonコードで.bagファイルを保存しています。
ここで質問ですが、下記コマンドを使いgpuの使用量を調べると30%ほど使ってしまっています。
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,memory.used --format=csv -l 1
これだけの再生だけだとなにも問題ないですがpytorchによるyolov3などを合わせるとout of memoryとなってしまいます。
できればですが、gpuの使用量を下げたいと考えていますがなにか良い方法はありますでしょうか。
よろしくお願い致します。
*pytorch yolov3ですがバッチサイズを1まで下げています
該当のソースコード
# -*- coding: utf-8 -*- ############################################# ## D415 Depth画像の表示 ############################################# import pyrealsense2 as rs import numpy as np import cv2 import time from playsound import playsound class Experiment: def record(self): # ストリーム(Color/Depth/Infrared)の設定 config = rs.config() #再生用コード config.enable_device_from_file('12_2_thu.bag',repeat_playback=False) config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30) config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) # ストリーミング開始 pipeline = rs.pipeline() profile = pipeline.start(config) #print(profile) try: while True: try: # フレーム待ち(Color & Depth) frames = pipeline.wait_for_frames() color_frame = frames.get_color_frame() depth_frame = frames.get_depth_frame() if not depth_frame or not color_frame: continue color_image = np.asanyarray(color_frame.get_data()) # Depth画像 depth_color_frame = rs.colorizer().colorize(depth_frame) depth_color_image = np.asanyarray(depth_color_frame.get_data()) distance =depth_frame.get_distance(250,250) #print(distance) # 表示 #images = np.hstack((color_image, depth_color_image)) cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE) cv2.imshow('RealSense', color_image) if cv2.waitKey(1) & 0xff == 27: break except: break finally: # ストリーミング停止 pipeline.stop() cv2.destroyAllWindows() def main(): ex =Experiment() ex.record() if __name__ == '__main__': main()
試したこと
解像度を下げようとしましたが
config.enable_stream(rs.stream.color, 320, 240, rs.format.bgr8, 30) config.enable_stream(rs.stream.depth, 320, 240, rs.format.z16, 30)
このようなエラーが発生してしまいます
RuntimeError: Couldn't resolve requests
あなたの回答
tips
プレビュー