示例#1
0
 def encoder_layer(img_in, mask_in, filters, kernel_size, bottleneck=True):
     conv, mask = PConv2D(filters, kernel_size, strides=2, padding='same')([img_in, mask_in])
     if bottleneck:
         conv = BatchNormalization(name='EncBN'+str(encoder_layer.counter))(conv, training=train_bn)
     conv = Activation('relu')(conv)
     encoder_layer.counter += 1
     return conv, mask
示例#2
0
 def decoder_layer(img_in, mask_in, e_conv, e_mask, filters, kernel_size, bottleneck=True):
     up_img = UpSampling2D(size=(2,2))(img_in)
     up_mask = UpSampling2D(size=(2,2))(mask_in)
     concat_img = Concatenate(axis=3)([e_conv,up_img])
     concat_mask = Concatenate(axis=3)([e_mask,up_mask])
     conv, mask = PConv2D(filters, kernel_size, padding='same')([concat_img, concat_mask])
     if bottleneck:
         conv = BatchNormalization()(conv)
     conv = LeakyReLU(alpha=0.2)(conv)
     return conv, mask
 def decoder_layer(data_in,
                   mask_in,
                   e_conv,
                   e_mask,
                   filters,
                   kernel_size,
                   bn=True):
     up_data = UpSampling2D(size=(2, 2))(data_in)
     up_mask = UpSampling2D(size=(2, 2))(mask_in)
     concat_data = Concatenate(axis=3)([e_conv, up_data])
     concat_mask = Concatenate(axis=3)([e_mask, up_mask])
     conv, mask = PConv2D(filters, kernel_size,
                          padding='same')([concat_data, concat_mask])
     if bn:
         conv = BatchNormalization()(conv)
     conv = LeakyReLU(alpha=0.2)(conv)
     return conv, mask
示例#4
0
        def decoder_layer(img_in,
                          mask_in,
                          e_conv,
                          e_mask,
                          filters,
                          kernel_size,
                          bn=True):

            # up-sample and concatenate
            up_img = UpSampling2D(size=(2, 2))(img_in)
            up_mask = UpSampling2D(size=(2, 2))(mask_in)
            concat_img = Concatenate(axis=3)([e_conv, up_img])
            concat_mask = Concatenate(axis=3)([e_mask, up_mask])

            conv, mask = PConv2D(filters, kernel_size,
                                 padding='same')([concat_img, concat_mask])

            # add batch normalization if desired
            if bn:
                conv = BatchNormalization()(conv)
            conv = LeakyReLU(alpha=0.2)(conv)

            return conv, mask
axes[2].imshow(masked_img)
#plt.show()
plt.savefig('masked_img_from_PConv_test.jpg')

# Input images and masks
input_img = Input(shape=(
    shape[0],
    shape[1],
    shape[2],
))
input_mask = Input(shape=(
    shape[0],
    shape[1],
    shape[2],
))
output_img, output_mask1 = PConv2D(8, kernel_size=(7, 7),
                                   strides=(2, 2))([input_img, input_mask])
output_img, output_mask2 = PConv2D(16, kernel_size=(5, 5),
                                   strides=(2, 2))([output_img, output_mask1])
output_img, output_mask3 = PConv2D(32, kernel_size=(5, 5),
                                   strides=(2, 2))([output_img, output_mask2])
output_img, output_mask4 = PConv2D(64, kernel_size=(3, 3),
                                   strides=(2, 2))([output_img, output_mask3])
output_img, output_mask5 = PConv2D(64, kernel_size=(3, 3),
                                   strides=(2, 2))([output_img, output_mask4])
output_img, output_mask6 = PConv2D(64, kernel_size=(3, 3),
                                   strides=(2, 2))([output_img, output_mask5])
output_img, output_mask7 = PConv2D(64, kernel_size=(3, 3),
                                   strides=(2, 2))([output_img, output_mask6])
output_img, output_mask8 = PConv2D(64, kernel_size=(3, 3),
                                   strides=(2, 2))([output_img, output_mask7])