コード例 #1
0
def main():

    size = 12
    net = 'native_'+str(size)

    with open('%s/pos_%s.txt' % (net, size), 'r') as f:
        pos = f.readlines()
    with open('%s/neg_%s.txt' % (net, size), 'r') as f:
        neg = f.readlines()
    with open('%s/part_%s.txt' % (net, size), 'r') as f:
        part = f.readlines()

    print('\n'+'pos')
    filename_cls = 'pnet_data_for_cls.tfrecords'
    print('Writing')
    examples = []
    writer = tf.python_io.TFRecordWriter(filename_cls)
    cur_ = 0
    sum_ = len(pos)
    for line in pos:
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0]+'.jpg'
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 12 or w != 12:
            im = cv2.resize(im, (12, 12))
        im = im.astype('uint8')
        label = np.array([0, 1], dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(feature={
            'label_raw': bytes_feature(label_raw),
            'image_raw': bytes_feature(image_raw)}))
        examples.append(example)

    print('\n'+'neg')
    cur_ = 0
    neg_keep = npr.choice(len(neg), size=1000000, replace=False)
    sum_ = len(neg_keep)
    for i in neg_keep:
        line = neg[i]
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0]+'.jpg'
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 12 or w != 12:
            im = cv2.resize(im, (12, 12))
        im = im.astype('uint8')
        label = np.array([1, 0], dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(feature={
            'label_raw': bytes_feature(label_raw),
            'image_raw': bytes_feature(image_raw)}))
        examples.append(example)
    print(len(examples))
    random.shuffle(examples)
    for example in examples:
        writer.write(example.SerializeToString())
    writer.close()

    print('\n'+'pos')
    cur_ = 0
    filename_roi = 'pnet_data_for_bbx.tfrecords'
    print('Writing')
    sum_ = len(pos)
    examples = []
    writer = tf.python_io.TFRecordWriter(filename_roi)
    for line in pos:
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0]+'.jpg'
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 12 or w != 12:
            im = cv2.resize(im, (12, 12))
        im = im.astype('uint8')
        label = np.array([float(words[2]), float(words[3]),
                          float(words[4]), float(words[5])],
                         dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(feature={
            'label_raw': bytes_feature(label_raw),
            'image_raw': bytes_feature(image_raw)}))
        examples.append(example)

    print('\n'+'part')
    cur_ = 0
    part_keep = npr.choice(len(part), size=300000, replace=False)
    sum_ = len(part_keep)
    for i in part_keep:
        view_bar(cur_, sum_)
        line = part[i]
        cur_ += 1
        words = line.split()
        image_file_name = words[0]+'.jpg'
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 12 or w != 12:
            im = cv2.resize(im, (12, 12))
        im = im.astype('uint8')
        label = np.array([float(words[2]), float(words[3]),
                          float(words[4]), float(words[5])],
                         dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(feature={
            'label_raw': bytes_feature(label_raw),
            'image_raw': bytes_feature(image_raw)}))
        examples.append(example)
    print(len(examples))
    random.shuffle(examples)
    for example in examples:
        writer.write(example.SerializeToString())
    writer.close()
コード例 #2
0
def main():

    size = 12
    net = 'native_' + str(size)

    with open('%s/pos_%s.txt' % (net, size), 'r') as f:
        pos = f.readlines()
    with open('%s/neg_%s.txt' % (net, size), 'r') as f:
        neg = f.readlines()
    with open('%s/part_%s.txt' % (net, size), 'r') as f:
        part = f.readlines()

    print('\n' + 'pos')
    filename_cls = 'pnet_data_for_cls.tfrecords'
    print('Writing')
    examples = []
    writer = tf.python_io.TFRecordWriter(filename_cls)
    cur_ = 0
    sum_ = len(pos)
    for line in pos:
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0] + '.jpg'
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 12 or w != 12:
            im = cv2.resize(im, (12, 12))
        im = im.astype('uint8')
        label = np.array([0, 1], dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)

    print('\n' + 'neg')
    cur_ = 0
    neg_keep = npr.choice(len(neg), size=10000, replace=False)
    sum_ = len(neg_keep)
    for i in neg_keep:
        line = neg[i]
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0] + '.jpg'
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 12 or w != 12:
            im = cv2.resize(im, (12, 12))
        im = im.astype('uint8')
        label = np.array([1, 0], dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))
    random.shuffle(examples)
    for example in examples:
        writer.write(example.SerializeToString())
    writer.close()

    print('\n' + 'pos')
    cur_ = 0
    filename_roi = 'pnet_data_for_bbx.tfrecords'
    print('Writing')
    sum_ = len(pos)
    examples = []
    writer = tf.python_io.TFRecordWriter(filename_roi)
    for line in pos:
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0] + '.jpg'
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 12 or w != 12:
            im = cv2.resize(im, (12, 12))
        im = im.astype('uint8')
        label = np.array([
            float(words[2]),
            float(words[3]),
            float(words[4]),
            float(words[5])
        ],
                         dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)

    print('\n' + 'part')
    cur_ = 0
    part_keep = npr.choice(len(part), size=300000, replace=False)
    sum_ = len(part_keep)
    for i in part_keep:
        view_bar(cur_, sum_)
        line = part[i]
        cur_ += 1
        words = line.split()
        image_file_name = words[0] + '.jpg'
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 12 or w != 12:
            im = cv2.resize(im, (12, 12))
        im = im.astype('uint8')
        label = np.array([
            float(words[2]),
            float(words[3]),
            float(words[4]),
            float(words[5])
        ],
                         dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))
    random.shuffle(examples)
    for example in examples:
        writer.write(example.SerializeToString())
    writer.close()
