A brief history of the satellite-image-deep-learning Github repository
A brief history of the popular satellite-image-deep-learning techniques repository, and why you should create something similar
I created the Github organisation satellite-image-deep-learning in order to organise the content I have created on that platform, which began with the popular techniques repository. This post provides the brief history of this repository, how I find material for it, and why you should create something similar.
History
When and why did I create the repository? I started this repository in April 2018 whilst I was working at Surrey Satellites. The satellite constellation I had been hired to work on as an optical engineer was on hold, and since I had demonstrated my ability to program in Python I was assigned some software development work.
The company had developed a very basic catalogue for viewing satellite imagery & capture locations on a map, and I was tasked to add some new features after the original developer left. The volume of content in the catalogue quickly grew, and improving the search functionality became a high priority. One particular feature request was to add tags to imagery, so a user could search using natural language. What options were there for tagging a satellite image like this in 2018?
I was aware of recent progress in computer vision and suggested machine learning as an approach to generate tags for the imagery. I was given a couple of days to do a proof of concept, and since the time-frame was limited I knew I would need to hit the ground running. I was aware of convolutional neural networks (CNN’s) and their use for classifying images, and I began searching online for relevant articles & code. I recall finding many academic papers, but very few were accompanied with code and public datasets, making the results difficult or impossible to reproduce. At this point I started making a list of resources with available code using Markdown in a simple README.md
file, and with permission put this on Github. Creating a list of web links in markdown is very straight-forward, and the basic syntax is shown below:
* [title](url) -> some description
Over time I have added more structure to the README.md
, and added a Github action to check the validity of links, but otherwise the approach remains as simple as when I first conceived it.
Finding material
Many people have asked me how I find the material listed on the repository, and the answer is that for the most part it is recommended to me! Specifically it is recommended in my Github feed as I have followed many of the leading academics & developers in our field. These people also star other relevant repositories, which are then highlighted in my feed. Since I seek out resources with published code, Github is naturally the best place to find material, but LinkedIn and Twitter are also excellent places to discover material. Beside these locations, I also routinely check the Computer Vision and Pattern Recognition section of ArXiv
Why you should create something similar
You might wonder why I take the effort to maintain this repository, and what benefits it brings? Undeniably it is professionally satisfying to have a popular repository on Github, but I can list more benefits:
Kudos in the interview & hiring process
Open doors with other developers & researchers on Github
Get approached about interesting jobs & opportunities
Open source profile grants access to Github CoPilot
Receive motivating messages from people this repository has helped
Provides material to share on Linkedin/Twitter and grow my network
At this point I hope I have convinced you that the barrier to entry for creating a repository on Github is low. Everyone has domain knowledge and unique areas of interest which could provide the source of inspiration for a repository. I actually know people who have created similar ‘knowledge repositories’ but have never shared them online since ‘nobody else would be interested’. I encourage you to give it a try, as you never know where it may take you.