Beispiel #1
0
def model_test(net, test_list, input_dir, iter_num=1):
    total_score = 0.0
    score = 0.0
    class_score = {}
    for im_name in test_list:
        if DEBUG:
            print "############## scoring {0} ##############".format(im_name)
        im_file = os.path.join(input_dir, 'img', im_name)

        label_file = os.path.join(input_dir, 'annotation', im_name)
        index = label_file.rindex('.')
        label_file = label_file[:index] + ".xml"

        if not os.path.isfile(label_file):
            sys.stderr.write("can't find label file for {0}".format(im_file))
            continue

        label_reader = PascalVocReader(label_file)
        size = label_reader.getSize()
        shapes = label_reader.getShapes()
        true_label = convert_shapes(shapes)

        pre_label = predict_label(net, im_file)

        t_s, s = compare_label(true_label, pre_label, class_score)
        print "scoring {0}".format(im_name), t_s, s, s / t_s
        total_score += t_s
        score += s
    print "iter {0} total_score".format(
        iter_num), score, total_score, score / total_score
    for i in class_score.iterkeys():
        print "iter {0} class_score:".format(
            iter_num), i, class_score[i], class_score[i][0] / class_score[i][1]
    return total_score, score
Beispiel #2
0
    for i in xrange(2):
        _, _= im_detect(net, im)

    im_names = os.listdir(input_dir+"/img")

    for im_name in im_names:
        print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
        print "auto label {0}".format(im_name)
        im_file = os.path.join(input_dir, 'img', im_name)

        label_file = os.path.join(input_dir, 'annotation', im_name)
        index = label_file.rindex('.')
        label_file = label_file[:index] + ".xml"
        if os.path.isfile(label_file):
            tmp_reader = PascalVocReader(label_file)
            size = tmp_reader.getSize()
            tmp_writer = PascalVocWriter(input_dir, im_name, size)
            shapes = tmp_reader.getShapes()
            for i in shapes:
                tmp_writer.addBndBox(i[1][0][0], i[1][0][1], i[1][2][0], i[1][2][1], i[0])
            print "load {0} labels from {1}".format(len(shapes), label_file)
        else:
            print "can not find label file {0}".format(label_file)
            size = cv2.imread(im_file).shape
            tmp_writer = PascalVocWriter(input_dir, im_name, size)
        
        n = auto_label(net, im_file, tmp_writer)
        
        tmp_writer.save(output_dir + '/' + os.path.basename(label_file))
        print "auto label {0} labels".format(n)
    plt.show()