My GSoC Adventure: Update #1

Introduction
Hello! My name is Muhammed Magdy, and I am excited to share my journey as part of the Google Summer of Code (GSoC) program. I am working with Weecology on a project aimed at Advancing Bird Detection and Classification in Hand-Held Airborne Imagery. This project has two main objectives:
Refining and optimizing the DeepForest model for accurate bird detection and classification in hand-held plane imagery.
Conducting a comparative analysis of bird count accuracy by species to provide valuable insights into the model's effectiveness.
Over the past two weeks, I have made significant progress, and I am thrilled to share my updates.
Work Done in the Past Two Weeks
In the past two weeks, I focused on two main tasks:
Getting familiar with PyTorch
Submitting pull requests (PRs) for documentation and code enhancements
I also trained the old DeepForest model on my data, achieving 90% precision but a very low recall.
Detailed Explanation of My Work
Learning PyTorch
As this is my first professional project with PyTorch, I needed time to sharpen my skills. I watched several tutorials and then started applying what I learned.
Pull Request 1: Documentation
For my first task, I improved the project documentation. The documentation previously lacked detailed instructions on how to train the DeepForest detector for multiclass annotations and how to modify the regression head for new classes. My updates addressed these gaps.
Pull Request 2: Code Review
My second task involved enhancing the project's code. Specifically, I worked on dropping any empty labels in thesplit_raster function. This PR is currently under review, and the initial feedback suggests I need to restructure the code to find a better logic for the issue. I am prepared to make any necessary revisions based on the reviewers' comments.
Exploring Data and Training Models
I have been working with a dataset of multiple bird species. Using PyTorch and the DeepForest Bird Detector, I prepared the data and trained the old DeepForest model as a baseline for my future work. So far, the preliminary results show 90% precision and less than 10% recall. While the recall rate is low, this serves as a baseline, and I am optimistic about further improvements.
Challenges and Learnings
During these two weeks, I encountered several challenges:
Lack of computational power for training a computer vision model on even medium-sized data
Data quality issues
Difficulties in using a pretrained model on my current data
These experiences have been invaluable in teaching me several key lessons:
- Start small then advance, I built the first model with small amount of training data and not more than 30 epochs to match the resources I have available
Next Steps
Looking ahead, my next steps include:
Searching for a better model capable of detecting small objects from long distances
Solving any other issues that arise in the next two weeks
Building a more robust pipeline for preparing the data
I am eager to continue my work and see the project's progress.
Conclusion
In conclusion, the past two weeks have been highly productive. I have learned a lot and am excited about the upcoming tasks. Stay tuned for more updates on my GSoC journey!
PS: As suggested by my mentor Henry Senyondo, to become a better machine learning engineer, I need to develop better software engineering skills and a problem-solving mindset. To that end, I have started solving LeetCode problems and am aiming to complete theNeetCode150 problem list during my training. If anyone is interested in joining me, reach out to me onLinkedIn, and we can encourage each other. I will share my progress every two weeks at the end of my blog.