コード例 #3
0
def main(input_size, classifier_tfrecord_fp, localizer_tfrecord_fp,
         root_data_dir):
    net = os.path.join(root_data_dir, str(input_size))
    with open('%s/pos_%s.txt' % (net, input_size), 'r') as f:
        pos_hard = f.readlines()
    with open('%s/neg_%s.txt' % (net, input_size), 'r') as f:
        neg = f.readlines()
    with open('%s/part_%s.txt' % (net, input_size), 'r') as f:
        part_hard = f.readlines()
    with open(
            os.path.join(
                root_data_dir,
                'native_' + '%s/pos_%s.txt' % (input_size, input_size)),
            'r') as f:
        pos = f.readlines()
    with open(
            os.path.join(
                root_data_dir,
                'native_' + '%s/part_%s.txt' % (input_size, input_size)),
            'r') as f:
        part = f.readlines()

    print('\n' + 'positive hard')
    cur_ = 0
    sum_ = len(pos_hard)
    print('Writing')
    examples = []
    writer = tf.python_io.TFRecordWriter(classifier_tfrecord_fp)
    for line in pos_hard:
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0]
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 24 or w != 24:
            im = cv2.resize(im, (24, 24))
        im = im.astype('uint8')
        label = np.array([0, 1], dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))

    print('\n' + 'positive random cropped')
    cur_ = 0
    pos_keep = npr.choice(len(pos), size=min(len(pos), 100000), replace=False)
    sum_ = len(pos_keep)
    print('Writing')
    for i in pos_keep:
        view_bar(cur_, sum_)
        cur_ += 1
        line = pos[i]
        words = line.split()
        image_file_name = words[0]
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 24 or w != 24:
            im = cv2.resize(im, (24, 24))
        im = im.astype('uint8')
        label = np.array([0, 1], dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))

    print('\n' + 'negative random cropped')
    cur_ = 0
    neg_keep = npr.choice(len(neg), size=min(len(neg), 1300000), replace=False)
    sum_ = len(neg_keep)
    for i in neg_keep:
        line = neg[i]
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0]
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 24 or w != 24:
            im = cv2.resize(im, (24, 24))
        im = im.astype('uint8')
        label = np.array([1, 0], dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))
    random.shuffle(examples)
    for example in examples:
        writer.write(example.SerializeToString())
    writer.close()

    examples = []
    print('\n' + 'positive random cropped')
    cur_ = 0
    print('Writing')
    writer = tf.python_io.TFRecordWriter(localizer_tfrecord_fp)
    pos_keep = npr.choice(len(pos), size=min(len(pos), 100000), replace=False)
    sum_ = len(pos_keep)
    print('Writing')
    for i in pos_keep:
        view_bar(cur_, sum_)
        cur_ += 1
        line = pos[i]
        words = line.split()
        image_file_name = words[0]
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 24 or w != 24:
            im = cv2.resize(im, (24, 24))
        im = im.astype('uint8')
        label = np.array([
            float(words[2]),
            float(words[3]),
            float(words[4]),
            float(words[5])
        ],
                         dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))

    print('\n' + 'positive hard')
    cur_ = 0
    print('Writing')
    sum_ = len(pos_hard)
    for line in pos_hard:
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0]
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 24 or w != 24:
            im = cv2.resize(im, (24, 24))
        im = im.astype('uint8')
        label = np.array([
            float(words[2]),
            float(words[3]),
            float(words[4]),
            float(words[5])
        ],
                         dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))

    print('\n' + 'part hard')
    cur_ = 0
    sum_ = len(part_hard)
    for line in part_hard:
        view_bar(cur_, sum_)
        cur_ += 1
        words = line.split()
        image_file_name = words[0]
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 24 or w != 24:
            im = cv2.resize(im, (24, 24))
        im = im.astype('uint8')
        label = np.array([
            float(words[2]),
            float(words[3]),
            float(words[4]),
            float(words[5])
        ],
                         dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))

    print('\n' + 'part random cropped')
    cur_ = 0
    part_keep = npr.choice(len(part),
                           size=min(len(part), 100000),
                           replace=False)
    sum_ = len(part_keep)
    for i in part_keep:
        view_bar(cur_, sum_)
        line = part[i]
        cur_ += 1
        words = line.split()
        image_file_name = words[0]
        im = cv2.imread(image_file_name)
        h, w, ch = im.shape
        if h != 24 or w != 24:
            im = cv2.resize(im, (24, 24))
        im = im.astype('uint8')
        label = np.array([
            float(words[2]),
            float(words[3]),
            float(words[4]),
            float(words[5])
        ],
                         dtype='float32')
        label_raw = label.tostring()
        image_raw = im.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
                'label_raw': bytes_feature(label_raw),
                'image_raw': bytes_feature(image_raw)
            }))
        examples.append(example)
    print(len(examples))

    random.shuffle(examples)
    for example in examples:
        writer.write(example.SerializeToString())
    writer.close()