Exemple #1
0
    def __init__(self,
                 config="conf/config.yml",
                 saved_model=None,
                 log_dir=None):
        """
        Args:
            config: path to a config file, defaults to ../conf/config.yml
            saved_model: Optional, a previous saved AttentionModel .h5
        """
        self.config = parse_yaml(config)
        if saved_model:
            self.model = load_model(saved_model)

        #Holders
        self.testing_set = None
        self.training_set = None

        if log_dir:
            self.log_dir = log_dir
        else:
            self.log_dir = None

        #log some helpful data
        self.height = self.config["train"]["crop_size"]
        self.width = self.config["train"]["crop_size"]
        self.channels = self.config["train"]["sensor_channels"]
        self.weighted_sum = self.config["train"]["weighted_sum"]
        self.extend_box = self.config["train"]["extend_box"]
        self.classes_file = os.path.join(self.config["train"]["tfrecords"],
                                         "class_labels.csv")
        self.classes = self.config["train"]["classes"]
Exemple #2
0
    def __init__(self, config="conf/config.yml", saved_model=None, log_dir=None):
        """
        Args:
            config: path to a config file, defaults to ../conf/config.yml
            saved_model: Optional, a previous saved AttentionModel .h5
        """
        self.config = parse_yaml(config)
        if saved_model:
            self.model = load_model(saved_model)

        #Holders
        self.testing_set = None
        self.training_set = None

        if log_dir:
            self.log_dir = log_dir
        else:
            self.log_dir = None

        #log config
        self.HSI_size = self.config["train"]["HSI"]["crop_size"]
        self.HSI_channels = self.config["train"]["HSI"]["sensor_channels"]
        self.HSI_weighted_sum = self.config["train"]["HSI"]["weighted_sum"]
        
        self.RGB_size= self.config["train"]["RGB"]["crop_size"]
        self.RGB_channels = self.config["train"]["RGB"]["sensor_channels"]
        self.RGB_weighted_sum = self.config["train"]["RGB"]["weighted_sum"]
        
        self.extend_box = self.config["train"]["extend_box"]
        self.classes_file = self.config["train"]["species_class_file"]
        self.sites = self.config["train"]["sites"]
Exemple #3
0
    def __init__(self,
                 config="conf/config.yml",
                 saved_model=None,
                 log_dir=None):
        """
        Args:
            config: path to a config file, defaults to ../conf/config.yml
            saved_model: Optional, a previous saved AttentionModel .h5
        """
        self.config = parse_yaml(config)
        if saved_model:
            self.model = load_model(saved_model)

        #Holders
        self.testing_set = None
        self.training_set = None

        if log_dir:
            self.log_dir = log_dir
        else:
            self.log_dir = None

        #log config
        self.HSI_size = self.config["train"]["HSI"]["crop_size"]
        self.HSI_channels = self.config["train"]["HSI"]["sensor_channels"]
        self.HSI_weighted_sum = self.config["train"]["HSI"]["weighted_sum"]

        self.RGB_size = self.config["train"]["RGB"]["crop_size"]
        self.RGB_channels = self.config["train"]["RGB"]["sensor_channels"]
        self.RGB_weighted_sum = self.config["train"]["RGB"]["weighted_sum"]

        self.HSI_extend_box = self.config["train"]["HSI"]["extend_box"]
        self.classes_file = self.config["train"]["species_class_file"]

        try:
            if self.config["train"]["site_class_file"] is not None:
                self.sites = pd.read_csv(
                    self.config["train"]["site_class_file"]).shape[0]
            if self.config["train"]["domain_class_file"] is not None:
                self.domains = pd.read_csv(
                    self.config["train"]["domain_class_file"]).shape[0]
        except:
            pass

        try:
            self.train_shp = gpd.read_file(
                self.config["train"]["ground_truth_path"])
        except:
            self.train_shp = None

        try:
            self.test_shp = gpd.read_file(
                self.config["evaluation"]["ground_truth_path"])
        except:
            self.test_shp = None
Exemple #4
0
    def __init__(self, config="conf/config.yml", saved_model=None):
        """
        Args:
            config: path to a config file, defaults to ../conf/config.yml
            saved_model: Optional, a previous saved AttentionModel .h5
        """
        self.config = parse_yaml(config)
        if saved_model:
            self.model = load_model(saved_model)

        #Holders
        self.testing_set = None
        self.training_set = None
        RGB_crops=RGB_crops,
        labels=numeric_labels, 
        sites=numeric_sites, 
        elevations=elevations,
        box_index=box_indexes, 
        savedir=savedir, 
        RGB_size=RGB_size,
        HSI_size=HSI_size, 
        chunk_size=chunk_size)
    
    return tfrecords
    
if __name__ == "__main__":
    #Read config from top level dir
    ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    config = parse_yaml("{}/conf/tree_config.yml".format(ROOT))
    
    #train data
    main(
        field_data=config["train"]["ground_truth_path"],
        RGB_size=config["train"]["RGB"]["crop_size"],
        HSI_size=config["train"]["HSI"]["crop_size"],        
        hyperspectral_dir=config["hyperspectral_sensor_pool"],
        rgb_dir=config["rgb_sensor_pool"],
        extend_box=config["train"]["extend_box"],
        hyperspectral_savedir=config["hyperspectral_tif_dir"],
        savedir=config["train"]["tfrecords"],
        n_workers=config["cpu_workers"],
        saved_model="/home/b.weinstein/miniconda3/envs/DeepTreeAttention_DeepForest/lib/python3.7/site-packages/deepforest/data/NEON.h5"
    )