Skip to content
Open

Yela #3689

Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
f95fabc
DeepGlobePy
A01781042 May 31, 2024
34cd949
Resize images
AnYelg May 31, 2024
61a68ce
Upload of right size
AnYelg May 31, 2024
7aab358
Merge pull request #1 from A01781042/yela
A01781042 May 31, 2024
7d21d81
Adding unet
AnYelg Jun 1, 2024
7d5dfdd
Merge pull request #2 from A01781042/yela
AnYelg Jun 1, 2024
5d42080
Mean and Std added
EmiSib Jun 1, 2024
07e20e3
rm work-dir
EmiSib Jun 1, 2024
89148d5
Merge pull request #3 from A01781042/sibaja
A01781042 Jun 3, 2024
e5688a5
Merge pull request #4 from A01781042/main
A01781042 Jun 3, 2024
a30aea1
CCNET
EmiSib Jun 3, 2024
0d69683
Merge branch 'main' into sibaja
EmiSib Jun 3, 2024
cd8f9d7
Merge remote-tracking branch 'origin/main' into main
EmiSib Jun 3, 2024
230379d
FCN Model
AnYelg Jun 3, 2024
eeaee77
Merge pull request #5 from A01781042/yela
AnYelg Jun 3, 2024
3340e2c
hr18
A01781042 Jun 3, 2024
281593a
Merge pull request #6 from A01781042/octa
A01781042 Jun 3, 2024
9d33f4d
CCNET config
EmiSib Jun 4, 2024
160704f
CCNET config
EmiSib Jun 4, 2024
fb7a5b9
Merge remote-tracking branch 'origin/sibaja' into sibaja
EmiSib Jun 4, 2024
0080718
Merge branch 'sibaja' into main
EmiSib Jun 4, 2024
7b800d4
CCNET v.2
EmiSib Jun 4, 2024
5c23ab1
class
A01781042 Jun 4, 2024
ec1d8dc
Merge pull request #8 from A01781042/octa
A01781042 Jun 4, 2024
a9597f3
dataconfig
A01781042 Jun 4, 2024
55a4e69
Merge pull request #9 from A01781042/octa
A01781042 Jun 4, 2024
caf83e3
Mean and STD change, dataset added, scale resized
EmiSib Jun 4, 2024
39f019f
tensorboard
A01781042 Jun 5, 2024
347dca0
batch
A01781042 Jun 5, 2024
f4f3331
GcNet-DeepLab
A01781042 Jun 5, 2024
97091a5
modelfix
A01781042 Jun 5, 2024
66d3569
model_test
A01781042 Jun 5, 2024
26064f8
del
A01781042 Jun 5, 2024
9c28a6b
Predicciones1
AnYelg Jun 5, 2024
2960dad
Merge pull request #11 from A01781042/main
A01781042 Jun 5, 2024
b533298
Final Predictions FCN
AnYelg Jun 5, 2024
dccc8ae
Delete colorfile
AnYelg Jun 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
DeepGlobePy
  • Loading branch information
A01781042 committed May 31, 2024
commit f95fabcf6e3124ae18808ac52cf1c7ec649b3ce2
69 changes: 69 additions & 0 deletions configs/_base_/datasets/deepGlobe.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#configs/_base_/datasets/deepGlobe.py
#mmseseg/configs/_base_/datasets/deepGlobe.py
# dataset settings
dataset_type = 'DeepGlobeDataset'
data_root = 'data/deepglobe_ds/'
crop_size = (512, 1024)
train_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations'),
dict(
type='RandomResize',
scale=(2048, 1024),
ratio_range=(0.5, 2.0),
keep_ratio=True),
dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
dict(type='RandomFlip', prob=0.5),
dict(type='PhotoMetricDistortion'),
dict(type='PackSegInputs')
]
test_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='Resize', scale=(2048, 1024), keep_ratio=True),
# add loading annotation after ``Resize`` because ground truth
# does not need to do resize data transform
dict(type='LoadAnnotations'),
dict(type='PackSegInputs')
]
img_ratios = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]
tta_pipeline = [
dict(type='LoadImageFromFile', backend_args=None),
dict(
type='TestTimeAug',
transforms=[
[
dict(type='Resize', scale_factor=r, keep_ratio=True)
for r in img_ratios
],
[
dict(type='RandomFlip', prob=0., direction='horizontal'),
dict(type='RandomFlip', prob=1., direction='horizontal')
], [dict(type='LoadAnnotations')], [dict(type='PackSegInputs')]
])
]
train_dataloader = dict(
batch_size=6,
num_workers=2,
persistent_workers=True,
sampler=dict(type='InfiniteSampler', shuffle=True),
dataset=dict(
type=dataset_type,
data_root=data_root,
data_prefix=dict(
img_path='img_dir/train_sat', seg_map_path='ann_dir/train_mask_grayscale'),
pipeline=train_pipeline))
val_dataloader = dict(
batch_size=6,
num_workers=4,
persistent_workers=True,
sampler=dict(type='DefaultSampler', shuffle=False),
dataset=dict(
type=dataset_type,
data_root=data_root,
data_prefix=dict(
img_path='img_dir/val_sat', seg_map_path='ann_dir/val_mask_grayscale'),
pipeline=test_pipeline))
test_dataloader = val_dataloader

