As a part of working with Geodesign and Geodesignhub, I am involved in many side projects, some commercial work and some just as a hobby. I recently got involved in a very interesting and challenging side project around machine learning, port operations with significant implications for marine environments and I thought I will share my experience.
Ports play a major role in the modern economy. Often times these ports are near cities and major land based transport network and also in close proximity to valuable marine environments, river basins and drainage ecosystems. Coastal management and “coastal geodesign” is a area that interests me personally. Coastal areas are interesting becuase of the mix of environmental, economic, natural systems that are at play here. In addition, a integrated management of land and marine assets is something we do often at Geoesignhub in the context of fisheries, flood water drainge etc. Till now however, I did not really touch port operations, it is something that is critical given the large increase in ship traffic.
Airbus recently announced a machine learning / image recognition challenge. They have launched a new generation of satellites and stratospheric drones that caputre movement of ships near ports in near realtmie. The challege was to build a machine learning model to identify ships in a image with reasonable accuracy. I was immidiately intrigued, I have worked on machine learning models in Agriculture, I will share my experiences about it at a later date.
Start from zero
I have been using Python extensively for the past number of years and I have built machine learning algorithms to do various things inside Geodesignhub. Eg. see how we use it from a earlier blog post. Image recognition has been used extensively in various fields and slowly is coming into geo-sciences. For e.g. look at onesoil.ai and others. I had heard a lot about neural networks etc. and I wanted to understand it deeper beyond the marketing hype and buzzwords.
Given my responsitibiltes with Geodesignhub and GUTMA, I am plenty busy but I challenged my self to see if I can stretch to do this as side project. Generally, I spend half a day every week working on a bunch of ideas around geodesign. Some become products (e.g. geoforage.io), some just demonstrators like this that lead to something bigger. This is also a company policy: when you work for Geodesignhub, a part of your time will be spent on developing open source tools or contributing to them.
Anyway, as a total newbie I jumped in, it is a great feeling to not know anything about a subject and try to learn it from scratch. I looked up how image recognition is done in medcial sciences and came across UNET and decided to try it out. I created a small repository and started to play with model parameters, image processing and model performance. I also looked up some of the other newer model techniques like R-CNN mask, Fast CNN etc. I settled on the Unet model because I thought it would be a great first step to see and test. The others seemed to be slightly complicated and linked to ImageNet. I dont think I understand everything about them but I got a good introdcution on how they work.
Take a look a the model on the Kaggle page and scroll to the bottom, you will see the input image and the output predictions. This is in no way going to win a prize or be in the top 100, in fact the competition winner has a accuracy of .85 and my kernel as a accuracy of .7160. There is a long way to go still, none the less I am very happy that I was able to take on a challenge, commit my self to it, not give up and have a submission in time. There is much to learn, I still dont understand exactly how these different models work. Or why some models are faster than others and how to tweak the training set. Why GPU processsing is so much faster for machine learning or how Kaggle can offer cutting edge GPUs for free to the public to test models. They are so expensive! In hindsight, I would recommend just to use Kaggle and forget about what I did: setup my own repository and server.
Why it matters
Geodesignhub provides solutions to help manage problems of design and geo-management. You can think of it as project management for geo-problems. Our software supports negotiations and execution of these negotiated outcomes. The model described above will only get better and we will continue developing it to use as a part of our offering for coastal managment solutions. How to optimize port operations? How to manage flow of ships in a critical marine environments? How do decide collectively in a marine / littoral context? Using our open API system we can link this type of work into the decision making and operations management. As I and the company develops deeper expertise in this field, we are confident that we can help ports, marine and littoral organizations in their management using the absolute cutting edge technologies.
I plan to take on challenges like these every six months to never be complacent, develop deep expertise and push the my personal boundaries.