Image Processing for Fisheye Camera Image Object Detection

1. Introduction

I participated in the 2024 AI City Challenge as part of a team from UW. Our team followed an ensemble learning approach where each person performed individual experiments and trained separate detectors. One person focused on finding additional fisheye camera image data, another focused on data augmentation, and I focused on image color transformation to improve detection. Specifically, a subset of the data was black&white images, and my job was to improve performance on them. I transformed my entire dataset to black&white images and trained yolov8 detectors on my transformed data. This resulted in performance improvements on the black&white validation data.

2. Image Transformation

I followed a simple three step pipeline using OpenCV to transform my images to black & white.
  1. Convert images to HSV
  2. Perform KMeans Clustering on HSV Images to split into colored vs black&white
  3. Transform Colored Images to Grayscale/Black&White

3. Training and Evaluation of YOLO Detector

I then use the Ultralytics package to load and train a yolov8m detector on the original dataset and my transformed dataset. I then trained and compared the validation set performance of the detector trained on the original data and the detector trained on my transformed data. There was a 10% improvement in mAP50-95 for all classes and a 6% improvement in mAP50 in model performance.

Above: Performance of detector trained on original data. Below: Performance of detector trained on my transformed data.

Detector Trained on Original Data Inference

Detector Trained on Transformed Data Inference

Detector Trained on Original Data Inference

Detector Trained on Transformed Data Inference