{"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":"code","source":"import numpy as np\nimport pandas as pd\nimport os\nimport cv2\nimport matplotlib.pyplot as plt\nimport time","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-02-26T15:08:34.620153Z","iopub.execute_input":"2022-02-26T15:08:34.621112Z","iopub.status.idle":"2022-02-26T15:08:34.626986Z","shell.execute_reply.started":"2022-02-26T15:08:34.621055Z","shell.execute_reply":"2022-02-26T15:08:34.625999Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"IMAGE_SIZE = 224","metadata":{"execution":{"iopub.status.busy":"2022-02-26T15:08:34.628784Z","iopub.execute_input":"2022-02-26T15:08:34.629070Z","iopub.status.idle":"2022-02-26T15:08:34.642398Z","shell.execute_reply.started":"2022-02-26T15:08:34.629039Z","shell.execute_reply":"2022-02-26T15:08:34.641778Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!cp ../input/happy-whale-and-dolphin/sample_submission.csv sample_submission.csv\n!cp ../input/happy-whale-and-dolphin/train.csv train.csv\n!mkdir test_images\n!mkdir train_images","metadata":{"execution":{"iopub.status.busy":"2022-02-26T15:08:34.643509Z","iopub.execute_input":"2022-02-26T15:08:34.644232Z","iopub.status.idle":"2022-02-26T15:08:37.705735Z","shell.execute_reply.started":"2022-02-26T15:08:34.644195Z","shell.execute_reply":"2022-02-26T15:08:37.704762Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.read_csv(\"./train.csv\")\ntrain.index = train[\"image\"].copy()\ntrain[\"image\"] = train[\"image\"].str[:-3] + \"bmp\"\ntrain[\"bbox\"] = pd.read_csv(\"../input/whale2-cropped-dataset/train2.csv\", index_col=\"image\")[\"box\"].fillna(\"\").map(lambda x: list(map(int, x.split(\" \"))) if x!=\"\" else [])\ntrain","metadata":{"execution":{"iopub.status.busy":"2022-02-26T15:08:37.708326Z","iopub.execute_input":"2022-02-26T15:08:37.708568Z","iopub.status.idle":"2022-02-26T15:08:38.182659Z","shell.execute_reply.started":"2022-02-26T15:08:37.708539Z","shell.execute_reply":"2022-02-26T15:08:38.181813Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_submission = pd.read_csv(\"./sample_submission.csv\")\nsample_submission.index = sample_submission[\"image\"].copy()\nsample_submission[\"inference_image\"] = sample_submission[\"image\"].str[:-3] + \"bmp\"\nsample_submission[\"bbox\"] = pd.read_csv(\"../input/whale2-cropped-dataset/test2.csv\", index_col=\"image\")[\"box\"].fillna(\"\").map(lambda x: list(map(int, x.split(\" \"))) if x!=\"\" else [])\nsample_submission","metadata":{"execution":{"iopub.status.busy":"2022-02-26T15:08:38.183929Z","iopub.execute_input":"2022-02-26T15:08:38.184143Z","iopub.status.idle":"2022-02-26T15:08:38.357589Z","shell.execute_reply.started":"2022-02-26T15:08:38.184118Z","shell.execute_reply":"2022-02-26T15:08:38.356610Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.to_csv(\"./train.csv\", index=False)\nsample_submission.to_csv(\"./sample_submission.csv\", index=False)","metadata":{"execution":{"iopub.status.busy":"2022-02-26T15:08:38.360682Z","iopub.execute_input":"2022-02-26T15:08:38.361394Z","iopub.status.idle":"2022-02-26T15:08:38.748654Z","shell.execute_reply.started":"2022-02-26T15:08:38.361357Z","shell.execute_reply":"2022-02-26T15:08:38.747642Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def copy_dir(dirname, base_path=\"../input/happy-whale-and-dolphin/\"):\n    bboxes = train[\"bbox\"] if dirname==\"train_images\" else sample_submission[\"bbox\"]\n    print(\"Copying\", dirname)\n    path = os.path.join(base_path, dirname)\n    images = list(os.listdir(path))\n    n = len(images)\n    for i, f in enumerate(images):\n        print(f\"{i}/{n}\", end=\"\\r\")\n        image_path = os.path.join(path, f)\n        image = cv2.imread(image_path)\n        if len(bboxes[f]):\n            bbox = bboxes[f]\n            xmin, ymin, xmax, ymax = bbox\n            image = image[ymin:ymax, xmin:xmax] # crop image\n        image = cv2.resize(image, (IMAGE_SIZE, IMAGE_SIZE), interpolation=cv2.INTER_CUBIC)\n        new_path = os.path.join(\"./\", dirname, f.split('.')[0] + \".bmp\")\n        cv2.imwrite(new_path, image)\n    \ncopy_dir(\"train_images\")\ncopy_dir(\"test_images\")","metadata":{"execution":{"iopub.status.busy":"2022-02-26T15:08:38.750147Z","iopub.execute_input":"2022-02-26T15:08:38.750544Z","iopub.status.idle":"2022-02-26T15:08:50.784997Z","shell.execute_reply.started":"2022-02-26T15:08:38.750491Z","shell.execute_reply":"2022-02-26T15:08:50.783801Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}