val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])
test_evaluator = val_evaluator
5 changes: 3 additions & 2 deletions configs/_base_/models/deeplabv3_r50-d8.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#configs/_base_/models/deeplabv3_r50-d8.py
# model settings
norm_cfg = dict(type='SyncBN', requires_grad=True)
data_preprocessor = dict(
Expand Down Expand Up @@ -29,7 +30,7 @@
channels=512,
dilations=(1, 12, 24, 36),
dropout_ratio=0.1,
num_classes=19,
num_classes=7,
norm_cfg=norm_cfg,
align_corners=False,
loss_decode=dict(
Expand All @@ -42,7 +43,7 @@
num_convs=1,
concat_input=False,
dropout_ratio=0.1,
num_classes=19,
num_classes=7,
norm_cfg=norm_cfg,
align_corners=False,
loss_decode=dict(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#configs/deeplabv3/deeplabv3_r50-d8_4xb2-40k_deepglobe-512x1024.py
_base_ = [
'../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/deepGlobe.py',
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
]
crop_size = (512, 1024)
data_preprocessor = dict(size=crop_size)
model = dict(data_preprocessor=data_preprocessor)
Empty file modified docs/en/stat.py
100755 → 100644
Empty file.
Empty file modified docs/zh_cn/stat.py
100755 → 100644
Empty file.
69 changes: 69 additions & 0 deletions mmseg/configs/_base_/datasets/deepGlobe.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#configs/_base_/datasets/deepGlobe.py
#mmseseg/configs/_base_/datasets/deepGlobe.py
# dataset settings
dataset_type = 'DeepGlobeDataset'
data_root = 'data/deepglobe_ds/'
crop_size = (512, 1024)
train_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations'),
dict(
type='RandomResize',
scale=(2048, 1024),
ratio_range=(0.5, 2.0),
keep_ratio=True),
dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
dict(type='RandomFlip', prob=0.5),
dict(type='PhotoMetricDistortion'),
dict(type='PackSegInputs')
]
test_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='Resize', scale=(2048, 1024), keep_ratio=True),
# add loading annotation after ``Resize`` because ground truth
# does not need to do resize data transform
dict(type='LoadAnnotations'),
dict(type='PackSegInputs')
]
img_ratios = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]
tta_pipeline = [
dict(type='LoadImageFromFile', backend_args=None),
dict(
type='TestTimeAug',
transforms=[
[
dict(type='Resize', scale_factor=r, keep_ratio=True)
for r in img_ratios
],
[
dict(type='RandomFlip', prob=0., direction='horizontal'),
dict(type='RandomFlip', prob=1., direction='horizontal')
], [dict(type='LoadAnnotations')], [dict(type='PackSegInputs')]
])
]
train_dataloader = dict(
batch_size=6,
num_workers=2,
persistent_workers=True,
sampler=dict(type='InfiniteSampler', shuffle=True),
dataset=dict(
type=dataset_type,
data_root=data_root,
data_prefix=dict(
img_path='img_dir/train_sat', seg_map_path='ann_dir/train_mask_grayscale'),
pipeline=train_pipeline))
val_dataloader = dict(
batch_size=6,
num_workers=4,
persistent_workers=True,
sampler=dict(type='DefaultSampler', shuffle=False),
dataset=dict(
type=dataset_type,
data_root=data_root,
data_prefix=dict(
img_path='img_dir/val_sat', seg_map_path='ann_dir/val_mask_grayscale'),
pipeline=test_pipeline))
test_dataloader = val_dataloader

val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])
test_evaluator = val_evaluator
39 changes: 15 additions & 24 deletions mmseg/configs/_base_/schedules/schedule_40k.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,25 @@
# Copyright (c) OpenMMLab. All rights reserved.
from mmengine.hooks import (CheckpointHook, DistSamplerSeedHook, IterTimerHook,
LoggerHook, ParamSchedulerHook)
from mmengine.optim.optimizer.optimizer_wrapper import OptimWrapper
from mmengine.optim.scheduler.lr_scheduler import PolyLR
from mmengine.runner.loops import IterBasedTrainLoop, TestLoop, ValLoop
from torch.optim.sgd import SGD

from mmseg.engine import SegVisualizationHook

#configs/_base_/schedules/schedule_40k.py
# optimizer
optimizer = dict(type=SGD, lr=0.01, momentum=0.9, weight_decay=0.0005)
optim_wrapper = dict(type=OptimWrapper, optimizer=optimizer, clip_grad=None)

optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer, clip_grad=None)
# learning policy
param_scheduler = [
dict(
type=PolyLR,
type='PolyLR',
eta_min=1e-4,
power=0.9,
begin=0,
end=40000,
end=10000,
by_epoch=False)
]
# training schedule for 40k
train_cfg = dict(type=IterBasedTrainLoop, max_iters=40000, val_interval=4000)
val_cfg = dict(type=ValLoop)
test_cfg = dict(type=TestLoop)
train_cfg = dict(type='IterBasedTrainLoop', max_iters=10000, val_interval=1000)
val_cfg = dict(type='ValLoop')
test_cfg = dict(type='TestLoop')
default_hooks = dict(
timer=dict(type=IterTimerHook),
logger=dict(type=LoggerHook, interval=50, log_metric_by_epoch=False),
param_scheduler=dict(type=ParamSchedulerHook),
checkpoint=dict(type=CheckpointHook, by_epoch=False, interval=4000),
sampler_seed=dict(type=DistSamplerSeedHook),
visualization=dict(type=SegVisualizationHook))
timer=dict(type='IterTimerHook'),
logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
param_scheduler=dict(type='ParamSchedulerHook'),
checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000),
sampler_seed=dict(type='DistSamplerSeedHook'),
visualization=dict(type='SegVisualizationHook'))
2 changes: 2 additions & 0 deletions mmseg/datasets/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#mmseg/datasets/__init__.py
# Copyright (c) OpenMMLab. All rights reserved.
# yapf: disable
from .ade import ADE20KDataset
Expand Down Expand Up @@ -26,6 +27,7 @@
from .refuge import REFUGEDataset
from .stare import STAREDataset
from .synapse import SynapseDataset
from .deepGlobe import DeepGlobeDataset
# yapf: disable
from .transforms import (CLAHE, AdjustGamma, Albu, BioMedical3DPad,
BioMedical3DRandomCrop, BioMedical3DRandomFlip,
Expand Down
48 changes: 48 additions & 0 deletions mmseg/datasets/deepGlobe.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#mmseg/datasets/deepGlobe.py
# Copyright (c) OpenMMLab. All rights reserved.
from mmseg.registry import DATASETS
from .basesegdataset import BaseSegDataset
import json
import os
from datetime import datetime

import geopandas as gpd
import numpy as np
import pandas as pd
import torch
import torch.utils.data as tdata

@DATASETS.register_module()
class DeepGlobeDataset(BaseSegDataset):
"""Deep Globe Dataset.

The ``img_suffix`` is fixed to '.jpg' and ``seg_map_suffix`` is
fixed to '_t.png' for Cityscapes dataset.
"""
METAINFO = dict(
classes=('Urban', 'Agriculture', 'Range', 'Forest', 'Water', 'Barren',
'Unknown'),
palette=[[0,255,255], [255,255,0], [255,0,255], [0,255,0],
[0,0,255], [255,255,255], [1,1,1]
])

class_dict={
"1": "Urban",
"2": "Agriculture",
"3": "Range",
"4": "Forest",
"5": "Water",
"6": "Barren",
"7": "Unknown"
}
color_map = [
[0,255,255], [255,255,0], [255,0,255], [0,255,0],
[0,0,255], [255,255,255], [1,1,1]
]

def __init__(self,
img_suffix='_sat.jpg',
seg_map_suffix='_mask.png',
**kwargs) -> None:
super().__init__(
img_suffix=img_suffix, seg_map_suffix=seg_map_suffix, **kwargs)
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file modified setup.py
100755 → 100644
Empty file.
Empty file modified tests/data/biomedical.nii.gz
100755 → 100644
Empty file.
Empty file modified tests/data/biomedical_ann.nii.gz
100755 → 100644
Empty file.
Empty file modified tests/data/dataset.json
100755 → 100644
Empty file.
Empty file modified tests/data/dsdl_seg/config.py
100755 → 100644
Empty file.
Empty file modified tests/data/dsdl_seg/defs/class-dom.yaml
100755 → 100644
Empty file.
Empty file modified tests/data/dsdl_seg/defs/segmentation-def.yaml
100755 → 100644
Empty file.
Empty file modified tests/data/dsdl_seg/set-train/train.yaml
100755 → 100644
Empty file.
Empty file modified tests/data/dsdl_seg/set-train/train_samples.json
100755 → 100644
Empty file.
Empty file modified tools/dist_test.sh
100755 → 100644
Empty file.
Empty file modified tools/dist_train.sh
100755 → 100644
Empty file.
Empty file modified tools/slurm_test.sh
100755 → 100644
Empty file.
Empty file modified tools/slurm_train.sh
100755 → 100644
Empty file.