Kitti数据集进行目标检测批处理和shell的入门
2017-04-05 22:20
609 查看
KITTI数据集的Python的批处理
shell的入门知识
shell的入门可以看【1】【2】【3】,在对某个程序进行批处理的时候,其实里面的命令行可以写成:
参考链接:
【1】Shell编程基础:http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80
【2】BASH Manual:https://www.gnu.org/software/bash/manual/
【3】Bash Guide:http://guide.bash.academy/
shell的入门知识
KITTI数据集的Python的批处理
#!/usr/bin/env python # -------------------------------------------------------- # R-FCN # Copyright (c) 2016 Yuwen Xiong # Licensed under The MIT License [see LICENSE for details] # Written by Yuwen Xiong # -------------------------------------------------------- """ Demo script showing detections in sample images. See README.md for installation instructions before running. """ import _init_paths from fast_rcnn.config import cfg from fast_rcnn.test import im_detect from fast_rcnn.nms_wrapper import nms from utils.timer import Timer import matplotlib.pyplot as plt import numpy as np import scipy.io as sio import caffe, os, sys, cv2 import argparse import json import pickle CLASSES = ('__background__', '1', '2', '3', '20') NETS = {'ResNet-101': ('ResNet-101', 'resnet101_rfcn_final.caffemodel'), 'ResNet-50': ('ResNet-50', 'resnet50_rfcn_ohem_iter_100000.caffemodel')} #data = dict() def vis_detections(im, class_name, dets, thresh=0.5): """Draw detected bounding boxes.""" inds = np.where(dets[:, -1] >= thresh)[0] if len(inds) == 0: return im = im[:, :, (2, 1, 0)] fig, ax = plt.subplots(figsize=(12, 12)) ax.imshow(im, aspect='equal') for i in inds: bbox = dets[i, :4] score = dets[i, -1] ax.add_patch( plt.Rectangle((bbox[0], bbox[1]), bbox[2] - bbox[0], bbox[3] - bbox[1], fill=False, edgecolor='red', linewidth=3.5) ) ax.text(bbox[0], bbox[1] - 2, '{:s} {:.3f}'.format(class_name, score), bbox=dict(facecolor='blue', alpha=0.5), fontsize=14, color='white') ax.set_title(('{} detections with ' 'p({} | box) >= {:.1f}').format(class_name, class_name, thresh), fontsize=14) plt.axis('off') plt.tight_layout() plt.draw() def demo(net, image_name, ind, direc, real_seq): """Detect object classes in an image using pre-computed object proposals.""" # content = [] # Load the demo image im_file = os.path.join(real_seq, image_name) im = cv2.imread(im_file) ind_file = 'sequence_%02d' % ind dir_file = ind_file + ('/image_%d' % direc) # Detect all object classes and regress object bounds timer = Timer() timer.tic() scores, boxes = im_detect(net, im) timer.toc() print ('Detection took {:.3f}s for ' '{:d} object proposals').format(timer.total_time, boxes.shape[0]) # Visualize detections for each class CONF_THRESH = 0.5 #0.75 NMS_THRESH = 0.35 exist_cls = 0 for cls_ind, cls in enumerate(CLASSES[1:]): cls_ind += 1 # because we skipped background cls_boxes = boxes[:, 4:8] cls_scores = scores[:, cls_ind] dets = np.hstack((cls_boxes, cls_scores[:, np.newaxis])).astype(np.float32) keep = nms(dets, NMS_THRESH) dets = dets[keep, :] thresh = CONF_THRESH img_name = image_name.replace('.png', '.txt') inds = np.where(dets[:, -1] >= thresh)[0] if len(inds) != 0: if int(cls) < 20: exist_cls = 1 for i in inds: # img_name = image_name.replace('.jpg', '.txt') if os.path.exists(ind_file) == False: os.mkdir(ind_file) if os.path.exists(dir_file) == False: os.mkdir(dir_file) else: if os.path.exists(dir_file) == False: os.mkdir(dir_file) tmp_fid = file(os.path.join(dir_file, img_name), 'a+') bbox = dets[i, :4] score = dets[i, -1] if int(cls) == 1: tmp_fid.write('1 -1 -1 -10 ') elif int(cls) == 2: tmp_fid.write('2 -1 -1 -10 ') else: tmp_fid.write('3 -1 -1 -10 ') tmp_fid.write(str("%.2f"%float(bbox[0])) + ' ' + str("%.2f"%float(bbox[1])) + ' ' + str("%.2f"%float(bbox[2])) + ' ' + str("%.2f"%float(bbox[3])) + ' -1 -1 -1 -1000 -1000 -1000 -10 ' + str("%.2f"%float(score)) + ' \n') tmp_fid.close() if exist_cls == 0: if os.path.exists(ind_file) == False: os.mkdir(ind_file) if os.path.exists(dir_file) == False: os.mkdir(dir_file) else: if os.path.exists(dir_file) == False: os.mkdir(dir_file) tmp_fid = file(os.path.join(dir_file, img_name), 'a+') tmp_fid.close() print "There is backgroung" def parse_args(): """Parse input arguments.""" parser = argparse.ArgumentParser(description='Faster R-CNN demo') parser.add_argument('--gpu', dest='gpu_id', help='GPU device id to use [0]', default=0, type=int) parser.add_argument('--cpu', dest='cpu_mode', help='Use CPU mode (overrides --gpu)', action='store_true') parser.add_argument('--net', dest='demo_net', help='Network to use [ResNet-101]', choices=NETS.keys(), default='ResNet-50') args = parser.parse_args() return args if __name__ == '__main__': cfg.TEST.HAS_RPN = True # Use RPN for proposals args = parse_args() prototxt = os.path.join(cfg.MODELS_DIR, NETS[args.demo_net][0], 'rfcn_end2end', 'test_agnostic.prototxt') caffemodel = os.path.join(cfg.DATA_DIR, 'rfcn_models', NETS[args.demo_net][1]) if not os.path.isfile(caffemodel): raise IOError(('{:s} not found.\n').format(caffemodel)) if args.cpu_mode: caffe.set_mode_cpu() else: caffe.set_mode_gpu() caffe.set_device(args.gpu_id) cfg.GPU_ID = args.gpu_id net = caffe.Net(prototxt, caffemodel, caffe.TEST) print '\n\nLoaded network {:s}'.format(caffemodel) # Warmup on a dummy image im = 128 * np.ones((300, 500, 3), dtype=np.uint8) for i in xrange(2): _, _= im_detect(net, im) rt = '/home/YuChen/data-set/dataset/sequences/' # process 22 sequences for ind in range(22): new_seq = rt + ('%02d/' %ind) for direc in range(2): real_seq = new_seq + ('image_%d/' %(direc+2)) print real_seq im_names = os.listdir(real_seq) for im_name in im_names: print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' print im_name demo(net, im_name, ind, direc, real_seq)
shell的入门知识
在Windows下,可以使用powershell或者是用命令行运行.bat文件,但是在ubuntu下呢?那就是SHELL了。在很多的项目下,我们进行编译的时候会看到build.sh,其实这个东西就是使用shell进行编译的。shell的入门可以看【1】【2】【3】,在对某个程序进行批处理的时候,其实里面的命令行可以写成:
./exec argc
参考链接:
【1】Shell编程基础:http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80
【2】BASH Manual:https://www.gnu.org/software/bash/manual/
【3】Bash Guide:http://guide.bash.academy/
相关文章推荐
- 目标检测中KITTI数据集的简介与使用
- 26.激光切割机:不放过任何目标;在直线和圆之间进行碰撞检测
- 使用判别训练的部件模型进行目标检测 Object Detection with Discriminatively Trained Part Based Models
- 关于在fpga上进行目标检测、跟踪的设计
- 使用判别训练的部件模型进行目标检测
- 利用光流法进行运动目标检测
- opencv-根据颜色进行目标检测
- py-faster-rcnn制作自己的数据集做目标检测
- 【深度学习:目标检测】 py-faster-rcnn_caffemodel对人脸进行标注
- 【深度学习:目标检测】 py-faster-rcnn标注FDDB人脸便于其在FDDB上进行测试
- SqueezeNet运用到Faster RCNN进行目标检测+OHEM
- (译)使用判别训练的部件模型进行目标检测 Object Detection with Discriminatively Trained Part Based Models
- 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)
- Shell 脚本基础 - 使用 if 语句进行条件检测
- 【深度学习:目标检测】 Face Detection with the Faster R-CNN(数据集标注对比研究报告 )
- opencv-根据颜色进行目标检测
- Shell 脚本基础 - 使用 if 语句进行条件检测
- Opencv基础代码:根据颜色进行目标检测
- 使用Faster-Rcnn进行目标检测(实践篇)
- 使用Faster-Rcnn进行目标检测(实践篇)