Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

only got val_acc of 20.22 on the validation set after trained for 200 epochs #1

Open
Jacksky2017 opened this issue Nov 23, 2021 · 0 comments

Comments

@Jacksky2017
Copy link

Hi~ the code of generating the file 'instanceSegDB_person_train.pkl' seems to be absent. So, I borrowed some code from your repository of 'PointTrack' and amended them to get the right formation of the instances blocks, illustrated below. I'm not sure whether they are right or not. The generated file 'instanceSegDB_person_train.pkl' contains 74 instances blocks with the source from the training set of Kitti MOTS. Without KINS for finetuning, I used 'python train_e2e.py person_mots_ccpnet' to train the model on 5 GPUs for 200 epochs with an initial learning rate '5e-4'. Finally, I only got val_acc of 20.22. I'm confused where is the problem?

Looking forward to your reply!

OBJ_ID = 2
instIDs = dict()
instList = dict()
count=0
SEQ_IDS_TRAIN = ["%04d" % idx for idx in [0, 1, 3, 4, 5, 9, 11, 12, 15, 17, 19, 20]]
SEQ_IDS_VAL = ["%04d" % idx for idx in [2, 6, 7, 8, 10, 13, 14, 16, 18]]

def getImgLabel(img_path, label_path):
    img = cv2.imread(img_path)
    label = np.array(Image.open(label_path))
    mask = np.logical_and(label >= OBJ_ID * 1000, label < (OBJ_ID + 1) * 1000)
    label[(1-mask).astype(np.bool)] = 0
    return img, label

def getPairs(id):
    global instIDs, instList, count
    label_root = os.path.join(kittiRoot, "instances/" + id)
    image_root = label_root.replace('instances', 'images')

    image_list = make_dataset(image_root, suffix='.png')
    image_list.sort()
    label_list = make_dataset(label_root, suffix='.png')
    label_list.sort()
    count_offset = count
    for ind, image_path in enumerate(image_list):
        img, label = getImgLabel(image_list[ind], label_list[ind])
        if np.unique(label).shape[0] == 1:
            continue

        obj_ids = np.unique(label).tolist()[1:]
        for id in obj_ids:
            mask = (label == id).astype(np.uint8)
            vs, us = np.nonzero(mask)
            v0, v1 = vs.min(), vs.max()
            u0, u1 = us.min(), us.max()
            inst_id = id + count_offset
            sp = [v0, u0]
            imgCrop = img[v0:v1 + 1, u0:u1 + 1]
            xyxy = [u0, v0, u1, v1]
            maskCrop = mask[v0:v1 + 1, u0:u1 + 1]
            if inst_id in instIDs.keys():
                instList[instIDs[inst_id]].append({'inst_id': inst_id, 'sp': sp, 'xyxy': xyxy, 'img': imgCrop, 'mask': maskCrop})
            else:
                
                instIDs[inst_id] = count
                instList[count] = [{'inst_id': inst_id, 'sp': sp, 'xyxy': xyxy, 'img': imgCrop, 'mask': maskCrop}]
                count = count + 1

for i in SEQ_IDS_TRAIN:
    getPairs(i)
    print('process %s seq' % i)
print('trainSet %s samples' % count)
save_pickle2(os.path.join(kittiRoot, 'instanceSegDB_person_train.pkl'), instList)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant