ZwwWayne / mmMOT

[ICCV2019] Robust Multi-Modality Multi-Object Tracking
252 stars 25 forks source link

ValueError: not enough values to unpack (expected 8, got 5) #11

Open b-xie opened 4 years ago

b-xie commented 4 years ago

hi, I run: python -u main.py --config ./config.yaml/config.yaml --result-path=./results then have the error: Traceback (most recent call last): File "main.py", line 275, in main() File "main.py", line 115, in main lr_scheduler, last_iter + 1, tb_logger) File "main.py", line 173, in train part=args.part) File "main.py", line 235, in validate step, args.result_path, part=part) ValueError: not enough values to unpack (expected 8, got 5)

this is I can not fix! Can you help m?

Also. at the beginning, I find that "Add [0] cars in [0/3975] images". as shown as below. Is that ok?

Only calculate the last transform with weight 0.001 Building dataset using dets file ./data/pp_train_dets.pkl Detect [ 16258] cars in [3365/3975] images Add [0] cars in [0/3975] images Building dataset using dets file ./data/pp_train_dets.pkl Detect [ 16258] cars in [3365/3975] images Add [0] cars in [0/3975] images Building dataset using dets file ./data/pp_val_dets.pkl Detect [ 13170] cars in [3475/3945] images Add [0] cars in [0/3945] images

ZwwWayne commented 4 years ago
  1. You might need to set a break point here to check whether it is successfully evaluated and further precisely locate the position of bug.
  2. It is OK. Add [0] cars in [0/3975] means it does not add objects from previous frames into current frames. We have tried several tricks like this before but they do not bring improvements.
b-xie commented 4 years ago

Thanks for the reply!

  1. Before this bug, there is a bug "bool can not Iteration" for the "return False"(see the # below). So I
    replace of the "return str(False)". Is that Ok?

  2. I use the print(see below) to find the bug. It is out at the "print(MOTA.shape)(see the # below)", the errors "MOTA is None".

  3. your is a great job. But it needs to wait a long time for the "Building dataset" at the beginning. So if it have a bug at the behind or I want change some at behind, I must wait for a long time for the result. I have tried to reduce the size or resolution of the dataset. Is there any better way?

sanity checks

    if len(e.groundtruth) is not len(e.tracker):
        mail.msg("The uploaded data does not provide results for every sequence.")
        #return False
        print("before")
        return str(False)
        print("after")
    mail.msg("Loaded %d Sequences." % len(e.groundtruth))
    mail.msg("Start Evaluation...")
    # create needed directories, evaluate and save stats
    try:
        e.createEvalDir()
    except:
        mail.msg("Feel free to contact us (lenz@kit.edu), if you receive this error message:")
        mail.msg("   Caught exception while creating results.")
    if e.compute3rdPartyMetrics():
        MOTA, MOTP, recall, prec, F1,  fp, fn, id_switches = e.saveToStats()
    else:
        mail.msg("There seem to be no true positives or false positives at all in the submitted data.")

# finish
if len(classes)==0:
    mail.msg("The uploaded results could not be evaluated. Check for format errors.")
    #return False
    print("before22")
    '''
    print(MOTA.shape)##
    print(MOTP.shape)
    print(recall.shape)
    print(prec.shape)
    print(F1.shape)
    print(fp.shape)
    print(fn.shape)
    print(id_switches.shape)
    '''
    print("before22")
    return str(False)
    print("after2")
  1. These 3 UserWarnings are OK? Thanks for your time!!

    'val_root': './kitti_t_o/training', 'val_source': './kitti_t_o/training/', 'weight_decay': 0.01, 'without_reflectivity': True, 'workers': 1} /media/bangquanxie/7E76FE92A73388C3/FusionForTracking/1.mmMOT/mmMOT-master/cost.py:179: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requiresgrad(True), rather than tensor.new_tensor(sourceTensor). torch.eye(trans[i].size(-1))) /media/bangquanxie/7E76FE92A73388C3/FusionForTracking/1.mmMOT/mmMOT-master/cost.py:189: UserWarning: Using a target size (torch.Size([3, 3])) that is different to the input size (torch.Size([1, 3, 3])). This will likely lead to incorrect results due to broadcasting. Please ensure they have the same size. identity.cuda()) self.trans_ratio /media/bangquanxie/7E76FE92A73388C3/FusionForTracking/1.mmMOT/mmMOT-master/cost.py:189: UserWarning: Using a target size (torch.Size([64, 64])) that is different to the input size (torch.Size([1, 64, 64])). This will likely lead to incorrect results due to broadcasting. Please ensure they have the same size. identity.cuda()) self.trans_ratio [2020-03-25 22:55:22,944][ main.py][line: 165][ INFO] Iter: [100/6710] Time 0.300 (0.497) Data 0.000 (0.024) Loss 0.7418 (0.9230) [2020-03-25 22:55:54,357][ main.py][line: 165][ INFO] Iter: [200/6710] Time 0.337 (0.314) Data 0.000 (0.000) Loss 0.5646 (0.7543)

ZwwWayne commented 4 years ago
  1. It is not OK, it means the bug lies in someplace before you return str(False).
  2. MOTA is None means the evaluation failed, you may need to check what case makes it return None.
  3. The starting process is slow because it needs to load data from different sources and the organize the dataset. We will try to find a better way to accelerate in the future.
  4. The warning may caused by the higher version of Pytorch, we will try to reduce those warnings in the future.