美文网首页OpenPose
OpenPose训练过程解析(7)

OpenPose训练过程解析(7)

作者: LaLa_2539 | 来源:发表于2018-10-12 14:17 被阅读0次

    genLMDB.py

    本篇文章查看genLMDB.py文件是如何生成LMDB数据的,(单行注释位于genLMDB.py文件里,此处只大体叙述流程)


    生成一个空的lmdb数据库文件

        env = lmdb.open(lmdb_path, map_size=int(1e12))      #map_size指数据库的最大容量  生成data.mdb lock.mdb
        txn = env.begin(write=True)  
    

    中间过程读取 COCO.Json 并通过 float2bytes 函数转化数据格式

    读取的数据存入 meta_data 数组,数组shape为输入图像大小,便于之后进行拼接,并通过 clidx 来作为第一个维度的索引下标

    meta_data = np.zeros(shape=(height,width,1), dtype=np.uint8)   
    
    meta_data[clidx] [i] content
    meta_data[0] dataset name (string)
    meta_data[1] [0] image height
    meta_data[1] [4] image width
    meta_data[2] [0] isValidation (uint8)
    [1] numOtherPeople (uint8)
    [2] people_index (uint8)
    [3] annolist_index (float)
    [7] writeCount (float)
    [11] totalWriteCount (float)
    meta_data[3] [0] objpos_x (float)
    [4] objpos_y (float)
    meta_data[4] [0] scale_provided (float)
    meta_data[5] [0] joint_self_x (17×float)
    meta_data[6] [0] joint_self_y (17×float)
    meta_data[7] [0] joint_self_score (17×float)
    meta_data[8] [0] objpos_other_x (float)
    nop为图像中其他人的个数 [4] objpos_other_y (float)
    meta_data[8+nop] [0] scale_provided_other (float)
    [4] nop*floats in 1 line
    meta_data[9+nop+nop*3] [0] joint_others_x (float)
    meta_data[10+nop+nop*3] [0] joint_others_y (float)
    meta_data[11+nop+nop*3] [0] joint_others_score (float)

    共写入 7 + 4 × nop lines meta_data

    meta_data.png

    img4ch

    将img(640×480) meta_data(640*480) mask_miss() mask_all()

        if "COCO" in data[idx]['dataset']:
            img4ch = np.concatenate((img, meta_data, mask_miss[...,None], mask_all[...,None]), axis=2)     #axis=2,三维的数组拼接
    
    img4ch.png

    相关文章

      网友评论

        本文标题:OpenPose训练过程解析(7)

        本文链接:https://www.haomeiwen.com/subject/cuvwaftx.html