ESRI Data Science Challenge 2019 3rd place solution

(Left) the original image. (Right) Car detections using RetinaNet, marked in green boxes


Creating a dataset of marathon images to use for bib recognition (Part 3)

A Beautiful Soup (literally). Photo by Ella Olsson on Unsplash

In the previous posts, we explored MyRace website to figure out the approach to scrape the marathon images. We then used Selenium to emulate a human scrolling down on the album page and then fetched all the links for the image pages. In this blog, we’ll continue our quest to build this dataset by using BeautifulSoup to scrape the actual links of the images from the image display pages and then downloading the images.

Earlier posts in this series:
Marathon Bib Identification and Recognition
Creating Dataset
Web Scraping Using Selenium

OS: Ubuntu 16.04
Ubuntu + Deep Learning System setup guide


Creating a dataset of marathon images to use for bib recognition (Part 2)

In the previous post, we realized that because of the dynamic nature of the website we need a tool like Selenium to emulate the human behavior and automatically scroll through the page to let all the links load and then fetch the links of interest. This post will detail how we achieve that.

Earlier posts in this series:
Marathon Bib Identification and Recognition
Creating Dataset

OS: Ubuntu 16.04
Ubuntu + Deep Learning System setup guide

Github: https://github.com/kapil-varshney/scrape-marathon-images

Setup Selenium

Selenium is a tool to automate browsers. It’s primarily used for testing but is also very useful for web scraping. …


Creating a dataset of marathon images to use for bib recognition (Part 1)

This post continues on my earlier post on Marathon Bib Recognition project. In case you haven’t read the introductory blog, please go over it to get a better context.

Where to get the dataset

Okay, I read the intro blog. It sounds great! But, how do you get started? You need data, right?

Right. To be able to even try any one of the methods to recognize the bibs, that were described in the intro blog, we need data — marathon images, and many of them.

One obvious way was to go to a running event myself and photograph a few (at least 1000, I…


Using deep learning and image processing to recognize numbers from a marathon bib.

Me after finishing the Mumbai Marathon 2019, and, of course, the bib number recognition (using AWS Rekognition API)

Inception

I recently participated in a Marathon. A few days later I received an email with a link where I could check out and download my race day pictures. I needed to put my bib number on the webpage, and it would pull up all the photos with me in it. This got me thinking how was it made possible!

For those who are not familiar with running events, a bib is a sheet of paper with an e-tag attached to it. This tag is used to record the runners accurate timing over the course of the marathon. The bib also…


I started exploring the different ways to visualize the training process while working on the Dog breed identification dataset from Kaggle. I created a basic model that I wanted to test out. I was using Jupyter notebook for quick prototyping. I ran the code and I got the training accuracy, validation accuracy, training loss validation loss. I could see the numbers, but it wasn’t good enough to understand how well the network learnt over time.

I wanted to see a plot which shows me the training metrics and updates it automatically after each epoch. I started exploring the callback features…


I am writing this guide so that I can refer back to it whenever I am setting up a Deep learning machine for Computer Vision. I realized the need of it after the 3rd time I was trying to setup my machine. The earlier two types of attempts (I setup the system multiple times in both types) were with reluctance to do away with Windows on my system. My earlier attempts:

  1. Setup a Virtual Machine on Windows and then install Ubuntu and required Python packages.
    This was a good way to get started with coding. But, there are limitations to a…


To be able to do a clean install of Windows 10 you need to create a USB drive with Windows installation. You can do that using either the Microsoft Media Creation tool or a third party application called Rufus and Windows 10 iso file. I have covered the former method in a previous blog.

Once you have your bootable media ready, you can start following these steps for a clean install of Windows 10:

(Please ignore the picture quality. I used a basic smartphone to take snapshots)

1. Load the BIOS/UEFI to select the boot media.

This step is very…


Here is a guide to setup a USB medium (from Windows 10) to be used for installing Windows 10.

I know, sounds funny, right? Why will someone want to create a Windows 10 installer when they already have it? Well, I am creating this bootable USB drive because I decided to get rid of Windows from my system and install Ubuntu instead. Links for how to do that here and here. I am doing this change because I want to execute Computer Vision projects on my system. Windows is a big no when it comes to coding. I still like…


Follow these instructions and you should have a working Ubuntu system in a short time (Please excuse the picture quality. I have taken each screenshot using a basic smartphone camera):

Before continuing with this guide, please make sure you have a working USB media with Ubuntu installer. You can checkout my earlier blog where I create bootable USB drive with Ubuntu 16.

  1. Start your system by loading the Boot manager. Each brand of laptops and computers have their own way of loading the boot manager. I am using a Lenovo Yoga-710, which has a pin hole on the left side…

Kapil Varshney

Data Scientist (Computer Vision) @ Esri R&D New Delhi. Here to share what I learn and do. Connect with me at https://www.linkedin.com/in/kapilvarshney14/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store