Projects





Mosquito Larvae Detection
Purpose:
Counting mosquito larvae in an aliquot is a tedious task faced by PhD students researching mosquito population control. This paper presents a machine learning approach to this problem, leveraging a minimal dataset of only 96 images. The goal is to develop a model that can accurately detect and count mosquito larvae in images taken in a laboratory environment.
Dataset:
The model's inputs are images of mosquito larvae and mosquito eggs in an aliquot, and the output is the location, dimensions, and classifications of the objects detected within these two classes. Initially, the model was trained to detect live larvae only, as this is the targeted class to be identified. This resulted in the eggs occasionally being misclassified as larvae, so the model is now trained to distinguish between live larvae and eggs to reduce this error. Due to the limited nature of the dataset, a transfer learning method is implemented using the generic object detection model YOLOv8. The dataset consists of 96 images of size 2592 by 1944 pixels. The images have a uniform background and lighting and contain three classes of objects: live larvae, dead larvae, and eggs. Because there are very few samples of dead larvae in the dataset, this class is excluded from the training process. Each object within the images is labeled by class with bounding boxes tightly surrounding them. The data is randomly permuted and split as follows:- Training set: 67 images (70%)
- Validation set: 19 images (20%)
- Test set: 10 images (10%)
The model is trained on the training set and the validation set was used for hyperparameter selection and early stopping. The test set is used to evaluate the final model.
Preprocessing & Tuning:
Preprocessing includes auto-orienting the images to ensure the bounding boxes match the image orientation. The images are not resized due to the small nature of the dataset, as well as to avoid requiring preprocessing during the usage of the trained model. The bounding boxes are encoded using the YOLO format, which consists of its class number and four values between 0 and 1 describing its center coordinate and height and width relative to the dimensions. Hyperparameter tuning for this model was conducted using the YOLO model tune method to optimize the model's performance. YOLO tune method uses the mutation algorithm which searches the hyperparameter space by applying small random changes to existing hyperparameters. Tuning was conducted with AdamW optimization for 93 iterations for 30 epochs each. The hyperparameters which were included in the tuning process and their final values are as follows:
Hyperparameter | Value |
---|---|
lr0 | 0.00838 |
lrf | 0.01346 |
momentum | 0.86808 |
weight_decay | 0.00041 |
warmup_epochs | 3.37112 |
warmup_momentum | 0.88987 |
box | 9.86137 |
cls | 0.44448 |
dfl | 1.59169 |
hsv_h | 0.01633 |
hsv_s | 0.54486 |
hsv_v | 0.55232 |
degrees | 0 |
translate | 0.08194 |
scale | 0.45391 |
shear | 0 |
perspective | 0 |
flipud | 0 |
fliplr | 0.53219 |
bgr | 0 |
mosaic | 0.94871 |
mixup | 0 |
copy_paste | 0 |
Training & Evaluation
The base model used is "yolov8n" and is trained using the best hyperparameters from the tuning process. Training was set to be conducted for 500 epochs with early stopping and a patience of 100. Training ended after epoch 376 and the best results were observed at 276. Figure 1 shows the labels manually added by humans alongside the model's predictions and their corresponding confidence levels. These predictions were generated by the final model on the test data that was not included in the training or validation processes.

The performance of this model is evaluated using the following metrics:
-
Precision-Recall: A plot of the trade-off between:
- Precision: the ratio of true positive predictions to the total number of positive predictions.
- Recall: the ratio of true positive predictions to the total number of actual positive instances in the data.
- Precision-Confidence: A plot of precision at different confidence thresholds.
- Recall-Confidence: A plot of recall at different confidence thresholds.
- F1-Confidence: A plot of the F1 score at different confidence thresholds. The F1 score is the harmonic mean of precision and recall.
The F1 score for this model has a peak value of 0.94 at a confidence threshold of 0.32.
Distribution Shift:
While this model has been highly evaluated for its performance, its ability to generalize is not thoroughly proven due to the minuscule size of the test set. Since all training was conducted using images from the same source and in the same setting, it is likely that the model will not generalize well to photos taken under different conditions, such as those with a different background or lighting. Any variation in these factors could significantly impact the model's ability to accurately detect and classify mosquito larvae.




