@@ -305,7 +305,6 @@ def load_csv_as_tracks_and_attributes(
305
305
) = _parse_row_for_tracks (row )
306
306
307
307
trackId , imageFile , _ , _ , _ = row_info (row )
308
-
309
308
if imageMap :
310
309
# validate image ordering if the imageMap is provided
311
310
imageName , _ = os .path .splitext (os .path .basename (imageFile ))
@@ -334,6 +333,8 @@ def load_csv_as_tracks_and_attributes(
334
333
(
335
334
'Images were provided in an unexpected order '
336
335
'and dataset contains multi-frame tracks. '
336
+ f'featureFrame: { feature .frame } maxFeatureFrame: { maxFeatureFrame } '
337
+ f'TrackId: { trackId } '
337
338
)
338
339
)
339
340
@@ -359,15 +360,18 @@ def load_csv_as_tracks_and_attributes(
359
360
continue
360
361
k = index + 1
361
362
if k < len (filteredImages ):
363
+ item_difference = foundImages [k ]['csvFrame' ] - item ['csvFrame' ]
362
364
if (
363
- item ['csvFrame' ] + 1 != filteredImages [k ]['csvFrame' ]
364
- or item ['frame' ] + 1 != filteredImages [k ]['frame' ]
365
+ item ['csvFrame' ] + item_difference != filteredImages [k ]['csvFrame' ]
366
+ or item ['frame' ] + item_difference != filteredImages [k ]['frame' ]
365
367
):
366
368
# We have misaligned video sequences so we error out
367
369
raise ValueError (
368
370
(
369
371
'A subsampling of images were used with the CSV '
370
372
'but they were not sequential'
373
+ f'foundImage: { filteredImages [k ]} item: { item } '
374
+ f'item difference: { item_difference } '
371
375
)
372
376
)
373
377
frameMapper [item ['csvFrame' ]] = index
@@ -422,15 +426,20 @@ def load_csv_as_tracks_and_attributes(
422
426
for index , item in enumerate (foundImages ):
423
427
k = index + 1
424
428
if k < len (foundImages ):
429
+ # sometimes the frame difference isn't 1
430
+ item_difference = foundImages [k ]['csvFrame' ] - item ['csvFrame' ]
425
431
if (
426
- item ['csvFrame' ] + 1 != foundImages [k ]['csvFrame' ]
427
- or item ['frame' ] + 1 != foundImages [k ]['frame' ]
432
+ item ['csvFrame' ] + item_difference != foundImages [k ]['csvFrame' ]
433
+ or item ['frame' ] + item_difference != foundImages [k ]['frame' ]
428
434
):
429
435
# We have misaligned video sequences so we error out
430
436
raise ValueError (
431
437
(
432
438
'Images were provided in an unexpected order '
433
439
'and dataset contains multi-frame tracks.'
440
+ f'foundImage: { foundImages [k ]} item: { item } '
441
+ f'itemDifference: { item_difference } '
442
+
434
443
)
435
444
)
436
445
0 commit comments