11from iopath .common .file_io import PathHandler , PathManager , HTTPURLHandler
22from iopath .common .file_io import PathManager as PathManagerBase
3+
34# A trick learned from https://github.com/facebookresearch/detectron2/blob/65faeb4779e4c142484deeece18dc958c5c9ad18/detectron2/utils/file_io.py#L3
45
56MODEL_CATALOG = {
6- ' HJDataset' : {
7- ' faster_rcnn_R_50_FPN_3x' : ' https://www.dropbox.com/s/6icw6at8m28a2ho/model_final.pth?dl=1' ,
8- ' mask_rcnn_R_50_FPN_3x' : ' https://www.dropbox.com/s/893paxpy5suvlx9/model_final.pth?dl=1' ,
9- ' retinanet_R_50_FPN_3x' : ' https://www.dropbox.com/s/yxsloxu3djt456i/model_final.pth?dl=1'
7+ " HJDataset" : {
8+ " faster_rcnn_R_50_FPN_3x" : " https://www.dropbox.com/s/6icw6at8m28a2ho/model_final.pth?dl=1" ,
9+ " mask_rcnn_R_50_FPN_3x" : " https://www.dropbox.com/s/893paxpy5suvlx9/model_final.pth?dl=1" ,
10+ " retinanet_R_50_FPN_3x" : " https://www.dropbox.com/s/yxsloxu3djt456i/model_final.pth?dl=1" ,
1011 },
1112 "PubLayNet" : {
1213 "faster_rcnn_R_50_FPN_3x" : "https://www.dropbox.com/s/dgy9c10wykk4lq4/model_final.pth?dl=1" ,
1314 "mask_rcnn_R_50_FPN_3x" : "https://www.dropbox.com/s/d9fc9tahfzyl6df/model_final.pth?dl=1" ,
14- "mask_rcnn_X_101_32x8d_FPN_3x" : "https://www.dropbox.com/s/57zjbwv6gh3srry/model_final.pth?dl=1"
15+ "mask_rcnn_X_101_32x8d_FPN_3x" : "https://www.dropbox.com/s/57zjbwv6gh3srry/model_final.pth?dl=1" ,
1516 },
1617 "PrimaLayout" : {
1718 "mask_rcnn_R_50_FPN_3x" : "https://www.dropbox.com/s/h7th27jfv19rxiy/model_final.pth?dl=1"
1819 },
1920 "NewspaperNavigator" : {
20- ' faster_rcnn_R_50_FPN_3x' : ' https://www.dropbox.com/s/6ewh6g8rqt2ev3a/model_final.pth?dl=1' ,
21+ " faster_rcnn_R_50_FPN_3x" : " https://www.dropbox.com/s/6ewh6g8rqt2ev3a/model_final.pth?dl=1" ,
2122 },
2223 "TableBank" : {
23- ' faster_rcnn_R_50_FPN_3x' : ' https://www.dropbox.com/s/8v4uqmz1at9v72a/model_final.pth?dl=1' ,
24- ' faster_rcnn_R_101_FPN_3x' : ' https://www.dropbox.com/s/6vzfk8lk9xvyitg/model_final.pth?dl=1' ,
24+ " faster_rcnn_R_50_FPN_3x" : " https://www.dropbox.com/s/8v4uqmz1at9v72a/model_final.pth?dl=1" ,
25+ " faster_rcnn_R_101_FPN_3x" : " https://www.dropbox.com/s/6vzfk8lk9xvyitg/model_final.pth?dl=1" ,
2526 },
2627}
2728
2829CONFIG_CATALOG = {
29- ' HJDataset' : {
30- ' faster_rcnn_R_50_FPN_3x' : ' https://www.dropbox.com/s/j4yseny2u0hn22r/config.yml?dl=1' ,
31- ' mask_rcnn_R_50_FPN_3x' : ' https://www.dropbox.com/s/4jmr3xanmxmjcf8/config.yml?dl=1' ,
32- ' retinanet_R_50_FPN_3x' : ' https://www.dropbox.com/s/z8a8ywozuyc5c2x/config.yml?dl=1'
30+ " HJDataset" : {
31+ " faster_rcnn_R_50_FPN_3x" : " https://www.dropbox.com/s/j4yseny2u0hn22r/config.yml?dl=1" ,
32+ " mask_rcnn_R_50_FPN_3x" : " https://www.dropbox.com/s/4jmr3xanmxmjcf8/config.yml?dl=1" ,
33+ " retinanet_R_50_FPN_3x" : " https://www.dropbox.com/s/z8a8ywozuyc5c2x/config.yml?dl=1" ,
3334 },
3435 "PubLayNet" : {
3536 "faster_rcnn_R_50_FPN_3x" : "https://www.dropbox.com/s/f3b12qc4hc0yh4m/config.yml?dl=1" ,
3637 "mask_rcnn_R_50_FPN_3x" : "https://www.dropbox.com/s/u9wbsfwz4y0ziki/config.yml?dl=1" ,
37- "mask_rcnn_X_101_32x8d_FPN_3x" : "https://www.dropbox.com/s/nau5ut6zgthunil/config.yaml?dl=1"
38+ "mask_rcnn_X_101_32x8d_FPN_3x" : "https://www.dropbox.com/s/nau5ut6zgthunil/config.yaml?dl=1" ,
3839 },
3940 "PrimaLayout" : {
4041 "mask_rcnn_R_50_FPN_3x" : "https://www.dropbox.com/s/yc92x97k50abynt/config.yaml?dl=1"
4142 },
4243 "NewspaperNavigator" : {
43- ' faster_rcnn_R_50_FPN_3x' : ' https://www.dropbox.com/s/wnido8pk4oubyzr/config.yml?dl=1' ,
44+ " faster_rcnn_R_50_FPN_3x" : " https://www.dropbox.com/s/wnido8pk4oubyzr/config.yml?dl=1" ,
4445 },
4546 "TableBank" : {
46- 'faster_rcnn_R_50_FPN_3x' : 'https://www.dropbox.com/s/7cqle02do7ah7k4/config.yaml?dl=1' ,
47- 'faster_rcnn_R_101_FPN_3x' : 'https://www.dropbox.com/s/h63n6nv51kfl923/config.yaml?dl=1' ,
47+ "faster_rcnn_R_50_FPN_3x" : "https://www.dropbox.com/s/7cqle02do7ah7k4/config.yaml?dl=1" ,
48+ "faster_rcnn_R_101_FPN_3x" : "https://www.dropbox.com/s/h63n6nv51kfl923/config.yaml?dl=1" ,
49+ },
50+ }
51+
52+ LABEL_MAP_CATALOG = {
53+ "HJDataset" : {
54+ 1 : "Page Frame" ,
55+ 2 : "Row" ,
56+ 3 : "Title Region" ,
57+ 4 : "Text Region" ,
58+ 5 : "Title" ,
59+ 6 : "Subtitle" ,
60+ 7 : "Other" ,
61+ },
62+ "PubLayNet" : {0 : "Text" , 1 : "Title" , 2 : "List" , 3 : "Table" , 4 : "Figure" },
63+ "PrimaLayout" : {
64+ 1 : "TextRegion" ,
65+ 2 : "ImageRegion" ,
66+ 3 : "TableRegion" ,
67+ 4 : "MathsRegion" ,
68+ 5 : "SeparatorRegion" ,
69+ 6 : "OtherRegion" ,
70+ },
71+ "NewspaperNavigator" : {
72+ 0 : "Photograph" ,
73+ 1 : "Illustration" ,
74+ 2 : "Map" ,
75+ 3 : "Comics/Cartoon" ,
76+ 4 : "Editorial Cartoon" ,
77+ 5 : "Headline" ,
78+ 6 : "Advertisement" ,
4879 },
80+ "TableBank" : {0 : "Table" },
4981}
5082
5183
@@ -72,13 +104,13 @@ def _get_supported_prefixes(self):
72104 return [self .PREFIX ]
73105
74106 def _get_local_path (self , path , ** kwargs ):
75- model_name = path [len (self .PREFIX ):]
76- dataset_name , * model_name , data_type = model_name .split ('/' )
107+ model_name = path [len (self .PREFIX ) :]
108+ dataset_name , * model_name , data_type = model_name .split ("/" )
77109
78- if data_type == ' weight' :
79- model_url = MODEL_CATALOG [dataset_name ]['/' .join (model_name )]
80- elif data_type == ' config' :
81- model_url = CONFIG_CATALOG [dataset_name ]['/' .join (model_name )]
110+ if data_type == " weight" :
111+ model_url = MODEL_CATALOG [dataset_name ]["/" .join (model_name )]
112+ elif data_type == " config" :
113+ model_url = CONFIG_CATALOG [dataset_name ]["/" .join (model_name )]
82114 else :
83115 raise ValueError (f"Unknown data_type { data_type } " )
84116 return PathManager .get_local_path (model_url , ** kwargs )
0 commit comments