def extract_bboxes_from_mask(mask): import cv2 from skimage.io import imread from skimage.segmentation import mark_boundaries from skimage.measure import label, regionprops from skimage.util.montage import montage2d as montage montage_rgb = lambda x: np.stack([montage(x[:,:,:,i]) for i in range(x.shape[3])],-1) from skimage.morphology import label lbl_0 = label(mask) props = regionprops(lbl_0) bbox = [] for prop in props: bbox.append(list(prop.bbox)) boxes = np.array(bbox) return boxes.astype(np.int32)
# # Overview # Since making all the predictions takes a long time and quite a bit of memory, we make a seperate kernel for just the submission, where we read the test data and apply the model. The model is built and trained in the kernel at https://www.kaggle.com/kmader/baseline-u-net-model-part-1 # # In[ ]: import os import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) from skimage.io import imread import matplotlib.pyplot as plt from skimage.segmentation import mark_boundaries from skimage.util.montage import montage2d as montage montage_rgb = lambda x: np.stack( [montage(x[:, :, :, i]) for i in range(x.shape[3])], -1) ship_dir = '../input/' train_image_dir = os.path.join(ship_dir, 'train') test_image_dir = os.path.join(ship_dir, 'test') import gc gc.enable() # memory is tight from skimage.morphology import label def multi_rle_encode(img): labels = label(img[:, :, 0]) return [rle_encode(labels == k) for k in np.unique(labels[labels > 0])] # ref: https://www.kaggle.com/paulorzp/run-length-encode-and-decode
BATCH_SIZE = 16 # In[ ]: import os import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) from skimage.io import imread import matplotlib.pyplot as plt from skimage.segmentation import mark_boundaries from skimage.util.montage import montage2d as montage from utillc import * montage_rgb = lambda x: np.stack( [montage(x[:, :, :, i]) for i in range(x.shape[3])], -1) ship_dir = '../input' ship_dir = '/local/qnap/Data/ab' train_image_dir = os.path.join(ship_dir, 'train') test_image_dir = os.path.join(ship_dir, 'test') # ref: https://www.kaggle.com/paulorzp/run-length-encode-and-decode def rle_encode(img): ''' img: numpy array, 1 - mask, 0 - background Returns run length as string formated ''' pixels = img.flatten() pixels = np.concatenate([[0], pixels, [0]]) runs = np.where(pixels[1:] != pixels[:-1])[0] + 1
BATCH_SIZE = 16 EDGE_CROP = 16 GAUSSIAN_NOISE = 0.1 UPSAMPLE_MODE = 'SIMPLE' # downsampling inside the network NET_SCALING = (1, 1) # downsampling in preprocessing IMG_SCALING = (4, 4) # number of validation images to use VALID_IMG_COUNT = 600 # maximum number of steps_per_epoch in training MAX_TRAIN_STEPS = 150 AUGMENT_BRIGHTNESS = False montage_rgb = lambda x: np.stack([montage(x[:, :, :, i]) for i in range(x.shape[3])], -1) ship_dir = '/Users/msun/data/' train_image_dir = os.path.join(ship_dir, 'train') test_image_dir = os.path.join(ship_dir, 'test') def multi_rle_encode(img): labels = label(img[:, :, 0]) return [rle_encode(labels==k) for k in np.unique(labels[labels>0])] # ref: https://www.kaggle.com/paulorzp/run-length-encode-and-decode def rle_encode(img): ''' img: numpy array, 1 - mask, 0 - background
# # Overview # Since making all the predictions takes a long time and quite a bit of memory, we make a seperate kernel for just the submission, where we read the test data and apply the model. The model is built and trained in the kernel at https://www.kaggle.com/kmader/baseline-u-net-model-part-1 # # In[ ]: import os import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) from skimage.io import imread import matplotlib.pyplot as plt from skimage.segmentation import mark_boundaries from skimage.util.montage import montage2d as montage montage_rgb = lambda x: np.stack([montage(x[:, :, :, i]) for i in range(x.shape[3])], -1) ship_dir = '../input/' train_image_dir = os.path.join(ship_dir, 'train') test_image_dir = os.path.join(ship_dir, 'test') import gc; gc.enable() # memory is tight from skimage.morphology import label def multi_rle_encode(img): labels = label(img[:, :, 0]) return [rle_encode(labels==k) for k in np.unique(labels[labels>0])] # ref: https://www.kaggle.com/paulorzp/run-length-encode-and-decode def rle_encode(img): ''' img: numpy array, 1 - mask, 0 - background Returns run length as string formated
# downsampling in preprocessing IMG_SCALING = (4, 4) # number of validation images to use VALID_IMG_COUNT = 600 # maximum number of steps_per_epoch in training MAX_TRAIN_STEPS = 150 AUGMENT_BRIGHTNESS = False import os import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) from skimage.io import imread import matplotlib.pyplot as plt from skimage.segmentation import mark_boundaries from skimage.util.montage import montage2d as montage montage_rgb = lambda x: np.stack([montage(x[:, :, :, i]) for i in range(x.shape[3])], -1) ship_dir = '/Users/msun/data/' train_image_dir = os.path.join(ship_dir, 'train') test_image_dir = os.path.join(ship_dir, 'test') import gc; gc.enable() # memory is tight from skimage.morphology import label def multi_rle_encode(img): labels = label(img[:, :, 0]) return [rle_encode(labels==k) for k in np.unique(labels[labels>0])] # ref: https://www.kaggle.com/paulorzp/run-length-encode-and-decode def rle_encode(img): ''' img: numpy array, 1 - mask, 0 - background Returns run length as string formated