{"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":"# Whale/Dolphin images of the same individual","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport os\nimport matplotlib.pyplot as plt\nimport cv2","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-02-16T08:45:50.868729Z","iopub.execute_input":"2022-02-16T08:45:50.869050Z","iopub.status.idle":"2022-02-16T08:45:50.874415Z","shell.execute_reply.started":"2022-02-16T08:45:50.869021Z","shell.execute_reply":"2022-02-16T08:45:50.873248Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train=pd.read_csv('../input/happy-whale-and-dolphin/train.csv')\ntrain","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:45:50.897337Z","iopub.execute_input":"2022-02-16T08:45:50.897646Z","iopub.status.idle":"2022-02-16T08:45:50.974035Z","shell.execute_reply.started":"2022-02-16T08:45:50.897614Z","shell.execute_reply":"2022-02-16T08:45:50.973133Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['species'].value_counts()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:45:50.975752Z","iopub.execute_input":"2022-02-16T08:45:50.975998Z","iopub.status.idle":"2022-02-16T08:45:50.991369Z","shell.execute_reply.started":"2022-02-16T08:45:50.975967Z","shell.execute_reply":"2022-02-16T08:45:50.990452Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['species'].nunique()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:45:50.993085Z","iopub.execute_input":"2022-02-16T08:45:50.993422Z","iopub.status.idle":"2022-02-16T08:45:51.012297Z","shell.execute_reply.started":"2022-02-16T08:45:50.993378Z","shell.execute_reply":"2022-02-16T08:45:51.011282Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['individual_id'].value_counts()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:45:51.014257Z","iopub.execute_input":"2022-02-16T08:45:51.014843Z","iopub.status.idle":"2022-02-16T08:45:51.041261Z","shell.execute_reply.started":"2022-02-16T08:45:51.014797Z","shell.execute_reply":"2022-02-16T08:45:51.040424Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['individual_id'].nunique()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:45:51.044003Z","iopub.execute_input":"2022-02-16T08:45:51.044536Z","iopub.status.idle":"2022-02-16T08:45:51.061408Z","shell.execute_reply.started":"2022-02-16T08:45:51.044477Z","shell.execute_reply":"2022-02-16T08:45:51.060413Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train[train['species']=='bottlenose_dolphin']['individual_id'].value_counts()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:45:51.063324Z","iopub.execute_input":"2022-02-16T08:45:51.063705Z","iopub.status.idle":"2022-02-16T08:45:51.085826Z","shell.execute_reply.started":"2022-02-16T08:45:51.063659Z","shell.execute_reply":"2022-02-16T08:45:51.085160Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Images of the same individual id","metadata":{}},{"cell_type":"code","source":"dir0='../input/happy-whale-and-dolphin/train_images'","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:45:51.087442Z","iopub.execute_input":"2022-02-16T08:45:51.087871Z","iopub.status.idle":"2022-02-16T08:45:51.092974Z","shell.execute_reply.started":"2022-02-16T08:45:51.087832Z","shell.execute_reply":"2022-02-16T08:45:51.092071Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"id0='c995c043c353'\nimgs=train[train['individual_id']==id0]['image'].tolist()\nspecies=train[train['individual_id']==id0]['species'].tolist()[0]\nprint('Individual_ID:',id0, ', Species:',species)\n\nimg_paths=[]\nfor item in imgs:\n    img_paths+=[os.path.join(dir0,item)]\n\nfig, axs = plt.subplots(4,5, figsize=(18,12))\nfor j in range(20):\n    r=j//5\n    c=j%5\n    img0=cv2.imread(img_paths[j])\n    axs[r][c].imshow(cv2.cvtColor(img0, cv2.COLOR_BGR2RGB))\n    axs[r][c].axis(\"off\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:45:51.094557Z","iopub.execute_input":"2022-02-16T08:45:51.095473Z","iopub.status.idle":"2022-02-16T08:46:06.003546Z","shell.execute_reply.started":"2022-02-16T08:45:51.095421Z","shell.execute_reply":"2022-02-16T08:46:06.002604Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"id0='37c7aba965a5'\nimgs=train[train['individual_id']==id0]['image'].tolist()\nspecies=train[train['individual_id']==id0]['species'].tolist()[0]\nprint('Individual_ID:',id0, ', Species:',species)\n\nimg_paths=[]\nfor item in imgs:\n    img_paths+=[os.path.join(dir0,item)]\n\nfig, axs = plt.subplots(4,5, figsize=(18,12))\nfor j in range(20):\n    r=j//5\n    c=j%5\n    img0=cv2.imread(img_paths[j])\n    axs[r][c].imshow(cv2.cvtColor(img0, cv2.COLOR_BGR2RGB))\n    axs[r][c].axis(\"off\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:46:06.004803Z","iopub.execute_input":"2022-02-16T08:46:06.005022Z","iopub.status.idle":"2022-02-16T08:46:23.225677Z","shell.execute_reply.started":"2022-02-16T08:46:06.004995Z","shell.execute_reply":"2022-02-16T08:46:23.224663Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Some augumentations","metadata":{}},{"cell_type":"code","source":"# original\nid0='4b00fe572063'\nimgs=train[train['individual_id']==id0]['image'].tolist()\nspecies=train[train['individual_id']==id0]['species'].tolist()[0]\nprint('Individual_ID:',id0, ', Species:',species)\n\nimg_paths=[]\nfor item in imgs:\n    img_paths+=[os.path.join(dir0,item)]\n\nfig, axs = plt.subplots(4,5, figsize=(18,12))\nfor j in range(20):\n    r=j//5\n    c=j%5\n    img0=cv2.imread(img_paths[j])\n    axs[r][c].imshow(cv2.cvtColor(img0, cv2.COLOR_BGR2RGB))\n    axs[r][c].axis(\"off\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:46:23.226952Z","iopub.execute_input":"2022-02-16T08:46:23.227186Z","iopub.status.idle":"2022-02-16T08:46:38.534104Z","shell.execute_reply.started":"2022-02-16T08:46:23.227158Z","shell.execute_reply":"2022-02-16T08:46:38.533195Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# right angle\nid0='4b00fe572063'\nimgs=train[train['individual_id']==id0]['image'].tolist()\nspecies=train[train['individual_id']==id0]['species'].tolist()[0]\nprint('Individual_ID:',id0, ', Species:',species)\n\nimg_paths=[]\nfor item in imgs:\n    img_paths+=[os.path.join(dir0,item)]\n\nfig, axs = plt.subplots(4,5, figsize=(18,12))\nfor j in range(20):\n    r=j//5\n    c=j%5\n    img0=cv2.imread(img_paths[j])\n    a=img0.shape[0]\n    b=img0.shape[1]\n    axs[r][c].imshow(cv2.cvtColor(img0[:,(b-a):,:], cv2.COLOR_BGR2RGB))\n    axs[r][c].axis(\"off\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:51:50.090080Z","iopub.execute_input":"2022-02-16T08:51:50.090371Z","iopub.status.idle":"2022-02-16T08:52:02.375086Z","shell.execute_reply.started":"2022-02-16T08:51:50.090327Z","shell.execute_reply":"2022-02-16T08:52:02.374171Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# left angle\nid0='4b00fe572063'\nimgs=train[train['individual_id']==id0]['image'].tolist()\nspecies=train[train['individual_id']==id0]['species'].tolist()[0]\nprint('Individual_ID:',id0, ', Species:',species)\n\nimg_paths=[]\nfor item in imgs:\n    img_paths+=[os.path.join(dir0,item)]\n\nfig, axs = plt.subplots(4,5, figsize=(18,12))\nfor j in range(20):\n    r=j//5\n    c=j%5\n    img0=cv2.imread(img_paths[j])\n    a=img0.shape[0]\n    b=img0.shape[1]\n    axs[r][c].imshow(cv2.cvtColor(img0[:,0:a,:], cv2.COLOR_BGR2RGB))\n    axs[r][c].axis(\"off\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T08:50:43.092788Z","iopub.execute_input":"2022-02-16T08:50:43.093505Z","iopub.status.idle":"2022-02-16T08:50:55.472781Z","shell.execute_reply.started":"2022-02-16T08:50:43.093454Z","shell.execute_reply":"2022-02-16T08:50:55.471398Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# enlarge center\nid0='4b00fe572063'\nimgs=train[train['individual_id']==id0]['image'].tolist()\nspecies=train[train['individual_id']==id0]['species'].tolist()[0]\nprint('Individual_ID:',id0, ', Species:',species)\n\nimg_paths=[]\nfor item in imgs:\n    img_paths+=[os.path.join(dir0,item)]\n\nfig, axs = plt.subplots(4,5, figsize=(18,12))\nfor j in range(20):\n    r=j//5\n    c=j%5\n    img0=cv2.imread(img_paths[j])\n    a=img0.shape[0]//4\n    b=img0.shape[1]//4\n    axs[r][c].imshow(cv2.cvtColor(img0[a:a*3,b:b*3,:], cv2.COLOR_BGR2RGB))\n    axs[r][c].axis(\"off\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-02-16T09:01:56.161291Z","iopub.execute_input":"2022-02-16T09:01:56.161889Z","iopub.status.idle":"2022-02-16T09:02:03.804850Z","shell.execute_reply.started":"2022-02-16T09:01:56.161835Z","shell.execute_reply":"2022-02-16T09:02:03.802438Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}