def DetectInit(): global sess, model, mc detect_net = 'squeezeDet' checkpoint = '/home/ubuntu/catkin_ws/src/robo_perception/scripts/weights/model.ckpt-99999' assert detect_net == 'squeezeDet' or detect_net == 'squeezeDet+', \ 'Selected nueral net architecture not supported' tf.Graph().as_default() # Load model if detect_net == 'squeezeDet': mc = kitti_squeezeDet_config() mc.BATCH_SIZE = 1 # model parameters will be restored from checkpoint mc.LOAD_PRETRAINED_MODEL = False model = SqueezeDet(mc, '0') elif detect_net == 'squeezeDet+': mc = kitti_squeezeDetPlus_config() mc.BATCH_SIZE = 1 mc.LOAD_PRETRAINED_MODEL = False model = SqueezeDetPlus(mc, '0') saver = tf.train.Saver(model.model_params) # Use jit xla gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.5) config = tf.ConfigProto(allow_soft_placement=True, gpu_options=gpu_options) config.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1 #with tf.Session(config=config) as sess: sess = tf.Session(config=config) saver.restore(sess, checkpoint)
points = rs.points() pipeline= rs.pipeline() config = rs.config() config.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30) config.enable_stream(rs.stream.depth, 1280, 720, rs.format.z16, 30) profile = pipeline.start(config) depth_sensor = profile.get_device().first_depth_sensor() depth_scale = depth_sensor.get_depth_scale() align_to = rs.stream.color align = rs.align(align_to) ###=====================================================================================### #SSD_detection # TensorFlow session: grow memory when needed. TF, DO NOT USE ALL MY GPU MEMORY!!! gpu_options = tf.GPUOptions(allow_growth=True) config = tf.ConfigProto(log_device_placement=False, gpu_options=gpu_options) isess = tf.InteractiveSession(config=config) # Input placeholder. net_shape = (300, 300) data_format = 'NHWC' img_input = tf.placeholder(tf.uint8, shape=(None, None, 3)) # Evaluation pre-processing: resize to SSD net shape. image_pre, labels_pre, bboxes_pre, bbox_img = ssd_vgg_preprocessing.preprocess_for_eval( img_input, None, None, net_shape, data_format, resize=ssd_vgg_preprocessing.Resize.WARP_RESIZE) image_4d = tf.expand_dims(image_pre, 0) # Define the SSD model. reuse = True if 'ssd_net' in locals() else None ssd_net = ssd_vgg_300.SSDNet() with slim.arg_scope(ssd_net.arg_scope(data_format=data_format)):
def get_session(): config = tf.ConfigProto() config.gpu_options.allow_growth = True return tf.Session(config=config)
with tf.gfile.GFile(PATH_TO_CKPT, 'rb') as fid: serialized_graph = fid.read() od_graph_def.ParseFromString(serialized_graph) tf.import_graph_def(od_graph_def, name='') ## Loading label map # Label maps map indices to category names, so that when our convolution network predicts `5`, # we know that this corresponds to `airplane`. Here we use internal utility functions, # but anything that returns a dictionary mapping integers to appropriate string labels would be fine label_map = label_map_util.load_labelmap(PATH_TO_LABELS) categories = label_map_util.convert_label_map_to_categories( label_map, max_num_classes=NUM_CLASSES, use_display_name=True) category_index = label_map_util.create_category_index(categories) # Setting the GPU options to use fraction of gpu that has been set config = tf.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction = GPU_FRACTION # Detection class Detector: def __init__(self): self.image_pub = rospy.Publisher("rcnn/debug_image", Image, queue_size=1) self.object_pub = rospy.Publisher("rcnn/objects", Detection2DArray, queue_size=1) # Create a supscriber from topic "image_raw" self.bridge = CvBridge()
import tf import os #specify the gpu device id os.environ["CUDA_VISIBLE_DEVICES"] = "2" #specify the fraction of all the gpu memory gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) #specify the allow_growth option gpu_options = tf.GPUOptions(allow_growth=True) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))