mirror of https://github.com/JosephKJ/OWOD.git
parent
9ecd3801f0
commit
92312cc043
|
@ -4,16 +4,13 @@ MODEL:
|
||||||
# WEIGHTS: "/home/fk1/workspace/OWOD/output/expr_training_with_unk_with_clustering_Z_DIMENSION_256/model_final.pth"
|
# WEIGHTS: "/home/fk1/workspace/OWOD/output/expr_training_with_unk_with_clustering_Z_DIMENSION_256/model_final.pth"
|
||||||
# WEIGHTS: "/home/fk1/workspace/OWOD/output/t1/model_final.pth"
|
# WEIGHTS: "/home/fk1/workspace/OWOD/output/t1/model_final.pth"
|
||||||
DATASETS:
|
DATASETS:
|
||||||
TRAIN: ('voc_2007_trainval', 'voc_2012_trainval', 't2_test_unk')
|
TRAIN: ('t1_voc_coco_2007_train', ) # t1_voc_coco_2007_train, t1_voc_coco_2007_ft
|
||||||
TEST: ('voc_2007_test_unk', )
|
TEST: ('voc_coco_2007_test', ) # t1_voc_coco_2007_test, t1_voc_coco_2007_val
|
||||||
# TEST: ('t2_all_test_unk', )
|
|
||||||
|
|
||||||
# TEST: ('voc_2007_test','t2_test_unk', 't3_test_unk', 't4_test_unk')
|
|
||||||
SOLVER:
|
SOLVER:
|
||||||
STEPS: (12000, 16000)
|
STEPS: (12000, 16000)
|
||||||
MAX_ITER: 18000
|
MAX_ITER: 100
|
||||||
WARMUP_ITERS: 100
|
WARMUP_ITERS: 100
|
||||||
OUTPUT_DIR: "./output/expr_training_with_unk_with_clustering_cdist_10"
|
OUTPUT_DIR: "./output/t1_train"
|
||||||
OWOD:
|
OWOD:
|
||||||
PREV_INTRODUCED_CLS: 0
|
PREV_INTRODUCED_CLS: 0
|
||||||
CUR_INTRODUCED_CLS: 20
|
CUR_INTRODUCED_CLS: 20
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,100 @@
|
||||||
|
2010_000889
|
||||||
|
007089
|
||||||
|
004746
|
||||||
|
2009_004532
|
||||||
|
2011_000780
|
||||||
|
009287
|
||||||
|
2008_006382
|
||||||
|
2010_001934
|
||||||
|
2008_004036
|
||||||
|
2010_004173
|
||||||
|
2008_000176
|
||||||
|
002045
|
||||||
|
2011_001862
|
||||||
|
2011_000477
|
||||||
|
2011_002697
|
||||||
|
006233
|
||||||
|
2008_008725
|
||||||
|
2010_001036
|
||||||
|
007538
|
||||||
|
2009_002676
|
||||||
|
2008_002776
|
||||||
|
000997
|
||||||
|
005081
|
||||||
|
2009_001326
|
||||||
|
2011_000725
|
||||||
|
2011_000485
|
||||||
|
2008_006543
|
||||||
|
2009_003522
|
||||||
|
2008_008511
|
||||||
|
009603
|
||||||
|
2008_008206
|
||||||
|
006719
|
||||||
|
2009_002054
|
||||||
|
2009_001493
|
||||||
|
2011_002674
|
||||||
|
002891
|
||||||
|
007524
|
||||||
|
2009_002317
|
||||||
|
2009_003087
|
||||||
|
2008_001199
|
||||||
|
2011_001854
|
||||||
|
001858
|
||||||
|
2010_005922
|
||||||
|
2008_006282
|
||||||
|
002058
|
||||||
|
004867
|
||||||
|
003611
|
||||||
|
003301
|
||||||
|
2008_001649
|
||||||
|
2010_003779
|
||||||
|
2010_002873
|
||||||
|
2010_003467
|
||||||
|
2009_001812
|
||||||
|
009283
|
||||||
|
009773
|
||||||
|
2008_004431
|
||||||
|
002055
|
||||||
|
2011_000971
|
||||||
|
2009_003613
|
||||||
|
2010_005731
|
||||||
|
2010_001315
|
||||||
|
2008_004515
|
||||||
|
2010_005424
|
||||||
|
2008_006682
|
||||||
|
2008_000817
|
||||||
|
000294
|
||||||
|
2008_006433
|
||||||
|
2010_000602
|
||||||
|
2008_008043
|
||||||
|
2009_001848
|
||||||
|
2009_004986
|
||||||
|
2008_004106
|
||||||
|
2011_001611
|
||||||
|
006124
|
||||||
|
2008_007124
|
||||||
|
2009_002792
|
||||||
|
2008_006285
|
||||||
|
007868
|
||||||
|
2008_001070
|
||||||
|
2008_008671
|
||||||
|
2008_000626
|
||||||
|
2008_000078
|
||||||
|
009734
|
||||||
|
007809
|
||||||
|
2008_000815
|
||||||
|
2010_000254
|
||||||
|
2010_003630
|
||||||
|
006896
|
||||||
|
2011_003059
|
||||||
|
004033
|
||||||
|
002757
|
||||||
|
007040
|
||||||
|
009166
|
||||||
|
001110
|
||||||
|
2008_003881
|
||||||
|
2008_000619
|
||||||
|
2010_002747
|
||||||
|
2009_003507
|
||||||
|
009155
|
||||||
|
000492
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,200 @@
|
||||||
|
2010_000889
|
||||||
|
007089
|
||||||
|
004746
|
||||||
|
2009_004532
|
||||||
|
2011_000780
|
||||||
|
009287
|
||||||
|
2008_006382
|
||||||
|
2010_001934
|
||||||
|
2008_004036
|
||||||
|
2010_004173
|
||||||
|
2008_000176
|
||||||
|
002045
|
||||||
|
2011_001862
|
||||||
|
2011_000477
|
||||||
|
2011_002697
|
||||||
|
006233
|
||||||
|
2008_008725
|
||||||
|
2010_001036
|
||||||
|
007538
|
||||||
|
2009_002676
|
||||||
|
2008_002776
|
||||||
|
000997
|
||||||
|
005081
|
||||||
|
2009_001326
|
||||||
|
2011_000725
|
||||||
|
2011_000485
|
||||||
|
2008_006543
|
||||||
|
2009_003522
|
||||||
|
2008_008511
|
||||||
|
009603
|
||||||
|
2008_008206
|
||||||
|
006719
|
||||||
|
2009_002054
|
||||||
|
2009_001493
|
||||||
|
2011_002674
|
||||||
|
002891
|
||||||
|
007524
|
||||||
|
2009_002317
|
||||||
|
2009_003087
|
||||||
|
2008_001199
|
||||||
|
2011_001854
|
||||||
|
001858
|
||||||
|
2010_005922
|
||||||
|
2008_006282
|
||||||
|
002058
|
||||||
|
004867
|
||||||
|
003611
|
||||||
|
003301
|
||||||
|
2008_001649
|
||||||
|
2010_003779
|
||||||
|
2010_002873
|
||||||
|
2010_003467
|
||||||
|
2009_001812
|
||||||
|
009283
|
||||||
|
009773
|
||||||
|
2008_004431
|
||||||
|
002055
|
||||||
|
2011_000971
|
||||||
|
2009_003613
|
||||||
|
2010_005731
|
||||||
|
2010_001315
|
||||||
|
2008_004515
|
||||||
|
2010_005424
|
||||||
|
2008_006682
|
||||||
|
2008_000817
|
||||||
|
000294
|
||||||
|
2008_006433
|
||||||
|
2010_000602
|
||||||
|
2008_008043
|
||||||
|
2009_001848
|
||||||
|
2009_004986
|
||||||
|
2008_004106
|
||||||
|
2011_001611
|
||||||
|
006124
|
||||||
|
2008_007124
|
||||||
|
2009_002792
|
||||||
|
2008_006285
|
||||||
|
007868
|
||||||
|
2008_001070
|
||||||
|
2008_008671
|
||||||
|
2008_000626
|
||||||
|
2008_000078
|
||||||
|
009734
|
||||||
|
007809
|
||||||
|
2008_000815
|
||||||
|
2010_000254
|
||||||
|
2010_003630
|
||||||
|
006896
|
||||||
|
2011_003059
|
||||||
|
004033
|
||||||
|
002757
|
||||||
|
007040
|
||||||
|
009166
|
||||||
|
001110
|
||||||
|
2008_003881
|
||||||
|
2008_000619
|
||||||
|
2010_002747
|
||||||
|
2009_003507
|
||||||
|
009155
|
||||||
|
000492
|
||||||
|
000000288880
|
||||||
|
000000518293
|
||||||
|
000000223777
|
||||||
|
000000446461
|
||||||
|
000000507966
|
||||||
|
000000301432
|
||||||
|
000000579029
|
||||||
|
000000092014
|
||||||
|
000000024319
|
||||||
|
000000276549
|
||||||
|
000000489695
|
||||||
|
000000423919
|
||||||
|
000000316342
|
||||||
|
000000044054
|
||||||
|
000000109894
|
||||||
|
000000119600
|
||||||
|
000000024061
|
||||||
|
000000175142
|
||||||
|
000000158222
|
||||||
|
000000129247
|
||||||
|
000000382386
|
||||||
|
000000294348
|
||||||
|
000000429084
|
||||||
|
000000101772
|
||||||
|
000000256337
|
||||||
|
000000040705
|
||||||
|
000000433182
|
||||||
|
000000493048
|
||||||
|
000000362122
|
||||||
|
000000242739
|
||||||
|
000000220135
|
||||||
|
000000542594
|
||||||
|
000000317102
|
||||||
|
000000364139
|
||||||
|
000000467847
|
||||||
|
000000469658
|
||||||
|
000000519157
|
||||||
|
000000336040
|
||||||
|
000000451228
|
||||||
|
000000376875
|
||||||
|
000000332663
|
||||||
|
000000048641
|
||||||
|
000000421389
|
||||||
|
000000321427
|
||||||
|
000000293057
|
||||||
|
000000070255
|
||||||
|
000000366659
|
||||||
|
000000297009
|
||||||
|
000000162579
|
||||||
|
000000265324
|
||||||
|
000000353321
|
||||||
|
000000243773
|
||||||
|
000000093953
|
||||||
|
000000554750
|
||||||
|
000000312423
|
||||||
|
000000389634
|
||||||
|
000000219859
|
||||||
|
000000087007
|
||||||
|
000000052388
|
||||||
|
000000490857
|
||||||
|
000000471350
|
||||||
|
000000343860
|
||||||
|
000000215626
|
||||||
|
000000271280
|
||||||
|
000000033871
|
||||||
|
000000249288
|
||||||
|
000000167450
|
||||||
|
000000358359
|
||||||
|
000000463467
|
||||||
|
000000468341
|
||||||
|
000000162773
|
||||||
|
000000208381
|
||||||
|
000000095027
|
||||||
|
000000495860
|
||||||
|
000000533069
|
||||||
|
000000119358
|
||||||
|
000000048708
|
||||||
|
000000181296
|
||||||
|
000000079392
|
||||||
|
000000400983
|
||||||
|
000000508055
|
||||||
|
000000315232
|
||||||
|
000000067749
|
||||||
|
000000408672
|
||||||
|
000000125128
|
||||||
|
000000416936
|
||||||
|
000000147915
|
||||||
|
000000473651
|
||||||
|
000000280554
|
||||||
|
000000093331
|
||||||
|
000000266961
|
||||||
|
000000476104
|
||||||
|
000000094701
|
||||||
|
000000363549
|
||||||
|
000000295798
|
||||||
|
000000105757
|
||||||
|
000000435451
|
||||||
|
000000547089
|
||||||
|
000000061606
|
||||||
|
000000365282
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,300 @@
|
||||||
|
2010_000889
|
||||||
|
007089
|
||||||
|
004746
|
||||||
|
2009_004532
|
||||||
|
2011_000780
|
||||||
|
009287
|
||||||
|
2008_006382
|
||||||
|
2010_001934
|
||||||
|
2008_004036
|
||||||
|
2010_004173
|
||||||
|
2008_000176
|
||||||
|
002045
|
||||||
|
2011_001862
|
||||||
|
2011_000477
|
||||||
|
2011_002697
|
||||||
|
006233
|
||||||
|
2008_008725
|
||||||
|
2010_001036
|
||||||
|
007538
|
||||||
|
2009_002676
|
||||||
|
2008_002776
|
||||||
|
000997
|
||||||
|
005081
|
||||||
|
2009_001326
|
||||||
|
2011_000725
|
||||||
|
2011_000485
|
||||||
|
2008_006543
|
||||||
|
2009_003522
|
||||||
|
2008_008511
|
||||||
|
009603
|
||||||
|
2008_008206
|
||||||
|
006719
|
||||||
|
2009_002054
|
||||||
|
2009_001493
|
||||||
|
2011_002674
|
||||||
|
002891
|
||||||
|
007524
|
||||||
|
2009_002317
|
||||||
|
2009_003087
|
||||||
|
2008_001199
|
||||||
|
2011_001854
|
||||||
|
001858
|
||||||
|
2010_005922
|
||||||
|
2008_006282
|
||||||
|
002058
|
||||||
|
004867
|
||||||
|
003611
|
||||||
|
003301
|
||||||
|
2008_001649
|
||||||
|
2010_003779
|
||||||
|
2010_002873
|
||||||
|
2010_003467
|
||||||
|
2009_001812
|
||||||
|
009283
|
||||||
|
009773
|
||||||
|
2008_004431
|
||||||
|
002055
|
||||||
|
2011_000971
|
||||||
|
2009_003613
|
||||||
|
2010_005731
|
||||||
|
2010_001315
|
||||||
|
2008_004515
|
||||||
|
2010_005424
|
||||||
|
2008_006682
|
||||||
|
2008_000817
|
||||||
|
000294
|
||||||
|
2008_006433
|
||||||
|
2010_000602
|
||||||
|
2008_008043
|
||||||
|
2009_001848
|
||||||
|
2009_004986
|
||||||
|
2008_004106
|
||||||
|
2011_001611
|
||||||
|
006124
|
||||||
|
2008_007124
|
||||||
|
2009_002792
|
||||||
|
2008_006285
|
||||||
|
007868
|
||||||
|
2008_001070
|
||||||
|
2008_008671
|
||||||
|
2008_000626
|
||||||
|
2008_000078
|
||||||
|
009734
|
||||||
|
007809
|
||||||
|
2008_000815
|
||||||
|
2010_000254
|
||||||
|
2010_003630
|
||||||
|
006896
|
||||||
|
2011_003059
|
||||||
|
004033
|
||||||
|
002757
|
||||||
|
007040
|
||||||
|
009166
|
||||||
|
001110
|
||||||
|
2008_003881
|
||||||
|
2008_000619
|
||||||
|
2010_002747
|
||||||
|
2009_003507
|
||||||
|
009155
|
||||||
|
000492
|
||||||
|
000000288880
|
||||||
|
000000518293
|
||||||
|
000000223777
|
||||||
|
000000446461
|
||||||
|
000000507966
|
||||||
|
000000301432
|
||||||
|
000000579029
|
||||||
|
000000092014
|
||||||
|
000000024319
|
||||||
|
000000276549
|
||||||
|
000000489695
|
||||||
|
000000423919
|
||||||
|
000000316342
|
||||||
|
000000044054
|
||||||
|
000000109894
|
||||||
|
000000119600
|
||||||
|
000000024061
|
||||||
|
000000175142
|
||||||
|
000000158222
|
||||||
|
000000129247
|
||||||
|
000000382386
|
||||||
|
000000294348
|
||||||
|
000000429084
|
||||||
|
000000101772
|
||||||
|
000000256337
|
||||||
|
000000040705
|
||||||
|
000000433182
|
||||||
|
000000493048
|
||||||
|
000000362122
|
||||||
|
000000242739
|
||||||
|
000000220135
|
||||||
|
000000542594
|
||||||
|
000000317102
|
||||||
|
000000364139
|
||||||
|
000000467847
|
||||||
|
000000469658
|
||||||
|
000000519157
|
||||||
|
000000336040
|
||||||
|
000000451228
|
||||||
|
000000376875
|
||||||
|
000000332663
|
||||||
|
000000048641
|
||||||
|
000000421389
|
||||||
|
000000321427
|
||||||
|
000000293057
|
||||||
|
000000070255
|
||||||
|
000000366659
|
||||||
|
000000297009
|
||||||
|
000000162579
|
||||||
|
000000265324
|
||||||
|
000000353321
|
||||||
|
000000243773
|
||||||
|
000000093953
|
||||||
|
000000554750
|
||||||
|
000000312423
|
||||||
|
000000389634
|
||||||
|
000000219859
|
||||||
|
000000087007
|
||||||
|
000000052388
|
||||||
|
000000490857
|
||||||
|
000000471350
|
||||||
|
000000343860
|
||||||
|
000000215626
|
||||||
|
000000271280
|
||||||
|
000000033871
|
||||||
|
000000249288
|
||||||
|
000000167450
|
||||||
|
000000358359
|
||||||
|
000000463467
|
||||||
|
000000468341
|
||||||
|
000000162773
|
||||||
|
000000208381
|
||||||
|
000000095027
|
||||||
|
000000495860
|
||||||
|
000000533069
|
||||||
|
000000119358
|
||||||
|
000000048708
|
||||||
|
000000181296
|
||||||
|
000000079392
|
||||||
|
000000400983
|
||||||
|
000000508055
|
||||||
|
000000315232
|
||||||
|
000000067749
|
||||||
|
000000408672
|
||||||
|
000000125128
|
||||||
|
000000416936
|
||||||
|
000000147915
|
||||||
|
000000473651
|
||||||
|
000000280554
|
||||||
|
000000093331
|
||||||
|
000000266961
|
||||||
|
000000476104
|
||||||
|
000000094701
|
||||||
|
000000363549
|
||||||
|
000000295798
|
||||||
|
000000105757
|
||||||
|
000000435451
|
||||||
|
000000547089
|
||||||
|
000000061606
|
||||||
|
000000365282
|
||||||
|
000000394697
|
||||||
|
000000578055
|
||||||
|
000000086725
|
||||||
|
000000202923
|
||||||
|
000000252894
|
||||||
|
000000284893
|
||||||
|
000000330124
|
||||||
|
000000146710
|
||||||
|
000000458349
|
||||||
|
000000525619
|
||||||
|
000000290370
|
||||||
|
000000172420
|
||||||
|
000000405823
|
||||||
|
000000431383
|
||||||
|
000000206435
|
||||||
|
000000213577
|
||||||
|
000000095959
|
||||||
|
000000423234
|
||||||
|
000000293820
|
||||||
|
000000392632
|
||||||
|
000000321363
|
||||||
|
000000036828
|
||||||
|
000000338903
|
||||||
|
000000312591
|
||||||
|
000000138670
|
||||||
|
000000541691
|
||||||
|
000000220638
|
||||||
|
000000013983
|
||||||
|
000000250292
|
||||||
|
000000442441
|
||||||
|
000000555074
|
||||||
|
000000327590
|
||||||
|
000000015382
|
||||||
|
000000198923
|
||||||
|
000000287310
|
||||||
|
000000538320
|
||||||
|
000000344491
|
||||||
|
000000230884
|
||||||
|
000000253576
|
||||||
|
000000554340
|
||||||
|
000000351654
|
||||||
|
000000211593
|
||||||
|
000000093793
|
||||||
|
000000247976
|
||||||
|
000000104906
|
||||||
|
000000464188
|
||||||
|
000000064611
|
||||||
|
000000361375
|
||||||
|
000000012069
|
||||||
|
000000094885
|
||||||
|
000000457074
|
||||||
|
000000353884
|
||||||
|
000000324052
|
||||||
|
000000383111
|
||||||
|
000000076681
|
||||||
|
000000547284
|
||||||
|
000000193471
|
||||||
|
000000469768
|
||||||
|
000000045685
|
||||||
|
000000176477
|
||||||
|
000000496127
|
||||||
|
000000209794
|
||||||
|
000000502857
|
||||||
|
000000369889
|
||||||
|
000000269693
|
||||||
|
000000138100
|
||||||
|
000000447767
|
||||||
|
000000167494
|
||||||
|
000000361021
|
||||||
|
000000513861
|
||||||
|
000000394794
|
||||||
|
000000204137
|
||||||
|
000000167551
|
||||||
|
000000338061
|
||||||
|
000000074462
|
||||||
|
000000453959
|
||||||
|
000000130245
|
||||||
|
000000370145
|
||||||
|
000000559836
|
||||||
|
000000371322
|
||||||
|
000000112959
|
||||||
|
000000215558
|
||||||
|
000000561950
|
||||||
|
000000012754
|
||||||
|
000000237990
|
||||||
|
000000162882
|
||||||
|
000000479680
|
||||||
|
000000052484
|
||||||
|
000000192780
|
||||||
|
000000365911
|
||||||
|
000000581662
|
||||||
|
000000381208
|
||||||
|
000000059979
|
||||||
|
000000397184
|
||||||
|
000000308849
|
||||||
|
000000350842
|
||||||
|
000000489218
|
||||||
|
000000517084
|
||||||
|
000000275657
|
||||||
|
000000246197
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,400 @@
|
||||||
|
2010_000889
|
||||||
|
007089
|
||||||
|
004746
|
||||||
|
2009_004532
|
||||||
|
2011_000780
|
||||||
|
009287
|
||||||
|
2008_006382
|
||||||
|
2010_001934
|
||||||
|
2008_004036
|
||||||
|
2010_004173
|
||||||
|
2008_000176
|
||||||
|
002045
|
||||||
|
2011_001862
|
||||||
|
2011_000477
|
||||||
|
2011_002697
|
||||||
|
006233
|
||||||
|
2008_008725
|
||||||
|
2010_001036
|
||||||
|
007538
|
||||||
|
2009_002676
|
||||||
|
2008_002776
|
||||||
|
000997
|
||||||
|
005081
|
||||||
|
2009_001326
|
||||||
|
2011_000725
|
||||||
|
2011_000485
|
||||||
|
2008_006543
|
||||||
|
2009_003522
|
||||||
|
2008_008511
|
||||||
|
009603
|
||||||
|
2008_008206
|
||||||
|
006719
|
||||||
|
2009_002054
|
||||||
|
2009_001493
|
||||||
|
2011_002674
|
||||||
|
002891
|
||||||
|
007524
|
||||||
|
2009_002317
|
||||||
|
2009_003087
|
||||||
|
2008_001199
|
||||||
|
2011_001854
|
||||||
|
001858
|
||||||
|
2010_005922
|
||||||
|
2008_006282
|
||||||
|
002058
|
||||||
|
004867
|
||||||
|
003611
|
||||||
|
003301
|
||||||
|
2008_001649
|
||||||
|
2010_003779
|
||||||
|
2010_002873
|
||||||
|
2010_003467
|
||||||
|
2009_001812
|
||||||
|
009283
|
||||||
|
009773
|
||||||
|
2008_004431
|
||||||
|
002055
|
||||||
|
2011_000971
|
||||||
|
2009_003613
|
||||||
|
2010_005731
|
||||||
|
2010_001315
|
||||||
|
2008_004515
|
||||||
|
2010_005424
|
||||||
|
2008_006682
|
||||||
|
2008_000817
|
||||||
|
000294
|
||||||
|
2008_006433
|
||||||
|
2010_000602
|
||||||
|
2008_008043
|
||||||
|
2009_001848
|
||||||
|
2009_004986
|
||||||
|
2008_004106
|
||||||
|
2011_001611
|
||||||
|
006124
|
||||||
|
2008_007124
|
||||||
|
2009_002792
|
||||||
|
2008_006285
|
||||||
|
007868
|
||||||
|
2008_001070
|
||||||
|
2008_008671
|
||||||
|
2008_000626
|
||||||
|
2008_000078
|
||||||
|
009734
|
||||||
|
007809
|
||||||
|
2008_000815
|
||||||
|
2010_000254
|
||||||
|
2010_003630
|
||||||
|
006896
|
||||||
|
2011_003059
|
||||||
|
004033
|
||||||
|
002757
|
||||||
|
007040
|
||||||
|
009166
|
||||||
|
001110
|
||||||
|
2008_003881
|
||||||
|
2008_000619
|
||||||
|
2010_002747
|
||||||
|
2009_003507
|
||||||
|
009155
|
||||||
|
000492
|
||||||
|
000000288880
|
||||||
|
000000518293
|
||||||
|
000000223777
|
||||||
|
000000446461
|
||||||
|
000000507966
|
||||||
|
000000301432
|
||||||
|
000000579029
|
||||||
|
000000092014
|
||||||
|
000000024319
|
||||||
|
000000276549
|
||||||
|
000000489695
|
||||||
|
000000423919
|
||||||
|
000000316342
|
||||||
|
000000044054
|
||||||
|
000000109894
|
||||||
|
000000119600
|
||||||
|
000000024061
|
||||||
|
000000175142
|
||||||
|
000000158222
|
||||||
|
000000129247
|
||||||
|
000000382386
|
||||||
|
000000294348
|
||||||
|
000000429084
|
||||||
|
000000101772
|
||||||
|
000000256337
|
||||||
|
000000040705
|
||||||
|
000000433182
|
||||||
|
000000493048
|
||||||
|
000000362122
|
||||||
|
000000242739
|
||||||
|
000000220135
|
||||||
|
000000542594
|
||||||
|
000000317102
|
||||||
|
000000364139
|
||||||
|
000000467847
|
||||||
|
000000469658
|
||||||
|
000000519157
|
||||||
|
000000336040
|
||||||
|
000000451228
|
||||||
|
000000376875
|
||||||
|
000000332663
|
||||||
|
000000048641
|
||||||
|
000000421389
|
||||||
|
000000321427
|
||||||
|
000000293057
|
||||||
|
000000070255
|
||||||
|
000000366659
|
||||||
|
000000297009
|
||||||
|
000000162579
|
||||||
|
000000265324
|
||||||
|
000000353321
|
||||||
|
000000243773
|
||||||
|
000000093953
|
||||||
|
000000554750
|
||||||
|
000000312423
|
||||||
|
000000389634
|
||||||
|
000000219859
|
||||||
|
000000087007
|
||||||
|
000000052388
|
||||||
|
000000490857
|
||||||
|
000000471350
|
||||||
|
000000343860
|
||||||
|
000000215626
|
||||||
|
000000271280
|
||||||
|
000000033871
|
||||||
|
000000249288
|
||||||
|
000000167450
|
||||||
|
000000358359
|
||||||
|
000000463467
|
||||||
|
000000468341
|
||||||
|
000000162773
|
||||||
|
000000208381
|
||||||
|
000000095027
|
||||||
|
000000495860
|
||||||
|
000000533069
|
||||||
|
000000119358
|
||||||
|
000000048708
|
||||||
|
000000181296
|
||||||
|
000000079392
|
||||||
|
000000400983
|
||||||
|
000000508055
|
||||||
|
000000315232
|
||||||
|
000000067749
|
||||||
|
000000408672
|
||||||
|
000000125128
|
||||||
|
000000416936
|
||||||
|
000000147915
|
||||||
|
000000473651
|
||||||
|
000000280554
|
||||||
|
000000093331
|
||||||
|
000000266961
|
||||||
|
000000476104
|
||||||
|
000000094701
|
||||||
|
000000363549
|
||||||
|
000000295798
|
||||||
|
000000105757
|
||||||
|
000000435451
|
||||||
|
000000547089
|
||||||
|
000000061606
|
||||||
|
000000365282
|
||||||
|
000000394697
|
||||||
|
000000578055
|
||||||
|
000000086725
|
||||||
|
000000202923
|
||||||
|
000000252894
|
||||||
|
000000284893
|
||||||
|
000000330124
|
||||||
|
000000146710
|
||||||
|
000000458349
|
||||||
|
000000525619
|
||||||
|
000000290370
|
||||||
|
000000172420
|
||||||
|
000000405823
|
||||||
|
000000431383
|
||||||
|
000000206435
|
||||||
|
000000213577
|
||||||
|
000000095959
|
||||||
|
000000423234
|
||||||
|
000000293820
|
||||||
|
000000392632
|
||||||
|
000000321363
|
||||||
|
000000036828
|
||||||
|
000000338903
|
||||||
|
000000312591
|
||||||
|
000000138670
|
||||||
|
000000541691
|
||||||
|
000000220638
|
||||||
|
000000013983
|
||||||
|
000000250292
|
||||||
|
000000442441
|
||||||
|
000000555074
|
||||||
|
000000327590
|
||||||
|
000000015382
|
||||||
|
000000198923
|
||||||
|
000000287310
|
||||||
|
000000538320
|
||||||
|
000000344491
|
||||||
|
000000230884
|
||||||
|
000000253576
|
||||||
|
000000554340
|
||||||
|
000000351654
|
||||||
|
000000211593
|
||||||
|
000000093793
|
||||||
|
000000247976
|
||||||
|
000000104906
|
||||||
|
000000464188
|
||||||
|
000000064611
|
||||||
|
000000361375
|
||||||
|
000000012069
|
||||||
|
000000094885
|
||||||
|
000000457074
|
||||||
|
000000353884
|
||||||
|
000000324052
|
||||||
|
000000383111
|
||||||
|
000000076681
|
||||||
|
000000547284
|
||||||
|
000000193471
|
||||||
|
000000469768
|
||||||
|
000000045685
|
||||||
|
000000176477
|
||||||
|
000000496127
|
||||||
|
000000209794
|
||||||
|
000000502857
|
||||||
|
000000369889
|
||||||
|
000000269693
|
||||||
|
000000138100
|
||||||
|
000000447767
|
||||||
|
000000167494
|
||||||
|
000000361021
|
||||||
|
000000513861
|
||||||
|
000000394794
|
||||||
|
000000204137
|
||||||
|
000000167551
|
||||||
|
000000338061
|
||||||
|
000000074462
|
||||||
|
000000453959
|
||||||
|
000000130245
|
||||||
|
000000370145
|
||||||
|
000000559836
|
||||||
|
000000371322
|
||||||
|
000000112959
|
||||||
|
000000215558
|
||||||
|
000000561950
|
||||||
|
000000012754
|
||||||
|
000000237990
|
||||||
|
000000162882
|
||||||
|
000000479680
|
||||||
|
000000052484
|
||||||
|
000000192780
|
||||||
|
000000365911
|
||||||
|
000000581662
|
||||||
|
000000381208
|
||||||
|
000000059979
|
||||||
|
000000397184
|
||||||
|
000000308849
|
||||||
|
000000350842
|
||||||
|
000000489218
|
||||||
|
000000517084
|
||||||
|
000000275657
|
||||||
|
000000246197
|
||||||
|
000000251125
|
||||||
|
000000281756
|
||||||
|
000000094300
|
||||||
|
000000411330
|
||||||
|
000000157512
|
||||||
|
000000503978
|
||||||
|
000000523938
|
||||||
|
000000002531
|
||||||
|
000000115359
|
||||||
|
000000061693
|
||||||
|
000000210322
|
||||||
|
000000503137
|
||||||
|
000000468894
|
||||||
|
000000442724
|
||||||
|
000000560604
|
||||||
|
000000136988
|
||||||
|
000000389649
|
||||||
|
000000353130
|
||||||
|
000000515773
|
||||||
|
000000486936
|
||||||
|
000000022226
|
||||||
|
000000364738
|
||||||
|
000000167642
|
||||||
|
000000577413
|
||||||
|
000000288753
|
||||||
|
000000327761
|
||||||
|
000000008830
|
||||||
|
000000250720
|
||||||
|
000000379018
|
||||||
|
000000080369
|
||||||
|
000000081504
|
||||||
|
000000393760
|
||||||
|
000000556999
|
||||||
|
000000008568
|
||||||
|
000000288813
|
||||||
|
000000475906
|
||||||
|
000000079878
|
||||||
|
000000385378
|
||||||
|
000000356866
|
||||||
|
000000325873
|
||||||
|
000000543790
|
||||||
|
000000477434
|
||||||
|
000000549725
|
||||||
|
000000195840
|
||||||
|
000000368218
|
||||||
|
000000016125
|
||||||
|
000000208008
|
||||||
|
000000103778
|
||||||
|
000000450330
|
||||||
|
000000199224
|
||||||
|
000000470685
|
||||||
|
000000301817
|
||||||
|
000000045101
|
||||||
|
000000074517
|
||||||
|
000000483795
|
||||||
|
000000050945
|
||||||
|
000000436392
|
||||||
|
000000312997
|
||||||
|
000000425721
|
||||||
|
000000189915
|
||||||
|
000000326770
|
||||||
|
000000225704
|
||||||
|
000000140481
|
||||||
|
000000140028
|
||||||
|
000000515803
|
||||||
|
000000146561
|
||||||
|
000000511828
|
||||||
|
000000084648
|
||||||
|
000000257723
|
||||||
|
000000036953
|
||||||
|
000000091639
|
||||||
|
000000208963
|
||||||
|
000000375916
|
||||||
|
000000401336
|
||||||
|
000000330785
|
||||||
|
000000246474
|
||||||
|
000000182406
|
||||||
|
000000035266
|
||||||
|
000000168246
|
||||||
|
000000107860
|
||||||
|
000000276036
|
||||||
|
000000064822
|
||||||
|
000000552826
|
||||||
|
000000483837
|
||||||
|
000000227480
|
||||||
|
000000328588
|
||||||
|
000000434127
|
||||||
|
000000455339
|
||||||
|
000000166702
|
||||||
|
000000324490
|
||||||
|
000000141400
|
||||||
|
000000206841
|
||||||
|
000000306490
|
||||||
|
000000523297
|
||||||
|
000000541591
|
||||||
|
000000031885
|
||||||
|
000000203859
|
||||||
|
000000310450
|
||||||
|
000000459589
|
||||||
|
000000368321
|
File diff suppressed because it is too large
Load Diff
|
@ -199,7 +199,7 @@ def print_instances_class_histogram(dataset_dicts, class_names):
|
||||||
|
|
||||||
|
|
||||||
def get_detection_dataset_dicts(
|
def get_detection_dataset_dicts(
|
||||||
dataset_names, filter_empty=True, min_keypoints=0, proposal_files=None
|
dataset_names, filter_empty=True, min_keypoints=0, proposal_files=None, cfg=None
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Load and prepare dataset dicts for instance detection/segmentation and semantic segmentation.
|
Load and prepare dataset dicts for instance detection/segmentation and semantic segmentation.
|
||||||
|
@ -236,6 +236,17 @@ def get_detection_dataset_dicts(
|
||||||
if min_keypoints > 0 and has_instances:
|
if min_keypoints > 0 and has_instances:
|
||||||
dataset_dicts = filter_images_with_few_keypoints(dataset_dicts, min_keypoints)
|
dataset_dicts = filter_images_with_few_keypoints(dataset_dicts, min_keypoints)
|
||||||
|
|
||||||
|
d_name = dataset_names[0]
|
||||||
|
if 'voc_coco' in d_name:
|
||||||
|
if 'train' in d_name:
|
||||||
|
dataset_dicts = remove_prev_class_and_unk_instances(cfg, dataset_dicts)
|
||||||
|
elif 'test' in d_name:
|
||||||
|
dataset_dicts = label_known_class_and_unknown(cfg, dataset_dicts)
|
||||||
|
elif 'val' in d_name:
|
||||||
|
dataset_dicts = label_known_class_and_unknown(cfg, dataset_dicts)
|
||||||
|
elif 'ft' in d_name:
|
||||||
|
dataset_dicts = remove_unknown_instances(cfg, dataset_dicts)
|
||||||
|
|
||||||
if has_instances:
|
if has_instances:
|
||||||
try:
|
try:
|
||||||
class_names = MetadataCatalog.get(dataset_names[0]).thing_classes
|
class_names = MetadataCatalog.get(dataset_names[0]).thing_classes
|
||||||
|
@ -247,6 +258,66 @@ def get_detection_dataset_dicts(
|
||||||
assert len(dataset_dicts), "No valid data found in {}.".format(",".join(dataset_names))
|
assert len(dataset_dicts), "No valid data found in {}.".format(",".join(dataset_names))
|
||||||
return dataset_dicts
|
return dataset_dicts
|
||||||
|
|
||||||
|
def remove_prev_class_and_unk_instances(cfg, dataset_dicts):
|
||||||
|
# For training data.
|
||||||
|
prev_intro_cls = cfg.OWOD.PREV_INTRODUCED_CLS
|
||||||
|
curr_intro_cls = cfg.OWOD.CUR_INTRODUCED_CLS
|
||||||
|
valid_classes = range(prev_intro_cls, curr_intro_cls)
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.info("Valid classes: " + str(valid_classes))
|
||||||
|
logger.info("Removing earlier seen class objects and the unknown objects...")
|
||||||
|
|
||||||
|
for entry in copy.copy(dataset_dicts):
|
||||||
|
annos = entry["annotations"]
|
||||||
|
for annotation in copy.copy(annos):
|
||||||
|
if annotation["category_id"] not in valid_classes:
|
||||||
|
annos.remove(annotation)
|
||||||
|
if len(annos) == 0:
|
||||||
|
dataset_dicts.remove(entry)
|
||||||
|
|
||||||
|
return dataset_dicts
|
||||||
|
|
||||||
|
def remove_unknown_instances(cfg, dataset_dicts):
|
||||||
|
# For finetune data.
|
||||||
|
prev_intro_cls = cfg.OWOD.PREV_INTRODUCED_CLS
|
||||||
|
curr_intro_cls = cfg.OWOD.CUR_INTRODUCED_CLS
|
||||||
|
valid_classes = range(0, prev_intro_cls+curr_intro_cls)
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.info("Valid classes: " + str(valid_classes))
|
||||||
|
logger.info("Removing the unknown objects...")
|
||||||
|
|
||||||
|
for entry in copy.copy(dataset_dicts):
|
||||||
|
annos = entry["annotations"]
|
||||||
|
for annotation in copy.copy(annos):
|
||||||
|
if annotation["category_id"] not in valid_classes:
|
||||||
|
annos.remove(annotation)
|
||||||
|
if len(annos) == 0:
|
||||||
|
dataset_dicts.remove(entry)
|
||||||
|
|
||||||
|
return dataset_dicts
|
||||||
|
|
||||||
|
def label_known_class_and_unknown(cfg, dataset_dicts):
|
||||||
|
# For test and validation data.
|
||||||
|
# Label known instances the corresponding label and unknown instances as unknown.
|
||||||
|
prev_intro_cls = cfg.OWOD.PREV_INTRODUCED_CLS
|
||||||
|
curr_intro_cls = cfg.OWOD.CUR_INTRODUCED_CLS
|
||||||
|
total_num_class = cfg.MODEL.ROI_HEADS.NUM_CLASSES
|
||||||
|
|
||||||
|
known_classes = range(0, prev_intro_cls+curr_intro_cls)
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.info("Known classes: " + str(known_classes))
|
||||||
|
logger.info("Labelling known instances the corresponding label, and unknown instances as unknown...")
|
||||||
|
|
||||||
|
for entry in dataset_dicts:
|
||||||
|
annos = entry["annotations"]
|
||||||
|
for annotation in annos:
|
||||||
|
if annotation["category_id"] not in known_classes:
|
||||||
|
annotation["category_id"] = total_num_class
|
||||||
|
|
||||||
|
return dataset_dicts
|
||||||
|
|
||||||
def build_batch_data_loader(
|
def build_batch_data_loader(
|
||||||
dataset, sampler, total_batch_size, *, aspect_ratio_grouping=False, num_workers=0
|
dataset, sampler, total_batch_size, *, aspect_ratio_grouping=False, num_workers=0
|
||||||
|
@ -326,6 +397,7 @@ def build_detection_train_loader(cfg, mapper=None):
|
||||||
if cfg.MODEL.KEYPOINT_ON
|
if cfg.MODEL.KEYPOINT_ON
|
||||||
else 0,
|
else 0,
|
||||||
proposal_files=cfg.DATASETS.PROPOSAL_FILES_TRAIN if cfg.MODEL.LOAD_PROPOSALS else None,
|
proposal_files=cfg.DATASETS.PROPOSAL_FILES_TRAIN if cfg.MODEL.LOAD_PROPOSALS else None,
|
||||||
|
cfg=cfg,
|
||||||
)
|
)
|
||||||
dataset = DatasetFromList(dataset_dicts, copy=False)
|
dataset = DatasetFromList(dataset_dicts, copy=False)
|
||||||
|
|
||||||
|
@ -380,6 +452,7 @@ def build_detection_test_loader(cfg, dataset_name, mapper=None):
|
||||||
]
|
]
|
||||||
if cfg.MODEL.LOAD_PROPOSALS
|
if cfg.MODEL.LOAD_PROPOSALS
|
||||||
else None,
|
else None,
|
||||||
|
cfg=cfg
|
||||||
)
|
)
|
||||||
|
|
||||||
dataset = DatasetFromList(dataset_dicts)
|
dataset = DatasetFromList(dataset_dicts)
|
||||||
|
|
|
@ -214,7 +214,16 @@ def register_all_pascal_voc(root):
|
||||||
("voc_2012_trainval", "VOC2012", "trainval"),
|
("voc_2012_trainval", "VOC2012", "trainval"),
|
||||||
("voc_2012_train", "VOC2012", "train"),
|
("voc_2012_train", "VOC2012", "train"),
|
||||||
("voc_2012_val", "VOC2012", "val"),
|
("voc_2012_val", "VOC2012", "val"),
|
||||||
("voc_2007_test_unk", "VOC2007", "test_unk"),
|
("t1_voc_coco_2007_train", "VOC2007", "t1_train"),
|
||||||
|
("voc_coco_2007_test", "VOC2007", "all_task_test"),
|
||||||
|
("voc_coco_2007_val", "VOC2007", "all_task_val"),
|
||||||
|
("t1_voc_coco_2007_ft", "VOC2007", "t1_ft"),
|
||||||
|
("t2_voc_coco_2007_train", "VOC2007", "t2_train"),
|
||||||
|
("t2_voc_coco_2007_ft", "VOC2007", "t2_ft"),
|
||||||
|
("t3_voc_coco_2007_train", "VOC2007", "t3_train"),
|
||||||
|
("t3_voc_coco_2007_ft", "VOC2007", "t3_ft"),
|
||||||
|
("t4_voc_coco_2007_train", "VOC2007", "t4_train"),
|
||||||
|
("t4_voc_coco_2007_ft", "VOC2007", "t4_ft"),
|
||||||
]
|
]
|
||||||
for name, dirname, split in SPLITS:
|
for name, dirname, split in SPLITS:
|
||||||
year = 2007 if "2007" in name else 2012
|
year = 2007 if "2007" in name else 2012
|
||||||
|
@ -222,23 +231,23 @@ def register_all_pascal_voc(root):
|
||||||
MetadataCatalog.get(name).evaluator_type = "pascal_voc"
|
MetadataCatalog.get(name).evaluator_type = "pascal_voc"
|
||||||
|
|
||||||
|
|
||||||
def register_all_voc_style_coco(root):
|
# def register_all_voc_style_coco(root):
|
||||||
SPLITS = [
|
# SPLITS = [
|
||||||
("t2_train", "coco17_voc_style"),
|
# ("t2_train", "coco17_voc_style"),
|
||||||
("t2_test", "coco17_voc_style"),
|
# ("t2_test", "coco17_voc_style"),
|
||||||
("t2_test_unk", "coco17_voc_style"),
|
# ("t2_test_unk", "coco17_voc_style"),
|
||||||
("t3_train", "coco17_voc_style"),
|
# ("t3_train", "coco17_voc_style"),
|
||||||
("t3_test", "coco17_voc_style"),
|
# ("t3_test", "coco17_voc_style"),
|
||||||
("t3_test_unk", "coco17_voc_style"),
|
# ("t3_test_unk", "coco17_voc_style"),
|
||||||
("t4_train", "coco17_voc_style"),
|
# ("t4_train", "coco17_voc_style"),
|
||||||
("t4_test", "coco17_voc_style"),
|
# ("t4_test", "coco17_voc_style"),
|
||||||
("t4_test_unk", "coco17_voc_style"),
|
# ("t4_test_unk", "coco17_voc_style"),
|
||||||
("t2_all_test_unk", "coco17_voc_style")
|
# ("t2_all_test_unk", "coco17_voc_style")
|
||||||
]
|
# ]
|
||||||
for name, dirname in SPLITS:
|
# for name, dirname in SPLITS:
|
||||||
year = 2007
|
# year = 2007
|
||||||
register_voc_style_coco(name, os.path.join(root, dirname), name, year)
|
# register_voc_style_coco(name, os.path.join(root, dirname), name, year)
|
||||||
MetadataCatalog.get(name).evaluator_type = "pascal_voc"
|
# MetadataCatalog.get(name).evaluator_type = "pascal_voc"
|
||||||
|
|
||||||
|
|
||||||
def register_all_ade20k(root):
|
def register_all_ade20k(root):
|
||||||
|
@ -270,5 +279,5 @@ if __name__.endswith(".builtin"):
|
||||||
# register_all_pascal_voc(_root)
|
# register_all_pascal_voc(_root)
|
||||||
# register_all_pascal_voc('/home/joseph/workspace/OWOD/datasets')
|
# register_all_pascal_voc('/home/joseph/workspace/OWOD/datasets')
|
||||||
register_all_pascal_voc('/home/fk1/workspace/OWOD/datasets')
|
register_all_pascal_voc('/home/fk1/workspace/OWOD/datasets')
|
||||||
register_all_voc_style_coco('/home/fk1/workspace/OWOD/datasets')
|
# register_all_voc_style_coco('/home/fk1/workspace/OWOD/datasets')
|
||||||
register_all_ade20k(_root)
|
register_all_ade20k(_root)
|
||||||
|
|
|
@ -19,12 +19,53 @@ __all__ = ["load_voc_instances", "register_pascal_voc"]
|
||||||
# "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person",
|
# "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person",
|
||||||
# "pottedplant", "sheep", "sofa", "train", "tvmonitor"
|
# "pottedplant", "sheep", "sofa", "train", "tvmonitor"
|
||||||
# )
|
# )
|
||||||
CLASS_NAMES = (
|
# CLASS_NAMES = (
|
||||||
|
# "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat",
|
||||||
|
# "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person",
|
||||||
|
# "pottedplant", "sheep", "sofa", "train", "tvmonitor", "unknown"
|
||||||
|
# )
|
||||||
|
# fmt: on
|
||||||
|
|
||||||
|
VOC_CLASS_NAMES_COCOFIED = [
|
||||||
|
"airplane", "dining table", "motorcycle",
|
||||||
|
"potted plant", "couch", "tv"
|
||||||
|
]
|
||||||
|
|
||||||
|
BASE_VOC_CLASS_NAMES = [
|
||||||
|
"aeroplane", "diningtable", "motorbike",
|
||||||
|
"pottedplant", "sofa", "tvmonitor"
|
||||||
|
]
|
||||||
|
|
||||||
|
VOC_CLASS_NAMES = [
|
||||||
"aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat",
|
"aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat",
|
||||||
"chair", "cow", "diningtable", "dog", "horse", "motorbike", "person",
|
"chair", "cow", "diningtable", "dog", "horse", "motorbike", "person",
|
||||||
"pottedplant", "sheep", "sofa", "train", "tvmonitor", "unknown"
|
"pottedplant", "sheep", "sofa", "train", "tvmonitor"
|
||||||
)
|
]
|
||||||
# fmt: on
|
|
||||||
|
T2_CLASS_NAMES = [
|
||||||
|
"truck", "traffic light", "fire hydrant", "stop sign", "parking meter",
|
||||||
|
"bench", "elephant", "bear", "zebra", "giraffe",
|
||||||
|
"backpack", "umbrella", "handbag", "tie", "suitcase",
|
||||||
|
"microwave", "oven", "toaster", "sink", "refrigerator"
|
||||||
|
]
|
||||||
|
|
||||||
|
T3_CLASS_NAMES = [
|
||||||
|
"frisbee", "skis", "snowboard", "sports ball", "kite",
|
||||||
|
"baseball bat", "baseball glove", "skateboard", "surfboard", "tennis racket",
|
||||||
|
"banana", "apple", "sandwich", "orange", "broccoli",
|
||||||
|
"carrot", "hot dog", "pizza", "donut", "cake"
|
||||||
|
]
|
||||||
|
|
||||||
|
T4_CLASS_NAMES = [
|
||||||
|
"bed", "toilet", "laptop", "mouse",
|
||||||
|
"remote", "keyboard", "cell phone", "book", "clock",
|
||||||
|
"vase", "scissors", "teddy bear", "hair drier", "toothbrush",
|
||||||
|
"wine glass", "cup", "fork", "knife", "spoon", "bowl"
|
||||||
|
]
|
||||||
|
|
||||||
|
UNK_CLASS = ["unknown"]
|
||||||
|
|
||||||
|
VOC_COCO_CLASS_NAMES = tuple(itertools.chain(VOC_CLASS_NAMES, T2_CLASS_NAMES, T3_CLASS_NAMES, T4_CLASS_NAMES, UNK_CLASS))
|
||||||
|
|
||||||
def load_voc_instances(dirname: str, split: str, class_names: Union[List[str], Tuple[str, ...]]):
|
def load_voc_instances(dirname: str, split: str, class_names: Union[List[str], Tuple[str, ...]]):
|
||||||
"""
|
"""
|
||||||
|
@ -42,11 +83,6 @@ def load_voc_instances(dirname: str, split: str, class_names: Union[List[str], T
|
||||||
annotation_dirname = PathManager.get_local_path(os.path.join(dirname, "Annotations/"))
|
annotation_dirname = PathManager.get_local_path(os.path.join(dirname, "Annotations/"))
|
||||||
dicts = []
|
dicts = []
|
||||||
for fileid in fileids:
|
for fileid in fileids:
|
||||||
has_unk = False
|
|
||||||
if 'unk' in fileid:
|
|
||||||
has_unk = True
|
|
||||||
fileid = fileid.replace('_unk','')
|
|
||||||
|
|
||||||
anno_file = os.path.join(annotation_dirname, fileid + ".xml")
|
anno_file = os.path.join(annotation_dirname, fileid + ".xml")
|
||||||
jpeg_file = os.path.join(dirname, "JPEGImages", fileid + ".jpg")
|
jpeg_file = os.path.join(dirname, "JPEGImages", fileid + ".jpg")
|
||||||
|
|
||||||
|
@ -63,11 +99,8 @@ def load_voc_instances(dirname: str, split: str, class_names: Union[List[str], T
|
||||||
|
|
||||||
for obj in tree.findall("object"):
|
for obj in tree.findall("object"):
|
||||||
cls = obj.find("name").text
|
cls = obj.find("name").text
|
||||||
if has_unk:
|
if cls in VOC_CLASS_NAMES_COCOFIED:
|
||||||
if cls not in class_names:
|
cls = BASE_VOC_CLASS_NAMES[VOC_CLASS_NAMES_COCOFIED.index(cls)]
|
||||||
cls = 'unknown'
|
|
||||||
# else:
|
|
||||||
# continue
|
|
||||||
# We include "difficult" samples in training.
|
# We include "difficult" samples in training.
|
||||||
# Based on limited experiments, they don't hurt accuracy.
|
# Based on limited experiments, they don't hurt accuracy.
|
||||||
# difficult = int(obj.find("difficult").text)
|
# difficult = int(obj.find("difficult").text)
|
||||||
|
@ -89,7 +122,11 @@ def load_voc_instances(dirname: str, split: str, class_names: Union[List[str], T
|
||||||
return dicts
|
return dicts
|
||||||
|
|
||||||
|
|
||||||
def register_pascal_voc(name, dirname, split, year, class_names=CLASS_NAMES):
|
def register_pascal_voc(name, dirname, split, year):
|
||||||
|
if "voc_coco" in name:
|
||||||
|
class_names = VOC_COCO_CLASS_NAMES
|
||||||
|
else:
|
||||||
|
class_names = tuple(VOC_CLASS_NAMES)
|
||||||
DatasetCatalog.register(name, lambda: load_voc_instances(dirname, split, class_names))
|
DatasetCatalog.register(name, lambda: load_voc_instances(dirname, split, class_names))
|
||||||
MetadataCatalog.get(name).set(
|
MetadataCatalog.get(name).set(
|
||||||
thing_classes=list(class_names), dirname=dirname, year=year, split=split
|
thing_classes=list(class_names), dirname=dirname, year=year, split=split
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
import os
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
from typing import List, Tuple, Union
|
||||||
|
from fvcore.common.file_io import PathManager
|
||||||
|
|
||||||
|
from detectron2.data import DatasetCatalog, MetadataCatalog
|
||||||
|
from detectron2.structures import BoxMode
|
||||||
|
|
||||||
|
__all__ = ["load_voc_instances", "register_pascal_voc"]
|
||||||
|
|
||||||
|
|
||||||
|
# fmt: off
|
||||||
|
# CLASS_NAMES = (
|
||||||
|
# "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat",
|
||||||
|
# "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person",
|
||||||
|
# "pottedplant", "sheep", "sofa", "train", "tvmonitor"
|
||||||
|
# )
|
||||||
|
CLASS_NAMES = (
|
||||||
|
"aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat",
|
||||||
|
"chair", "cow", "diningtable", "dog", "horse", "motorbike", "person",
|
||||||
|
"pottedplant", "sheep", "sofa", "train", "tvmonitor", "unknown"
|
||||||
|
)
|
||||||
|
# fmt: on
|
||||||
|
|
||||||
|
def load_voc_instances(dirname: str, split: str, class_names: Union[List[str], Tuple[str, ...]]):
|
||||||
|
"""
|
||||||
|
Load Pascal VOC detection annotations to Detectron2 format.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
dirname: Contain "Annotations", "ImageSets", "JPEGImages"
|
||||||
|
split (str): one of "train", "test", "val", "trainval"
|
||||||
|
class_names: list or tuple of class names
|
||||||
|
"""
|
||||||
|
with PathManager.open(os.path.join(dirname, "ImageSets", "Main", split + ".txt")) as f:
|
||||||
|
fileids = np.loadtxt(f, dtype=np.str)
|
||||||
|
|
||||||
|
# Needs to read many small annotation files. Makes sense at local
|
||||||
|
annotation_dirname = PathManager.get_local_path(os.path.join(dirname, "Annotations/"))
|
||||||
|
dicts = []
|
||||||
|
for fileid in fileids:
|
||||||
|
has_unk = False
|
||||||
|
if 'unk' in fileid:
|
||||||
|
has_unk = True
|
||||||
|
fileid = fileid.replace('_unk','')
|
||||||
|
|
||||||
|
anno_file = os.path.join(annotation_dirname, fileid + ".xml")
|
||||||
|
jpeg_file = os.path.join(dirname, "JPEGImages", fileid + ".jpg")
|
||||||
|
|
||||||
|
with PathManager.open(anno_file) as f:
|
||||||
|
tree = ET.parse(f)
|
||||||
|
|
||||||
|
r = {
|
||||||
|
"file_name": jpeg_file,
|
||||||
|
"image_id": fileid,
|
||||||
|
"height": int(tree.findall("./size/height")[0].text),
|
||||||
|
"width": int(tree.findall("./size/width")[0].text),
|
||||||
|
}
|
||||||
|
instances = []
|
||||||
|
|
||||||
|
for obj in tree.findall("object"):
|
||||||
|
cls = obj.find("name").text
|
||||||
|
if has_unk:
|
||||||
|
if cls not in class_names:
|
||||||
|
cls = 'unknown'
|
||||||
|
# else:
|
||||||
|
# continue
|
||||||
|
# We include "difficult" samples in training.
|
||||||
|
# Based on limited experiments, they don't hurt accuracy.
|
||||||
|
# difficult = int(obj.find("difficult").text)
|
||||||
|
# if difficult == 1:
|
||||||
|
# continue
|
||||||
|
bbox = obj.find("bndbox")
|
||||||
|
bbox = [float(bbox.find(x).text) for x in ["xmin", "ymin", "xmax", "ymax"]]
|
||||||
|
# Original annotations are integers in the range [1, W or H]
|
||||||
|
# Assuming they mean 1-based pixel indices (inclusive),
|
||||||
|
# a box with annotation (xmin=1, xmax=W) covers the whole image.
|
||||||
|
# In coordinate space this is represented by (xmin=0, xmax=W)
|
||||||
|
bbox[0] -= 1.0
|
||||||
|
bbox[1] -= 1.0
|
||||||
|
instances.append(
|
||||||
|
{"category_id": class_names.index(cls), "bbox": bbox, "bbox_mode": BoxMode.XYXY_ABS}
|
||||||
|
)
|
||||||
|
r["annotations"] = instances
|
||||||
|
dicts.append(r)
|
||||||
|
return dicts
|
||||||
|
|
||||||
|
|
||||||
|
def register_pascal_voc(name, dirname, split, year, class_names=CLASS_NAMES):
|
||||||
|
DatasetCatalog.register(name, lambda: load_voc_instances(dirname, split, class_names))
|
||||||
|
MetadataCatalog.get(name).set(
|
||||||
|
thing_classes=list(class_names), dirname=dirname, year=year, split=split
|
||||||
|
)
|
|
@ -627,7 +627,7 @@ class FastRCNNOutputLayers(nn.Module):
|
||||||
if item == None:
|
if item == None:
|
||||||
all_means[i] = torch.zeros((length))
|
all_means[i] = torch.zeros((length))
|
||||||
|
|
||||||
distances = torch.cdist(fg_features, torch.stack(all_means).cuda(), p=2.0)
|
distances = torch.cdist(fg_features, torch.stack(all_means).cuda(), p=10.0)
|
||||||
labels = []
|
labels = []
|
||||||
|
|
||||||
for index, feature in enumerate(fg_features):
|
for index, feature in enumerate(fg_features):
|
||||||
|
|
Loading…
Reference in New Issue