示例#1
0
    global is_draw, output_txt

    args = GetArgs()
    input_root = args.input_root
    output_root = args.output_root
    is_draw = args.is_draw

    pool = Pool(int(cpu_count() * 7 / 8))

    for input_dir in os.listdir(input_root):
        input_txt_list = []
        input_jpg_list = []
        output_jpg_list = []
        input_txt_dir = os.path.join(input_root, input_dir, 'txt')
        input_jpg_dir = os.path.join(input_root, input_dir, 'jpg')
        input_txt_list += GetFileList(input_txt_dir, ['.txt'])
        temp_list = GetFileList(input_jpg_dir, ['.jpg'])
        input_jpg_list += temp_list
        output_dir = os.path.join(output_root, input_dir)
        if not os.path.exists(output_dir):
            os.mkdir(output_dir)
        if is_draw:
            output_jpg_dir = os.path.join(output_dir, 'jpg')
            if not os.path.exists(output_jpg_dir):
                os.mkdir(output_jpg_dir)
            for pth in temp_list:
                complete_path = os.path.join(output_jpg_dir,
                                             pth.split('/')[-1])
                output_jpg_list.append(complete_path)
            results = pool.map(
                get_box_range,
示例#2
0
    IoU =  args.IoU
    input_txt_root = args.input_root
    output_txt_root = args.output_root
    box_range_df = pd.read_csv(args.box_range)
    box_range_dict = {box_range_df['picture'][i]:[box_range_df['top_left'][i],\
                                                  box_range_df['top_right'][i],\
                                                  box_range_df['bottom_left'][i],\
                                                  box_range_df['bottom_right'][i]]\
                                                  for i in range(len(box_range_df))}

    input_txt_list = []
    output_txt_list = []
    box_range_list = []
    for txt_dir in os.listdir(input_txt_root):
        input_txt_dir = os.path.join(input_txt_root, txt_dir)
        temp_list = GetFileList(input_txt_dir, ['.txt'])
        input_txt_list += temp_list
        output_txt_dir = os.path.join(output_txt_root, txt_dir)
        if not os.path.exists(output_txt_dir):
            os.mkdir(output_txt_dir)
        for pth in temp_list:
            complete_path = os.path.join(output_txt_dir, pth.split('/')[-1])
            output_txt_list.append(complete_path) 
            jpg_name = pth.split('/')[-1].split('.')[0] + '.jpg'
            box_range_list.append(box_range_dict[jpg_name])  
   
    pool = Pool(int(cpu_count()*7/8)) 
    pool.map(filter_with_box_range, zip(input_txt_list, output_txt_list, box_range_list))  
    
    toc = time.clock()
    print('running time:{:.3f} seconds'.format(toc-tic))
示例#3
0
    args = parser.parse_args()
    return args 

if __name__=='__main__':
  
    tic = time.clock()
    global categories, threshold, vec_num

    args = get_args()
    input_root = args.input_root
    output_dir = args.output_dir
    
    input_txt_list = []
    for input_dir in os.listdir(input_root):
        input_txt_dir = os.path.join(input_root, input_dir, 'txt')
        input_txt_list += GetFileList(input_txt_dir, ['.txt'])
    num = len(input_txt_list)

    pool = Pool(int(cpu_count()*7/8))
    labels = pool.map(get_labels, input_txt_list)
    categories = list(set(list(itertools.chain.from_iterable(labels))))
    
    optimal_infs = {ele:5*[0] for ele in categories}
    for threshold in np.arange(0.1, 1.0, 0.1):
        results = pool.map(get_label_dict, zip(input_txt_list, [categories]*num, [threshold]*num)) 
        label_infs = {}
        for ele in categories:
            label_infs[ele] = sum([label_dict[ele] for label_dict in results])
            entropy = get_entropy(label_infs[ele][1:-1])
            label_infs[ele] = [threshold] + list(label_infs[ele][1:-1]) + [entropy]
            if optimal_infs[ele][-1] < entropy:
                        default=None,
                        type=str)
    parser.add_argument('-out',
                        dest='cluster_jpg_root',
                        help='output pictures for each cluster',
                        default=None,
                        type=str)
    if len(sys.argv) == 1:
        parser.print_help()
        sys.exit(1)
    args = parser.parse_args()
    return args


if __name__ == '__main__':

    tic = time.clock()
    global cluster_jpg_root, cat_jpg_dir

    args = get_args()
    cluster_txt_dir = args.cluster_txt_dir
    cat_jpg_dir = args.cat_jpg_dir
    cluster_jpg_root = args.cluster_jpg_root

    cluster_txt_list = GetFileList(cluster_txt_dir, ['.rois.txt'])
    pool = Pool(int(cpu_count() * 7 / 8))
    pool.map(get_pic_of_cluster, cluster_txt_list)

    toc = time.clock()
    print('running time:{:.3f}'.format(toc - tic))
