{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## At first install pixellib library","metadata":{"id":"YpBf8xgkBdow"}},{"cell_type":"code","source":"! pip3 install pixellib","metadata":{"id":"0E_FZ30KBjcf","outputId":"9a95904e-73c9-46a9-d419-371e05dd6b0f","execution":{"iopub.status.busy":"2021-11-03T08:02:21.213875Z","iopub.execute_input":"2021-11-03T08:02:21.214518Z","iopub.status.idle":"2021-11-03T08:02:44.027715Z","shell.execute_reply.started":"2021-11-03T08:02:21.214474Z","shell.execute_reply":"2021-11-03T08:02:44.026894Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Download mask rcnn coco weights","metadata":{"id":"3oN2rNxsBnWn"}},{"cell_type":"code","source":"!wget --quiet https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5","metadata":{"id":"vhsvjYPZBZc1","execution":{"iopub.status.busy":"2021-11-02T12:46:48.877205Z","iopub.execute_input":"2021-11-02T12:46:48.877624Z","iopub.status.idle":"2021-11-02T12:46:52.653633Z","shell.execute_reply.started":"2021-11-02T12:46:48.877584Z","shell.execute_reply":"2021-11-02T12:46:52.652365Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Show Input Image","metadata":{"id":"nEKpScAVELP5"}},{"cell_type":"code","source":"import cv2\nimport os\nimport math\n\nfrom matplotlib import pyplot as plt\nimport numpy as np\nfrom PIL import Image\nfrom IPython.display import Image as IMG\nimport tensorflow as tf # Importing tensorflow\n\nimport pixellib\nfrom pixellib.instance import instance_segmentation\n\nsegment_image = instance_segmentation()\nsegment_image.load_model(\"../input/mask-rcnn-coco-weights/mask_rcnn_coco.h5\") ","metadata":{"id":"MkzC4Ez9D-6i","outputId":"a666326a-affc-4dca-c1f9-668861ac155f","execution":{"iopub.status.busy":"2021-11-03T08:05:12.454584Z","iopub.execute_input":"2021-11-03T08:05:12.454942Z","iopub.status.idle":"2021-11-03T08:05:25.884950Z","shell.execute_reply.started":"2021-11-03T08:05:12.454911Z","shell.execute_reply":"2021-11-03T08:05:25.883866Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"image_file = '../input/d/marialeghari/images/car.jpeg'\ntarget_classes = segment_image.select_target_classes(car=True, truck=True)\nsegmask, output = segment_image.segmentImage(image_file,segment_target_classes= target_classes)\nsegment = 0\nsegment_number = -1\nmax_seg_area = 0\ncount = 0\nfor seg in segmask['rois']:\n    area = math.sqrt(((seg[2]-seg[0])**2)+((seg[3]-seg[1])**2))\n    if max_seg_area < area:\n        max_seg_area = area\n        segment = seg\n        segment_number = count\n    count +=1\nseg_mask = segmask['masks']\n\nmask = np.zeros((seg_mask.shape[0], seg_mask.shape[1], 3))\nseg_mask = seg_mask*1\nse_count = 0\nfor seg in seg_mask:\n    s_count = 0\n    for se in seg:\n        if se[segment_number]:\n            mask[se_count][s_count] = [255, 255, 255]\n        s_count += 1\n    se_count += 1\n    \nnp.unique(map)\norig_imginal = cv2.imread(image_file)\norig_imginal = cv2.cvtColor(orig_imginal, cv2.COLOR_BGR2RGB)\norig_imginal = np.array(orig_imginal)\nblurred_original_image = cv2.GaussianBlur(orig_imginal, (45,45), 0)\nlayered_image = np.where(mask != (0,0,0), orig_imginal, blurred_original_image)","metadata":{"execution":{"iopub.status.busy":"2021-11-03T08:05:30.137254Z","iopub.execute_input":"2021-11-03T08:05:30.137607Z","iopub.status.idle":"2021-11-03T08:05:38.571721Z","shell.execute_reply.started":"2021-11-03T08:05:30.137578Z","shell.execute_reply":"2021-11-03T08:05:38.570856Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"im_rgb = cv2.cvtColor(layered_image, cv2.COLOR_RGB2BGR) # Saving the new bokeh image.\nplt.imshow(layered_image)\ncv2.imwrite(\"./new1.png\", im_rgb)","metadata":{"execution":{"iopub.status.busy":"2021-11-03T07:34:35.749018Z","iopub.execute_input":"2021-11-03T07:34:35.749412Z","iopub.status.idle":"2021-11-03T07:34:36.000929Z","shell.execute_reply.started":"2021-11-03T07:34:35.749381Z","shell.execute_reply":"2021-11-03T07:34:35.999629Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from pixellib.tune_bg import alter_bg\n\nchange_bg = alter_bg(model_type = \"pb\")\nchange_bg.load_pascalvoc_model(\"../input/dataset/xception_pascalvoc.pb\")\ni = change_bg.blur_bg(image_file, moderate = True, detect = \"car\", output_image_name=\"blur_img.jpg\")\nim_rgb = cv2.cvtColor(i, cv2.COLOR_RGB2BGR)\nimage = Image.fromarray(im_rgb)\nimage","metadata":{"execution":{"iopub.status.busy":"2021-11-03T08:07:14.498857Z","iopub.execute_input":"2021-11-03T08:07:14.499564Z","iopub.status.idle":"2021-11-03T08:07:34.738572Z","shell.execute_reply.started":"2021-11-03T08:07:14.499502Z","shell.execute_reply":"2021-11-03T08:07:34.737529Z"},"trusted":true},"execution_count":null,"outputs":[]}]}