Skip to main content

GSoC Final Report

GSoC Final Report

My journey on the Google Summer of Code project passed by so fast, A lot of stuff happened during those three months, and as I’m writing this blog post, I feel quite nostalgic about these three months.

GSoC was indeed a fantastic experience. It gave me an opportunity to grow as a developer in an open source community and I believe that I ended up GSoC with a better understanding of what open source is. I learned more about the community, how to communicate with them, and who are the actors in this workflow.

So, this is a summary report of all my journey at GSoC 2022.


Introduction

                     


                


DeepForest is a python package for training and predicting individual tree crowns from airborne RGB imagery. DeepForest comes with a prebuilt model trained on data from the National Ecological Observatory Network. Users can extend this model by annotating and training custom models.

The aim of the project was to resolve the sensitivity issue to the resolution of the input image as it's not possible to always have image data clicked from a certain height.

It was achieved by robust training of the model on data on various resolutions and checking whether the evaluation score was for the prediction of data.

The codebase for DeepForest can be found here

Goals of the Project

  • To get the NeonTreeEvaluation dataset and resample all the data with various resolutions and check whether the data is fit to be evaluated.
  • Evaluating the data on those resolutions and creating a curve to see a pattern of evaluation scores
  • Training of the model on urban tree detection data and predicting test files and checking for the accuracy of output results
  • Training of the model on OSBS dataset by splitting the rasters into certain patch sizes with a certain overlap of images and then predicting the test files

Task Completion

Contributions before GSoC'22 are here

My contributions to deepforest are here

Blogs

GSoC projectlink
Start of the coding periodlink
My GSOC workflowlink
Creating flutter packageslink
Prediction through DeepForestlink
AWS CLI— Know its Applications and Benefitslink
Sensitivity of the model to input resolutionlink
Deepforest and Retinanetlink
Deepforest Model Traininglink
Model training on OSBS datasetlink
Evaluation of predicted datalink
Deep Learninglink

Research accomplished

  • Researched and contributed to the wrapping of raster files into certain resolutions and training of model on these rasters to improve the accuracy of model prediction on various heights.
  • Contributed on getting any memory and computational error while training of large dataset at once, therefore to avoid it we can split that raster into small sizes and get a single training file containing information of multiple images, thereafter training the model on those various images.
  • Researched on the evaluation of NeonTreeEvaluation on various resolutions after training the model on Urban tree detection.
  • Researched deep-learning and neural networks on object detection model with Retinanet and Resnet_50, and contributed to annotating raster's by converting them into shapefiles.
  • Using clusters for high-end computation by using multiple GPU support for training and testing of data
  • Worked on docker-compose and multiple docker images, and contributed to GitHub actions and working of CI/CD.
  • Researched package management and deployment in various frameworks such as PythonFlutterNodeC++ and server deployment and server configuration of Apache, AWS, Nginx and Shine
  • Contributed to system design and working of data structures and algorithms.

Future Goals

I will work on robust training of models on various datasets with certain resolutions so that we can reach better accuracy, visualization of the urban tree detection data results, checking for the evaluation score of NeonTreeEvaluation after training our model on urban tree detection data, sample images of before and after training on the urban tree detection data for some NeonTreeEvaluation plots.

I plan to continue contributing to Weecology after the completion of GSoC'22 and stay an active contributor to it.

Acknowledgment

First, I would like to thank my mentors Ben Weinstein, Henry Senyondo, and Ethan White. They really believed in our potential, encouraged us to talk to the community, and show us some great opportunities. They were an amazing team of mentors and I will always be thankful to them. Without them, I would probably never would had submitted a project to GSoC.

Henry Senyondo deserves special recognition for his unwavering support and leadership, he always made sure that we as interns didn't have any problems, Thanks to Ben Weinstein for always guiding me to the codebase and mentoring me on how can I achieve my goal and I learned a lot with him about deep-learning.

Comments

Popular posts from this blog

Start of the Coding Period

Start of the Coding Period After the admission to the GSoC program, there is a time period to get started with the project, contact the mentors and so on. After this, the Coding Period starts. This year, it started on May 27th. In my case, I had already contributed to DeepForest, so I had already set up my working environment even before the proposal submission. Thus, I dedicated this period to add detail to my proposal and to discuss with my mentors who were actually very helpful and were always ready to guide and discussed how to tackle the different tasks. I started by checking some papers on multi class object detection and how Resnet works, similar projects and going issue by issue in DeepForest to find all feature requests related to my project. Afterwards I outlined a list of all the methods with their priority and workflow for the whole project which was then discussed with my mentors. I immediately started with a pull request on making the model able to interact with multiple ...

Evaluation of predicted data

Evaluation of predicted data To convert the overlap between predicted bounding boxes and ground truth bounding boxes into a measure of accuracy and precision, the most common approach is to compare the overlap using the Intersection over Union (IoU) metric. IoU is the ratio of the overlap area of ​​the predicted polygon box with the ground truth polygon box divided by the area of ​​the combined bounding box. The IoU metric ranges from 0 which is not overlapping at all to 1 which is totally overlapping. In the wider computer vision literature, the common overlap threshold is 0.5, but this value is arbitrary and ultimately irrelevant to any particular ecological problem. We treat boxes with an IoU score greater than 0.4 as true positives, and boxes with scores less than 0.4 as false negatives. A value of 0.4 was chosen for threshold-based visual assessment, which indicates good visual agreement between predicted and observed crowns. We tested a range of overlap thresholds from 0.3 (less ...