merge_isomaps.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:thesis_scripts 作者: PhilippKopp 项目源码 文件源码
def merge_sm_with_tf(isomap_lists, confidence_lists, output_list):
    import tensorflow as tf
    import cnn_tf_graphs
    from shutil import copyfile

    #zipped_input = zip(isomap_lists, confidence_lists, output_list)
    #zipped_input.sort(key=lambda x: len(x[0]))
    #isomap_lists, confidence_lists, output_list = zip(*zipped_input)

    sorted_idx_list = sorted(range(len(isomap_lists)), key=lambda x: len(isomap_lists[x]))
    #print (sorted_idx_list)
    isomap_lists = [isomap_lists[i] for i in sorted_idx_list]
    confidence_lists = [confidence_lists[i] for i in sorted_idx_list]
    output_list = [output_list[i] for i in sorted_idx_list]

    #print ('HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH')
    #for i in range(len(isomap_lists)):
    #   print (isomap_lists[i])
    #   print (confidence_lists[i])
    #   print (output_list[i])

    #isomap_lists.sort(key=len)
    merge_legth = -1
    sess = None
    for j, isomap_list in enumerate(isomap_lists):

        with tf.Graph().as_default():
            if len(isomap_list) == 0:
                continue
            elif len(isomap_list) ==1:
                copyfile(isomap_list[0],output_list[j])
            else:
                if len(isomap_list) != merge_legth:
                    if sess:
                        sess.close()
                    placeholders = []
                    outpath = tf.placeholder(tf.string)
                    for i in range(len(isomap_list)):
                        colour = tf.placeholder(tf.float32, shape=(1, ISOMAP_SIZE, ISOMAP_SIZE, 3))
                        conf = tf.placeholder(tf.float32, shape=(1, ISOMAP_SIZE, ISOMAP_SIZE, 1))
                        placeholders.append([colour, conf])

                    merged = tf.squeeze(cnn_tf_graphs.merge_isomaps_softmax(placeholders))
                    merged_uint8 = tf.cast(merged, tf.uint8)
                    encoded = tf.image.encode_png(merged_uint8)
                    write_file_op = tf.write_file(outpath, encoded)

                    merge_legth = len(isomap_list)
                    sess = tf.Session()
                print ('merging',merge_legth,'images (max',len(isomap_lists[-1]),') idx',j,'of',len(isomap_lists))

                feed_dict = {}
                for i in range(len(isomap_list)):
                    feed_dict[placeholders[i][0]] = np.expand_dims(cv2.imread(isomap_list[i], cv2.IMREAD_UNCHANGED)[:,:,:3].astype(np.float32)[:,:,::-1], axis=0)
                    feed_dict[placeholders[i][1]] = np.expand_dims(np.load(confidence_lists[j][i]).astype(np.float32), axis=0)
                feed_dict[outpath] = output_list[j]
                sess.run(write_file_op, feed_dict=feed_dict)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号