├── .gitignore ├── .ipynb_checkpoints ├── Analysis-checkpoint.ipynb └── DatasetExploration-checkpoint.ipynb ├── Analysis.ipynb ├── CFExp ├── SegmentationOutput.png └── log.csv ├── CrackForest ├── Images │ ├── 001.jpg │ ├── 002.jpg │ ├── 003.jpg │ ├── 004.jpg │ ├── 005.jpg │ ├── 006.jpg │ ├── 007.jpg │ ├── 008.jpg │ ├── 009.jpg │ ├── 010.jpg │ ├── 011.jpg │ ├── 012.jpg │ ├── 013.jpg │ ├── 014.jpg │ ├── 015.jpg │ ├── 016.jpg │ ├── 017.jpg │ ├── 018.jpg │ ├── 019.jpg │ ├── 020.jpg │ ├── 021.jpg │ ├── 022.jpg │ ├── 023.jpg │ ├── 024.jpg │ ├── 025.jpg │ ├── 026.jpg │ ├── 027.jpg │ ├── 028.jpg │ ├── 029.jpg │ ├── 030.jpg │ ├── 031.jpg │ ├── 032.jpg │ ├── 033.jpg │ ├── 034.jpg │ ├── 035.jpg │ ├── 036.jpg │ ├── 037.jpg │ ├── 038.jpg │ ├── 039.jpg │ ├── 040.jpg │ ├── 041.jpg │ ├── 042.jpg │ ├── 043.jpg │ ├── 044.jpg │ ├── 045.jpg │ ├── 046.jpg │ ├── 047.jpg │ ├── 048.jpg │ ├── 049.jpg │ ├── 050.jpg │ ├── 051.jpg │ ├── 052.jpg │ ├── 053.jpg │ ├── 054.jpg │ ├── 055.jpg │ ├── 056.jpg │ ├── 057.jpg │ ├── 058.jpg │ ├── 059.jpg │ ├── 060.jpg │ ├── 061.jpg │ ├── 062.jpg │ ├── 063.jpg │ ├── 064.jpg │ ├── 065.jpg │ ├── 066.jpg │ ├── 067.jpg │ ├── 068.jpg │ ├── 069.jpg │ ├── 070.jpg │ ├── 071.jpg │ ├── 072.jpg │ ├── 073.jpg │ ├── 074.jpg │ ├── 075.jpg │ ├── 076.jpg │ ├── 077.jpg │ ├── 078.jpg │ ├── 079.jpg │ ├── 080.jpg │ ├── 081.jpg │ ├── 082.jpg │ ├── 083.jpg │ ├── 084.jpg │ ├── 085.jpg │ ├── 086.jpg │ ├── 087.jpg │ ├── 088.jpg │ ├── 089.jpg │ ├── 090.jpg │ ├── 091.jpg │ ├── 092.jpg │ ├── 093.jpg │ ├── 094.jpg │ ├── 095.jpg │ ├── 096.jpg │ ├── 097.jpg │ ├── 098.jpg │ ├── 099.jpg │ ├── 100.jpg │ ├── 101.jpg │ ├── 102.jpg │ ├── 103.jpg │ ├── 104.jpg │ ├── 105.jpg │ ├── 106.jpg │ ├── 107.jpg │ ├── 108.jpg │ ├── 109.jpg │ ├── 110.jpg │ ├── 111.jpg │ ├── 112.jpg │ ├── 113.jpg │ ├── 114.jpg │ ├── 115.jpg │ ├── 116.jpg │ ├── 117.jpg │ └── 118.jpg └── Masks │ ├── 001_label.PNG │ ├── 002_label.PNG │ ├── 003_label.PNG │ ├── 004_label.PNG │ ├── 005_label.PNG │ ├── 006_label.PNG │ ├── 007_label.PNG │ ├── 008_label.PNG │ ├── 009_label.PNG │ ├── 010_label.PNG │ ├── 011_label.PNG │ ├── 012_label.PNG │ ├── 013_label.PNG │ ├── 014_label.PNG │ ├── 015_label.PNG │ ├── 016_label.PNG │ ├── 017_label.PNG │ ├── 018_label.PNG │ ├── 019_label.PNG │ ├── 020_label.PNG │ ├── 021_label.PNG │ ├── 022_label.PNG │ ├── 023_label.PNG │ ├── 024_label.PNG │ ├── 025_label.PNG │ ├── 026_label.PNG │ ├── 027_label.PNG │ ├── 028_label.PNG │ ├── 029_label.PNG │ ├── 030_label.PNG │ ├── 031_label.PNG │ ├── 032_label.PNG │ ├── 033_label.PNG │ ├── 034_label.PNG │ ├── 035_label.PNG │ ├── 036_label.PNG │ ├── 037_label.PNG │ ├── 038_label.PNG │ ├── 039_label.PNG │ ├── 040_label.PNG │ ├── 041_label.PNG │ ├── 042_label.PNG │ ├── 043_label.PNG │ ├── 044_label.PNG │ ├── 045_label.PNG │ ├── 046_label.PNG │ ├── 047_label.PNG │ ├── 048_label.PNG │ ├── 049_label.PNG │ ├── 050_label.PNG │ ├── 051_label.PNG │ ├── 052_label.PNG │ ├── 053_label.PNG │ ├── 054_label.PNG │ ├── 055_label.PNG │ ├── 056_label.PNG │ ├── 057_label.PNG │ ├── 058_label.PNG │ ├── 059_label.PNG │ ├── 060_label.PNG │ ├── 061_label.PNG │ ├── 062_label.PNG │ ├── 063_label.PNG │ ├── 064_label.PNG │ ├── 065_label.PNG │ ├── 066_label.PNG │ ├── 067_label.PNG │ ├── 068_label.PNG │ ├── 069_label.PNG │ ├── 070_label.PNG │ ├── 071_label.PNG │ ├── 072_label.PNG │ ├── 073_label.PNG │ ├── 074_label.PNG │ ├── 075_label.PNG │ ├── 076_label.PNG │ ├── 077_label.PNG │ ├── 078_label.PNG │ ├── 079_label.PNG │ ├── 080_label.PNG │ ├── 081_label.PNG │ ├── 082_label.PNG │ ├── 083_label.PNG │ ├── 084_label.PNG │ ├── 085_label.PNG │ ├── 086_label.PNG │ ├── 087_label.PNG │ ├── 088_label.PNG │ ├── 089_label.PNG │ ├── 090_label.PNG │ ├── 091_label.PNG │ ├── 092_label.PNG │ ├── 093_label.PNG │ ├── 094_label.PNG │ ├── 095_label.PNG │ ├── 096_label.PNG │ ├── 097_label.PNG │ ├── 098_label.PNG │ ├── 099_label.PNG │ ├── 100_label.PNG │ ├── 101_label.PNG │ ├── 102_label.PNG │ ├── 103_label.PNG │ ├── 104_label.PNG │ ├── 105_label.PNG │ ├── 106_label.PNG │ ├── 107_label.PNG │ ├── 108_label.PNG │ ├── 109_label.PNG │ ├── 110_label.PNG │ ├── 111_label.PNG │ ├── 112_label.PNG │ ├── 113_label.PNG │ ├── 114_label.PNG │ ├── 115_label.PNG │ ├── 116_label.PNG │ ├── 117_label.PNG │ └── 118_label.PNG ├── LICENSE.md ├── README.md ├── SegmentationDatasetDemo.ipynb ├── Tests └── test_segmentation_dataset.py ├── datahandler.py ├── environment.yml ├── main.py ├── model.py ├── requirements.txt ├── segdataset.py └── trainer.py /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | **/.ipynb_checkpoints 3 | **/weights.pt 4 | # Byte-compiled / optimized / DLL files 5 | __pycache__/ 6 | *.py[cod] 7 | *$py.class 8 | 9 | # C extensions 10 | *.so 11 | 12 | # Distribution / packaging 13 | .Python 14 | env/ 15 | build/ 16 | develop-eggs/ 17 | dist/ 18 | downloads/ 19 | eggs/ 20 | .eggs/ 21 | lib/ 22 | lib64/ 23 | parts/ 24 | sdist/ 25 | var/ 26 | *.egg-info/ 27 | .installed.cfg 28 | *.egg 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *,cover 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | 57 | # Sphinx documentation 58 | docs/_build/ 59 | 60 | # PyBuilder 61 | target/ 62 | -------------------------------------------------------------------------------- /CFExp/SegmentationOutput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CFExp/SegmentationOutput.png -------------------------------------------------------------------------------- /CFExp/log.csv: -------------------------------------------------------------------------------- 1 | epoch,Train_loss,Test_loss,Train_f1_score,Train_auroc,Test_f1_score,Test_auroc 2 | 1,0.04733385145664215,0.023891614750027657,0.060321457767658106,0.5932750475268616,0.015107885393539697,0.42491313771961164 3 | 2,0.024277064949274063,0.021721769124269485,0.09100953972272122,0.7050290873931212,0.10979400815948483,0.67893032414658 4 | 3,0.02637898363173008,0.023896800354123116,0.12132812119067485,0.7787667925819243,0.21987481089159952,0.7733283993097732 5 | 4,0.01735745556652546,0.012372714467346668,0.17002052814935031,0.8357145357099536,0.23935492950847892,0.7892020822609445 6 | 5,0.015920866280794144,0.013301403261721134,0.20275139673935333,0.8622163299756128,0.21851649432890158,0.8001680976787019 7 | 6,0.012377690523862839,0.017558719962835312,0.23376019966428302,0.8836425111842137,0.3191395243334835,0.811899503629675 8 | 7,0.01621791161596775,0.015073928982019424,0.2740952485579785,0.8996667025856673,0.28663690339280723,0.8240699486538315 9 | 8,0.027970878407359123,0.014919061213731766,0.2913828433872237,0.9064285866864603,0.28354305153743375,0.8042397740353204 10 | 9,0.02385706640779972,0.007577139884233475,0.3021100366303546,0.9149975626186196,0.3349902392768324,0.7971235184446304 11 | 10,0.01344537828117609,0.010484457947313786,0.32119352970473314,0.920334567046002,0.3463569000282725,0.8270784706066905 12 | 11,0.010599343106150627,0.017338452860713005,0.3286319374136653,0.9222050471936397,0.3551113973359187,0.8296708645834497 13 | 12,0.011895760893821716,0.016737710684537888,0.34610850786254815,0.9249985637999382,0.35864648327382714,0.8190633198595256 14 | 13,0.008897056803107262,0.010875921696424484,0.35487673080187965,0.9267655822894062,0.35554170802688195,0.8257956550775994 15 | 14,0.010082749649882317,0.006664691027253866,0.35858647888577816,0.9279786810053413,0.34897775803162395,0.8346106252839334 16 | 15,0.010208342224359512,0.0175984725356102,0.36326375907986447,0.9285448129899037,0.36886627754127105,0.8387883942170759 17 | 16,0.011952790431678295,0.008158243261277676,0.3694404997751976,0.9322201346189165,0.3683081584533633,0.8419366543683228 18 | 17,0.011866058222949505,0.0074044642969965935,0.37566349338383725,0.9320477110414117,0.3547353284113109,0.8351227907783415 19 | 18,0.008787443861365318,0.007875165902078152,0.3813323534162771,0.9351989220778392,0.3666449250568489,0.8360213956041672 20 | 19,0.00912210252135992,1.9833635091781616,0.3833455333501632,0.9337030857646396,0.16227355502822854,0.7660272142472727 21 | 20,0.012742535211145878,0.007571298163384199,0.37768486315077476,0.9296383236487473,0.27459081809463776,0.7944952903293834 22 | 21,0.009195785969495773,0.01091131754219532,0.3873621284589555,0.9253843878206789,0.28122481093516544,0.8297156052256197 23 | 22,0.010328620672225952,0.010142319835722446,0.3800874565025007,0.9287643101564543,0.35466105819942445,0.8337348890086924 24 | 23,0.02006760612130165,0.005238217301666737,0.3839890597332889,0.9309124493558266,0.34625501996461155,0.8325690771526667 25 | 24,0.007007610518485308,0.005663554649800062,0.3948862120187941,0.9356293196512125,0.3715370655007174,0.8291755132497372 26 | 25,0.009782156907022,0.007706298027187586,0.3927174008274378,0.93616902587125,0.36694262428227026,0.8265734552984332 27 | -------------------------------------------------------------------------------- /CrackForest/Images/001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/001.jpg -------------------------------------------------------------------------------- /CrackForest/Images/002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/002.jpg -------------------------------------------------------------------------------- /CrackForest/Images/003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/003.jpg -------------------------------------------------------------------------------- /CrackForest/Images/004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/004.jpg -------------------------------------------------------------------------------- /CrackForest/Images/005.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/005.jpg -------------------------------------------------------------------------------- /CrackForest/Images/006.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/006.jpg -------------------------------------------------------------------------------- /CrackForest/Images/007.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/007.jpg -------------------------------------------------------------------------------- /CrackForest/Images/008.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/008.jpg -------------------------------------------------------------------------------- /CrackForest/Images/009.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/009.jpg -------------------------------------------------------------------------------- /CrackForest/Images/010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/010.jpg -------------------------------------------------------------------------------- /CrackForest/Images/011.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/011.jpg -------------------------------------------------------------------------------- /CrackForest/Images/012.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/012.jpg -------------------------------------------------------------------------------- /CrackForest/Images/013.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/013.jpg -------------------------------------------------------------------------------- /CrackForest/Images/014.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/014.jpg -------------------------------------------------------------------------------- /CrackForest/Images/015.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/015.jpg -------------------------------------------------------------------------------- /CrackForest/Images/016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/016.jpg -------------------------------------------------------------------------------- /CrackForest/Images/017.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/017.jpg -------------------------------------------------------------------------------- /CrackForest/Images/018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/018.jpg -------------------------------------------------------------------------------- /CrackForest/Images/019.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/019.jpg -------------------------------------------------------------------------------- /CrackForest/Images/020.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/020.jpg -------------------------------------------------------------------------------- /CrackForest/Images/021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/021.jpg -------------------------------------------------------------------------------- /CrackForest/Images/022.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/022.jpg -------------------------------------------------------------------------------- /CrackForest/Images/023.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/023.jpg -------------------------------------------------------------------------------- /CrackForest/Images/024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/024.jpg -------------------------------------------------------------------------------- /CrackForest/Images/025.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/025.jpg -------------------------------------------------------------------------------- /CrackForest/Images/026.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/026.jpg -------------------------------------------------------------------------------- /CrackForest/Images/027.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/027.jpg -------------------------------------------------------------------------------- /CrackForest/Images/028.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/028.jpg -------------------------------------------------------------------------------- /CrackForest/Images/029.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/029.jpg -------------------------------------------------------------------------------- /CrackForest/Images/030.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/030.jpg -------------------------------------------------------------------------------- /CrackForest/Images/031.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/031.jpg -------------------------------------------------------------------------------- /CrackForest/Images/032.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/032.jpg -------------------------------------------------------------------------------- /CrackForest/Images/033.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/033.jpg -------------------------------------------------------------------------------- /CrackForest/Images/034.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/034.jpg -------------------------------------------------------------------------------- /CrackForest/Images/035.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/035.jpg -------------------------------------------------------------------------------- /CrackForest/Images/036.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/036.jpg -------------------------------------------------------------------------------- /CrackForest/Images/037.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/037.jpg -------------------------------------------------------------------------------- /CrackForest/Images/038.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/038.jpg -------------------------------------------------------------------------------- /CrackForest/Images/039.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/039.jpg -------------------------------------------------------------------------------- /CrackForest/Images/040.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/040.jpg -------------------------------------------------------------------------------- /CrackForest/Images/041.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/041.jpg -------------------------------------------------------------------------------- /CrackForest/Images/042.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/042.jpg -------------------------------------------------------------------------------- /CrackForest/Images/043.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/043.jpg -------------------------------------------------------------------------------- /CrackForest/Images/044.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/044.jpg -------------------------------------------------------------------------------- /CrackForest/Images/045.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/045.jpg -------------------------------------------------------------------------------- /CrackForest/Images/046.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/046.jpg -------------------------------------------------------------------------------- /CrackForest/Images/047.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/047.jpg -------------------------------------------------------------------------------- /CrackForest/Images/048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/048.jpg -------------------------------------------------------------------------------- /CrackForest/Images/049.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/049.jpg -------------------------------------------------------------------------------- /CrackForest/Images/050.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/050.jpg -------------------------------------------------------------------------------- /CrackForest/Images/051.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/051.jpg -------------------------------------------------------------------------------- /CrackForest/Images/052.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/052.jpg -------------------------------------------------------------------------------- /CrackForest/Images/053.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/053.jpg -------------------------------------------------------------------------------- /CrackForest/Images/054.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/054.jpg -------------------------------------------------------------------------------- /CrackForest/Images/055.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/055.jpg -------------------------------------------------------------------------------- /CrackForest/Images/056.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/056.jpg -------------------------------------------------------------------------------- /CrackForest/Images/057.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/057.jpg -------------------------------------------------------------------------------- /CrackForest/Images/058.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/058.jpg -------------------------------------------------------------------------------- /CrackForest/Images/059.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/059.jpg -------------------------------------------------------------------------------- /CrackForest/Images/060.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/060.jpg -------------------------------------------------------------------------------- /CrackForest/Images/061.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/061.jpg -------------------------------------------------------------------------------- /CrackForest/Images/062.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/062.jpg -------------------------------------------------------------------------------- /CrackForest/Images/063.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/063.jpg -------------------------------------------------------------------------------- /CrackForest/Images/064.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/064.jpg -------------------------------------------------------------------------------- /CrackForest/Images/065.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/065.jpg -------------------------------------------------------------------------------- /CrackForest/Images/066.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/066.jpg -------------------------------------------------------------------------------- /CrackForest/Images/067.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/067.jpg -------------------------------------------------------------------------------- /CrackForest/Images/068.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/068.jpg -------------------------------------------------------------------------------- /CrackForest/Images/069.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/069.jpg -------------------------------------------------------------------------------- /CrackForest/Images/070.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/070.jpg -------------------------------------------------------------------------------- /CrackForest/Images/071.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/071.jpg -------------------------------------------------------------------------------- /CrackForest/Images/072.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/072.jpg -------------------------------------------------------------------------------- /CrackForest/Images/073.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/073.jpg -------------------------------------------------------------------------------- /CrackForest/Images/074.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/074.jpg -------------------------------------------------------------------------------- /CrackForest/Images/075.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/075.jpg -------------------------------------------------------------------------------- /CrackForest/Images/076.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/076.jpg -------------------------------------------------------------------------------- /CrackForest/Images/077.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/077.jpg -------------------------------------------------------------------------------- /CrackForest/Images/078.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/078.jpg -------------------------------------------------------------------------------- /CrackForest/Images/079.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/079.jpg -------------------------------------------------------------------------------- /CrackForest/Images/080.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/080.jpg -------------------------------------------------------------------------------- /CrackForest/Images/081.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/081.jpg -------------------------------------------------------------------------------- /CrackForest/Images/082.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/082.jpg -------------------------------------------------------------------------------- /CrackForest/Images/083.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/083.jpg -------------------------------------------------------------------------------- /CrackForest/Images/084.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/084.jpg -------------------------------------------------------------------------------- /CrackForest/Images/085.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/085.jpg -------------------------------------------------------------------------------- /CrackForest/Images/086.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/086.jpg -------------------------------------------------------------------------------- /CrackForest/Images/087.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/087.jpg -------------------------------------------------------------------------------- /CrackForest/Images/088.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/088.jpg -------------------------------------------------------------------------------- /CrackForest/Images/089.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/089.jpg -------------------------------------------------------------------------------- /CrackForest/Images/090.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/090.jpg -------------------------------------------------------------------------------- /CrackForest/Images/091.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/091.jpg -------------------------------------------------------------------------------- /CrackForest/Images/092.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/092.jpg -------------------------------------------------------------------------------- /CrackForest/Images/093.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/093.jpg -------------------------------------------------------------------------------- /CrackForest/Images/094.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/094.jpg -------------------------------------------------------------------------------- /CrackForest/Images/095.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/095.jpg -------------------------------------------------------------------------------- /CrackForest/Images/096.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/096.jpg -------------------------------------------------------------------------------- /CrackForest/Images/097.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/097.jpg -------------------------------------------------------------------------------- /CrackForest/Images/098.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/098.jpg -------------------------------------------------------------------------------- /CrackForest/Images/099.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/099.jpg -------------------------------------------------------------------------------- /CrackForest/Images/100.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/100.jpg -------------------------------------------------------------------------------- /CrackForest/Images/101.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/101.jpg -------------------------------------------------------------------------------- /CrackForest/Images/102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/102.jpg -------------------------------------------------------------------------------- /CrackForest/Images/103.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/103.jpg -------------------------------------------------------------------------------- /CrackForest/Images/104.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/104.jpg -------------------------------------------------------------------------------- /CrackForest/Images/105.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/105.jpg -------------------------------------------------------------------------------- /CrackForest/Images/106.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/106.jpg -------------------------------------------------------------------------------- /CrackForest/Images/107.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/107.jpg -------------------------------------------------------------------------------- /CrackForest/Images/108.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/108.jpg -------------------------------------------------------------------------------- /CrackForest/Images/109.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/109.jpg -------------------------------------------------------------------------------- /CrackForest/Images/110.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/110.jpg -------------------------------------------------------------------------------- /CrackForest/Images/111.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/111.jpg -------------------------------------------------------------------------------- /CrackForest/Images/112.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/112.jpg -------------------------------------------------------------------------------- /CrackForest/Images/113.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/113.jpg -------------------------------------------------------------------------------- /CrackForest/Images/114.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/114.jpg -------------------------------------------------------------------------------- /CrackForest/Images/115.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/115.jpg -------------------------------------------------------------------------------- /CrackForest/Images/116.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/116.jpg -------------------------------------------------------------------------------- /CrackForest/Images/117.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/117.jpg -------------------------------------------------------------------------------- /CrackForest/Images/118.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Images/118.jpg -------------------------------------------------------------------------------- /CrackForest/Masks/001_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/001_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/002_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/002_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/003_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/003_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/004_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/004_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/005_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/005_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/006_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/006_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/007_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/007_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/008_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/008_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/009_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/009_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/010_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/010_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/011_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/011_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/012_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/012_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/013_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/013_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/014_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/014_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/015_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/015_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/016_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/016_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/017_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/017_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/018_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/018_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/019_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/019_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/020_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/020_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/021_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/021_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/022_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/022_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/023_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/023_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/024_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/024_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/025_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/025_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/026_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/026_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/027_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/027_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/028_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/028_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/029_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/029_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/030_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/030_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/031_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/031_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/032_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/032_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/033_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/033_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/034_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/034_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/035_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/035_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/036_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/036_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/037_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/037_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/038_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/038_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/039_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/039_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/040_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/040_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/041_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/041_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/042_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/042_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/043_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/043_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/044_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/044_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/045_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/045_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/046_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/046_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/047_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/047_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/048_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/048_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/049_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/049_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/050_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/050_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/051_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/051_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/052_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/052_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/053_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/053_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/054_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/054_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/055_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/055_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/056_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/056_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/057_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/057_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/058_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/058_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/059_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/059_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/060_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/060_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/061_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/061_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/062_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/062_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/063_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/063_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/064_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/064_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/065_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/065_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/066_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/066_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/067_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/067_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/068_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/068_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/069_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/069_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/070_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/070_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/071_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/071_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/072_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/072_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/073_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/073_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/074_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/074_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/075_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/075_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/076_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/076_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/077_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/077_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/078_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/078_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/079_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/079_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/080_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/080_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/081_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/081_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/082_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/082_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/083_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/083_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/084_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/084_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/085_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/085_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/086_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/086_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/087_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/087_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/088_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/088_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/089_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/089_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/090_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/090_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/091_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/091_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/092_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/092_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/093_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/093_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/094_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/094_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/095_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/095_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/096_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/096_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/097_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/097_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/098_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/098_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/099_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/099_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/100_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/100_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/101_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/101_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/102_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/102_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/103_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/103_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/104_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/104_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/105_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/105_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/106_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/106_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/107_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/107_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/108_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/108_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/109_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/109_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/110_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/110_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/111_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/111_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/112_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/112_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/113_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/113_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/114_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/114_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/115_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/115_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/116_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/116_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/117_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/117_label.PNG -------------------------------------------------------------------------------- /CrackForest/Masks/118_label.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msminhas93/DeepLabv3FineTuning/bcdc3dfc79a5b75bc30c52b32315661c0a4da17e/CrackForest/Masks/118_label.PNG -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2019 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Transfer Learning for Semantic Segmentation using PyTorch DeepLab v3 2 | 3 | This repository contains code for Fine Tuning [DeepLabV3 ResNet101](https://arxiv.org/abs/1706.05587) in PyTorch. The model is from the [torchvision module](https://pytorch.org/docs/stable/torchvision/models.html#semantic-segmentation). The tutorial can be found here: [https://towardsdatascience.com/transfer-learning-for-segmentation-using-deeplabv3-in-pytorch-f770863d6a42?sk=b403331a7b30c02bff165a93823a5524](https://towardsdatascience.com/transfer-learning-for-segmentation-using-deeplabv3-in-pytorch-f770863d6a42?sk=b403331a7b30c02bff165a93823a5524) 4 | 5 | I've fine tuned the model for the [CrackForest](https://github.com/cuilimeng/CrackForest-dataset) data-set. 6 | 7 | The model was fine tuned for 25 epochs and achieves an testing AUROC value of 0.842. 8 | 9 | The segmentation output of the model on a sample image are shown below. 10 | 11 | ![Sample segmentation output](./CFExp/SegmentationOutput.png) 12 | 13 | ### Installing dependencies 14 | 15 | #### Using pip 16 | 17 | ``` 18 | pip install -r requirements.txt 19 | ``` 20 | 21 | #### Using conda 22 | ``` 23 | conda env create -f environment.yml 24 | ``` 25 | 26 | ### Usage of the module 27 | 28 | ``` 29 | Usage: main.py [OPTIONS] 30 | 31 | Options: 32 | --data-directory TEXT Specify the data directory. [required] 33 | --exp_directory TEXT Specify the experiment directory. [required] 34 | --epochs INTEGER Specify the number of epochs you want to run the 35 | experiment for. Default is 25. 36 | 37 | --batch-size INTEGER Specify the batch size for the dataloader. Default is 4. 38 | --help Show this message and exit. 39 | ``` 40 | 41 | To run the code with the CrackForest dataset and store the results in folder called CFExp use the following command. 42 | 43 | ``` 44 | python main.py --data-directory CrackForest --exp_directory CFExp 45 | ``` 46 | 47 | The datahandler module has two functions for creating datasets fron single and different folders. 48 | 49 | 1. ``` 50 | def get_dataloader_sep_folder(data_dir: str, 51 | image_folder: str = 'Image', 52 | mask_folder: str = 'Mask', 53 | batch_size: int = 4) 54 | ``` 55 | Create Train and Test dataloaders from two separate Train and Test folders. The directory structure should be as follows. 56 | ``` 57 | data_dir 58 | --Train 59 | ------Image 60 | ---------Image1 61 | ---------ImageN 62 | ------Mask 63 | ---------Mask1 64 | ---------MaskN 65 | --Test 66 | ------Image 67 | ---------Image1 68 | ---------ImageM 69 | ------Mask 70 | ---------Mask1 71 | ---------MaskM 72 | ``` 73 | 74 | 2. ``` 75 | def get_dataloader_single_folder(data_dir: str, 76 | image_folder: str = 'Images', 77 | mask_folder: str = 'Masks', 78 | fraction: float = 0.2, 79 | batch_size: int = 4) 80 | ``` 81 | 82 | Create from a single folder. The structure should be as follows. 83 | ``` 84 | --data_dir 85 | ------Image 86 | ---------Image1 87 | ---------ImageN 88 | ------Mask 89 | ---------Mask1 90 | ---------MaskN 91 | ``` 92 | 93 | The repository also contains a JupyterLab file with the loss and metric plots as well as the sample prediction code. 94 | 95 | ## Citation 96 | 97 | If you found this repository to be useful and use it in your work, please consider citing it: 98 | 99 | Bibtex Entry: 100 | 101 | @misc{minhas_2019, title={Transfer Learning for Semantic Segmentation using PyTorch DeepLab v3}, url={https://github.com/msminhas93/DeepLabv3FineTuning}, journal={GitHub.com/msminhas93}, author={Minhas, Manpreet Singh}, year={2019}, month={Sep}} 102 | 103 | IEEE Format Citation: 104 | 105 | M. S. Minhas, “Transfer Learning for Semantic Segmentation using PyTorch DeepLab v3,” GitHub.com/msminhas93, 12-Sep-2019. [Online]. Available: https://github.com/msminhas93/DeepLabv3FineTuning. 106 | -------------------------------------------------------------------------------- /Tests/test_segmentation_dataset.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | from pathlib import Path 3 | 4 | import torch 5 | from PIL import Image 6 | from segdataset import SegmentationDataset 7 | from torch.utils.data import DataLoader 8 | from torchvision import transforms 9 | 10 | 11 | class Test_TestSegmentationDataset(unittest.TestCase): 12 | @classmethod 13 | def setUpClass(cls) -> None: 14 | seg_dataset = SegmentationDataset("CrackForest", 15 | "Images", 16 | "Masks", 17 | transforms=transforms.Compose( 18 | [transforms.ToTensor()])) 19 | seg_dataloader = DataLoader(seg_dataset, 20 | batch_size=4, 21 | shuffle=False, 22 | num_workers=8) 23 | cls.samples = next(iter(seg_dataloader)) 24 | 25 | def test_image_tensor_dimensions(self): 26 | image_tensor_shape = Test_TestSegmentationDataset.samples[ 27 | 'image'].shape 28 | self.assertEqual(image_tensor_shape[0], 4) 29 | self.assertEqual(image_tensor_shape[1], 3) 30 | self.assertEqual(image_tensor_shape[2], 320) 31 | self.assertEqual(image_tensor_shape[3], 480) 32 | 33 | def test_mask_tensor_dimensions(self): 34 | mask_tensor_shape = Test_TestSegmentationDataset.samples['mask'].shape 35 | self.assertEqual(mask_tensor_shape[0], 4) 36 | self.assertEqual(mask_tensor_shape[1], 1) 37 | self.assertEqual(mask_tensor_shape[2], 320) 38 | self.assertEqual(mask_tensor_shape[3], 480) 39 | 40 | def test_mask_img_pair(self): 41 | ref_image_tensor = transforms.ToTensor()(Image.open( 42 | Path("CrackForest/Images/001.jpg"))) 43 | ref_mask_tensor = transforms.ToTensor()(Image.open( 44 | Path("CrackForest/Masks/001_label.PNG"))) 45 | datagen_image_tensor = Test_TestSegmentationDataset.samples['image'][0] 46 | datagen_mask_tensor = Test_TestSegmentationDataset.samples['mask'][0] 47 | self.assertTrue(torch.equal(ref_image_tensor, datagen_image_tensor)) 48 | self.assertTrue(torch.equal(ref_mask_tensor, datagen_mask_tensor)) 49 | -------------------------------------------------------------------------------- /datahandler.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | from torch.utils.data import DataLoader 4 | from torchvision import transforms 5 | 6 | from segdataset import SegmentationDataset 7 | 8 | 9 | def get_dataloader_sep_folder(data_dir: str, 10 | image_folder: str = 'Image', 11 | mask_folder: str = 'Mask', 12 | batch_size: int = 4): 13 | """ Create Train and Test dataloaders from two 14 | separate Train and Test folders. 15 | The directory structure should be as follows. 16 | data_dir 17 | --Train 18 | ------Image 19 | ---------Image1 20 | ---------ImageN 21 | ------Mask 22 | ---------Mask1 23 | ---------MaskN 24 | --Test 25 | ------Image 26 | ---------Image1 27 | ---------ImageM 28 | ------Mask 29 | ---------Mask1 30 | ---------MaskM 31 | 32 | Args: 33 | data_dir (str): The data directory or root. 34 | image_folder (str, optional): Image folder name. Defaults to 'Image'. 35 | mask_folder (str, optional): Mask folder name. Defaults to 'Mask'. 36 | batch_size (int, optional): Batch size of the dataloader. Defaults to 4. 37 | 38 | Returns: 39 | dataloaders: Returns dataloaders dictionary containing the 40 | Train and Test dataloaders. 41 | """ 42 | data_transforms = transforms.Compose([transforms.ToTensor()]) 43 | 44 | image_datasets = { 45 | x: SegmentationDataset(root=Path(data_dir) / x, 46 | transforms=data_transforms, 47 | image_folder=image_folder, 48 | mask_folder=mask_folder) 49 | for x in ['Train', 'Test'] 50 | } 51 | dataloaders = { 52 | x: DataLoader(image_datasets[x], 53 | batch_size=batch_size, 54 | shuffle=True, 55 | num_workers=8) 56 | for x in ['Train', 'Test'] 57 | } 58 | return dataloaders 59 | 60 | 61 | def get_dataloader_single_folder(data_dir: str, 62 | image_folder: str = 'Images', 63 | mask_folder: str = 'Masks', 64 | fraction: float = 0.2, 65 | batch_size: int = 4): 66 | """Create train and test dataloader from a single directory containing 67 | the image and mask folders. 68 | 69 | Args: 70 | data_dir (str): Data directory path or root 71 | image_folder (str, optional): Image folder name. Defaults to 'Images'. 72 | mask_folder (str, optional): Mask folder name. Defaults to 'Masks'. 73 | fraction (float, optional): Fraction of Test set. Defaults to 0.2. 74 | batch_size (int, optional): Dataloader batch size. Defaults to 4. 75 | 76 | Returns: 77 | dataloaders: Returns dataloaders dictionary containing the 78 | Train and Test dataloaders. 79 | """ 80 | data_transforms = transforms.Compose([transforms.ToTensor()]) 81 | 82 | image_datasets = { 83 | x: SegmentationDataset(data_dir, 84 | image_folder=image_folder, 85 | mask_folder=mask_folder, 86 | seed=100, 87 | fraction=fraction, 88 | subset=x, 89 | transforms=data_transforms) 90 | for x in ['Train', 'Test'] 91 | } 92 | dataloaders = { 93 | x: DataLoader(image_datasets[x], 94 | batch_size=batch_size, 95 | shuffle=True, 96 | num_workers=8) 97 | for x in ['Train', 'Test'] 98 | } 99 | return dataloaders 100 | -------------------------------------------------------------------------------- /environment.yml: -------------------------------------------------------------------------------- 1 | name: deeplabfinetuning 2 | dependencies: 3 | - numpy 4 | - scikit-learn 5 | - scipy 6 | - pytorch::pytorch 7 | - pytorch::torchvision 8 | - tqdm 9 | - click -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | import click 4 | import torch 5 | from sklearn.metrics import f1_score, roc_auc_score 6 | from torch.utils import data 7 | 8 | import datahandler 9 | from model import createDeepLabv3 10 | from trainer import train_model 11 | 12 | 13 | @click.command() 14 | @click.option("--data-directory", 15 | required=True, 16 | help="Specify the data directory.") 17 | @click.option("--exp_directory", 18 | required=True, 19 | help="Specify the experiment directory.") 20 | @click.option( 21 | "--epochs", 22 | default=25, 23 | type=int, 24 | help="Specify the number of epochs you want to run the experiment for.") 25 | @click.option("--batch-size", 26 | default=4, 27 | type=int, 28 | help="Specify the batch size for the dataloader.") 29 | def main(data_directory, exp_directory, epochs, batch_size): 30 | # Create the deeplabv3 resnet101 model which is pretrained on a subset 31 | # of COCO train2017, on the 20 categories that are present in the Pascal VOC dataset. 32 | model = createDeepLabv3() 33 | model.train() 34 | data_directory = Path(data_directory) 35 | # Create the experiment directory if not present 36 | exp_directory = Path(exp_directory) 37 | if not exp_directory.exists(): 38 | exp_directory.mkdir() 39 | 40 | # Specify the loss function 41 | criterion = torch.nn.MSELoss(reduction='mean') 42 | # Specify the optimizer with a lower learning rate 43 | optimizer = torch.optim.Adam(model.parameters(), lr=1e-4) 44 | 45 | # Specify the evaluation metrics 46 | metrics = {'f1_score': f1_score, 'auroc': roc_auc_score} 47 | 48 | # Create the dataloader 49 | dataloaders = datahandler.get_dataloader_single_folder( 50 | data_directory, batch_size=batch_size) 51 | _ = train_model(model, 52 | criterion, 53 | dataloaders, 54 | optimizer, 55 | bpath=exp_directory, 56 | metrics=metrics, 57 | num_epochs=epochs) 58 | 59 | # Save the trained model 60 | torch.save(model, exp_directory / 'weights.pt') 61 | 62 | 63 | if __name__ == "__main__": 64 | main() 65 | -------------------------------------------------------------------------------- /model.py: -------------------------------------------------------------------------------- 1 | """ DeepLabv3 Model download and change the head for your prediction""" 2 | from torchvision.models.segmentation.deeplabv3 import DeepLabHead 3 | from torchvision import models 4 | 5 | 6 | def createDeepLabv3(outputchannels=1): 7 | """DeepLabv3 class with custom head 8 | 9 | Args: 10 | outputchannels (int, optional): The number of output channels 11 | in your dataset masks. Defaults to 1. 12 | 13 | Returns: 14 | model: Returns the DeepLabv3 model with the ResNet101 backbone. 15 | """ 16 | model = models.segmentation.deeplabv3_resnet101(pretrained=True, 17 | progress=True) 18 | model.classifier = DeepLabHead(2048, outputchannels) 19 | # Set the model in training mode 20 | model.train() 21 | return model 22 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.19 2 | scikit-learn==0.23 3 | scipy==1.5 4 | torch==1.6 5 | torchvision==0.7 6 | tqdm==4.50 7 | click -------------------------------------------------------------------------------- /segdataset.py: -------------------------------------------------------------------------------- 1 | """ 2 | Author: Manpreet Singh Minhas 3 | Contact: msminhas at uwaterloo ca 4 | """ 5 | from pathlib import Path 6 | from typing import Any, Callable, Optional 7 | 8 | import numpy as np 9 | from PIL import Image 10 | from torchvision.datasets.vision import VisionDataset 11 | 12 | 13 | class SegmentationDataset(VisionDataset): 14 | """A PyTorch dataset for image segmentation task. 15 | The dataset is compatible with torchvision transforms. 16 | The transforms passed would be applied to both the Images and Masks. 17 | """ 18 | def __init__(self, 19 | root: str, 20 | image_folder: str, 21 | mask_folder: str, 22 | transforms: Optional[Callable] = None, 23 | seed: int = None, 24 | fraction: float = None, 25 | subset: str = None, 26 | image_color_mode: str = "rgb", 27 | mask_color_mode: str = "grayscale") -> None: 28 | """ 29 | Args: 30 | root (str): Root directory path. 31 | image_folder (str): Name of the folder that contains the images in the root directory. 32 | mask_folder (str): Name of the folder that contains the masks in the root directory. 33 | transforms (Optional[Callable], optional): A function/transform that takes in 34 | a sample and returns a transformed version. 35 | E.g, ``transforms.ToTensor`` for images. Defaults to None. 36 | seed (int, optional): Specify a seed for the train and test split for reproducible results. Defaults to None. 37 | fraction (float, optional): A float value from 0 to 1 which specifies the validation split fraction. Defaults to None. 38 | subset (str, optional): 'Train' or 'Test' to select the appropriate set. Defaults to None. 39 | image_color_mode (str, optional): 'rgb' or 'grayscale'. Defaults to 'rgb'. 40 | mask_color_mode (str, optional): 'rgb' or 'grayscale'. Defaults to 'grayscale'. 41 | 42 | Raises: 43 | OSError: If image folder doesn't exist in root. 44 | OSError: If mask folder doesn't exist in root. 45 | ValueError: If subset is not either 'Train' or 'Test' 46 | ValueError: If image_color_mode and mask_color_mode are either 'rgb' or 'grayscale' 47 | """ 48 | super().__init__(root, transforms) 49 | image_folder_path = Path(self.root) / image_folder 50 | mask_folder_path = Path(self.root) / mask_folder 51 | if not image_folder_path.exists(): 52 | raise OSError(f"{image_folder_path} does not exist.") 53 | if not mask_folder_path.exists(): 54 | raise OSError(f"{mask_folder_path} does not exist.") 55 | 56 | if image_color_mode not in ["rgb", "grayscale"]: 57 | raise ValueError( 58 | f"{image_color_mode} is an invalid choice. Please enter from rgb grayscale." 59 | ) 60 | if mask_color_mode not in ["rgb", "grayscale"]: 61 | raise ValueError( 62 | f"{mask_color_mode} is an invalid choice. Please enter from rgb grayscale." 63 | ) 64 | 65 | self.image_color_mode = image_color_mode 66 | self.mask_color_mode = mask_color_mode 67 | 68 | if not fraction: 69 | self.image_names = sorted(image_folder_path.glob("*")) 70 | self.mask_names = sorted(mask_folder_path.glob("*")) 71 | else: 72 | if subset not in ["Train", "Test"]: 73 | raise (ValueError( 74 | f"{subset} is not a valid input. Acceptable values are Train and Test." 75 | )) 76 | self.fraction = fraction 77 | self.image_list = np.array(sorted(image_folder_path.glob("*"))) 78 | self.mask_list = np.array(sorted(mask_folder_path.glob("*"))) 79 | if seed: 80 | np.random.seed(seed) 81 | indices = np.arange(len(self.image_list)) 82 | np.random.shuffle(indices) 83 | self.image_list = self.image_list[indices] 84 | self.mask_list = self.mask_list[indices] 85 | if subset == "Train": 86 | self.image_names = self.image_list[:int( 87 | np.ceil(len(self.image_list) * (1 - self.fraction)))] 88 | self.mask_names = self.mask_list[:int( 89 | np.ceil(len(self.mask_list) * (1 - self.fraction)))] 90 | else: 91 | self.image_names = self.image_list[ 92 | int(np.ceil(len(self.image_list) * (1 - self.fraction))):] 93 | self.mask_names = self.mask_list[ 94 | int(np.ceil(len(self.mask_list) * (1 - self.fraction))):] 95 | 96 | def __len__(self) -> int: 97 | return len(self.image_names) 98 | 99 | def __getitem__(self, index: int) -> Any: 100 | image_path = self.image_names[index] 101 | mask_path = self.mask_names[index] 102 | with open(image_path, "rb") as image_file, open(mask_path, 103 | "rb") as mask_file: 104 | image = Image.open(image_file) 105 | if self.image_color_mode == "rgb": 106 | image = image.convert("RGB") 107 | elif self.image_color_mode == "grayscale": 108 | image = image.convert("L") 109 | mask = Image.open(mask_file) 110 | if self.mask_color_mode == "rgb": 111 | mask = mask.convert("RGB") 112 | elif self.mask_color_mode == "grayscale": 113 | mask = mask.convert("L") 114 | sample = {"image": image, "mask": mask} 115 | if self.transforms: 116 | sample["image"] = self.transforms(sample["image"]) 117 | sample["mask"] = self.transforms(sample["mask"]) 118 | return sample 119 | -------------------------------------------------------------------------------- /trainer.py: -------------------------------------------------------------------------------- 1 | import copy 2 | import csv 3 | import os 4 | import time 5 | 6 | import numpy as np 7 | import torch 8 | from tqdm import tqdm 9 | 10 | 11 | def train_model(model, criterion, dataloaders, optimizer, metrics, bpath, 12 | num_epochs): 13 | since = time.time() 14 | best_model_wts = copy.deepcopy(model.state_dict()) 15 | best_loss = 1e10 16 | # Use gpu if available 17 | device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 18 | model.to(device) 19 | # Initialize the log file for training and testing loss and metrics 20 | fieldnames = ['epoch', 'Train_loss', 'Test_loss'] + \ 21 | [f'Train_{m}' for m in metrics.keys()] + \ 22 | [f'Test_{m}' for m in metrics.keys()] 23 | with open(os.path.join(bpath, 'log.csv'), 'w', newline='') as csvfile: 24 | writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 25 | writer.writeheader() 26 | 27 | for epoch in range(1, num_epochs + 1): 28 | print('Epoch {}/{}'.format(epoch, num_epochs)) 29 | print('-' * 10) 30 | # Each epoch has a training and validation phase 31 | # Initialize batch summary 32 | batchsummary = {a: [0] for a in fieldnames} 33 | 34 | for phase in ['Train', 'Test']: 35 | if phase == 'Train': 36 | model.train() # Set model to training mode 37 | else: 38 | model.eval() # Set model to evaluate mode 39 | 40 | # Iterate over data. 41 | for sample in tqdm(iter(dataloaders[phase])): 42 | inputs = sample['image'].to(device) 43 | masks = sample['mask'].to(device) 44 | # zero the parameter gradients 45 | optimizer.zero_grad() 46 | 47 | # track history if only in train 48 | with torch.set_grad_enabled(phase == 'Train'): 49 | outputs = model(inputs) 50 | loss = criterion(outputs['out'], masks) 51 | y_pred = outputs['out'].data.cpu().numpy().ravel() 52 | y_true = masks.data.cpu().numpy().ravel() 53 | for name, metric in metrics.items(): 54 | if name == 'f1_score': 55 | # Use a classification threshold of 0.1 56 | batchsummary[f'{phase}_{name}'].append( 57 | metric(y_true > 0, y_pred > 0.1)) 58 | else: 59 | batchsummary[f'{phase}_{name}'].append( 60 | metric(y_true.astype('uint8'), y_pred)) 61 | 62 | # backward + optimize only if in training phase 63 | if phase == 'Train': 64 | loss.backward() 65 | optimizer.step() 66 | batchsummary['epoch'] = epoch 67 | epoch_loss = loss 68 | batchsummary[f'{phase}_loss'] = epoch_loss.item() 69 | print('{} Loss: {:.4f}'.format(phase, loss)) 70 | for field in fieldnames[3:]: 71 | batchsummary[field] = np.mean(batchsummary[field]) 72 | print(batchsummary) 73 | with open(os.path.join(bpath, 'log.csv'), 'a', newline='') as csvfile: 74 | writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 75 | writer.writerow(batchsummary) 76 | # deep copy the model 77 | if phase == 'Test' and loss < best_loss: 78 | best_loss = loss 79 | best_model_wts = copy.deepcopy(model.state_dict()) 80 | 81 | time_elapsed = time.time() - since 82 | print('Training complete in {:.0f}m {:.0f}s'.format( 83 | time_elapsed // 60, time_elapsed % 60)) 84 | print('Lowest Loss: {:4f}'.format(best_loss)) 85 | 86 | # load best model weights 87 | model.load_state_dict(best_model_wts) 88 | return model 89 | --------------------------------------------------------------------------------