Source: mosquito_larvae_counter_YOLOv8
Optimal Sailor

Contributions
Takeaways
This was my first project in which I developed software for a client. My role incorporated communication, project management, and software development. The minimum viable project agreed upon at the start was completed early and our team continued the project by implementing additional features at the requests of our client.Source: The source code for this project not available to the public
CarbonZero







Contributions
My primary contribution was in creating the forum through which users can create and comment on posts. Aside from this I contributed by creating the scoring system, the experience and leveling system, and assisting in making components on other pages functional such as the leaderboard.Takeaways
This project was the second web application I've contributed to. There wasn't a lot to learn since the tech-stack was mostly the same as with the previous one. One of the key differences in this experience was that most of the development took place within a span of a few days rather than weeks. Working with a tech stack I was familiar with enabled me to be more productive as well as focus on implementing good coding practices rather than being primarily concerned with getting the app to work.Source: Sus-Gawky Deployment Meteor blog post University of Hawai'i News article
Warrior Ride Buddies

Contributions

Takeaways
Through the creation of this project, I learned almost everything I know now about web development. Going through tutorials doesn't quite have the same educational value as tackling problems on your own (with the help of stackoverflow). Prior to working on this project, I had only a vague understanding of all the tools and concepts which were introduced to me in the course for which this project was made, however, I now have a much richer understanding of these tools as well as confidence in applying them.Source: warrior-ride-buddies
Project information page
Database Program

Source: yongsungm/database-program
Online compiler
Papers
Essays
What Makes a Good Website?
Adobe Flash.
Adobe ended its development of flash at the end of 2020, resulting in the discontinuation of browser support for all Flash plug-ins. In my early days of browsing the internet circa 2003, I'd spend most of my computer time playing online flash games or watching Flash animations of stick-figures and creepy cartoons. Occasionally I'd visit the website of a band I liked or of a random project someone shared and the entire page would be created with Flash. This allowed for a fully interactive web experience in which the whole page might react to the movements of your cursor or the input of your keyboard. It wasn't all good though. Especially with the hardware and bandwidth limitations of the average consumer in the early 2000s, coming across a Flash website would often result in an unpleasant experience in which the page was slow to react, would crash your browser, or even possibly freeze your computer. According to an article written by Mike Tee, a couple major reasons Flash support was discontinued was due to its security vulnerabilities and its difficulty integrating into mobile platforms. Since such a large portion of internet browsing is now conducted through mobile devices, it's important for website creators to make their pages pleasant to look at and interact with on any device.
UI frameworks
User interface (UI) frameworks make the task of creating websites that are adaptive to any device (and its resolution) much simpler and more accessible to even novice developers. A framework provides a library of pre-developed website components including menus, buttons, formatted containers, and text input fields. While it still takes work to put these components together to make a functional and aesthetically pleasing website, it takes a lot less work and typically provides better results than having to create and format every aspect of a page from scratch. The widgets provided by a UI framework were developed with the concept of "mobile-first design" in mind. The basic idea of mobile-first design is that a website will look good and be easy to use on a small screen, and then simply adapt to a larger screen if needed. This is an important concept to have in mind since most development probably takes place on a larger screen. In my (limited) experience creating websites using only HTML and CSS, this concept has been inconceivable to implement. It takes enough effort to format a page for my 15.5 inch screen, but having it adapt to a smaller window size without it resulting in sideways scroll bars as well as ruining the proportions of different elements is something I simply don't know how to do. For this reason, I am grateful to learn about and use UI frameworks, even though web design is not an aspect of computer science which I am particularly enamored by.
Modernization
At the time of writing this essay, it seems that just about any small business, charity, or personal project has a clean, adaptive, responsive, and modern-looking website. The barrier-to-entry for solid web design has seemed to have gone down, but it seems to have been at the cost of creative web design. I recently revisited the website of Gorillaz, who were one of my earliest favorite bands, and as I expected, it is no longer the flash wonderland I remember it to be. Now it's essentially a cookie-cutter landing page with a modern menu linking to merchandise and social media pages. On the bright-side, this website works well when accessed through a phone and it probably won't crash anyone's browser.
If the PDF doesn't display above, click here to view it directly.