Autonomous Tram Systems: A Student Vision for Adelaide’s Transport

In this week’s edition, we feature our first-ever student project to kick off this new series. Here we interviewed Quoc Anh (Bruce) who is nearing the end of his Master’s degree in AI & ML. We got him to tell us all about his project in the hopes of inspiring you to pursue your passions, since you never know where it might lead you.

Masters in AI student enjoying a relaxing day at the beach

Just in short, I follow my own credo: Train Body – Mind – Spirit. Keep myself: Consistent – Disciplined – Focused.

About Quoc Anh

Q: “Tell us a bit about yourself and what you enjoy doing in your free time?”

Hi, My name is Quoc Anh (Bruce) and I’m in my second year Master’s degree in Artificial Intelligence and Machine Learning. To unwind, in my spare time, I enjoy lifting weights, practising combat sports, reading good books, and meditation.


What inspired your project?

Q: Can you briefly explain your project to me, assuming I have no technical background? 

The main goal of my project is to build a “smart navigation system” that allows trams in busy cities to operate autonomously and safely. Instead of relying on a driver, the tram would use cameras and AI to understand its surroundings, avoid obstacles, and move smoothly along its route.

Q: What problem or knowledge gap inspired your project?

Nowadays, AI application in self-driving vehicles is no longer a strange topic. Tesla is a notable case when it comes to autonomous driving (AV) technology, but trams still rely heavily on human operators. I wanted to explore how AI and computer vision could fill this gap by making trams more autonomous, mimicking how self-driving cars are being developed.

the main tools were deep learning model: YOLOv8 for detecting obstacles

Technical approach 

Q: which data sources did you use, and how did you collect/ preprocess them? 

My project employs variety of data sources since it’s divided by 4 main stages, each stage requires different variants of dataset. So far, I adopted public driving datasets, which are KITTI Object Detection (https://datasetninja.com/kitti-object-detection) and BDD100K (https://datasetninja.com/bdd100k) dataset for the purpose of object localisation. The original data sources are presented in JSON format, so I had to preprocess them into a format suitable for training deep learning model, which is YOLO. The final format is .txt file with bounding box coordinates.

Q: What ML/Statistical methods/ tools did you use the most? 

In the first stage which I completed, the main tools were deep learning model: YOLOv8 for detecting obstacles.

 

Key Challenges 

Q: We all know real-world data is messy. Were there any surprising challenges with the data or computational limits? 

Yes, during the process, I encountered with a plethora of stubborn challenges and delays, here are the lists:

  1. The KITTI dataset annotations are not in YOLO format, which required separate datasets for training and testing. In specific: KITTI serves as test set, BDD100K serve as train set.

  2. Training YOLO model on my local machine was very computationally expensive I had to deploy my entire project on Google Colab Pro with GPU T4 and enhanced RAM.

  3. A persistent annotation conversion mismatch caused misalignment between label files and image dimensions, which required manual verification and debugging.

  4. An overly strict outlier removal method led to the loss of valid data and reduced dataset diversity, forcing me to revise the filtering strategy.

  5. One of the biggest challenge I faced was the complexity of training object detection model, specifically the YOLOv8 model and its variants (YOLOv8n vs. YOLOv8x). It turned out to be a lot tougher than I expected, especially for a beginner level. It requires seeking and downloading KITTI Object Detection Benchmark and BDD100K datasets, which took me more than a day; organising them in an appropriate structure; conducting data cleaning and data pre-processing, converting to the exact YOLO format. Another stubborn issue was that training the YOLOv8 model on my local machine caused my kernel crashed before finishing an epoch.

    Q: How did you address these data issues?

    I worked around these problems by reorganising the workflow, solving each problem one by one. For the runtime issue, I had to search other platforms, which is Google Colab Pro with GPU T4, to train my model. In the end, I had a pipeline that ran more reliably and allowed me to continue the project.

Could autonomous trams be on the horizon for Aussies?

Q: How do you see your findings being applied in the real world? 

If developed further, I hope that my work would contribute to and serve as a resource to the map of robotics and autonomous vehicles (AVs). Nonetheless, I also hope if this work is funded by South Australia Government in the future, it would help cities like Adelaide or Melbourne operate semi-autonomous tram systems, thereby saving time and operational costs, and delivering significant socio-economic benefits

Start simple and build step by step. Prepare necessary setups in advance. Study assumed knowledge for the project.

Personal & Professional growth 

Q: how has this experienced shaped your career goals in data science or related fields? 

It strengthened my interest in computer vision and robotics. I’d like to pursue a career in autonomous systems, whether in transport, defence, or smart city technologies.

Looking ahead

Q: Congratulations for making it this far in your learning journey! So what's next for you on the horizon once you graduate? 

I plan to keep working on AI and computer vision projects, either in industry or further research.


Next
Next

After the Storm: Reflections on Endurance and Success