示例#5
0
        with open(args.cfg_Visualize, 'r') as f:
            for line in f:
                infos = line.strip().split('=')
                conf[infos[0]] = infos[1]

        categories = conf['cls_names'].split(',')

        real_txt_list = []
        real_jpg_list = []
        output_jpg_list = []
        real_root = conf['real_root']
        output_jpg_root = conf['output_root']
        for data_dir in conf['real_dir'].split(','):
            txt_pth = os.path.join(real_root, data_dir, 'txt')
            jpg_pth = os.path.join(real_root, data_dir, 'jpg')
            real_txt_list += GetFileList(txt_pth, ['.txt'])
            temp_jpg_list = GetFileList(jpg_pth, ['.jpg'])
            real_jpg_list += temp_jpg_list
            output_jpg_dir = output_jpg_root
            for idir in data_dir.split('/'):
                output_jpg_dir = os.path.join(output_jpg_dir, idir)
                if not os.path.exists(output_jpg_dir):
                    os.mkdir(output_jpg_dir)
            for pth in temp_jpg_list:
                complete_path = os.path.join(output_jpg_dir,
                                             'merged_' + pth.split('/')[-1])
                output_jpg_list.append(complete_path)

        predicted_txt_list = []
        predicted_root = conf['predicted_root']
        for data_dir in conf['predicted_dir'].split(','):
        abs_distance = args.abs_distance
        unIoU = 1 - args.IoU  
   
        conf = {}
        with open(args.cfg_GetOptimalThreshold, 'r') as f:
            for line in f:
                infos = line.strip().split('=')
                conf[infos[0]] = infos[1]

        categories = conf['cls_names'].split(',')    

        real_txt_list = []
        real_root = conf['real_root']
        for data_dir in conf['real_dir'].split(','):
            complete_pth = os.path.join(real_root, data_dir)
            real_txt_list += GetFileList(complete_pth, ['.txt'])

        predicted_txt_list = []
        predicted_root = conf['predicted_root']
        for data_dir in conf['predicted_dir'].split(','):
            complete_pth = os.path.join(predicted_root, data_dir)
            predicted_txt_list += GetFileList(complete_pth, ['.txt'])
    else:
        if len(sys.argv) == 1:
           args = GetArgs()

        categories = ['apple','beer','broccoli','chineseCabbage','cucumber','egg',\
                    'eggplant','grape','ham','milk','onion','orange','papaya','pear',\
                    'potato','radish','strawberry','tomato','watermelon','whiteradish']            
        abs_distance = np.inf
        unIoU = 0.5
示例#7
0
if __name__ == '__main__':
    tic = time.clock()

    global handle_categories1, handle_categories2, threshold
    handle_categories1 = ['cucumber', 'eggplant', 'ham']
    handle_categories2 = ['Hcucumber','Scucumber','Xcucumber',\
                         'Heggplant','Seggplant','Xeggplant',\
                         'Hham','Sham','Xham']
    args = GetArgs()
    input_txt_root, output_txt_root = args.input, args.output
    input_txt_list, output_txt_list = [], []

    pool = Pool(int(cpu_count() * 7 / 8))
    if args.mode == 'to_hsx':
        threshold = args.threshold
        for input_txt_dir in GetFileList(input_txt_root, []):
            temp_list = GetFileList(input_txt_dir + '/txt', ['.txt'])
            input_txt_list += temp_list
            output_txt_dir = output_txt_root
            for idir in [input_txt_dir.split('/')[-1], 'txt']:
                output_txt_dir = os.path.join(output_txt_dir, idir)
                if not os.path.exists(output_txt_dir):
                    os.mkdir(output_txt_dir)
            for pth in temp_list:
                complete_path = os.path.join(output_txt_dir,
                                             pth.split('/')[-1])
                output_txt_list.append(complete_path)
        pool.map(modify_labels_to_hsx, zip(input_txt_list, output_txt_list))

    elif args.mode == 'to_origin':
        for input_txt_dir in GetFileList(input_txt_root, []):
示例#8
0
        conf = {}
        with open(args.cfg_FilterWithThreshold, 'r') as f:
            for line in f:
                infos = line.strip().split('=')
                conf[infos[0]] = infos[1]

        categories = conf['cls_names'].split(',')    

        input_txt_list = []
        output_txt_list = []
        input_txt_root = conf['input_txt_root']
        output_txt_root = conf['output_txt_root']
        for txt_dir in conf['input_txt_dir'].split(','):
            input_txt_dir = os.path.join(input_txt_root, txt_dir)
            temp_list = GetFileList(input_txt_dir, ['.txt'])
            input_txt_list += temp_list
            output_txt_dir = output_txt_root
            for idir in txt_dir.split('/'):
                output_txt_dir = os.path.join(output_txt_dir, idir)
                if not os.path.exists(output_txt_dir):
                    os.mkdir(output_txt_dir)
            for pth in temp_list:
                complete_path = os.path.join(output_txt_dir, pth.split('/')[-1])
                output_txt_list.append(complete_path) 

        thre_df = pd.read_csv(conf['optimal_threshold_csv_path'])
        thre_dict = {categories[i]:thre_df['optimal_threshold'][i] for i in range(len(categories))}      
    else:
        if len(sys.argv) == 1:
            args = GetArgs()