├── public └── .gitignore ├── .gitignore ├── content ├── valid │ ├── 1.PNG │ ├── 10.PNG │ ├── 11.PNG │ ├── 12.PNG │ ├── 13.PNG │ ├── 14.PNG │ ├── 15.PNG │ ├── 16.PNG │ ├── 17.PNG │ ├── 18.PNG │ ├── 19.PNG │ ├── 2.PNG │ ├── 20.PNG │ ├── 21.PNG │ ├── 22.PNG │ ├── 23.PNG │ ├── 24.PNG │ ├── 25.PNG │ ├── 26.PNG │ ├── 27.PNG │ ├── 28.PNG │ ├── 29.PNG │ ├── 3.PNG │ ├── 30.PNG │ ├── 31.PNG │ ├── 32.PNG │ ├── 33.PNG │ ├── 34.PNG │ ├── 35.PNG │ ├── 36.PNG │ ├── 37.PNG │ ├── 38.PNG │ ├── 39.PNG │ ├── 4.PNG │ ├── 40.PNG │ ├── 41.PNG │ ├── 42.PNG │ ├── 43.PNG │ ├── 44.PNG │ ├── 45.PNG │ ├── 46.PNG │ ├── 47.PNG │ ├── 48.PNG │ ├── 49.PNG │ ├── 5.PNG │ ├── 50.PNG │ ├── 6.PNG │ ├── 7.PNG │ ├── 8.PNG │ ├── 9.PNG │ └── _annotations.coco.json └── train │ ├── z197.PNG │ ├── z198.PNG │ ├── z199.PNG │ ├── z200.PNG │ ├── 3i (47).PNG │ ├── 3i (48).PNG │ ├── 3i (49).PNG │ ├── 3i (51).PNG │ ├── 3i (53).PNG │ ├── 3i (54).PNG │ ├── 3i (55).PNG │ ├── 3i (56).PNG │ ├── 3i (57).PNG │ ├── 3i (58).PNG │ ├── 3i (59).PNG │ ├── 3i (61).PNG │ ├── 3i (63).PNG │ ├── 3i (65).PNG │ ├── 3i (66).PNG │ ├── 3i (67).PNG │ ├── 3i (69).PNG │ ├── 3i (71).PNG │ ├── 3i (72).PNG │ ├── 3i (73).PNG │ ├── 3i (74).PNG │ ├── 3i (75).PNG │ ├── 3i (76).PNG │ ├── 3i (77).PNG │ ├── 3i (79).PNG │ ├── 3i (81).PNG │ ├── 3i (82).PNG │ ├── 3i (83).PNG │ ├── 3i (84).PNG │ ├── 3i (85).PNG │ ├── 3i (86).PNG │ ├── 3i (91).PNG │ ├── 3i (92).PNG │ ├── 3i (94).PNG │ ├── 3i (96).PNG │ ├── 3i (98).PNG │ ├── q (1).PNG │ ├── q (10).PNG │ ├── q (11).PNG │ ├── q (12).PNG │ ├── q (13).PNG │ ├── q (14).PNG │ ├── q (15).PNG │ ├── q (16).PNG │ ├── q (17).PNG │ ├── q (18).PNG │ ├── q (19).PNG │ ├── q (2).PNG │ ├── q (20).PNG │ ├── q (21).PNG │ ├── q (22).PNG │ ├── q (23).PNG │ ├── q (24).PNG │ ├── q (25).PNG │ ├── q (26).PNG │ ├── q (27).PNG │ ├── q (28).PNG │ ├── q (29).PNG │ ├── q (3).PNG │ ├── q (30).PNG │ ├── q (31).PNG │ ├── q (32).PNG │ ├── q (33).PNG │ ├── q (34).PNG │ ├── q (35).PNG │ ├── q (36).PNG │ ├── q (37).PNG │ ├── q (38).PNG │ ├── q (39).PNG │ ├── q (4).PNG │ ├── q (40).PNG │ ├── q (41).PNG │ ├── q (42).PNG │ ├── q (43).PNG │ ├── q (44).PNG │ ├── q (45).PNG │ ├── q (46).PNG │ ├── q (47).PNG │ ├── q (48).PNG │ ├── q (49).PNG │ ├── q (5).PNG │ ├── q (50).PNG │ ├── q (51).PNG │ ├── q (52).PNG │ ├── q (53).PNG │ ├── q (54).PNG │ ├── q (55).PNG │ ├── q (56).PNG │ ├── q (57).PNG │ ├── q (58).PNG │ ├── q (59).PNG │ ├── q (6).PNG │ ├── q (60).PNG │ ├── q (61).PNG │ ├── q (62).PNG │ ├── q (63).PNG │ ├── q (64).PNG │ ├── q (65).PNG │ ├── q (66).PNG │ ├── q (67).PNG │ ├── q (68).PNG │ ├── q (69).PNG │ ├── q (7).PNG │ ├── q (70).PNG │ ├── q (71).PNG │ ├── q (72).PNG │ ├── q (73).PNG │ ├── q (74).PNG │ ├── q (75).PNG │ ├── q (76).PNG │ ├── q (77).PNG │ ├── q (78).PNG │ ├── q (79).PNG │ ├── q (8).PNG │ ├── q (80).PNG │ ├── q (81).PNG │ ├── q (82).PNG │ ├── q (83).PNG │ ├── q (84).PNG │ ├── q (85).PNG │ ├── q (86).PNG │ ├── q (87).PNG │ ├── q (88).PNG │ ├── q (89).PNG │ ├── q (9).PNG │ ├── q (90).PNG │ ├── q (91).PNG │ ├── q (92).PNG │ ├── q (93).PNG │ ├── q (94).PNG │ ├── q (95).PNG │ ├── w (1).PNG │ ├── w (10).PNG │ ├── w (11).PNG │ ├── w (12).PNG │ ├── w (13).PNG │ ├── w (14).PNG │ ├── w (15).PNG │ ├── w (2).PNG │ ├── w (3).PNG │ ├── w (4).PNG │ ├── w (5).PNG │ ├── w (6).PNG │ ├── w (7).PNG │ ├── w (8).PNG │ └── w (9).PNG ├── __pycache__ └── main.cpython-38.pyc ├── coco_eval └── instances_predictions.pth ├── inferenceContent ├── input │ ├── 1605093291894X9lSAxKRQ.png │ ├── 1605093311288yTJoC8gCO.png │ ├── 1605093321272qkEPt5N4q.png │ ├── 1605093382698GhQrcl4vJ.png │ └── 1605093391941wTIBFvsO7.png ├── output │ ├── 1605093291894X9lSAxKRQ.png │ ├── 1605093311288yTJoC8gCO.png │ ├── 1605093321272qkEPt5N4q.png │ ├── 1605093382698GhQrcl4vJ.png │ └── 1605093391941wTIBFvsO7.png └── outputData │ └── outputData.json ├── views ├── footer.ejs ├── head.ejs ├── scripts.ejs ├── header.ejs └── index.ejs ├── package.json ├── README.md ├── main.py ├── inferenceSingle.py ├── conda-spec-file.txt └── index.js /public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | */ 3 | !.gitignore -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pth 2 | output/* 3 | node_modules/ 4 | test.py 5 | =2.0.1 6 | .vscode/ 7 | __pychache__/ -------------------------------------------------------------------------------- /content/valid/1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/1.PNG -------------------------------------------------------------------------------- /content/valid/10.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/10.PNG -------------------------------------------------------------------------------- /content/valid/11.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/11.PNG -------------------------------------------------------------------------------- /content/valid/12.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/12.PNG -------------------------------------------------------------------------------- /content/valid/13.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/13.PNG -------------------------------------------------------------------------------- /content/valid/14.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/14.PNG -------------------------------------------------------------------------------- /content/valid/15.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/15.PNG -------------------------------------------------------------------------------- /content/valid/16.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/16.PNG -------------------------------------------------------------------------------- /content/valid/17.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/17.PNG -------------------------------------------------------------------------------- /content/valid/18.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/18.PNG -------------------------------------------------------------------------------- /content/valid/19.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/19.PNG -------------------------------------------------------------------------------- /content/valid/2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/2.PNG -------------------------------------------------------------------------------- /content/valid/20.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/20.PNG -------------------------------------------------------------------------------- /content/valid/21.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/21.PNG -------------------------------------------------------------------------------- /content/valid/22.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/22.PNG -------------------------------------------------------------------------------- /content/valid/23.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/23.PNG -------------------------------------------------------------------------------- /content/valid/24.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/24.PNG -------------------------------------------------------------------------------- /content/valid/25.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/25.PNG -------------------------------------------------------------------------------- /content/valid/26.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/26.PNG -------------------------------------------------------------------------------- /content/valid/27.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/27.PNG -------------------------------------------------------------------------------- /content/valid/28.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/28.PNG -------------------------------------------------------------------------------- /content/valid/29.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/29.PNG -------------------------------------------------------------------------------- /content/valid/3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/3.PNG -------------------------------------------------------------------------------- /content/valid/30.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/30.PNG -------------------------------------------------------------------------------- /content/valid/31.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/31.PNG -------------------------------------------------------------------------------- /content/valid/32.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/32.PNG -------------------------------------------------------------------------------- /content/valid/33.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/33.PNG -------------------------------------------------------------------------------- /content/valid/34.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/34.PNG -------------------------------------------------------------------------------- /content/valid/35.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/35.PNG -------------------------------------------------------------------------------- /content/valid/36.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/36.PNG -------------------------------------------------------------------------------- /content/valid/37.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/37.PNG -------------------------------------------------------------------------------- /content/valid/38.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/38.PNG -------------------------------------------------------------------------------- /content/valid/39.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/39.PNG -------------------------------------------------------------------------------- /content/valid/4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/4.PNG -------------------------------------------------------------------------------- /content/valid/40.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/40.PNG -------------------------------------------------------------------------------- /content/valid/41.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/41.PNG -------------------------------------------------------------------------------- /content/valid/42.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/42.PNG -------------------------------------------------------------------------------- /content/valid/43.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/43.PNG -------------------------------------------------------------------------------- /content/valid/44.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/44.PNG -------------------------------------------------------------------------------- /content/valid/45.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/45.PNG -------------------------------------------------------------------------------- /content/valid/46.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/46.PNG -------------------------------------------------------------------------------- /content/valid/47.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/47.PNG -------------------------------------------------------------------------------- /content/valid/48.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/48.PNG -------------------------------------------------------------------------------- /content/valid/49.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/49.PNG -------------------------------------------------------------------------------- /content/valid/5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/5.PNG -------------------------------------------------------------------------------- /content/valid/50.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/50.PNG -------------------------------------------------------------------------------- /content/valid/6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/6.PNG -------------------------------------------------------------------------------- /content/valid/7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/7.PNG -------------------------------------------------------------------------------- /content/valid/8.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/8.PNG -------------------------------------------------------------------------------- /content/valid/9.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/valid/9.PNG -------------------------------------------------------------------------------- /content/train/z197.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/z197.PNG -------------------------------------------------------------------------------- /content/train/z198.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/z198.PNG -------------------------------------------------------------------------------- /content/train/z199.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/z199.PNG -------------------------------------------------------------------------------- /content/train/z200.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/z200.PNG -------------------------------------------------------------------------------- /content/train/3i (47).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (47).PNG -------------------------------------------------------------------------------- /content/train/3i (48).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (48).PNG -------------------------------------------------------------------------------- /content/train/3i (49).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (49).PNG -------------------------------------------------------------------------------- /content/train/3i (51).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (51).PNG -------------------------------------------------------------------------------- /content/train/3i (53).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (53).PNG -------------------------------------------------------------------------------- /content/train/3i (54).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (54).PNG -------------------------------------------------------------------------------- /content/train/3i (55).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (55).PNG -------------------------------------------------------------------------------- /content/train/3i (56).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (56).PNG -------------------------------------------------------------------------------- /content/train/3i (57).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (57).PNG -------------------------------------------------------------------------------- /content/train/3i (58).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (58).PNG -------------------------------------------------------------------------------- /content/train/3i (59).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (59).PNG -------------------------------------------------------------------------------- /content/train/3i (61).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (61).PNG -------------------------------------------------------------------------------- /content/train/3i (63).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (63).PNG -------------------------------------------------------------------------------- /content/train/3i (65).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (65).PNG -------------------------------------------------------------------------------- /content/train/3i (66).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (66).PNG -------------------------------------------------------------------------------- /content/train/3i (67).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (67).PNG -------------------------------------------------------------------------------- /content/train/3i (69).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (69).PNG -------------------------------------------------------------------------------- /content/train/3i (71).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (71).PNG -------------------------------------------------------------------------------- /content/train/3i (72).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (72).PNG -------------------------------------------------------------------------------- /content/train/3i (73).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (73).PNG -------------------------------------------------------------------------------- /content/train/3i (74).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (74).PNG -------------------------------------------------------------------------------- /content/train/3i (75).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (75).PNG -------------------------------------------------------------------------------- /content/train/3i (76).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (76).PNG -------------------------------------------------------------------------------- /content/train/3i (77).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (77).PNG -------------------------------------------------------------------------------- /content/train/3i (79).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (79).PNG -------------------------------------------------------------------------------- /content/train/3i (81).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (81).PNG -------------------------------------------------------------------------------- /content/train/3i (82).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (82).PNG -------------------------------------------------------------------------------- /content/train/3i (83).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (83).PNG -------------------------------------------------------------------------------- /content/train/3i (84).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (84).PNG -------------------------------------------------------------------------------- /content/train/3i (85).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (85).PNG -------------------------------------------------------------------------------- /content/train/3i (86).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (86).PNG -------------------------------------------------------------------------------- /content/train/3i (91).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (91).PNG -------------------------------------------------------------------------------- /content/train/3i (92).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (92).PNG -------------------------------------------------------------------------------- /content/train/3i (94).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (94).PNG -------------------------------------------------------------------------------- /content/train/3i (96).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (96).PNG -------------------------------------------------------------------------------- /content/train/3i (98).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/3i (98).PNG -------------------------------------------------------------------------------- /content/train/q (1).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (1).PNG -------------------------------------------------------------------------------- /content/train/q (10).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (10).PNG -------------------------------------------------------------------------------- /content/train/q (11).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (11).PNG -------------------------------------------------------------------------------- /content/train/q (12).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (12).PNG -------------------------------------------------------------------------------- /content/train/q (13).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (13).PNG -------------------------------------------------------------------------------- /content/train/q (14).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (14).PNG -------------------------------------------------------------------------------- /content/train/q (15).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (15).PNG -------------------------------------------------------------------------------- /content/train/q (16).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (16).PNG -------------------------------------------------------------------------------- /content/train/q (17).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (17).PNG -------------------------------------------------------------------------------- /content/train/q (18).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (18).PNG -------------------------------------------------------------------------------- /content/train/q (19).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (19).PNG -------------------------------------------------------------------------------- /content/train/q (2).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (2).PNG -------------------------------------------------------------------------------- /content/train/q (20).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (20).PNG -------------------------------------------------------------------------------- /content/train/q (21).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (21).PNG -------------------------------------------------------------------------------- /content/train/q (22).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (22).PNG -------------------------------------------------------------------------------- /content/train/q (23).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (23).PNG -------------------------------------------------------------------------------- /content/train/q (24).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (24).PNG -------------------------------------------------------------------------------- /content/train/q (25).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (25).PNG -------------------------------------------------------------------------------- /content/train/q (26).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (26).PNG -------------------------------------------------------------------------------- /content/train/q (27).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (27).PNG -------------------------------------------------------------------------------- /content/train/q (28).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (28).PNG -------------------------------------------------------------------------------- /content/train/q (29).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (29).PNG -------------------------------------------------------------------------------- /content/train/q (3).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (3).PNG -------------------------------------------------------------------------------- /content/train/q (30).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (30).PNG -------------------------------------------------------------------------------- /content/train/q (31).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (31).PNG -------------------------------------------------------------------------------- /content/train/q (32).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (32).PNG -------------------------------------------------------------------------------- /content/train/q (33).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (33).PNG -------------------------------------------------------------------------------- /content/train/q (34).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (34).PNG -------------------------------------------------------------------------------- /content/train/q (35).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (35).PNG -------------------------------------------------------------------------------- /content/train/q (36).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (36).PNG -------------------------------------------------------------------------------- /content/train/q (37).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (37).PNG -------------------------------------------------------------------------------- /content/train/q (38).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (38).PNG -------------------------------------------------------------------------------- /content/train/q (39).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (39).PNG -------------------------------------------------------------------------------- /content/train/q (4).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (4).PNG -------------------------------------------------------------------------------- /content/train/q (40).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (40).PNG -------------------------------------------------------------------------------- /content/train/q (41).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (41).PNG -------------------------------------------------------------------------------- /content/train/q (42).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (42).PNG -------------------------------------------------------------------------------- /content/train/q (43).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (43).PNG -------------------------------------------------------------------------------- /content/train/q (44).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (44).PNG -------------------------------------------------------------------------------- /content/train/q (45).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (45).PNG -------------------------------------------------------------------------------- /content/train/q (46).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (46).PNG -------------------------------------------------------------------------------- /content/train/q (47).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (47).PNG -------------------------------------------------------------------------------- /content/train/q (48).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (48).PNG -------------------------------------------------------------------------------- /content/train/q (49).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (49).PNG -------------------------------------------------------------------------------- /content/train/q (5).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (5).PNG -------------------------------------------------------------------------------- /content/train/q (50).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (50).PNG -------------------------------------------------------------------------------- /content/train/q (51).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (51).PNG -------------------------------------------------------------------------------- /content/train/q (52).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (52).PNG -------------------------------------------------------------------------------- /content/train/q (53).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (53).PNG -------------------------------------------------------------------------------- /content/train/q (54).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (54).PNG -------------------------------------------------------------------------------- /content/train/q (55).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (55).PNG -------------------------------------------------------------------------------- /content/train/q (56).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (56).PNG -------------------------------------------------------------------------------- /content/train/q (57).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (57).PNG -------------------------------------------------------------------------------- /content/train/q (58).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (58).PNG -------------------------------------------------------------------------------- /content/train/q (59).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (59).PNG -------------------------------------------------------------------------------- /content/train/q (6).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (6).PNG -------------------------------------------------------------------------------- /content/train/q (60).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (60).PNG -------------------------------------------------------------------------------- /content/train/q (61).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (61).PNG -------------------------------------------------------------------------------- /content/train/q (62).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (62).PNG -------------------------------------------------------------------------------- /content/train/q (63).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (63).PNG -------------------------------------------------------------------------------- /content/train/q (64).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (64).PNG -------------------------------------------------------------------------------- /content/train/q (65).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (65).PNG -------------------------------------------------------------------------------- /content/train/q (66).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (66).PNG -------------------------------------------------------------------------------- /content/train/q (67).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (67).PNG -------------------------------------------------------------------------------- /content/train/q (68).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (68).PNG -------------------------------------------------------------------------------- /content/train/q (69).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (69).PNG -------------------------------------------------------------------------------- /content/train/q (7).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (7).PNG -------------------------------------------------------------------------------- /content/train/q (70).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (70).PNG -------------------------------------------------------------------------------- /content/train/q (71).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (71).PNG -------------------------------------------------------------------------------- /content/train/q (72).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (72).PNG -------------------------------------------------------------------------------- /content/train/q (73).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (73).PNG -------------------------------------------------------------------------------- /content/train/q (74).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (74).PNG -------------------------------------------------------------------------------- /content/train/q (75).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (75).PNG -------------------------------------------------------------------------------- /content/train/q (76).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (76).PNG -------------------------------------------------------------------------------- /content/train/q (77).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (77).PNG -------------------------------------------------------------------------------- /content/train/q (78).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (78).PNG -------------------------------------------------------------------------------- /content/train/q (79).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (79).PNG -------------------------------------------------------------------------------- /content/train/q (8).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (8).PNG -------------------------------------------------------------------------------- /content/train/q (80).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (80).PNG -------------------------------------------------------------------------------- /content/train/q (81).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (81).PNG -------------------------------------------------------------------------------- /content/train/q (82).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (82).PNG -------------------------------------------------------------------------------- /content/train/q (83).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (83).PNG -------------------------------------------------------------------------------- /content/train/q (84).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (84).PNG -------------------------------------------------------------------------------- /content/train/q (85).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (85).PNG -------------------------------------------------------------------------------- /content/train/q (86).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (86).PNG -------------------------------------------------------------------------------- /content/train/q (87).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (87).PNG -------------------------------------------------------------------------------- /content/train/q (88).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (88).PNG -------------------------------------------------------------------------------- /content/train/q (89).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (89).PNG -------------------------------------------------------------------------------- /content/train/q (9).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (9).PNG -------------------------------------------------------------------------------- /content/train/q (90).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (90).PNG -------------------------------------------------------------------------------- /content/train/q (91).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (91).PNG -------------------------------------------------------------------------------- /content/train/q (92).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (92).PNG -------------------------------------------------------------------------------- /content/train/q (93).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (93).PNG -------------------------------------------------------------------------------- /content/train/q (94).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (94).PNG -------------------------------------------------------------------------------- /content/train/q (95).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/q (95).PNG -------------------------------------------------------------------------------- /content/train/w (1).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (1).PNG -------------------------------------------------------------------------------- /content/train/w (10).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (10).PNG -------------------------------------------------------------------------------- /content/train/w (11).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (11).PNG -------------------------------------------------------------------------------- /content/train/w (12).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (12).PNG -------------------------------------------------------------------------------- /content/train/w (13).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (13).PNG -------------------------------------------------------------------------------- /content/train/w (14).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (14).PNG -------------------------------------------------------------------------------- /content/train/w (15).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (15).PNG -------------------------------------------------------------------------------- /content/train/w (2).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (2).PNG -------------------------------------------------------------------------------- /content/train/w (3).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (3).PNG -------------------------------------------------------------------------------- /content/train/w (4).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (4).PNG -------------------------------------------------------------------------------- /content/train/w (5).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (5).PNG -------------------------------------------------------------------------------- /content/train/w (6).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (6).PNG -------------------------------------------------------------------------------- /content/train/w (7).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (7).PNG -------------------------------------------------------------------------------- /content/train/w (8).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (8).PNG -------------------------------------------------------------------------------- /content/train/w (9).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/content/train/w (9).PNG -------------------------------------------------------------------------------- /__pycache__/main.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/__pycache__/main.cpython-38.pyc -------------------------------------------------------------------------------- /coco_eval/instances_predictions.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/coco_eval/instances_predictions.pth -------------------------------------------------------------------------------- /inferenceContent/input/1605093291894X9lSAxKRQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/input/1605093291894X9lSAxKRQ.png -------------------------------------------------------------------------------- /inferenceContent/input/1605093311288yTJoC8gCO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/input/1605093311288yTJoC8gCO.png -------------------------------------------------------------------------------- /inferenceContent/input/1605093321272qkEPt5N4q.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/input/1605093321272qkEPt5N4q.png -------------------------------------------------------------------------------- /inferenceContent/input/1605093382698GhQrcl4vJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/input/1605093382698GhQrcl4vJ.png -------------------------------------------------------------------------------- /inferenceContent/input/1605093391941wTIBFvsO7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/input/1605093391941wTIBFvsO7.png -------------------------------------------------------------------------------- /inferenceContent/output/1605093291894X9lSAxKRQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/output/1605093291894X9lSAxKRQ.png -------------------------------------------------------------------------------- /inferenceContent/output/1605093311288yTJoC8gCO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/output/1605093311288yTJoC8gCO.png -------------------------------------------------------------------------------- /inferenceContent/output/1605093321272qkEPt5N4q.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/output/1605093321272qkEPt5N4q.png -------------------------------------------------------------------------------- /inferenceContent/output/1605093382698GhQrcl4vJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/output/1605093382698GhQrcl4vJ.png -------------------------------------------------------------------------------- /inferenceContent/output/1605093391941wTIBFvsO7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kvyb/Segmentation-of-web-UI-elements-with-Detectron2/HEAD/inferenceContent/output/1605093391941wTIBFvsO7.png -------------------------------------------------------------------------------- /views/footer.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/head.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Segment web pages by category 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-shell", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "nodemon -e js,ejs", 8 | "start": "node index.js", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "dependencies": { 15 | "express": "^4.17.1", 16 | "mime-types": "^2.1.27", 17 | "multer": "^1.4.2", 18 | "shortid": "^2.2.15", 19 | "ejs": "^3.1.2", 20 | "shelljs": "0.8.4" 21 | }, 22 | "devDependencies": { 23 | "nodemon": "^2.0.4" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /views/scripts.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /views/header.ejs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 | Web Design Prototype Segmentation:
5 | Using Fast-RCNN to find design elements 6 |

7 |
8 |
9 | 21 |
22 |
-------------------------------------------------------------------------------- /inferenceContent/outputData/outputData.json: -------------------------------------------------------------------------------- 1 | {"AllClasses": ["contactsPhone", "contactsSubtitle", "contactsSendformButton", "contactsEmail", "contactsTitle", "contactsAddress", "contactsEmailFormInput", "contactsMessageFormInput", "contactsSocialButtons", "contactsNameFormInput", "contactsSubjectFormInput", "contactsDescription"], "imageData": {"1605093291894X9lSAxKRQ.png": ["contactsTitle 95%", "contactsNameFormInput 95%", "contactsSendformButton 91%", "contactsNameFormInput 89%", "contactsEmailFormInput 89%", "contactsMessageFormInput 87%", "contactsDescription 79%", "contactsNameFormInput 78%", "contactsEmailFormInput 76%", "contactsNameFormInput 71%"], "1605093311288yTJoC8gCO.png": ["contactsNameFormInput 89%", "contactsTitle 88%", "contactsNameFormInput 88%", "contactsEmailFormInput 79%", "contactsSendformButton 78%", "contactsNameFormInput 71%"], "1605093321272qkEPt5N4q.png": ["contactsSendformButton 98%", "contactsEmailFormInput 77%", "contactsNameFormInput 76%"], "1605093382698GhQrcl4vJ.png": ["contactsSendformButton 99%", "contactsMessageFormInput 99%", "contactsTitle 93%", "contactsNameFormInput 91%", "contactsEmailFormInput 84%", "contactsTitle 83%", "contactsAddress 73%", "contactsNameFormInput 69%", "contactsDescription 65%"], "1605093391941wTIBFvsO7.png": ["contactsSendformButton 100%", "contactsMessageFormInput 96%", "contactsSocialButtons 95%", "contactsNameFormInput 88%", "contactsNameFormInput 81%", "contactsEmailFormInput 76%", "contactsDescription 67%"]}} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Readme 2 | 3 | ## Overview 4 | 5 | This is a custom implementation of Detectron2 Fast-RCNN, which can find elements - buttons, titles, different input fields and much more - in any web design prototype or web UI image. 6 | 7 | The implementation comes with a client, which can be used locally, to quickly and easily upload images for inference and get visualised results. The client creates directories and manages images, runs shell scripts and helps to visualise output data. It also serves as a proof-of-concept implementation of complex machine learning technologies in a user-friendly and highly accessible format for all users. 8 | 9 | This project aims to show that it is possible to visually analyse UI design prototype structure automatically using RCNN technology. Furthermore, it shows that this functionality and its value can be served online (if hosted on a webserver) and can be used by interested users (designers) in the browser. 10 | 11 | # Installation 12 | 13 | ## Install Cuda and cuDNN 14 | 15 | Below is the setup process. Assuming you have Ubuntu 20.04 installed with an Nvidia GPU available. 16 | 17 | To make pytorch work with GPU, it is necessary to install CUDA and cuDNN. If working from Ubuntu 20.04 the [following guide](https://askubuntu.com/questions/1230645/when-is-cuda-gonna-be-released-for-ubuntu-20-04) is suitable. 18 | 19 | 20 | **After installing both CUDA and cuDNN check CUDA and cuDNN are version 10.1 and 7.6.5 respectively:** 21 | 22 | **CUDA:** 23 | 24 | $ nvcc -V 25 | 26 | **cuDNN:** 27 | 28 | get where cuda installed: 29 | 30 | $ whereis cuda 31 | then navigate to that folder's /include folder and: 32 | 33 | $ cat cudnn.h | grep CUDNN_MAJOR -A 2 34 | 35 | 36 | 37 | 38 | ## Activate conda venv 39 | 40 | ensure that conda is initialised with Python 3.8.3 (set it within conda environment creation). 41 | 42 | See [cheatsheet](https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf) ! 43 | 44 | With conda environment activated: 45 | 46 | $ pip install tensorflow-gpu==2.2.0 47 | 48 | To install correct pytorch and torchvision do this with conda activated environment: 49 | 50 | $ conda install -c pytorch torchvision cudatoolkit=10.1 pytorch 51 | 52 | Check that GPU is available and working. In virtual environment `$ python`: 53 | 54 | import torch 55 | torch.cuda.current_device() 56 | torch.cuda.get_device_name(0) 57 | 58 | Then install some Detectron2 dependencies: 59 | 60 | $ pip install cython pyyaml==5.1 61 | $ pip install pycocotools 62 | $ pip install opencv-python 63 | 64 | Then install Detectron2: 65 | 66 | $ python -m pip install detectron2==0.2.1 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.6/index.html 67 | 68 | For more information see also Detectron2 [installation guide](https://github.com/facebookresearch/detectron2/blob/master/INSTALL.md). 69 | 70 | 71 | 72 | **Note:** 73 | If using a different dataset than the one provided in this repository, ensure that the eval set contains at least 1 instance of all classes that can be encountered in the training dataset: 74 | 75 | cfg.DATASETS.TEST = ("my_dataset_val", 76 | 77 | 78 | Otherwise the validation step will fail at EVAL_PERIOD. 79 | 80 | Also, if you want to use a different dataset than the one provided, make sure that your data is marked according to COCO standard. A good tool to use is the [VGG annotator](http://www.robots.ox.ac.uk/~vgg/software/via/via_demo.html) (export annotations to COCO json). 81 | 82 | **Run from conda virtual env:** 83 | The model weights are not included in this repository, since the trained weights are too large. Hence, it is necessary to train the model before launching the web client and doing inference: 84 | 85 | $ python main.py 86 | 87 | Alternatively the weights and checkpoint folder can be downloaded here: ['link'](https://drive.google.com/drive/folders/1uPjHWBYHyAh6wSqbnlC-8xg8S3DUi7b3?usp=sharing) - all contents to be placed within 'output/' directory. 88 | **Output:** 89 | to graphically visualise and get very detailed data about model performance, after training completes, run: 90 | 91 | $ tensorboard --logdir output 92 | 93 | ## To Launch Web Client (NodeJS,ExpressJS) 94 | 95 | $ npm install 96 | then: 97 | 98 | $ npm run dev 99 | 100 | The app will then be ready and serve on port 3000. 101 | Important note: if the webserver is launched from a virtual environment like conda, you must activate the environment. Otherwise, the python scripts called by the webserver will not work. 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | # This file is meant to train the model on the sets provided in the /content folder 2 | # This file will also test on the resulting weights file and run inference for /content/valid images. 3 | # After the training finishes and it starts inferencing you can just escape the process ^C in shell 4 | # After the training finishes you can launch the webserver and it will be fully functional. See Readme for more details. 5 | 6 | # Basic setup 7 | # Setup detectron2 logger 8 | import detectron2 9 | from detectron2.utils.logger import setup_logger 10 | setup_logger() 11 | 12 | # import common libraries 13 | import numpy as np 14 | from cv2 import cv2 15 | import random 16 | import os 17 | 18 | # import common detectron2 utilities 19 | from detectron2 import model_zoo 20 | from detectron2.engine import DefaultTrainer 21 | from detectron2.engine import DefaultPredictor 22 | from detectron2.config import get_cfg 23 | from detectron2.utils.visualizer import Visualizer 24 | from detectron2.data import MetadataCatalog 25 | from detectron2.data.catalog import DatasetCatalog 26 | from detectron2.data.datasets import register_coco_instances 27 | from detectron2.evaluation import COCOEvaluator 28 | from detectron2.data import build_detection_test_loader 29 | from detectron2.evaluation import inference_on_dataset 30 | 31 | register_coco_instances("my_dataset_train", {}, "content/train/_annotations.coco.json", "content/train") 32 | register_coco_instances("my_dataset_val", {}, "content/valid/_annotations.coco.json", "content/valid") 33 | 34 | #visualize training data 35 | my_dataset_train_metadata = MetadataCatalog.get("my_dataset_train") 36 | dataset_dicts = DatasetCatalog.get("my_dataset_train") 37 | 38 | for d in random.sample(dataset_dicts, 3): 39 | img = cv2.imread(d["file_name"]) 40 | visualizer = Visualizer(img[:, :, ::-1], metadata=my_dataset_train_metadata, scale=0.5) 41 | vis = visualizer.draw_dataset_dict(d) 42 | cv2.imshow('preview',vis.get_image()[:, :, ::-1]) 43 | cv2.waitKey(100) 44 | 45 | #Importing our own Trainer Module to use the COCO validation evaluation 46 | #during training. Otherwise no validation eval occurs. 47 | 48 | class CocoTrainer(DefaultTrainer): 49 | 50 | @classmethod 51 | def build_evaluator(cls, cfg, dataset_name, output_folder=None): 52 | 53 | if output_folder is None: 54 | os.makedirs("coco_eval", exist_ok=True) 55 | output_folder = "coco_eval" 56 | 57 | return COCOEvaluator(dataset_name, cfg, False, output_folder) 58 | 59 | # An overview of the various available models is available: https://github.com/facebookresearch/detectron2/blob/master/MODEL_ZOO.md 60 | # Selecting the one with least VRAM requirement 61 | cfg = get_cfg() 62 | cfg.merge_from_file(model_zoo.get_config_file("COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml")) 63 | cfg.DATASETS.TRAIN = ("my_dataset_train",) 64 | cfg.DATASETS.TEST = ("my_dataset_val",) 65 | 66 | #Number of workers and 'images per batch' are effectively multipliers for training speed and VRAM requirement. 67 | # With this setup the model requires approximately 5GB VRAM during training 68 | cfg.DATALOADER.NUM_WORKERS = 2 69 | cfg.SOLVER.IMS_PER_BATCH = 2 70 | cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml") # Let training initialize from model zoo 71 | cfg.SOLVER.BASE_LR = 0.001 72 | cfg.SOLVER.WARMUP_ITERS = 1000 73 | cfg.SOLVER.MAX_ITER = 1500 #Suitable for proof-of-concept and quick training. Can raise if mAP is still rising at final epochs. If not rising, can overfit. 74 | cfg.SOLVER.STEPS = (1000, 1500) 75 | cfg.SOLVER.GAMMA = 0.05 76 | 77 | 78 | cfg.MODEL.ROI_HEADS.BATCH_SIZE_PER_IMAGE = 62 79 | cfg.MODEL.ROI_HEADS.NUM_CLASSES = 12 #your number of classes + 1 80 | 81 | cfg.TEST.EVAL_PERIOD = 100 #Adjust this to set at what interval the model performance should be 82 | #evaluated. Currently adjusted for eval debug. 83 | 84 | 85 | os.makedirs(cfg.OUTPUT_DIR, exist_ok=True) 86 | trainer = CocoTrainer(cfg) 87 | 88 | 89 | # Set (resume=False) if running for the first time 90 | 91 | trainer.resume_or_load(resume=True) 92 | 93 | trainer.train() 94 | 95 | #Should now have "model_final.pth" weights file. 96 | 97 | 98 | 99 | # Run evaluation on the test set. Specify the sets appropriately if using multiple. 100 | """ 101 | cfg.MODEL.WEIGHTS = os.path.join(cfg.OUTPUT_DIR, "model_final.pth") 102 | cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.85 103 | predictor = DefaultPredictor(cfg) 104 | evaluator = COCOEvaluator("my_dataset_val", cfg, False, output_dir="./output/") 105 | val_loader = build_detection_test_loader(cfg, "my_dataset_val") 106 | inference_on_dataset(trainer.model, val_loader, evaluator) 107 | 108 | print("Evaluation on test set finished") 109 | """ 110 | # Inference with Detectron2 Saved Weights on a previously unknown image 111 | 112 | cfg.MODEL.WEIGHTS = os.path.join(cfg.OUTPUT_DIR, "model_final.pth") 113 | cfg.DATASETS.TEST = ("my_dataset_val", ) 114 | # set the testing threshold for this model 115 | threshold = 0.65 116 | cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = threshold 117 | predictor = DefaultPredictor(cfg) 118 | test_metadata = MetadataCatalog.get("my_dataset_val") 119 | 120 | from detectron2.utils.visualizer import ColorMode 121 | import glob 122 | 123 | print("Starting to output inference results. Predictions below confidence score of {} score ignored.".format(threshold)) 124 | #Set the correct format. If using JPG files set *.JPG instead of *.PNG ! Also it's case sensitive! 125 | for imageName in glob.glob('content/valid/*.PNG'): 126 | 127 | print("{}".format(imageName)) 128 | 129 | im = cv2.imread(imageName) 130 | outputs = predictor(im) 131 | v = Visualizer(im[:, :, ::-1], 132 | #Get class names from dataset train metadata to put on visualization. 133 | metadata=my_dataset_train_metadata, 134 | scale=1 135 | ) 136 | out = v.draw_instance_predictions(outputs["instances"].to("cpu")) 137 | cv2.imshow('Inference Preview',out.get_image()[:, :, ::-1]) 138 | cv2.waitKey(10000) 139 | 140 | #For single image inference see inferenceSingle.py file. -------------------------------------------------------------------------------- /inferenceSingle.py: -------------------------------------------------------------------------------- 1 | # You may need to restart your runtime prior to this, to let your installation take effect 2 | # Some basic setup: 3 | # Setup detectron2 and logger 4 | import detectron2 5 | from detectron2.utils.logger import setup_logger 6 | setup_logger() 7 | 8 | # import some common libraries 9 | import numpy as np 10 | from cv2 import cv2 11 | import random 12 | import os 13 | import argparse 14 | 15 | # import some common detectron2 utilities 16 | from detectron2 import model_zoo 17 | from detectron2.engine import DefaultPredictor 18 | from detectron2.config import get_cfg 19 | from detectron2.utils.visualizer import Visualizer 20 | from detectron2.utils.visualizer import _create_text_labels 21 | from detectron2.data import MetadataCatalog 22 | from detectron2.data.catalog import DatasetCatalog 23 | from detectron2.data.datasets import register_coco_instances 24 | from detectron2.utils.visualizer import ColorMode 25 | 26 | #Setup arguments 27 | parser = argparse.ArgumentParser(usage="run inference on one specified image") 28 | parser.add_argument('--image', required=True, help="relative path to image to run inference on") 29 | args = parser.parse_args() 30 | 31 | #Register dataset annotations in coco format. This is important for metadata used by Detectron, for example in inference. 32 | register_coco_instances("my_dataset_train", {}, "content/train/_annotations.coco.json", "content/train") 33 | register_coco_instances("my_dataset_val", {}, "content/valid/_annotations.coco.json", "content/valid") 34 | 35 | #Get metadata from training set, to provide metadata during inference. 36 | #This metadata allows the predictor to assign predictions to human-readable classes for output. 37 | my_dataset_train_metadata = MetadataCatalog.get("my_dataset_train") 38 | dataset_dicts = DatasetCatalog.get("my_dataset_train") 39 | 40 | #setup config for inference. 41 | cfg = get_cfg() 42 | cfg.merge_from_file(model_zoo.get_config_file("COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml")) 43 | cfg.DATASETS.TRAIN = ("my_dataset_train",) 44 | cfg.DATASETS.TEST = ("my_dataset_val",) 45 | cfg.DATALOADER.NUM_WORKERS = 2 46 | cfg.SOLVER.IMS_PER_BATCH = 2 47 | cfg.SOLVER.BASE_LR = 0.001 48 | cfg.MODEL.ROI_HEADS.BATCH_SIZE_PER_IMAGE = 64 49 | cfg.MODEL.ROI_HEADS.NUM_CLASSES = 12 #your number of classes + 1 50 | 51 | # Inference with Detectron2 Saved Weights on a previously unknown image 52 | 53 | # specify trained weights file 54 | cfg.MODEL.WEIGHTS = os.path.join(cfg.OUTPUT_DIR, "model_final.pth") 55 | cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.65 # set the class confidence threshold for this model! 56 | predictor = DefaultPredictor(cfg) 57 | 58 | 59 | print("Starting to output inference results. Predictions below confidence score of 0.65 score ignored.") 60 | 61 | #Initialise file for inference output data: 62 | import json 63 | 64 | #check if file has been written previously, and load it to be later merged with output data from new file 65 | if os.path.exists('inferenceContent/outputData/outputData.json'): 66 | with open('inferenceContent/outputData/outputData.json', 'r') as jsonFile: 67 | dataCollection = json.load(jsonFile) 68 | 69 | #if the file has not been yet initialised, or does not exist, write it with metadata to alter merge with output data from new file 70 | else: 71 | dataCollection = {} 72 | AllClasses = my_dataset_train_metadata.thing_classes 73 | #add this to json object, if not there already. 74 | dataCollection['AllClasses'] = AllClasses 75 | #initialize empty dict to store image inference ouput results in the future 76 | dataCollection['imageData'] = {} 77 | #Get all available classes for this dataset from training metadata. Needed to make counts for each class in inference results. 78 | 79 | 80 | #Get name of uploaded image from argument. Nodejs launches shell script with filled argument. argument stored in imageName, similarly to standard batch inference. 81 | imageName = args.image 82 | if imageName: 83 | #Get uploaded image name without path so we can save to JSON conveniently. 84 | print("Running inference on image name with path: {}".format(imageName)) 85 | imageBaseName = format(os.path.basename(imageName)) 86 | print("Image base name: {}".format(imageBaseName)) 87 | 88 | im = cv2.imread(imageName) 89 | outputs = predictor(im) 90 | v = Visualizer(im[:, :, ::-1], 91 | #Get class names from dataset train metadata to put on visualization. 92 | metadata=my_dataset_train_metadata, 93 | scale=1 94 | ) 95 | out = v.draw_instance_predictions(outputs["instances"].to("cpu")) 96 | #As described in draw_instance_predictions function of Visualizer, we can get data about each image. 97 | #We might need these, but currently only interested in labels as they contain predicted classes for each image and prediction score. 98 | imagePredClasses = outputs["instances"].pred_classes 99 | imagePredBoxes = outputs["instances"].pred_boxes 100 | imagePredScores = outputs["instances"].scores 101 | 102 | #previously initialised dict for storing image output. Inside it make another key:value pair with key as image name, and value as inference output values array. 103 | dataCollection['imageData'][imageBaseName] = _create_text_labels(outputs["instances"].pred_classes, outputs["instances"].scores, my_dataset_train_metadata.get("thing_classes", None)) 104 | 105 | 106 | if not os.path.exists('inferenceContent/outputData'): 107 | os.mkdir('inferenceContent/outputData') 108 | 109 | with open('inferenceContent/outputData/outputData.json', 'w') as jsonFile: 110 | json.dump(dataCollection, jsonFile) 111 | #data in it. As it loops through all images it will fill the JSON with needed data. 112 | 113 | # Show images with predictions in system window. If not using host, then: 114 | #cv2.imshow('Inference Preview',out.get_image()[:, :, ::-1]) 115 | # If running inference locally, to view result with timer in system window, uncomment: 116 | #cv2.waitKey(10000) 117 | # Save images with predictions to savePath folder and imageName with path to image removed from name. 118 | savePath = './inferenceContent/output' 119 | cv2.imwrite(os.path.join(savePath , imageBaseName), out.get_image()[:, :, ::-1]) -------------------------------------------------------------------------------- /views/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | <%- include('head.ejs') %> 4 | 5 | 6 | <%- include('header.ejs') %> 7 |
8 |
9 |
10 |

Run model inference with an image:

11 |
12 |
13 |
14 |
15 |
16 | 17 | 18 | 22 |
23 |
24 |
25 |
26 |

27 | Note: Data is persistent and inference result images list will remain until server wipe. 28 | Summary of results is automatically updated at every inference. 29 |

30 |
31 |
32 |
33 |

Summary of results:

34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | <% for (i in results) { %> 46 | 47 | 48 | 49 | <% for (j in results[i]) { %> 50 | 51 | <% } %> 52 | 53 | <% } %> 54 | 55 |
Class NameClass CountPrecision Values Average Class Precision
<%= i+': ' %><%= results[i][j] %>
56 |
57 |
58 |

Inference Results:

59 |
60 | 61 |
62 | <% imageData.forEach(function(item) { %> 63 |
64 |
65 |
Image: <%= item.name %>
66 |

Inference found classes with precision:

67 | 68 | <% for(var i=0; i 69 | <%= i+1+') '+item.classesFound[i] %>
70 | <% } %> 71 |
72 | 73 | Inference result image 75 | 76 |
77 | 78 | <% }); %> 79 |
80 |
81 |
82 |
83 | <%- include('footer.ejs') %> 84 | <%- include('scripts.ejs') %> 85 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /conda-spec-file.txt: -------------------------------------------------------------------------------- 1 | # This file may be used to create an environment using: 2 | # $ conda create --name --file 3 | # platform: linux-64 4 | @EXPLICIT 5 | https://repo.anaconda.com/pkgs/main/linux-64/_libgcc_mutex-0.1-main.conda 6 | https://repo.anaconda.com/pkgs/main/linux-64/_tflow_select-2.1.0-gpu.conda 7 | https://repo.anaconda.com/pkgs/main/linux-64/blas-1.0-mkl.conda 8 | https://repo.anaconda.com/pkgs/main/linux-64/ca-certificates-2020.6.24-0.conda 9 | https://repo.anaconda.com/pkgs/main/linux-64/cudatoolkit-10.1.243-h6bb024c_0.conda 10 | https://repo.anaconda.com/pkgs/main/linux-64/intel-openmp-2020.1-217.conda 11 | https://repo.anaconda.com/pkgs/main/linux-64/ld_impl_linux-64-2.33.1-h53a641e_7.conda 12 | https://repo.anaconda.com/pkgs/main/linux-64/libgfortran-ng-7.3.0-hdf63c60_0.conda 13 | https://repo.anaconda.com/pkgs/main/linux-64/libstdcxx-ng-9.1.0-hdf63c60_0.conda 14 | https://repo.anaconda.com/pkgs/main/linux-64/cudnn-7.6.5-cuda10.1_0.conda 15 | https://repo.anaconda.com/pkgs/main/linux-64/cupti-10.1.168-0.conda 16 | https://repo.anaconda.com/pkgs/main/linux-64/libgcc-ng-9.1.0-hdf63c60_0.conda 17 | https://repo.anaconda.com/pkgs/main/linux-64/mkl-2020.1-217.conda 18 | https://repo.anaconda.com/pkgs/main/linux-64/c-ares-1.15.0-h7b6447c_1001.conda 19 | https://repo.anaconda.com/pkgs/main/linux-64/jpeg-9b-h024ee3a_2.conda 20 | https://repo.anaconda.com/pkgs/main/linux-64/libffi-3.3-he6710b0_2.conda 21 | https://repo.anaconda.com/pkgs/main/linux-64/lz4-c-1.9.2-he6710b0_0.conda 22 | https://repo.anaconda.com/pkgs/main/linux-64/ncurses-6.2-he6710b0_1.conda 23 | https://repo.anaconda.com/pkgs/main/linux-64/openssl-1.1.1g-h7b6447c_0.conda 24 | https://repo.anaconda.com/pkgs/main/linux-64/xz-5.2.5-h7b6447c_0.conda 25 | https://repo.anaconda.com/pkgs/main/linux-64/zlib-1.2.11-h7b6447c_3.conda 26 | https://repo.anaconda.com/pkgs/main/linux-64/hdf5-1.10.6-hb1b8bf9_0.conda 27 | https://repo.anaconda.com/pkgs/main/linux-64/libedit-3.1.20191231-h14c3975_1.conda 28 | https://repo.anaconda.com/pkgs/main/linux-64/libpng-1.6.37-hbc83047_0.conda 29 | https://repo.anaconda.com/pkgs/main/linux-64/libprotobuf-3.12.3-hd408876_0.conda 30 | https://repo.anaconda.com/pkgs/main/linux-64/readline-8.0-h7b6447c_0.conda 31 | https://repo.anaconda.com/pkgs/main/linux-64/tk-8.6.10-hbc83047_0.conda 32 | https://repo.anaconda.com/pkgs/main/linux-64/zstd-1.4.5-h0b5b093_0.conda 33 | https://repo.anaconda.com/pkgs/main/linux-64/freetype-2.10.2-h5ab3b9f_0.conda 34 | https://repo.anaconda.com/pkgs/main/linux-64/libtiff-4.1.0-h2733197_1.conda 35 | https://repo.anaconda.com/pkgs/main/linux-64/sqlite-3.32.3-h62c20be_0.conda 36 | https://repo.anaconda.com/pkgs/main/linux-64/lcms2-2.11-h396b838_0.conda 37 | https://repo.anaconda.com/pkgs/main/linux-64/python-3.8.3-hcff3b4d_2.conda 38 | https://repo.anaconda.com/pkgs/main/linux-64/blinker-1.4-py38_0.conda 39 | https://repo.anaconda.com/pkgs/main/noarch/cachetools-4.1.0-py_1.conda 40 | https://repo.anaconda.com/pkgs/main/linux-64/certifi-2020.6.20-py38_0.conda 41 | https://repo.anaconda.com/pkgs/main/linux-64/chardet-3.0.4-py38_1003.conda 42 | https://repo.anaconda.com/pkgs/main/noarch/click-7.1.2-py_0.conda 43 | https://repo.anaconda.com/pkgs/main/noarch/gast-0.3.3-py_0.conda 44 | https://repo.anaconda.com/pkgs/main/noarch/idna-2.10-py_0.conda 45 | https://repo.anaconda.com/pkgs/main/linux-64/ninja-1.9.0-py38hfd86e86_0.conda 46 | https://repo.anaconda.com/pkgs/main/noarch/olefile-0.46-py_0.conda 47 | https://repo.anaconda.com/pkgs/main/noarch/pyasn1-0.4.8-py_0.conda 48 | https://repo.anaconda.com/pkgs/main/noarch/pycparser-2.20-py_2.conda 49 | https://repo.anaconda.com/pkgs/main/linux-64/pysocks-1.7.1-py38_0.conda 50 | https://repo.anaconda.com/pkgs/main/noarch/six-1.15.0-py_0.conda 51 | https://repo.anaconda.com/pkgs/main/linux-64/termcolor-1.1.0-py38_1.conda 52 | https://repo.anaconda.com/pkgs/main/noarch/werkzeug-1.0.1-py_0.conda 53 | https://repo.anaconda.com/pkgs/main/linux-64/wrapt-1.12.1-py38h7b6447c_1.conda 54 | https://repo.anaconda.com/pkgs/main/linux-64/absl-py-0.9.0-py38_0.conda 55 | https://repo.anaconda.com/pkgs/main/noarch/astunparse-1.6.3-py_0.conda 56 | https://repo.anaconda.com/pkgs/main/linux-64/cffi-1.14.0-py38he30daa8_1.conda 57 | https://repo.anaconda.com/pkgs/main/noarch/google-pasta-0.2.0-py_0.conda 58 | https://repo.anaconda.com/pkgs/main/linux-64/mkl-service-2.3.0-py38he904b0f_0.conda 59 | https://repo.anaconda.com/pkgs/main/linux-64/pillow-7.2.0-py38hb39fc2d_0.conda 60 | https://repo.anaconda.com/pkgs/main/noarch/pyasn1-modules-0.2.7-py_0.conda 61 | https://repo.anaconda.com/pkgs/main/noarch/rsa-4.0-py_0.conda 62 | https://repo.anaconda.com/pkgs/main/linux-64/setuptools-49.2.0-py38_0.conda 63 | https://repo.anaconda.com/pkgs/main/linux-64/brotlipy-0.7.0-py38h7b6447c_1000.conda 64 | https://repo.anaconda.com/pkgs/main/linux-64/cryptography-2.9.2-py38h1ba5d50_0.conda 65 | https://repo.anaconda.com/pkgs/main/noarch/google-auth-1.17.2-py_0.conda 66 | https://repo.anaconda.com/pkgs/main/linux-64/grpcio-1.27.2-py38hf8bcb03_0.conda 67 | https://repo.anaconda.com/pkgs/main/linux-64/markdown-3.1.1-py38_0.conda 68 | https://repo.anaconda.com/pkgs/main/linux-64/numpy-base-1.18.5-py38hde5b4d6_0.conda 69 | https://repo.anaconda.com/pkgs/main/linux-64/protobuf-3.12.3-py38he6710b0_0.conda 70 | https://repo.anaconda.com/pkgs/main/noarch/tensorboard-plugin-wit-1.6.0-py_0.conda 71 | https://repo.anaconda.com/pkgs/main/linux-64/wheel-0.34.2-py38_0.conda 72 | https://repo.anaconda.com/pkgs/main/linux-64/pip-20.1.1-py38_1.conda 73 | https://repo.anaconda.com/pkgs/main/linux-64/pyjwt-1.7.1-py38_0.conda 74 | https://repo.anaconda.com/pkgs/main/noarch/pyopenssl-19.1.0-py_1.conda 75 | https://repo.anaconda.com/pkgs/main/noarch/oauthlib-3.1.0-py_0.conda 76 | https://repo.anaconda.com/pkgs/main/noarch/urllib3-1.25.9-py_0.conda 77 | https://repo.anaconda.com/pkgs/main/noarch/requests-2.24.0-py_0.conda 78 | https://repo.anaconda.com/pkgs/main/noarch/requests-oauthlib-1.3.0-py_0.conda 79 | https://repo.anaconda.com/pkgs/main/noarch/google-auth-oauthlib-0.4.1-py_2.conda 80 | https://repo.anaconda.com/pkgs/main/linux-64/h5py-2.10.0-py38hd6299e0_1.conda 81 | https://repo.anaconda.com/pkgs/main/linux-64/mkl_fft-1.1.0-py38h23d657b_0.conda 82 | https://repo.anaconda.com/pkgs/main/linux-64/mkl_random-1.1.1-py38h0573a6f_0.conda 83 | https://repo.anaconda.com/pkgs/main/linux-64/numpy-1.18.5-py38ha1c710e_0.conda 84 | https://repo.anaconda.com/pkgs/main/noarch/opt_einsum-3.1.0-py_0.conda 85 | https://conda.anaconda.org/pytorch/linux-64/pytorch-1.5.1-py3.8_cuda10.1.243_cudnn7.6.3_0.tar.bz2 86 | https://repo.anaconda.com/pkgs/main/linux-64/scipy-1.5.0-py38h0b6359f_0.conda 87 | https://repo.anaconda.com/pkgs/main/noarch/tensorboard-2.2.1-pyh532a8cf_0.conda 88 | https://repo.anaconda.com/pkgs/main/noarch/keras-preprocessing-1.1.0-py_1.conda 89 | https://conda.anaconda.org/pytorch/linux-64/torchvision-0.6.1-py38_cu101.tar.bz2 90 | https://repo.anaconda.com/pkgs/main/linux-64/tensorflow-base-2.2.0-gpu_py38h83e3d50_0.conda 91 | https://repo.anaconda.com/pkgs/main/noarch/tensorflow-estimator-2.2.0-pyh208ff02_0.conda 92 | https://repo.anaconda.com/pkgs/main/linux-64/tensorflow-2.2.0-gpu_py38hb782248_0.conda 93 | https://repo.anaconda.com/pkgs/main/linux-64/tensorflow-gpu-2.2.0-h0d30ee6_0.conda 94 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const multer = require('multer') 3 | const mime = require('mime-types') 4 | const shortid = require('shortid') 5 | const { exec } = require('child_process') 6 | const fs = require('fs') 7 | const path = require('path') 8 | var shell = require('shelljs') 9 | 10 | // CREATE APPLICATION 11 | const app = express() 12 | app.set("view engine", "ejs") 13 | 14 | // FILE STORAGE 15 | // This is a middleware general file storage. Images for inference will be copied out of here. 16 | const storage = multer.diskStorage({ 17 | //Handle default uploaded image destination. 18 | destination: function (req, file, cb) { 19 | cb(null, 'public') 20 | }, 21 | //Handle uploaded image names by assigning a short id and extension. 22 | //todo: make items sortable. 23 | filename: function (req, file, cb) { 24 | let id = Date.now() + shortid.generate() 25 | let ext = mime.extension(file.mimetype) 26 | cb(null, `${id}.${ext}`) 27 | } 28 | }) 29 | const upload = multer({ storage }) 30 | 31 | // SERVE STATIC FILES from ./public and ./inferenceContent 32 | app.use(express.static('public')) 33 | app.use(express.static('inferenceContent')) 34 | 35 | //Function for async read JSON used later 36 | function readFileAsync(path) { 37 | return new Promise((resolve, reject) => { 38 | fs.readFile(path, (err, data) => { 39 | if (err) reject(err) 40 | resolve(JSON.parse(data)) 41 | }) 42 | }) 43 | } 44 | 45 | // ROUTES 46 | app.get('/', (req, res) => { 47 | 48 | //joining path of directory 49 | 50 | const directoryPath = './inferenceContent/output/' 51 | const directoryShortPath = '/output/' 52 | 53 | //Passing directoryPath and callback function 54 | fs.readdir(directoryPath, async function (err, files) { 55 | 56 | //handling error 57 | if (err) { 58 | console.log('Unable to find directory: ' + err + '. Output directory must exist in inferenceContent directory.') 59 | } 60 | 61 | //set up array to store links to images, to show on main screen. 62 | var imageData = [] 63 | //outputData will store output from inference for each file and all classes. This will allow to make counts. 64 | var outputData = '' 65 | //results contains all encountered classes in total for all inferences and shows statistics. See below. 66 | var results = [] 67 | //push all files as dictionaries into list to easily parse them into .ejs template. Using forEach. : 68 | if (files.length) { 69 | //This JSON is used to transport data from Detectron2 to Nodejs 70 | var outputDataFilePath = 'inferenceContent/outputData/outputData.json' 71 | if (!fs.existsSync(outputDataFilePath)) { 72 | console.log("No inference output to display yet.") 73 | } else { 74 | try { 75 | outputData = await readFileAsync(outputDataFilePath) 76 | // Map objects together, for each image: 77 | Object.keys(outputData.imageData).forEach(key => { 78 | let items = outputData.imageData[key] 79 | items.forEach(item => { 80 | //split because Detectron2 lables contain predicted classname and confidence as string with values separated by space 81 | let itemClassName = item.split(' ')[0] 82 | let itemClassValue = item.split(' ')[1] 83 | if (outputData.AllClasses.includes(itemClassName)) { 84 | if (itemClassName in results) { 85 | //increment counter for existing class initialised below 86 | results[itemClassName].count++ 87 | results[itemClassName].values.push(itemClassValue) 88 | } else { 89 | //initialise if there is a class which has been predicted 90 | let value = { count: 1, values: [itemClassValue], average: 0 } 91 | results[itemClassName] = value 92 | } 93 | } 94 | }) 95 | }) 96 | 97 | // Count average percision percentage for each found class 98 | Object.keys(results).forEach(key => { 99 | let item = results[key] 100 | if (item.count > 1) { 101 | let total = item.values.reduce((acc, value) => { 102 | return acc + parseInt(value.split('%')[0]) 103 | }, 0) 104 | let average = total / item.values.length 105 | results[key].average = average 106 | } else { 107 | results[key].average = parseInt(item.values[0].split('%')[0]) 108 | } 109 | }) 110 | 111 | } catch (error) { 112 | throw error 113 | } 114 | } 115 | files.forEach(function (file) { 116 | //imageData is composed here to transfer data to our index.ejs template. 117 | //Data from here will be used to render our html file. 118 | //unshift newer images to appear on top, to avoid having to sort on client. 119 | //add image statistical data from inference to each image, parsed above, from outputData. 120 | imageData.unshift({ 121 | key: 'image', 122 | name: file, 123 | classesFound: outputData.imageData[file], 124 | url: directoryShortPath + file 125 | 126 | }) 127 | }) 128 | 129 | //if there are no files in directory: 130 | } else { 131 | console.log('No images to fetch from output directory. Upload an image for inference.') 132 | } 133 | 134 | console.log('results:', results) 135 | console.log('outputdata:', outputData) 136 | console.log('imageData:', imageData) 137 | 138 | //output list of images present at home directory load. Pass object as itself to index.ejs. 139 | res.render('index', { 140 | //results for overall averages and class information. 141 | //Takes into account all inferenced images since project has been wiped. 142 | results, 143 | imageData 144 | }) 145 | 146 | }) 147 | 148 | }) 149 | 150 | 151 | app.post('/form', upload.single('file'), async (req, res) => { 152 | const image = req.file 153 | //Set path to directory where images will be stored for and used for Protectron2 operations. 154 | const inputContentPath = './inferenceContent/input/' 155 | const imageNamePath = inputContentPath + image.filename 156 | console.log(imageNamePath) 157 | if (fs.existsSync(inputContentPath)) { 158 | //If directory is already present: 159 | shell.exec(`cp ${image.path} ${inputContentPath} && python inferenceSingle.py --image ${imageNamePath}`, function (code, stdout, stderr) { 160 | if (stderr) { 161 | console.log('Program stderr:', stderr) 162 | return res.json({ 163 | success: false 164 | }) 165 | } else { 166 | console.log('Success!') 167 | return res.json({ 168 | //Output filename is the same. The directory is different, so: 169 | image: `http://localhost:3000/output/${image.filename}` 170 | }) 171 | } 172 | }) 173 | } else { 174 | //If directory is not present: 175 | shell.exec(`mkdir ${inputContentPath} && cp ${image.path} ${inputContentPath} && python inferenceSingle.py --image ${imageNamePath}`, function (code, stdout, stderr) { 176 | if (stderr) { 177 | console.log('Program stderr:', stderr) 178 | return res.json({ 179 | success: false 180 | }) 181 | } else { 182 | console.log('Success!') 183 | return res.json({ 184 | //Output filename is the same. The directory is different, so: 185 | image: `http://localhost:3000/output/${image.filename}` 186 | }) 187 | } 188 | }) 189 | } 190 | 191 | 192 | //console.log('stdout:', stdout) 193 | //console.log('stderr:', stderr) 194 | }) 195 | 196 | // SERVE APPLICATION 197 | app.listen(3000, () => { 198 | console.log('App is working on port 3000') 199 | }) -------------------------------------------------------------------------------- /content/valid/_annotations.coco.json: -------------------------------------------------------------------------------- 1 | {"info":{"year":2020,"version":"1.0","description":"VIA project exported to COCO format using VGG Image Annotator (http://www.robots.ox.ac.uk/~vgg/software/via/)","contributor":"","url":"http://www.robots.ox.ac.uk/~vgg/software/via/","date_created":"Sun Aug 09 2020 10:16:35 GMT+0400 (GMT+04:00)"},"images":[{"id":1,"width":916,"height":549,"file_name":"1.PNG","license":0,"date_captured":""},{"id":2,"width":511,"height":445,"file_name":"2.PNG","license":0,"date_captured":""},{"id":3,"width":1512,"height":726,"file_name":"3.PNG","license":0,"date_captured":""},{"id":4,"width":1115,"height":839,"file_name":"4.PNG","license":0,"date_captured":""},{"id":5,"width":1617,"height":604,"file_name":"5.PNG","license":0,"date_captured":""},{"id":6,"width":1173,"height":849,"file_name":"6.PNG","license":0,"date_captured":""},{"id":7,"width":1405,"height":744,"file_name":"7.PNG","license":0,"date_captured":""},{"id":8,"width":1680,"height":497,"file_name":"8.PNG","license":0,"date_captured":""},{"id":9,"width":1007,"height":849,"file_name":"9.PNG","license":0,"date_captured":""},{"id":10,"width":1369,"height":749,"file_name":"10.PNG","license":0,"date_captured":""},{"id":11,"width":1268,"height":671,"file_name":"11.PNG","license":0,"date_captured":""},{"id":12,"width":1363,"height":806,"file_name":"12.PNG","license":0,"date_captured":""},{"id":13,"width":785,"height":648,"file_name":"13.PNG","license":0,"date_captured":""},{"id":14,"width":757,"height":536,"file_name":"14.PNG","license":0,"date_captured":""},{"id":15,"width":1195,"height":723,"file_name":"15.PNG","license":0,"date_captured":""},{"id":16,"width":982,"height":686,"file_name":"16.PNG","license":0,"date_captured":""},{"id":17,"width":823,"height":817,"file_name":"17.PNG","license":0,"date_captured":""},{"id":18,"width":1321,"height":808,"file_name":"18.PNG","license":0,"date_captured":""},{"id":19,"width":1029,"height":388,"file_name":"19.PNG","license":0,"date_captured":""},{"id":20,"width":1181,"height":386,"file_name":"20.PNG","license":0,"date_captured":""},{"id":21,"width":695,"height":574,"file_name":"21.PNG","license":0,"date_captured":""},{"id":22,"width":973,"height":485,"file_name":"22.PNG","license":0,"date_captured":""},{"id":23,"width":688,"height":533,"file_name":"23.PNG","license":0,"date_captured":""},{"id":24,"width":962,"height":752,"file_name":"24.PNG","license":0,"date_captured":""},{"id":25,"width":878,"height":615,"file_name":"25.PNG","license":0,"date_captured":""},{"id":26,"width":1462,"height":405,"file_name":"26.PNG","license":0,"date_captured":""},{"id":27,"width":1350,"height":607,"file_name":"27.PNG","license":0,"date_captured":""},{"id":28,"width":901,"height":471,"file_name":"28.PNG","license":0,"date_captured":""},{"id":29,"width":944,"height":773,"file_name":"29.PNG","license":0,"date_captured":""},{"id":30,"width":1195,"height":525,"file_name":"30.PNG","license":0,"date_captured":""},{"id":31,"width":766,"height":329,"file_name":"31.PNG","license":0,"date_captured":""},{"id":32,"width":1376,"height":725,"file_name":"32.PNG","license":0,"date_captured":""},{"id":33,"width":1114,"height":646,"file_name":"33.PNG","license":0,"date_captured":""},{"id":34,"width":1040,"height":679,"file_name":"34.PNG","license":0,"date_captured":""},{"id":35,"width":1339,"height":709,"file_name":"35.PNG","license":0,"date_captured":""},{"id":36,"width":916,"height":663,"file_name":"36.PNG","license":0,"date_captured":""},{"id":37,"width":1263,"height":539,"file_name":"37.PNG","license":0,"date_captured":""},{"id":38,"width":903,"height":619,"file_name":"38.PNG","license":0,"date_captured":""},{"id":39,"width":1185,"height":740,"file_name":"39.PNG","license":0,"date_captured":""},{"id":40,"width":1748,"height":654,"file_name":"40.PNG","license":0,"date_captured":""},{"id":41,"width":1160,"height":797,"file_name":"41.PNG","license":0,"date_captured":""},{"id":42,"width":700,"height":811,"file_name":"42.PNG","license":0,"date_captured":""},{"id":43,"width":427,"height":434,"file_name":"43.PNG","license":0,"date_captured":""},{"id":44,"width":944,"height":877,"file_name":"44.PNG","license":0,"date_captured":""},{"id":45,"width":1428,"height":769,"file_name":"45.PNG","license":0,"date_captured":""},{"id":46,"width":1422,"height":560,"file_name":"46.PNG","license":0,"date_captured":""},{"id":47,"width":1168,"height":604,"file_name":"47.PNG","license":0,"date_captured":""},{"id":48,"width":1298,"height":667,"file_name":"48.PNG","license":0,"date_captured":""},{"id":49,"width":1050,"height":799,"file_name":"49.PNG","license":0,"date_captured":""},{"id":50,"width":1181,"height":609,"file_name":"50.PNG","license":0,"date_captured":""}],"annotations":[{"segmentation":[[24,30,283,30,283,82,24,82]],"area":13468,"bbox":[24,30,259,52],"iscrowd":0,"id":1,"image_id":1,"category_id":5},{"segmentation":[[24,90,165,90,165,127,24,127]],"area":5217,"bbox":[24,90,141,37],"iscrowd":0,"id":2,"image_id":1,"category_id":1},{"segmentation":[[23,136,140,136,140,170,23,170]],"area":3978,"bbox":[23,136,117,34],"iscrowd":0,"id":3,"image_id":1,"category_id":4},{"segmentation":[[23,178,277,178,277,233,23,233]],"area":13970,"bbox":[23,178,254,55],"iscrowd":0,"id":4,"image_id":1,"category_id":6},{"segmentation":[[316,356,592,356,592,381,316,381]],"area":6900,"bbox":[316,356,276,25],"iscrowd":0,"id":5,"image_id":1,"category_id":10},{"segmentation":[[616,356,892,356,892,379,616,379]],"area":6348,"bbox":[616,356,276,23],"iscrowd":0,"id":6,"image_id":1,"category_id":7},{"segmentation":[[315,387,892,387,892,407,315,407]],"area":11540,"bbox":[315,387,577,20],"iscrowd":0,"id":7,"image_id":1,"category_id":11},{"segmentation":[[315,416,897,416,897,496,315,496]],"area":46560,"bbox":[315,416,582,80],"iscrowd":0,"id":8,"image_id":1,"category_id":8},{"segmentation":[[555,501,656,501,656,524,555,524]],"area":2323,"bbox":[555,501,101,23],"iscrowd":0,"id":9,"image_id":1,"category_id":3},{"segmentation":[[4,5,457,5,457,68,4,68]],"area":28539,"bbox":[4,5,453,63],"iscrowd":0,"id":10,"image_id":2,"category_id":5},{"segmentation":[[10,72,497,72,497,112,10,112]],"area":19480,"bbox":[10,72,487,40],"iscrowd":0,"id":11,"image_id":2,"category_id":10},{"segmentation":[[11,119,498,119,498,165,11,165]],"area":22402,"bbox":[11,119,487,46],"iscrowd":0,"id":12,"image_id":2,"category_id":7},{"segmentation":[[9,227,503,227,503,379,9,379]],"area":75088,"bbox":[9,227,494,152],"iscrowd":0,"id":13,"image_id":2,"category_id":8},{"segmentation":[[12,397,486,397,486,432,12,432]],"area":16590,"bbox":[12,397,474,35],"iscrowd":0,"id":14,"image_id":2,"category_id":3},{"segmentation":[[32,23,257,23,257,74,32,74]],"area":11475,"bbox":[32,23,225,51],"iscrowd":0,"id":15,"image_id":3,"category_id":5},{"segmentation":[[543,19,784,19,784,78,543,78]],"area":14219,"bbox":[543,19,241,59],"iscrowd":0,"id":16,"image_id":3,"category_id":2},{"segmentation":[[547,94,1472,94,1472,156,547,156]],"area":57350,"bbox":[547,94,925,62],"iscrowd":0,"id":17,"image_id":3,"category_id":12},{"segmentation":[[553,178,1493,178,1493,239,553,239]],"area":57340,"bbox":[553,178,940,61],"iscrowd":0,"id":18,"image_id":3,"category_id":10},{"segmentation":[[553,273,1492,273,1492,332,553,332]],"area":55401,"bbox":[553,273,939,59],"iscrowd":0,"id":19,"image_id":3,"category_id":7},{"segmentation":[[558,371,1492,371,1492,425,558,425]],"area":50436,"bbox":[558,371,934,54],"iscrowd":0,"id":20,"image_id":3,"category_id":11},{"segmentation":[[553,460,1493,460,1493,613,553,613]],"area":143820,"bbox":[553,460,940,153],"iscrowd":0,"id":21,"image_id":3,"category_id":8},{"segmentation":[[926,651,1118,651,1118,713,926,713]],"area":11904,"bbox":[926,651,192,62],"iscrowd":0,"id":22,"image_id":3,"category_id":3},{"segmentation":[[26,285,375,285,375,383,26,383]],"area":34202,"bbox":[26,285,349,98],"iscrowd":0,"id":23,"image_id":3,"category_id":6},{"segmentation":[[32,401,304,401,304,441,32,441]],"area":10880,"bbox":[32,401,272,40],"iscrowd":0,"id":24,"image_id":3,"category_id":1},{"segmentation":[[34,453,314,453,314,492,34,492]],"area":10920,"bbox":[34,453,280,39],"iscrowd":0,"id":25,"image_id":3,"category_id":4},{"segmentation":[[14,17,194,17,194,55,14,55]],"area":6840,"bbox":[14,17,180,38],"iscrowd":0,"id":26,"image_id":4,"category_id":5},{"segmentation":[[17,74,323,74,323,180,17,180]],"area":32436,"bbox":[17,74,306,106],"iscrowd":0,"id":27,"image_id":4,"category_id":10},{"segmentation":[[21,189,641,189,641,288,21,288]],"area":61380,"bbox":[21,189,620,99],"iscrowd":0,"id":28,"image_id":4,"category_id":7},{"segmentation":[[19,300,639,300,639,403,19,403]],"area":63860,"bbox":[19,300,620,103],"iscrowd":0,"id":29,"image_id":4,"category_id":11},{"segmentation":[[25,416,638,416,638,760,25,760]],"area":210872,"bbox":[25,416,613,344],"iscrowd":0,"id":30,"image_id":4,"category_id":8},{"segmentation":[[24,771,223,771,223,820,24,820]],"area":9751,"bbox":[24,771,199,49],"iscrowd":0,"id":31,"image_id":4,"category_id":3},{"segmentation":[[752,13,919,13,919,54,752,54]],"area":6847,"bbox":[752,13,167,41],"iscrowd":0,"id":32,"image_id":4,"category_id":2},{"segmentation":[[771,68,1082,68,1082,137,771,137]],"area":21459,"bbox":[771,68,311,69],"iscrowd":0,"id":33,"image_id":4,"category_id":6},{"segmentation":[[765,153,973,153,973,210,765,210]],"area":11856,"bbox":[765,153,208,57],"iscrowd":0,"id":34,"image_id":4,"category_id":1},{"segmentation":[[768,221,1000,221,1000,267,768,267]],"area":10672,"bbox":[768,221,232,46],"iscrowd":0,"id":35,"image_id":4,"category_id":4},{"segmentation":[[32,16,383,16,383,91,32,91]],"area":26325,"bbox":[32,16,351,75],"iscrowd":0,"id":36,"image_id":5,"category_id":10},{"segmentation":[[429,16,777,16,777,88,429,88]],"area":25056,"bbox":[429,16,348,72],"iscrowd":0,"id":37,"image_id":5,"category_id":7},{"segmentation":[[34,127,383,127,383,198,34,198]],"area":24779,"bbox":[34,127,349,71],"iscrowd":0,"id":38,"image_id":5,"category_id":11},{"segmentation":[[29,234,784,234,784,458,29,458]],"area":169120,"bbox":[29,234,755,224],"iscrowd":0,"id":39,"image_id":5,"category_id":8},{"segmentation":[[31,489,296,489,296,554,31,554]],"area":17225,"bbox":[31,489,265,65],"iscrowd":0,"id":40,"image_id":5,"category_id":3},{"segmentation":[[13,19,369,19,369,86,13,86]],"area":23852,"bbox":[13,19,356,67],"iscrowd":0,"id":41,"image_id":6,"category_id":5},{"segmentation":[[13,101,182,101,182,168,13,168]],"area":11323,"bbox":[13,101,169,67],"iscrowd":0,"id":42,"image_id":6,"category_id":1},{"segmentation":[[16,187,209,187,209,265,16,265]],"area":15054,"bbox":[16,187,193,78],"iscrowd":0,"id":43,"image_id":6,"category_id":4},{"segmentation":[[13,294,351,294,351,393,13,393]],"area":33462,"bbox":[13,294,338,99],"iscrowd":0,"id":44,"image_id":6,"category_id":6},{"segmentation":[[13,485,260,485,260,563,13,563]],"area":19266,"bbox":[13,485,247,78],"iscrowd":0,"id":45,"image_id":6,"category_id":9},{"segmentation":[[396,515,760,515,760,555,396,555]],"area":14560,"bbox":[396,515,364,40],"iscrowd":0,"id":46,"image_id":6,"category_id":10},{"segmentation":[[779,514,1141,514,1141,554,779,554]],"area":14480,"bbox":[779,514,362,40],"iscrowd":0,"id":47,"image_id":6,"category_id":7},{"segmentation":[[397,575,1142,575,1142,612,397,612]],"area":27565,"bbox":[397,575,745,37],"iscrowd":0,"id":48,"image_id":6,"category_id":11},{"segmentation":[[396,637,1141,637,1141,771,396,771]],"area":99830,"bbox":[396,637,745,134],"iscrowd":0,"id":49,"image_id":6,"category_id":8},{"segmentation":[[693,795,848,795,848,835,693,835]],"area":6200,"bbox":[693,795,155,40],"iscrowd":0,"id":50,"image_id":6,"category_id":3},{"segmentation":[[538,15,860,15,860,97,538,97]],"area":26404,"bbox":[538,15,322,82],"iscrowd":0,"id":51,"image_id":7,"category_id":5},{"segmentation":[[942,217,1099,217,1099,269,942,269]],"area":8164,"bbox":[942,217,157,52],"iscrowd":0,"id":52,"image_id":7,"category_id":2},{"segmentation":[[53,124,1349,124,1349,163,53,163]],"area":50544,"bbox":[53,124,1296,39],"iscrowd":0,"id":53,"image_id":7,"category_id":12},{"segmentation":[[955,390,1391,390,1391,431,955,431]],"area":17876,"bbox":[955,390,436,41],"iscrowd":0,"id":54,"image_id":7,"category_id":6},{"segmentation":[[953,439,1212,439,1212,468,953,468]],"area":7511,"bbox":[953,439,259,29],"iscrowd":0,"id":55,"image_id":7,"category_id":4},{"segmentation":[[952,477,1173,477,1173,508,952,508]],"area":6851,"bbox":[952,477,221,31],"iscrowd":0,"id":56,"image_id":7,"category_id":1},{"segmentation":[[956,520,1262,520,1262,579,956,579]],"area":18054,"bbox":[956,520,306,59],"iscrowd":0,"id":57,"image_id":7,"category_id":9},{"segmentation":[[20,235,930,235,930,299,20,299]],"area":58240,"bbox":[20,235,910,64],"iscrowd":0,"id":58,"image_id":7,"category_id":10},{"segmentation":[[21,319,930,319,930,385,21,385]],"area":59994,"bbox":[21,319,909,66],"iscrowd":0,"id":59,"image_id":7,"category_id":7},{"segmentation":[[21,403,930,403,930,641,21,641]],"area":216342,"bbox":[21,403,909,238],"iscrowd":0,"id":60,"image_id":7,"category_id":8},{"segmentation":[[21,663,180,663,180,729,21,729]],"area":10494,"bbox":[21,663,159,66],"iscrowd":0,"id":61,"image_id":7,"category_id":3},{"segmentation":[[23,37,544,37,544,149,23,149]],"area":58352,"bbox":[23,37,521,112],"iscrowd":0,"id":62,"image_id":8,"category_id":6},{"segmentation":[[29,161,544,161,544,238,29,238]],"area":39655,"bbox":[29,161,515,77],"iscrowd":0,"id":63,"image_id":8,"category_id":1},{"segmentation":[[26,248,341,248,341,323,26,323]],"area":23625,"bbox":[26,248,315,75],"iscrowd":0,"id":64,"image_id":8,"category_id":4},{"segmentation":[[26,345,498,345,498,438,26,438]],"area":43896,"bbox":[26,345,472,93],"iscrowd":0,"id":65,"image_id":8,"category_id":9},{"segmentation":[[1138,38,1648,38,1648,131,1138,131]],"area":47430,"bbox":[1138,38,510,93],"iscrowd":0,"id":66,"image_id":8,"category_id":12},{"segmentation":[[1146,167,1654,167,1654,231,1146,231]],"area":32512,"bbox":[1146,167,508,64],"iscrowd":0,"id":67,"image_id":8,"category_id":10},{"segmentation":[[1142,250,1657,250,1657,311,1142,311]],"area":31415,"bbox":[1142,250,515,61],"iscrowd":0,"id":68,"image_id":8,"category_id":7},{"segmentation":[[1141,331,1322,331,1322,406,1141,406]],"area":13575,"bbox":[1141,331,181,75],"iscrowd":0,"id":69,"image_id":8,"category_id":3},{"segmentation":[[303,15,704,15,704,99,303,99]],"area":33684,"bbox":[303,15,401,84],"iscrowd":0,"id":70,"image_id":9,"category_id":5},{"segmentation":[[111,111,908,111,908,186,111,186]],"area":59775,"bbox":[111,111,797,75],"iscrowd":0,"id":71,"image_id":9,"category_id":12},{"segmentation":[[51,237,483,237,483,340,51,340]],"area":44496,"bbox":[51,237,432,103],"iscrowd":0,"id":72,"image_id":9,"category_id":10},{"segmentation":[[50,351,482,351,482,442,50,442]],"area":39312,"bbox":[50,351,432,91],"iscrowd":0,"id":73,"image_id":9,"category_id":7},{"segmentation":[[50,460,968,460,968,697,50,697]],"area":217566,"bbox":[50,460,918,237],"iscrowd":0,"id":74,"image_id":9,"category_id":8},{"segmentation":[[737,727,964,727,964,811,737,811]],"area":19068,"bbox":[737,727,227,84],"iscrowd":0,"id":75,"image_id":9,"category_id":3},{"segmentation":[[427,17,926,17,926,109,427,109]],"area":45908,"bbox":[427,17,499,92],"iscrowd":0,"id":76,"image_id":10,"category_id":5},{"segmentation":[[451,125,913,125,913,156,451,156]],"area":14322,"bbox":[451,125,462,31],"iscrowd":0,"id":77,"image_id":10,"category_id":12},{"segmentation":[[15,189,1347,189,1347,248,15,248]],"area":78588,"bbox":[15,189,1332,59],"iscrowd":0,"id":78,"image_id":10,"category_id":10},{"segmentation":[[14,262,1349,262,1349,324,14,324]],"area":82770,"bbox":[14,262,1335,62],"iscrowd":0,"id":79,"image_id":10,"category_id":7},{"segmentation":[[15,483,1353,483,1353,672,15,672]],"area":252882,"bbox":[15,483,1338,189],"iscrowd":0,"id":80,"image_id":10,"category_id":8},{"segmentation":[[596,686,769,686,769,741,596,741]],"area":9515,"bbox":[596,686,173,55],"iscrowd":0,"id":81,"image_id":10,"category_id":3},{"segmentation":[[14,16,231,16,231,78,14,78]],"area":13454,"bbox":[14,16,217,62],"iscrowd":0,"id":82,"image_id":11,"category_id":5},{"segmentation":[[638,106,1260,106,1260,242,638,242]],"area":84592,"bbox":[638,106,622,136],"iscrowd":0,"id":83,"image_id":11,"category_id":12},{"segmentation":[[637,261,973,261,973,378,637,378]],"area":39312,"bbox":[637,261,336,117],"iscrowd":0,"id":84,"image_id":11,"category_id":6},{"segmentation":[[642,396,932,396,932,430,642,430]],"area":9860,"bbox":[642,396,290,34],"iscrowd":0,"id":85,"image_id":11,"category_id":4},{"segmentation":[[637,431,844,431,844,460,637,460]],"area":6003,"bbox":[637,431,207,29],"iscrowd":0,"id":86,"image_id":11,"category_id":1},{"segmentation":[[25,112,565,112,565,176,25,176]],"area":34560,"bbox":[25,112,540,64],"iscrowd":0,"id":87,"image_id":11,"category_id":10},{"segmentation":[[25,192,564,192,564,253,25,253]],"area":32879,"bbox":[25,192,539,61],"iscrowd":0,"id":88,"image_id":11,"category_id":7},{"segmentation":[[25,270,565,270,565,530,25,530]],"area":140400,"bbox":[25,270,540,260],"iscrowd":0,"id":89,"image_id":11,"category_id":8},{"segmentation":[[370,545,563,545,563,612,370,612]],"area":12931,"bbox":[370,545,193,67],"iscrowd":0,"id":90,"image_id":11,"category_id":3},{"segmentation":[[12,8,295,8,295,47,12,47]],"area":11037,"bbox":[12,8,283,39],"iscrowd":0,"id":91,"image_id":12,"category_id":5},{"segmentation":[[9,61,429,61,429,122,9,122]],"area":25620,"bbox":[9,61,420,61],"iscrowd":0,"id":92,"image_id":12,"category_id":6},{"segmentation":[[12,135,198,135,198,186,12,186]],"area":9486,"bbox":[12,135,186,51],"iscrowd":0,"id":93,"image_id":12,"category_id":1},{"segmentation":[[15,195,222,195,222,233,15,233]],"area":7866,"bbox":[15,195,207,38],"iscrowd":0,"id":94,"image_id":12,"category_id":4},{"segmentation":[[533,56,1337,56,1337,124,533,124]],"area":54672,"bbox":[533,56,804,68],"iscrowd":0,"id":95,"image_id":12,"category_id":10},{"segmentation":[[539,154,1339,154,1339,216,539,216]],"area":49600,"bbox":[539,154,800,62],"iscrowd":0,"id":96,"image_id":12,"category_id":7},{"segmentation":[[536,250,1339,250,1339,692,536,692]],"area":354926,"bbox":[536,250,803,442],"iscrowd":0,"id":97,"image_id":12,"category_id":8},{"segmentation":[[533,716,713,716,713,778,533,778]],"area":11160,"bbox":[533,716,180,62],"iscrowd":0,"id":98,"image_id":12,"category_id":3},{"segmentation":[[32,30,755,30,755,92,32,92]],"area":44826,"bbox":[32,30,723,62],"iscrowd":0,"id":99,"image_id":13,"category_id":10},{"segmentation":[[30,117,754,117,754,180,30,180]],"area":45612,"bbox":[30,117,724,63],"iscrowd":0,"id":100,"image_id":13,"category_id":7},{"segmentation":[[30,293,753,293,753,353,30,353]],"area":43380,"bbox":[30,293,723,60],"iscrowd":0,"id":101,"image_id":13,"category_id":11},{"segmentation":[[30,380,759,380,759,527,30,527]],"area":107163,"bbox":[30,380,729,147],"iscrowd":0,"id":102,"image_id":13,"category_id":8},{"segmentation":[[29,549,180,549,180,603,29,603]],"area":8154,"bbox":[29,549,151,54],"iscrowd":0,"id":103,"image_id":13,"category_id":3},{"segmentation":[[66,81,365,81,365,140,66,140]],"area":17641,"bbox":[66,81,299,59],"iscrowd":0,"id":104,"image_id":14,"category_id":10},{"segmentation":[[388,73,688,73,688,142,388,142]],"area":20700,"bbox":[388,73,300,69],"iscrowd":0,"id":105,"image_id":14,"category_id":7},{"segmentation":[[388,158,690,158,690,228,388,228]],"area":21140,"bbox":[388,158,302,70],"iscrowd":0,"id":106,"image_id":14,"category_id":11},{"segmentation":[[67,248,691,248,691,370,67,370]],"area":76128,"bbox":[67,248,624,122],"iscrowd":0,"id":107,"image_id":14,"category_id":8},{"segmentation":[[267,396,486,396,486,475,267,475]],"area":17301,"bbox":[267,396,219,79],"iscrowd":0,"id":108,"image_id":14,"category_id":3},{"segmentation":[[8,10,231,10,231,68,8,68]],"area":12934,"bbox":[8,10,223,58],"iscrowd":0,"id":109,"image_id":15,"category_id":5},{"segmentation":[[10,77,150,77,150,137,10,137]],"area":8400,"bbox":[10,77,140,60],"iscrowd":0,"id":110,"image_id":15,"category_id":1},{"segmentation":[[5,151,160,151,160,218,5,218]],"area":10385,"bbox":[5,151,155,67],"iscrowd":0,"id":111,"image_id":15,"category_id":4},{"segmentation":[[5,237,361,237,361,327,5,327]],"area":32040,"bbox":[5,237,356,90],"iscrowd":0,"id":112,"image_id":15,"category_id":6},{"segmentation":[[7,390,252,390,252,507,7,507]],"area":28665,"bbox":[7,390,245,117],"iscrowd":0,"id":113,"image_id":15,"category_id":9},{"segmentation":[[404,416,790,416,790,460,404,460]],"area":16984,"bbox":[404,416,386,44],"iscrowd":0,"id":114,"image_id":15,"category_id":10},{"segmentation":[[801,413,1188,413,1188,458,801,458]],"area":17415,"bbox":[801,413,387,45],"iscrowd":0,"id":115,"image_id":15,"category_id":7},{"segmentation":[[404,470,1188,470,1188,516,404,516]],"area":36064,"bbox":[404,470,784,46],"iscrowd":0,"id":116,"image_id":15,"category_id":11},{"segmentation":[[404,533,1191,533,1191,650,404,650]],"area":92079,"bbox":[404,533,787,117],"iscrowd":0,"id":117,"image_id":15,"category_id":8},{"segmentation":[[733,672,850,672,850,703,733,703]],"area":3627,"bbox":[733,672,117,31],"iscrowd":0,"id":118,"image_id":15,"category_id":3},{"segmentation":[[353,20,646,20,646,94,353,94]],"area":21682,"bbox":[353,20,293,74],"iscrowd":0,"id":119,"image_id":16,"category_id":5},{"segmentation":[[63,118,946,118,946,173,63,173]],"area":48565,"bbox":[63,118,883,55],"iscrowd":0,"id":120,"image_id":16,"category_id":12},{"segmentation":[[590,215,958,215,958,309,590,309]],"area":34592,"bbox":[590,215,368,94],"iscrowd":0,"id":121,"image_id":16,"category_id":6},{"segmentation":[[589,321,835,321,835,417,589,417]],"area":23616,"bbox":[589,321,246,96],"iscrowd":0,"id":122,"image_id":16,"category_id":1},{"segmentation":[[589,428,857,428,857,512,589,512]],"area":22512,"bbox":[589,428,268,84],"iscrowd":0,"id":123,"image_id":16,"category_id":4},{"segmentation":[[590,527,856,527,856,585,590,585]],"area":15428,"bbox":[590,527,266,58],"iscrowd":0,"id":124,"image_id":16,"category_id":9},{"segmentation":[[39,223,570,223,570,287,39,287]],"area":33984,"bbox":[39,223,531,64],"iscrowd":0,"id":125,"image_id":16,"category_id":10},{"segmentation":[[43,298,569,298,569,353,43,353]],"area":28930,"bbox":[43,298,526,55],"iscrowd":0,"id":126,"image_id":16,"category_id":7},{"segmentation":[[50,371,569,371,569,568,50,568]],"area":102243,"bbox":[50,371,519,197],"iscrowd":0,"id":127,"image_id":16,"category_id":8},{"segmentation":[[50,583,185,583,185,639,50,639]],"area":7560,"bbox":[50,583,135,56],"iscrowd":0,"id":128,"image_id":16,"category_id":3},{"segmentation":[[227,12,579,12,579,66,227,66]],"area":19008,"bbox":[227,12,352,54],"iscrowd":0,"id":129,"image_id":17,"category_id":5},{"segmentation":[[140,72,697,72,697,129,140,129]],"area":31749,"bbox":[140,72,557,57],"iscrowd":0,"id":130,"image_id":17,"category_id":12},{"segmentation":[[34,167,791,167,791,233,34,233]],"area":49962,"bbox":[34,167,757,66],"iscrowd":0,"id":131,"image_id":17,"category_id":10},{"segmentation":[[28,269,790,269,790,341,28,341]],"area":54864,"bbox":[28,269,762,72],"iscrowd":0,"id":132,"image_id":17,"category_id":7},{"segmentation":[[28,375,788,375,788,444,28,444]],"area":52440,"bbox":[28,375,760,69],"iscrowd":0,"id":133,"image_id":17,"category_id":11},{"segmentation":[[29,474,794,474,794,726,29,726]],"area":192780,"bbox":[29,474,765,252],"iscrowd":0,"id":134,"image_id":17,"category_id":8},{"segmentation":[[315,735,504,735,504,793,315,793]],"area":10962,"bbox":[315,735,189,58],"iscrowd":0,"id":135,"image_id":17,"category_id":3},{"segmentation":[[29,30,354,30,354,156,29,156]],"area":40950,"bbox":[29,30,325,126],"iscrowd":0,"id":136,"image_id":18,"category_id":6},{"segmentation":[[500,39,741,39,741,151,500,151]],"area":26992,"bbox":[500,39,241,112],"iscrowd":0,"id":137,"image_id":18,"category_id":1},{"segmentation":[[975,32,1288,32,1288,161,975,161]],"area":40377,"bbox":[975,32,313,129],"iscrowd":0,"id":138,"image_id":18,"category_id":4},{"segmentation":[[493,339,971,339,971,403,493,403]],"area":30592,"bbox":[493,339,478,64],"iscrowd":0,"id":139,"image_id":18,"category_id":10},{"segmentation":[[490,416,971,416,971,477,490,477]],"area":29341,"bbox":[490,416,481,61],"iscrowd":0,"id":140,"image_id":18,"category_id":7},{"segmentation":[[490,490,971,490,971,549,490,549]],"area":28379,"bbox":[490,490,481,59],"iscrowd":0,"id":141,"image_id":18,"category_id":11},{"segmentation":[[490,565,973,565,973,683,490,683]],"area":56994,"bbox":[490,565,483,118],"iscrowd":0,"id":142,"image_id":18,"category_id":8},{"segmentation":[[498,724,633,724,633,782,498,782]],"area":7830,"bbox":[498,724,135,58],"iscrowd":0,"id":143,"image_id":18,"category_id":3},{"segmentation":[[25,73,298,73,298,147,25,147]],"area":20202,"bbox":[25,73,273,74],"iscrowd":0,"id":144,"image_id":19,"category_id":6},{"segmentation":[[25,154,228,154,228,201,25,201]],"area":9541,"bbox":[25,154,203,47],"iscrowd":0,"id":145,"image_id":19,"category_id":1},{"segmentation":[[24,207,212,207,212,251,24,251]],"area":8272,"bbox":[24,207,188,44],"iscrowd":0,"id":146,"image_id":19,"category_id":4},{"segmentation":[[23,266,306,266,306,327,23,327]],"area":17263,"bbox":[23,266,283,61],"iscrowd":0,"id":147,"image_id":19,"category_id":9},{"segmentation":[[694,77,991,77,991,141,694,141]],"area":19008,"bbox":[694,77,297,64],"iscrowd":0,"id":148,"image_id":19,"category_id":12},{"segmentation":[[698,159,1014,159,1014,202,698,202]],"area":13588,"bbox":[698,159,316,43],"iscrowd":0,"id":149,"image_id":19,"category_id":10},{"segmentation":[[697,207,1014,207,1014,252,697,252]],"area":14265,"bbox":[697,207,317,45],"iscrowd":0,"id":150,"image_id":19,"category_id":7},{"segmentation":[[698,259,803,259,803,303,698,303]],"area":4620,"bbox":[698,259,105,44],"iscrowd":0,"id":151,"image_id":19,"category_id":3},{"segmentation":[[19,24,144,24,144,71,19,71]],"area":5875,"bbox":[19,24,125,47],"iscrowd":0,"id":152,"image_id":20,"category_id":5},{"segmentation":[[600,19,784,19,784,74,600,74]],"area":10120,"bbox":[600,19,184,55],"iscrowd":0,"id":153,"image_id":20,"category_id":2},{"segmentation":[[608,109,1169,109,1169,215,608,215]],"area":59466,"bbox":[608,109,561,106],"iscrowd":0,"id":154,"image_id":20,"category_id":12},{"segmentation":[[603,228,752,228,752,293,603,293]],"area":9685,"bbox":[603,228,149,65],"iscrowd":0,"id":155,"image_id":20,"category_id":6},{"segmentation":[[27,116,297,116,297,171,27,171]],"area":14850,"bbox":[27,116,270,55],"iscrowd":0,"id":156,"image_id":20,"category_id":10},{"segmentation":[[25,191,298,191,298,245,25,245]],"area":14742,"bbox":[25,191,273,54],"iscrowd":0,"id":157,"image_id":20,"category_id":7},{"segmentation":[[319,114,587,114,587,250,319,250]],"area":36448,"bbox":[319,114,268,136],"iscrowd":0,"id":158,"image_id":20,"category_id":8},{"segmentation":[[318,266,590,266,590,317,318,317]],"area":13872,"bbox":[318,266,272,51],"iscrowd":0,"id":159,"image_id":20,"category_id":3},{"segmentation":[[25,10,149,10,149,54,25,54]],"area":5456,"bbox":[25,10,124,44],"iscrowd":0,"id":160,"image_id":21,"category_id":5},{"segmentation":[[25,67,667,67,667,126,25,126]],"area":37878,"bbox":[25,67,642,59],"iscrowd":0,"id":161,"image_id":21,"category_id":10},{"segmentation":[[26,139,664,139,664,194,26,194]],"area":35090,"bbox":[26,139,638,55],"iscrowd":0,"id":162,"image_id":21,"category_id":7},{"segmentation":[[25,284,664,284,664,339,25,339]],"area":35145,"bbox":[25,284,639,55],"iscrowd":0,"id":163,"image_id":21,"category_id":11},{"segmentation":[[25,357,663,357,663,484,25,484]],"area":81026,"bbox":[25,357,638,127],"iscrowd":0,"id":164,"image_id":21,"category_id":8},{"segmentation":[[26,499,152,499,152,550,26,550]],"area":6426,"bbox":[26,499,126,51],"iscrowd":0,"id":165,"image_id":21,"category_id":3},{"segmentation":[[665,77,887,77,887,143,665,143]],"area":14652,"bbox":[665,77,222,66],"iscrowd":0,"id":166,"image_id":22,"category_id":4},{"segmentation":[[665,152,925,152,925,204,665,204]],"area":13520,"bbox":[665,152,260,52],"iscrowd":0,"id":167,"image_id":22,"category_id":1},{"segmentation":[[665,212,920,212,920,274,665,274]],"area":15810,"bbox":[665,212,255,62],"iscrowd":0,"id":168,"image_id":22,"category_id":6},{"segmentation":[[68,81,340,81,340,138,68,138]],"area":15504,"bbox":[68,81,272,57],"iscrowd":0,"id":169,"image_id":22,"category_id":10},{"segmentation":[[363,80,634,80,634,140,363,140]],"area":16260,"bbox":[363,80,271,60],"iscrowd":0,"id":170,"image_id":22,"category_id":7},{"segmentation":[[70,157,634,157,634,346,70,346]],"area":106596,"bbox":[70,157,564,189],"iscrowd":0,"id":171,"image_id":22,"category_id":8},{"segmentation":[[67,369,212,369,212,412,67,412]],"area":6235,"bbox":[67,369,145,43],"iscrowd":0,"id":172,"image_id":22,"category_id":3},{"segmentation":[[20,22,657,22,657,78,20,78]],"area":35672,"bbox":[20,22,637,56],"iscrowd":0,"id":173,"image_id":23,"category_id":10},{"segmentation":[[17,94,658,94,658,154,17,154]],"area":38460,"bbox":[17,94,641,60],"iscrowd":0,"id":174,"image_id":23,"category_id":7},{"segmentation":[[16,237,657,237,657,296,16,296]],"area":37819,"bbox":[16,237,641,59],"iscrowd":0,"id":175,"image_id":23,"category_id":11},{"segmentation":[[14,312,656,312,656,440,14,440]],"area":82176,"bbox":[14,312,642,128],"iscrowd":0,"id":176,"image_id":23,"category_id":8},{"segmentation":[[17,453,153,453,153,506,17,506]],"area":7208,"bbox":[17,453,136,53],"iscrowd":0,"id":177,"image_id":23,"category_id":3},{"segmentation":[[274,41,678,41,678,117,274,117]],"area":30704,"bbox":[274,41,404,76],"iscrowd":0,"id":178,"image_id":24,"category_id":5},{"segmentation":[[40,130,919,130,919,203,40,203]],"area":64167,"bbox":[40,130,879,73],"iscrowd":0,"id":179,"image_id":24,"category_id":12},{"segmentation":[[32,297,480,297,480,335,32,335]],"area":17024,"bbox":[32,297,448,38],"iscrowd":0,"id":180,"image_id":24,"category_id":10},{"segmentation":[[34,348,479,348,479,386,34,386]],"area":16910,"bbox":[34,348,445,38],"iscrowd":0,"id":181,"image_id":24,"category_id":7},{"segmentation":[[32,404,478,404,478,444,32,444]],"area":17840,"bbox":[32,404,446,40],"iscrowd":0,"id":182,"image_id":24,"category_id":11},{"segmentation":[[34,456,480,456,480,662,34,662]],"area":91876,"bbox":[34,456,446,206],"iscrowd":0,"id":183,"image_id":24,"category_id":8},{"segmentation":[[37,682,171,682,171,713,37,713]],"area":4154,"bbox":[37,682,134,31],"iscrowd":0,"id":184,"image_id":24,"category_id":3},{"segmentation":[[486,355,725,355,725,385,486,385]],"area":7170,"bbox":[486,355,239,30],"iscrowd":0,"id":185,"image_id":24,"category_id":1},{"segmentation":[[485,417,653,417,653,433,485,433]],"area":2688,"bbox":[485,417,168,16],"iscrowd":0,"id":186,"image_id":24,"category_id":4},{"segmentation":[[370,38,538,38,538,78,370,78]],"area":6720,"bbox":[370,38,168,40],"iscrowd":0,"id":187,"image_id":25,"category_id":5},{"segmentation":[[482,99,621,99,621,139,482,139]],"area":5560,"bbox":[482,99,139,40],"iscrowd":0,"id":188,"image_id":25,"category_id":2},{"segmentation":[[482,148,864,148,864,209,482,209]],"area":23302,"bbox":[482,148,382,61],"iscrowd":0,"id":189,"image_id":25,"category_id":12},{"segmentation":[[481,216,613,216,613,237,481,237]],"area":2772,"bbox":[481,216,132,21],"iscrowd":0,"id":190,"image_id":25,"category_id":1},{"segmentation":[[478,241,639,241,639,259,478,259]],"area":2898,"bbox":[478,241,161,18],"iscrowd":0,"id":191,"image_id":25,"category_id":4},{"segmentation":[[476,261,712,261,712,284,476,284]],"area":5428,"bbox":[476,261,236,23],"iscrowd":0,"id":192,"image_id":25,"category_id":6},{"segmentation":[[18,116,448,116,448,184,18,184]],"area":29240,"bbox":[18,116,430,68],"iscrowd":0,"id":193,"image_id":25,"category_id":10},{"segmentation":[[13,188,452,188,452,253,13,253]],"area":28535,"bbox":[13,188,439,65],"iscrowd":0,"id":194,"image_id":25,"category_id":7},{"segmentation":[[20,261,449,261,449,325,20,325]],"area":27456,"bbox":[20,261,429,64],"iscrowd":0,"id":195,"image_id":25,"category_id":11},{"segmentation":[[20,335,445,335,445,536,20,536]],"area":85425,"bbox":[20,335,425,201],"iscrowd":0,"id":196,"image_id":25,"category_id":8},{"segmentation":[[20,542,141,542,141,588,20,588]],"area":5566,"bbox":[20,542,121,46],"iscrowd":0,"id":197,"image_id":25,"category_id":3},{"segmentation":[[20,4,228,4,228,100,20,100]],"area":19968,"bbox":[20,4,208,96],"iscrowd":0,"id":198,"image_id":26,"category_id":4},{"segmentation":[[486,8,859,8,859,100,486,100]],"area":34316,"bbox":[486,8,373,92],"iscrowd":0,"id":199,"image_id":26,"category_id":6},{"segmentation":[[976,0,1176,0,1176,104,976,104]],"area":20800,"bbox":[976,0,200,104],"iscrowd":0,"id":200,"image_id":26,"category_id":1},{"segmentation":[[27,173,168,173,168,214,27,214]],"area":5781,"bbox":[27,173,141,41],"iscrowd":0,"id":201,"image_id":26,"category_id":5},{"segmentation":[[31,227,731,227,731,274,31,274]],"area":32900,"bbox":[31,227,700,47],"iscrowd":0,"id":202,"image_id":26,"category_id":10},{"segmentation":[[28,280,729,280,729,325,28,325]],"area":31545,"bbox":[28,280,701,45],"iscrowd":0,"id":203,"image_id":26,"category_id":7},{"segmentation":[[748,229,1445,229,1445,329,748,329]],"area":69700,"bbox":[748,229,697,100],"iscrowd":0,"id":204,"image_id":26,"category_id":8},{"segmentation":[[746,337,895,337,895,378,746,378]],"area":6109,"bbox":[746,337,149,41],"iscrowd":0,"id":205,"image_id":26,"category_id":3},{"segmentation":[[471,26,846,26,846,79,471,79]],"area":19875,"bbox":[471,26,375,53],"iscrowd":0,"id":206,"image_id":27,"category_id":5},{"segmentation":[[21,81,1309,81,1309,155,21,155]],"area":95312,"bbox":[21,81,1288,74],"iscrowd":0,"id":207,"image_id":27,"category_id":12},{"segmentation":[[124,190,649,190,649,276,124,276]],"area":45150,"bbox":[124,190,525,86],"iscrowd":0,"id":208,"image_id":27,"category_id":10},{"segmentation":[[669,183,1204,183,1204,274,669,274]],"area":48685,"bbox":[669,183,535,91],"iscrowd":0,"id":209,"image_id":27,"category_id":11},{"segmentation":[[668,284,1201,284,1201,517,668,517]],"area":124189,"bbox":[668,284,533,233],"iscrowd":0,"id":210,"image_id":27,"category_id":8},{"segmentation":[[121,283,651,283,651,364,121,364]],"area":42930,"bbox":[121,283,530,81],"iscrowd":0,"id":211,"image_id":27,"category_id":7},{"segmentation":[[674,532,871,532,871,581,674,581]],"area":9653,"bbox":[674,532,197,49],"iscrowd":0,"id":212,"image_id":27,"category_id":3},{"segmentation":[[34,32,420,32,420,100,34,100]],"area":26248,"bbox":[34,32,386,68],"iscrowd":0,"id":213,"image_id":28,"category_id":10},{"segmentation":[[32,117,866,117,866,183,32,183]],"area":55044,"bbox":[32,117,834,66],"iscrowd":0,"id":214,"image_id":28,"category_id":7},{"segmentation":[[31,206,865,206,865,345,31,345]],"area":115926,"bbox":[31,206,834,139],"iscrowd":0,"id":215,"image_id":28,"category_id":8},{"segmentation":[[648,365,868,365,868,434,648,434]],"area":15180,"bbox":[648,365,220,69],"iscrowd":0,"id":216,"image_id":28,"category_id":3},{"segmentation":[[365,9,574,9,574,58,365,58]],"area":10241,"bbox":[365,9,209,49],"iscrowd":0,"id":217,"image_id":29,"category_id":5},{"segmentation":[[203,62,737,62,737,101,203,101]],"area":20826,"bbox":[203,62,534,39],"iscrowd":0,"id":218,"image_id":29,"category_id":12},{"segmentation":[[20,129,154,129,154,167,20,167]],"area":5092,"bbox":[20,129,134,38],"iscrowd":0,"id":219,"image_id":29,"category_id":2},{"segmentation":[[25,189,456,189,456,260,25,260]],"area":30601,"bbox":[25,189,431,71],"iscrowd":0,"id":220,"image_id":29,"category_id":10},{"segmentation":[[25,269,458,269,458,342,25,342]],"area":31609,"bbox":[25,269,433,73],"iscrowd":0,"id":221,"image_id":29,"category_id":7},{"segmentation":[[20,350,457,350,457,421,20,421]],"area":31027,"bbox":[20,350,437,71],"iscrowd":0,"id":222,"image_id":29,"category_id":11},{"segmentation":[[25,434,459,434,459,669,25,669]],"area":101990,"bbox":[25,434,434,235],"iscrowd":0,"id":223,"image_id":29,"category_id":8},{"segmentation":[[25,683,163,683,163,720,25,720]],"area":5106,"bbox":[25,683,138,37],"iscrowd":0,"id":224,"image_id":29,"category_id":3},{"segmentation":[[469,253,809,253,809,279,469,279]],"area":8840,"bbox":[469,253,340,26],"iscrowd":0,"id":225,"image_id":29,"category_id":6},{"segmentation":[[469,282,719,282,719,307,469,307]],"area":6250,"bbox":[469,282,250,25],"iscrowd":0,"id":226,"image_id":29,"category_id":1},{"segmentation":[[475,335,668,335,668,358,475,358]],"area":4439,"bbox":[475,335,193,23],"iscrowd":0,"id":227,"image_id":29,"category_id":7},{"segmentation":[[475,381,709,381,709,443,475,443]],"area":14508,"bbox":[475,381,234,62],"iscrowd":0,"id":228,"image_id":29,"category_id":9},{"segmentation":[[22,34,1167,34,1167,100,22,100]],"area":75570,"bbox":[22,34,1145,66],"iscrowd":0,"id":229,"image_id":30,"category_id":10},{"segmentation":[[22,122,1168,122,1168,193,22,193]],"area":81366,"bbox":[22,122,1146,71],"iscrowd":0,"id":230,"image_id":30,"category_id":7},{"segmentation":[[19,211,1170,211,1170,411,19,411]],"area":230200,"bbox":[19,211,1151,200],"iscrowd":0,"id":231,"image_id":30,"category_id":8},{"segmentation":[[500,426,688,426,688,488,500,488]],"area":11656,"bbox":[500,426,188,62],"iscrowd":0,"id":232,"image_id":30,"category_id":3},{"segmentation":[[28,9,349,9,349,91,28,91]],"area":26322,"bbox":[28,9,321,82],"iscrowd":0,"id":233,"image_id":31,"category_id":6},{"segmentation":[[28,100,271,100,271,154,28,154]],"area":13122,"bbox":[28,100,243,54],"iscrowd":0,"id":234,"image_id":31,"category_id":1},{"segmentation":[[25,216,245,216,245,274,25,274]],"area":12760,"bbox":[25,216,220,58],"iscrowd":0,"id":235,"image_id":31,"category_id":4},{"segmentation":[[403,17,745,17,745,87,403,87]],"area":23940,"bbox":[403,17,342,70],"iscrowd":0,"id":236,"image_id":31,"category_id":12},{"segmentation":[[405,108,746,108,746,154,405,154]],"area":15686,"bbox":[405,108,341,46],"iscrowd":0,"id":237,"image_id":31,"category_id":10},{"segmentation":[[405,163,745,163,745,207,405,207]],"area":14960,"bbox":[405,163,340,44],"iscrowd":0,"id":238,"image_id":31,"category_id":7},{"segmentation":[[405,220,531,220,531,268,405,268]],"area":6048,"bbox":[405,220,126,48],"iscrowd":0,"id":239,"image_id":31,"category_id":3},{"segmentation":[[594,35,742,35,742,169,594,169]],"area":19832,"bbox":[594,35,148,134],"iscrowd":0,"id":240,"image_id":32,"category_id":1},{"segmentation":[[41,222,646,222,646,286,41,286]],"area":38720,"bbox":[41,222,605,64],"iscrowd":0,"id":241,"image_id":32,"category_id":10},{"segmentation":[[42,294,648,294,648,351,42,351]],"area":34542,"bbox":[42,294,606,57],"iscrowd":0,"id":242,"image_id":32,"category_id":7},{"segmentation":[[41,360,649,360,649,544,41,544]],"area":111872,"bbox":[41,360,608,184],"iscrowd":0,"id":243,"image_id":32,"category_id":8},{"segmentation":[[255,575,432,575,432,636,255,636]],"area":10797,"bbox":[255,575,177,61],"iscrowd":0,"id":244,"image_id":32,"category_id":3},{"segmentation":[[711,522,1038,522,1038,576,711,576]],"area":17658,"bbox":[711,522,327,54],"iscrowd":0,"id":245,"image_id":32,"category_id":9},{"segmentation":[[711,347,990,347,990,440,711,440]],"area":25947,"bbox":[711,347,279,93],"iscrowd":0,"id":246,"image_id":32,"category_id":6},{"segmentation":[[714,256,1281,256,1281,336,714,336]],"area":45360,"bbox":[714,256,567,80],"iscrowd":0,"id":247,"image_id":32,"category_id":12},{"segmentation":[[433,68,694,68,694,149,433,149]],"area":21141,"bbox":[433,68,261,81],"iscrowd":0,"id":248,"image_id":33,"category_id":5},{"segmentation":[[313,150,815,150,815,192,313,192]],"area":21084,"bbox":[313,150,502,42],"iscrowd":0,"id":249,"image_id":33,"category_id":12},{"segmentation":[[165,222,330,222,330,342,165,342]],"area":19800,"bbox":[165,222,165,120],"iscrowd":0,"id":250,"image_id":33,"category_id":6},{"segmentation":[[472,222,658,222,658,343,472,343]],"area":22506,"bbox":[472,222,186,121],"iscrowd":0,"id":251,"image_id":33,"category_id":1},{"segmentation":[[790,219,970,219,970,340,790,340]],"area":21780,"bbox":[790,219,180,121],"iscrowd":0,"id":252,"image_id":33,"category_id":4},{"segmentation":[[98,378,551,378,551,438,98,438]],"area":27180,"bbox":[98,378,453,60],"iscrowd":0,"id":253,"image_id":33,"category_id":10},{"segmentation":[[94,447,552,447,552,499,94,499]],"area":23816,"bbox":[94,447,458,52],"iscrowd":0,"id":254,"image_id":33,"category_id":7},{"segmentation":[[97,515,550,515,550,569,97,569]],"area":24462,"bbox":[97,515,453,54],"iscrowd":0,"id":255,"image_id":33,"category_id":11},{"segmentation":[[571,373,1029,373,1029,504,571,504]],"area":59998,"bbox":[571,373,458,131],"iscrowd":0,"id":256,"image_id":33,"category_id":8},{"segmentation":[[575,510,1032,510,1032,568,575,568]],"area":26506,"bbox":[575,510,457,58],"iscrowd":0,"id":257,"image_id":33,"category_id":3},{"segmentation":[[410,26,622,26,622,83,410,83]],"area":12084,"bbox":[410,26,212,57],"iscrowd":0,"id":258,"image_id":34,"category_id":5},{"segmentation":[[257,97,782,97,782,154,257,154]],"area":29925,"bbox":[257,97,525,57],"iscrowd":0,"id":259,"image_id":34,"category_id":12},{"segmentation":[[716,247,901,247,901,288,716,288]],"area":7585,"bbox":[716,247,185,41],"iscrowd":0,"id":260,"image_id":34,"category_id":2},{"segmentation":[[712,303,981,303,981,359,712,359]],"area":15064,"bbox":[712,303,269,56],"iscrowd":0,"id":261,"image_id":34,"category_id":6},{"segmentation":[[713,373,876,373,876,415,713,415]],"area":6846,"bbox":[713,373,163,42],"iscrowd":0,"id":262,"image_id":34,"category_id":1},{"segmentation":[[713,421,901,421,901,466,713,466]],"area":8460,"bbox":[713,421,188,45],"iscrowd":0,"id":263,"image_id":34,"category_id":4},{"segmentation":[[60,250,359,250,359,311,60,311]],"area":18239,"bbox":[60,250,299,61],"iscrowd":0,"id":264,"image_id":34,"category_id":10},{"segmentation":[[393,253,692,253,692,314,393,314]],"area":18239,"bbox":[393,253,299,61],"iscrowd":0,"id":265,"image_id":34,"category_id":7},{"segmentation":[[61,340,691,340,691,513,61,513]],"area":108990,"bbox":[61,340,630,173],"iscrowd":0,"id":266,"image_id":34,"category_id":8},{"segmentation":[[60,542,252,542,252,595,60,595]],"area":10176,"bbox":[60,542,192,53],"iscrowd":0,"id":267,"image_id":34,"category_id":3},{"segmentation":[[502,20,832,20,832,99,502,99]],"area":26070,"bbox":[502,20,330,79],"iscrowd":0,"id":268,"image_id":35,"category_id":5},{"segmentation":[[398,109,942,109,942,177,398,177]],"area":36992,"bbox":[398,109,544,68],"iscrowd":0,"id":269,"image_id":35,"category_id":12},{"segmentation":[[23,278,435,278,435,342,23,342]],"area":26368,"bbox":[23,278,412,64],"iscrowd":0,"id":270,"image_id":35,"category_id":10},{"segmentation":[[460,278,870,278,870,343,460,343]],"area":26650,"bbox":[460,278,410,65],"iscrowd":0,"id":271,"image_id":35,"category_id":7},{"segmentation":[[899,282,1305,282,1305,337,899,337]],"area":22330,"bbox":[899,282,406,55],"iscrowd":0,"id":272,"image_id":35,"category_id":11},{"segmentation":[[20,372,1312,372,1312,587,20,587]],"area":277780,"bbox":[20,372,1292,215],"iscrowd":0,"id":273,"image_id":35,"category_id":8},{"segmentation":[[596,621,739,621,739,673,596,673]],"area":7436,"bbox":[596,621,143,52],"iscrowd":0,"id":274,"image_id":35,"category_id":3},{"segmentation":[[31,42,441,42,441,114,31,114]],"area":29520,"bbox":[31,42,410,72],"iscrowd":0,"id":275,"image_id":36,"category_id":10},{"segmentation":[[32,141,448,141,448,206,32,206]],"area":27040,"bbox":[32,141,416,65],"iscrowd":0,"id":276,"image_id":36,"category_id":7},{"segmentation":[[32,339,878,339,878,526,32,526]],"area":158202,"bbox":[32,339,846,187],"iscrowd":0,"id":277,"image_id":36,"category_id":8},{"segmentation":[[31,545,878,545,878,612,31,612]],"area":56749,"bbox":[31,545,847,67],"iscrowd":0,"id":278,"image_id":36,"category_id":3},{"segmentation":[[24,12,521,12,521,50,24,50]],"area":18886,"bbox":[24,12,497,38],"iscrowd":0,"id":279,"image_id":37,"category_id":5},{"segmentation":[[927,9,1118,9,1118,46,927,46]],"area":7067,"bbox":[927,9,191,37],"iscrowd":0,"id":280,"image_id":37,"category_id":2},{"segmentation":[[925,59,1251,59,1251,145,925,145]],"area":28036,"bbox":[925,59,326,86],"iscrowd":0,"id":281,"image_id":37,"category_id":6},{"segmentation":[[926,157,1212,157,1212,219,926,219]],"area":17732,"bbox":[926,157,286,62],"iscrowd":0,"id":282,"image_id":37,"category_id":1},{"segmentation":[[925,305,1131,305,1131,371,925,371]],"area":13596,"bbox":[925,305,206,66],"iscrowd":0,"id":283,"image_id":37,"category_id":4},{"segmentation":[[32,63,456,63,456,115,32,115]],"area":22048,"bbox":[32,63,424,52],"iscrowd":0,"id":284,"image_id":37,"category_id":10},{"segmentation":[[480,61,904,61,904,115,480,115]],"area":22896,"bbox":[480,61,424,54],"iscrowd":0,"id":285,"image_id":37,"category_id":7},{"segmentation":[[32,121,905,121,905,171,32,171]],"area":43650,"bbox":[32,121,873,50],"iscrowd":0,"id":286,"image_id":37,"category_id":11},{"segmentation":[[32,178,904,178,904,464,32,464]],"area":249392,"bbox":[32,178,872,286],"iscrowd":0,"id":287,"image_id":37,"category_id":8},{"segmentation":[[31,474,177,474,177,517,31,517]],"area":6278,"bbox":[31,474,146,43],"iscrowd":0,"id":288,"image_id":37,"category_id":3},{"segmentation":[[243,10,533,10,533,60,243,60]],"area":14500,"bbox":[243,10,290,50],"iscrowd":0,"id":289,"image_id":38,"category_id":5},{"segmentation":[[520,211,845,211,845,338,520,338]],"area":41275,"bbox":[520,211,325,127],"iscrowd":0,"id":290,"image_id":38,"category_id":12},{"segmentation":[[521,360,756,360,756,421,521,421]],"area":14335,"bbox":[521,360,235,61],"iscrowd":0,"id":291,"image_id":38,"category_id":6},{"segmentation":[[63,151,471,151,471,209,63,209]],"area":23664,"bbox":[63,151,408,58],"iscrowd":0,"id":292,"image_id":38,"category_id":10},{"segmentation":[[66,219,471,219,471,278,66,278]],"area":23895,"bbox":[66,219,405,59],"iscrowd":0,"id":293,"image_id":38,"category_id":7},{"segmentation":[[66,286,471,286,471,458,66,458]],"area":69660,"bbox":[66,286,405,172],"iscrowd":0,"id":294,"image_id":38,"category_id":8},{"segmentation":[[67,472,231,472,231,531,67,531]],"area":9676,"bbox":[67,472,164,59],"iscrowd":0,"id":295,"image_id":38,"category_id":3},{"segmentation":[[47,53,332,53,332,103,47,103]],"area":14250,"bbox":[47,53,285,50],"iscrowd":0,"id":296,"image_id":39,"category_id":2},{"segmentation":[[488,50,666,50,666,99,488,99]],"area":8722,"bbox":[488,50,178,49],"iscrowd":0,"id":297,"image_id":39,"category_id":5},{"segmentation":[[47,107,325,107,325,179,47,179]],"area":20016,"bbox":[47,107,278,72],"iscrowd":0,"id":298,"image_id":39,"category_id":6},{"segmentation":[[51,184,217,184,217,240,51,240]],"area":9296,"bbox":[51,184,166,56],"iscrowd":0,"id":299,"image_id":39,"category_id":1},{"segmentation":[[51,253,249,253,249,303,51,303]],"area":9900,"bbox":[51,253,198,50],"iscrowd":0,"id":300,"image_id":39,"category_id":4},{"segmentation":[[495,110,794,110,794,175,495,175]],"area":19435,"bbox":[495,110,299,65],"iscrowd":0,"id":301,"image_id":39,"category_id":10},{"segmentation":[[495,185,1122,185,1122,249,495,249]],"area":40128,"bbox":[495,185,627,64],"iscrowd":0,"id":302,"image_id":39,"category_id":7},{"segmentation":[[494,267,1124,267,1124,330,494,330]],"area":39690,"bbox":[494,267,630,63],"iscrowd":0,"id":303,"image_id":39,"category_id":11},{"segmentation":[[495,339,1126,339,1126,591,495,591]],"area":159012,"bbox":[495,339,631,252],"iscrowd":0,"id":304,"image_id":39,"category_id":8},{"segmentation":[[492,604,658,604,658,664,492,664]],"area":9960,"bbox":[492,604,166,60],"iscrowd":0,"id":305,"image_id":39,"category_id":3},{"segmentation":[[22,112,282,112,282,184,22,184]],"area":18720,"bbox":[22,112,260,72],"iscrowd":0,"id":306,"image_id":40,"category_id":5},{"segmentation":[[35,194,610,194,610,285,35,285]],"area":52325,"bbox":[35,194,575,91],"iscrowd":0,"id":307,"image_id":40,"category_id":12},{"segmentation":[[37,355,236,355,236,382,37,382]],"area":5373,"bbox":[37,355,199,27],"iscrowd":0,"id":308,"image_id":40,"category_id":1},{"segmentation":[[37,402,204,402,204,437,37,437]],"area":5845,"bbox":[37,402,167,35],"iscrowd":0,"id":309,"image_id":40,"category_id":4},{"segmentation":[[693,131,1104,131,1104,187,693,187]],"area":23016,"bbox":[693,131,411,56],"iscrowd":0,"id":310,"image_id":40,"category_id":10},{"segmentation":[[1123,123,1534,123,1534,184,1123,184]],"area":25071,"bbox":[1123,123,411,61],"iscrowd":0,"id":311,"image_id":40,"category_id":7},{"segmentation":[[696,193,1534,193,1534,242,696,242]],"area":41062,"bbox":[696,193,838,49],"iscrowd":0,"id":312,"image_id":40,"category_id":11},{"segmentation":[[696,255,1534,255,1534,441,696,441]],"area":155868,"bbox":[696,255,838,186],"iscrowd":0,"id":313,"image_id":40,"category_id":8},{"segmentation":[[1359,448,1534,448,1534,504,1359,504]],"area":9800,"bbox":[1359,448,175,56],"iscrowd":0,"id":314,"image_id":40,"category_id":3},{"segmentation":[[492,4,679,4,679,53,492,53]],"area":9163,"bbox":[492,4,187,49],"iscrowd":0,"id":315,"image_id":41,"category_id":5},{"segmentation":[[175,76,993,76,993,157,175,157]],"area":66258,"bbox":[175,76,818,81],"iscrowd":0,"id":316,"image_id":41,"category_id":12},{"segmentation":[[40,244,574,244,574,310,40,310]],"area":35244,"bbox":[40,244,534,66],"iscrowd":0,"id":317,"image_id":41,"category_id":10},{"segmentation":[[42,327,570,327,570,393,42,393]],"area":34848,"bbox":[42,327,528,66],"iscrowd":0,"id":318,"image_id":41,"category_id":7},{"segmentation":[[42,498,1127,498,1127,669,42,669]],"area":185535,"bbox":[42,498,1085,171],"iscrowd":0,"id":319,"image_id":41,"category_id":8},{"segmentation":[[40,686,298,686,298,744,40,744]],"area":14964,"bbox":[40,686,258,58],"iscrowd":0,"id":320,"image_id":41,"category_id":3},{"segmentation":[[244,5,444,5,444,49,244,49]],"area":8800,"bbox":[244,5,200,44],"iscrowd":0,"id":321,"image_id":42,"category_id":5},{"segmentation":[[14,53,677,53,677,117,14,117]],"area":42432,"bbox":[14,53,663,64],"iscrowd":0,"id":322,"image_id":42,"category_id":12},{"segmentation":[[82,178,602,178,602,230,82,230]],"area":27040,"bbox":[82,178,520,52],"iscrowd":0,"id":323,"image_id":42,"category_id":10},{"segmentation":[[81,314,598,314,598,357,81,357]],"area":22231,"bbox":[81,314,517,43],"iscrowd":0,"id":324,"image_id":42,"category_id":7},{"segmentation":[[81,564,606,564,606,689,81,689]],"area":65625,"bbox":[81,564,525,125],"iscrowd":0,"id":325,"image_id":42,"category_id":8},{"segmentation":[[82,708,247,708,247,755,82,755]],"area":7755,"bbox":[82,708,165,47],"iscrowd":0,"id":326,"image_id":42,"category_id":3},{"segmentation":[[24,29,125,29,125,53,24,53]],"area":2424,"bbox":[24,29,101,24],"iscrowd":0,"id":327,"image_id":43,"category_id":5},{"segmentation":[[27,72,371,72,371,121,27,121]],"area":16856,"bbox":[27,72,344,49],"iscrowd":0,"id":328,"image_id":43,"category_id":10},{"segmentation":[[26,132,372,132,372,187,26,187]],"area":19030,"bbox":[26,132,346,55],"iscrowd":0,"id":329,"image_id":43,"category_id":7},{"segmentation":[[26,205,371,205,371,361,26,361]],"area":53820,"bbox":[26,205,345,156],"iscrowd":0,"id":330,"image_id":43,"category_id":8},{"segmentation":[[26,380,177,380,177,412,26,412]],"area":4832,"bbox":[26,380,151,32],"iscrowd":0,"id":331,"image_id":43,"category_id":3},{"segmentation":[[69,8,242,8,242,56,69,56]],"area":8304,"bbox":[69,8,173,48],"iscrowd":0,"id":332,"image_id":44,"category_id":5},{"segmentation":[[72,69,464,69,464,133,72,133]],"area":25088,"bbox":[72,69,392,64],"iscrowd":0,"id":333,"image_id":44,"category_id":10},{"segmentation":[[77,260,881,260,881,329,77,329]],"area":55476,"bbox":[77,260,804,69],"iscrowd":0,"id":334,"image_id":44,"category_id":7},{"segmentation":[[72,356,874,356,874,424,72,424]],"area":54536,"bbox":[72,356,802,68],"iscrowd":0,"id":335,"image_id":44,"category_id":11},{"segmentation":[[74,451,878,451,878,789,74,789]],"area":271752,"bbox":[74,451,804,338],"iscrowd":0,"id":336,"image_id":44,"category_id":8},{"segmentation":[[76,815,279,815,279,873,76,873]],"area":11774,"bbox":[76,815,203,58],"iscrowd":0,"id":337,"image_id":44,"category_id":3},{"segmentation":[[632,64,795,64,795,110,632,110]],"area":7498,"bbox":[632,64,163,46],"iscrowd":0,"id":338,"image_id":45,"category_id":5},{"segmentation":[[728,181,1050,181,1050,247,728,247]],"area":21252,"bbox":[728,181,322,66],"iscrowd":0,"id":339,"image_id":45,"category_id":10},{"segmentation":[[1080,178,1407,178,1407,247,1080,247]],"area":22563,"bbox":[1080,178,327,69],"iscrowd":0,"id":340,"image_id":45,"category_id":7},{"segmentation":[[730,275,1399,275,1399,480,730,480]],"area":137145,"bbox":[730,275,669,205],"iscrowd":0,"id":341,"image_id":45,"category_id":8},{"segmentation":[[727,500,895,500,895,562,727,562]],"area":10416,"bbox":[727,500,168,62],"iscrowd":0,"id":342,"image_id":45,"category_id":3},{"segmentation":[[1129,685,1405,685,1405,749,1129,749]],"area":17664,"bbox":[1129,685,276,64],"iscrowd":0,"id":343,"image_id":45,"category_id":9},{"segmentation":[[618,76,801,76,801,138,618,138]],"area":11346,"bbox":[618,76,183,62],"iscrowd":0,"id":344,"image_id":46,"category_id":5},{"segmentation":[[306,154,1120,154,1120,223,306,223]],"area":56166,"bbox":[306,154,814,69],"iscrowd":0,"id":345,"image_id":46,"category_id":12},{"segmentation":[[725,259,1393,259,1393,402,725,402]],"area":95524,"bbox":[725,259,668,143],"iscrowd":0,"id":346,"image_id":46,"category_id":8},{"segmentation":[[19,261,693,261,693,310,19,310]],"area":33026,"bbox":[19,261,674,49],"iscrowd":0,"id":347,"image_id":46,"category_id":10},{"segmentation":[[19,320,692,320,692,365,19,365]],"area":30285,"bbox":[19,320,673,45],"iscrowd":0,"id":348,"image_id":46,"category_id":7},{"segmentation":[[19,380,692,380,692,427,19,427]],"area":31631,"bbox":[19,380,673,47],"iscrowd":0,"id":349,"image_id":46,"category_id":11},{"segmentation":[[22,441,353,441,353,501,22,501]],"area":19860,"bbox":[22,441,331,60],"iscrowd":0,"id":350,"image_id":46,"category_id":3},{"segmentation":[[597,10,910,10,910,184,597,184]],"area":54462,"bbox":[597,10,313,174],"iscrowd":0,"id":351,"image_id":47,"category_id":1},{"segmentation":[[596,212,1031,212,1031,386,596,386]],"area":75690,"bbox":[596,212,435,174],"iscrowd":0,"id":352,"image_id":47,"category_id":6},{"segmentation":[[598,413,859,413,859,587,598,587]],"area":45414,"bbox":[598,413,261,174],"iscrowd":0,"id":353,"image_id":47,"category_id":4},{"segmentation":[[45,52,277,52,277,104,45,104]],"area":12064,"bbox":[45,52,232,52],"iscrowd":0,"id":354,"image_id":47,"category_id":10},{"segmentation":[[43,136,278,136,278,193,43,193]],"area":13395,"bbox":[43,136,235,57],"iscrowd":0,"id":355,"image_id":47,"category_id":7},{"segmentation":[[41,305,539,305,539,471,41,471]],"area":82668,"bbox":[41,305,498,166],"iscrowd":0,"id":356,"image_id":47,"category_id":8},{"segmentation":[[42,493,546,493,546,549,42,549]],"area":28224,"bbox":[42,493,504,56],"iscrowd":0,"id":357,"image_id":47,"category_id":3},{"segmentation":[[36,48,635,48,635,116,36,116]],"area":40732,"bbox":[36,48,599,68],"iscrowd":0,"id":358,"image_id":48,"category_id":10},{"segmentation":[[35,142,633,142,633,212,35,212]],"area":41860,"bbox":[35,142,598,70],"iscrowd":0,"id":359,"image_id":48,"category_id":7},{"segmentation":[[39,337,1257,337,1257,520,39,520]],"area":222894,"bbox":[39,337,1218,183],"iscrowd":0,"id":360,"image_id":48,"category_id":8},{"segmentation":[[41,549,1252,549,1252,613,41,613]],"area":77504,"bbox":[41,549,1211,64],"iscrowd":0,"id":361,"image_id":48,"category_id":3},{"segmentation":[[409,5,652,5,652,76,409,76]],"area":17253,"bbox":[409,5,243,71],"iscrowd":0,"id":362,"image_id":49,"category_id":5},{"segmentation":[[95,92,978,92,978,151,95,151]],"area":52097,"bbox":[95,92,883,59],"iscrowd":0,"id":363,"image_id":49,"category_id":12},{"segmentation":[[77,194,370,194,370,341,77,341]],"area":43071,"bbox":[77,194,293,147],"iscrowd":0,"id":364,"image_id":49,"category_id":6},{"segmentation":[[442,197,627,197,627,343,442,343]],"area":27010,"bbox":[442,197,185,146],"iscrowd":0,"id":365,"image_id":49,"category_id":1},{"segmentation":[[744,189,939,189,939,342,744,342]],"area":29835,"bbox":[744,189,195,153],"iscrowd":0,"id":366,"image_id":49,"category_id":4},{"segmentation":[[80,379,987,379,987,430,80,430]],"area":46257,"bbox":[80,379,907,51],"iscrowd":0,"id":367,"image_id":49,"category_id":10},{"segmentation":[[81,451,987,451,987,498,81,498]],"area":42582,"bbox":[81,451,906,47],"iscrowd":0,"id":368,"image_id":49,"category_id":7},{"segmentation":[[81,518,985,518,985,715,81,715]],"area":178088,"bbox":[81,518,904,197],"iscrowd":0,"id":369,"image_id":49,"category_id":8},{"segmentation":[[464,732,598,732,598,791,464,791]],"area":7906,"bbox":[464,732,134,59],"iscrowd":0,"id":370,"image_id":49,"category_id":3},{"segmentation":[[41,37,278,37,278,98,41,98]],"area":14457,"bbox":[41,37,237,61],"iscrowd":0,"id":371,"image_id":50,"category_id":10},{"segmentation":[[39,121,280,121,280,182,39,182]],"area":14701,"bbox":[39,121,241,61],"iscrowd":0,"id":372,"image_id":50,"category_id":7},{"segmentation":[[40,291,539,291,539,458,40,458]],"area":83333,"bbox":[40,291,499,167],"iscrowd":0,"id":373,"image_id":50,"category_id":8},{"segmentation":[[40,483,280,483,280,539,40,539]],"area":13440,"bbox":[40,483,240,56],"iscrowd":0,"id":374,"image_id":50,"category_id":3}],"licenses":[{"id":0,"name":"Unknown License","url":""}],"categories":[{"supercategory":"SegmentClass","id":1,"name":"contactsPhone"},{"supercategory":"SegmentClass","id":2,"name":"contactsSubtitle"},{"supercategory":"SegmentClass","id":3,"name":"contactsSendformButton"},{"supercategory":"SegmentClass","id":4,"name":"contactsEmail"},{"supercategory":"SegmentClass","id":5,"name":"contactsTitle"},{"supercategory":"SegmentClass","id":6,"name":"contactsAddress"},{"supercategory":"SegmentClass","id":7,"name":"contactsEmailFormInput"},{"supercategory":"SegmentClass","id":8,"name":"contactsMessageFormInput"},{"supercategory":"SegmentClass","id":9,"name":"contactsSocialButtons"},{"supercategory":"SegmentClass","id":10,"name":"contactsNameFormInput"},{"supercategory":"SegmentClass","id":11,"name":"contactsSubjectFormInput"},{"supercategory":"SegmentClass","id":12,"name":"contactsDescription"}]} --------------------------------------------------------------------------------