This repository conatains codes and descriptions submitted to K-Water Big Data Competition. Below are the frameworks used for the project.
This code connects devices on the same network in real time. Since the goal of our project is to detect sewage damages in real time, we load YOLOv8 model that trained with custome dataset. This code uses CV2 library to capture images with camera so that the loaded model can recognize the breakage of the sewer in real time.
- How to connect your PC to your smartphone
- Install 'iPCamera - High-End Network Cam' application on your smartphone
- Connect the smartphone and PC to the same network
Once the connection between the two devices is complete, a pop-up window of YOLOv8 inference will appear on the PC, and you can verify that the type of damage in the video is appropriate.
This code uses the Ultralytics YOLOv8 model to train a computer vision model that automatically detects breakages in sewage pipes and assess the model's performance via mAP.
- Create a yaml file for custom dataset - After constructing a dataset storing image files and annotation files for each type of sewer pipe breakage using the Roboflow platform, create a yaml file for training the YOLOv8 model. In the
Training
,Validation
, andTest
folders, respectively, images and labels folders were organized and saved. - Model learning - We import YOLOv8 model that pre-trained with COCO datasets and train it with 6,600 custom datasets. We tested various parameters, including epochs, patience, batch, and imgsz, allowing us to identify the model with optimal performance.
- Performance evaluation - Object detection and performance evaluation were performed using the validation set and the test set. mAP is used as a performance measurement indicator.
- Checking object detection results - Perform object detection on the test set and saved the images with the bbox in the set path so that you can check the results.
The code is designed to enable self-driving cars to actually drive. The car is a 'ROBO KIT (Series)' product of 'Roborobo', and you need to download the software from Roborobo's official site to connect your car to your laptop. Before running the code, you need to install the downloaded software and then install 'RobokitRS' as well. This can simply be done through the pip install RobokitRS
command on your terminal or your Jupyter notebook cell.
Below is a picture of a demonstration of the self driving code. The operation video can be found from here.
Below is a picture of a demonstration of the object detection code. The operation video can be found from here.
🥉3rd place