{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"from pathlib import Path\n\nROOT_PATH = Path('../input/cassava-disease')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"list(ROOT_PATH.glob(\"*\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"!unzip '../input/cassava-disease/train.zip'\n!unzip '../input/cassava-disease/test.zip'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"TRAIN_PATH = Path('./train')\nTEST_PATH = Path('./test')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"list(TRAIN_PATH.glob('*'))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for dir_path in TRAIN_PATH.glob('*'):\n    print(dir_path)\n    print(len(list(dir_path.glob('*.jpg'))))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for dir_path in TEST_PATH.glob('*'):\n    print(dir_path)\n    print(len(list(dir_path.glob('*.jpg'))))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import pandas as pd\n\nmap_dict = {'cbb': 0, 'cbsd': 1, 'cgm': 2, 'cmd': 3, 'healthy': 4}\n\nlabels = []\nimage_ids = []\nfor dir_path in TRAIN_PATH.glob('*'):\n    for img_path in dir_path.glob('*.jpg'):\n#         print(img_path)\n#         print(img_path.name)\n#         print(img_path.parent.name)\n        label = map_dict[img_path.parent.name]\n        labels.append(label)\n        image_ids.append(img_path.name)\nimg2label = {'label': labels, 'image_id': image_ids}","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"img2label_df = pd.DataFrame.from_dict(img2label)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"display(img2label_df.head())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"img2label_df.to_csv('img2label.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import cv2\nimport matplotlib.pyplot as plt\n\n\ndef get_key_from_value(d, val):\n    keys = [k for k, v in d.items() if v == val]\n    if keys:\n        return keys[0]\n    return None\n\ndef visualize_batch(image_ids, labels):\n    plt.figure(figsize=(16, 12))\n    \n    for ind, (image_id, label) in enumerate(zip(image_ids, labels)):\n        plt.subplot(3, 3, ind + 1)\n        dir_name = get_key_from_value(map_dict, label)\n        img_path = TRAIN_PATH / dir_name / image_id\n        image = cv2.imread(str(img_path))\n        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n\n        plt.imshow(image)\n        plt.title(f\"Class: {label}\", fontsize=12)\n        plt.axis(\"off\")\n    \n    plt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"visualize_batch(image_ids[:9], labels[:9])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cbb_df = img2label_df[img2label_df.label == 0][:9]\n\nvisualize_batch(cbb_df.image_id, cbb_df.label)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cbsd_df = img2label_df[img2label_df.label == 1][:9]\n\nvisualize_batch(cbsd_df.image_id, cbsd_df.label)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cgm_df = img2label_df[img2label_df.label == 2][:9]\n\nvisualize_batch(cgm_df.image_id, cgm_df.label)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cmd_df = img2label_df[img2label_df.label == 3][:9]\n\nvisualize_batch(cmd_df.image_id, cmd_df.label)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"healthy_df = img2label_df[img2label_df.label == 4][:9]\n\nvisualize_batch(healthy_df.image_id, healthy_df.label)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}