{"cells":[{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport os\nimport imageio\nimport scipy.ndimage as ndi\nimport matplotlib.pyplot as plt\nimport cv2\nfrom ast import literal_eval\nfrom PIL import Image, ImageDraw","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"source_path = \"../input/global-wheat-detection\"\n\ntrain_imgs_path = os.path.join(source_path, \"train\")\ntest_imgs_path = os.path.join(source_path, \"test\")\n\ncsv_train_data_path = \"../input/global-wheat-detection/train.csv\"\n\nsamp_subm = '../input/global-wheat-detection/sample_submission.csv'\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print('Available images for training: ', len(os.listdir(train_imgs_path)))\nprint('Available images for testing: ', len(os.listdir(test_imgs_path)))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sizes = []\nsizes.append(len(os.listdir(train_imgs_path)))\nsizes.append(len(os.listdir(test_imgs_path)))\n\nplt.figure(figsize= (10,10))\nplt.pie(sizes, explode=(0,0), labels=['train_images', 'test_images'],autopct='%1.1f%%', shadow=False, startangle=45)\n\nplt.title('Percentage of Wheat images available in Train and Test Sets',fontsize = 18)\nplt.axis('equal')\nplt.tight_layout()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"\ncsv_train_data = pd.read_csv(csv_train_data_path)\n\ncsv_train_data.head()\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"available_imgs = csv_train_data['image_id'].unique()\nprint('Available annotated images: ', len(available_imgs))\nprint('Available images without annotations: ', len(os.listdir(train_imgs_path))-len(available_imgs))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sizes = []\nsizes.append(len(available_imgs))\nsizes.append(len(os.listdir(train_imgs_path))-len(available_imgs))\n\nplt.figure(figsize= (10,10))\nplt.pie(sizes, explode=(0.2,0), labels=['annotation', '~annotation'],autopct='%1.1f%%', shadow=False, startangle=45)\n\nplt.title('Annotation vs ~Annotation',fontsize = 18)\nplt.axis('equal')\nplt.tight_layout()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"labels = ['ethz_1','arvalis_1','rres_1', 'arvalis_3', 'usask_1', 'arvalis_2', 'inrae_1', ]\nsizes = csv_train_data['source'].value_counts()\n\nexplode = []\n\nfor i in labels:\n    explode.append(0.05)\n    \nplt.figure(figsize= (10,10))\nplt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=9, explode =explode)\ncentre_circle = plt.Circle((0,0),0.70,fc='white')\n\nfig = plt.gcf()\nfig.gca().add_artist(centre_circle)\nplt.title('Visualization of Wheat images from different sources',fontsize = 20)\nplt.axis('equal')  \nplt.tight_layout()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize= (10,10))\ny,x,_ = plt.hist(csv_train_data['image_id'].value_counts(), bins=100, density = True, color = 'red')\n\nprint('Minimum no. of Bounding Boxes: ', x.min())\nprint('Maximum no. of Bounding Boxes: ', x.max())\n\nplt.xlabel('# Bboxes')\nplt.ylabel('Probability')\nplt.title('Histogram of describing probabilities of Bboxes')\n\nplt.grid(True)\n\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def view_imgs(imgs):\n    imgs_to_view = np.random.choice(imgs, 10)\n    for image_id in imgs_to_view:\n        img_path = os.path.join(train_imgs_path, image_id + '.jpg')\n        #img = imageio.imread(img_path)\n        img = Image.open(img_path)\n        bboxes = [literal_eval(box) for box in csv_train_data[csv_train_data['image_id']==image_id]['bbox']]\n        draw = ImageDraw.Draw(img)\n        for bbox in bboxes:\n            draw.rectangle([bbox[0], bbox[1], bbox[0] + bbox[2], bbox[1] + bbox[3]],outline = (255,0,0),width=2)\n        plt.figure(figsize=(10,10))\n        plt.imshow(img)\n        plt.show()\n        \n    ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"view_imgs(available_imgs)","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}