Ejemplo n.º 1
0
    def __init__(self, batch_size=32):
        """A network which provides segmentation masks from plant images"""

        m_path, _ = os.path.split(__file__)
        checkpoint_path = os.path.join(m_path, 'network_states',
                                       self.__dir_name)

        import deepplantpheno as dpp

        self.model = dpp.DPPModel(debug=False, load_from_saved=checkpoint_path)

        # Define model hyperparameters
        self.model.set_problem_type('semantic_segmentation')
        self.model.set_batch_size(batch_size)
        self.model.set_number_of_threads(1)
        self.model.set_image_dimensions(self.img_height, self.img_width, 3)
        self.model.set_resize_images(True)

        # Define a model architecture
        self.model.add_input_layer()

        self.model.add_convolutional_layer(filter_dimension=[3, 3, 3, 16],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_convolutional_layer(filter_dimension=[3, 3, 16, 32],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_convolutional_layer(filter_dimension=[5, 5, 32, 32],
                                           stride_length=1,
                                           activation_function='relu')

        self.model.add_output_layer()
Ejemplo n.º 2
0
    def __init__(self, height, width, batch_size=4):
        """A network which predicts bounding box coordinates via a convolutional neural net"""

        # Set original image dimensions
        self.original_img_height = height
        self.original_img_width = width

        m_path, _ = os.path.split(__file__)
        checkpoint_path = os.path.join(m_path, 'network_states',
                                       self.__dir_name)

        import deepplantpheno as dpp

        self.model = dpp.DPPModel(debug=False, load_from_saved=checkpoint_path)

        self.model.clear_preprocessors()

        # Define model hyperparameters
        self.model.set_batch_size(batch_size)
        self.model.set_number_of_threads(1)
        self.model.set_original_image_dimensions(self.original_img_height,
                                                 self.original_img_width)
        self.model.set_image_dimensions(self.img_height, self.img_width, 3)
        self.model.set_resize_images(True)

        self.model.set_problem_type('regression')
        self.model.set_num_regression_outputs(4)

        # Define a model architecture
        self.model.add_input_layer()

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 3, 16],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 16, 64],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 64, 64],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 64, 64],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_fully_connected_layer(output_size=384,
                                             activation_function='relu')

        self.model.add_output_layer()
Ejemplo n.º 3
0
    def __init__(self, batch_size=8):
        """A network which predicts rosette leaf count via a convolutional neural net"""

        m_path, _ = os.path.split(__file__)
        checkpoint_path = os.path.join(m_path, 'network_states',
                                       self.__dir_name)

        import deepplantpheno as dpp

        self.model = dpp.DPPModel(debug=False, load_from_saved=checkpoint_path)

        self.model.clear_preprocessors()

        # Define model hyperparameters
        self.model.set_batch_size(batch_size)
        self.model.set_number_of_threads(1)
        self.model.set_image_dimensions(self.img_height, self.img_width, 3)
        self.model.set_resize_images(True)

        self.model.set_problem_type('regression')

        self.model.set_augmentation_crop(True, crop_ratio=0.9)

        # Define a model architecture
        self.model.add_input_layer()

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 3, 32],
                                           stride_length=1,
                                           activation_function='tanh')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 32, 32],
                                           stride_length=1,
                                           activation_function='tanh')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[3, 3, 32, 64],
                                           stride_length=1,
                                           activation_function='tanh')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[3, 3, 64, 64],
                                           stride_length=1,
                                           activation_function='tanh')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_fully_connected_layer(output_size=1024,
                                             activation_function='tanh')

        self.model.add_output_layer()
Ejemplo n.º 4
0
    def __init__(self, batch_size=32):
        """A network which predicts arabidopsis strain/mutant via a convolutional neural net"""

        m_path, _ = os.path.split(__file__)
        checkpoint_path = os.path.join(m_path, 'network_states',
                                       self.__dir_name)

        import deepplantpheno as dpp

        self.model = dpp.DPPModel(debug=False, load_from_saved=checkpoint_path)

        # Define model hyperparameters
        self.model.set_batch_size(batch_size)
        self.model.set_number_of_threads(1)
        self.model.set_image_dimensions(self.img_height, self.img_width, 3)
        self.model.set_resize_images(True)

        self.model.set_augmentation_crop(True)

        # Define a model architecture
        self.model.add_input_layer()

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 3, 32],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 32, 64],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 64, 64],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_convolutional_layer(filter_dimension=[5, 5, 64, 64],
                                           stride_length=1,
                                           activation_function='relu')
        self.model.add_pooling_layer(kernel_size=3, stride_length=2)

        self.model.add_fully_connected_layer(output_size=4096,
                                             activation_function='relu')
        self.model.add_dropout_layer(0.5)
        self.model.add_fully_connected_layer(output_size=4096,
                                             activation_function='relu')
        self.model.add_dropout_layer(0.5)

        self.model.add_output_layer(output_size=5)