A web application that performs video and image analysis, detecting potholes with computer vision.
All recordings view:
![image](https://private-user-images.githubusercontent.com/49095078/295018160-b93f7317-953a-4e3d-88ba-64ac73b6f75d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3MDkzNDUsIm5iZiI6MTcxOTcwOTA0NSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTgxNjAtYjkzZjczMTctOTUzYS00ZTNkLTg4YmEtNjRhYzczYjZmNzVkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjMwVDAwNTcyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU2MjVjMzJjNzFhY2FjNDM2NTZkMGJmNWJhZGE1OWVhZTE1MjllMTc0ZmM4YWFlZjAwMjk1ZGM4OWJmZDFkN2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.0IllWKcSESAr0XlV-D5kRtcseYe56K3H7DdmiuLWg28)
Video recording analysis results:
![image](https://private-user-images.githubusercontent.com/49095078/295018377-0ce07597-a477-400c-ba8b-c635d2ccd10f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3MDkzNDUsIm5iZiI6MTcxOTcwOTA0NSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTgzNzctMGNlMDc1OTctYTQ3Ny00MDBjLWJhOGItYzYzNWQyY2NkMTBmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjMwVDAwNTcyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMxOWJlMDExZDAwZWZlNTFkOGY4ZWYwMDljNDBkYmViZWFiZWEwZmFmYzdiMDI2MmI4YzA2NTA0NDI3MTAyNGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0._fTagfS1x9iDE_enxK2tS0FIqIrJUsXL5knHj0ScfU0)
Image recording analysis results:
![image](https://private-user-images.githubusercontent.com/49095078/295018430-7ccffe8a-3df9-42b1-9296-3d043ce77300.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3MDkzNDUsIm5iZiI6MTcxOTcwOTA0NSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTg0MzAtN2NjZmZlOGEtM2RmOS00MmIxLTkyOTYtM2QwNDNjZTc3MzAwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjMwVDAwNTcyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI1N2YzMDA3OTc0ZmExY2Q5ZTNmOWExMTMzYWM0NWVhNDdiZDUzZGQ2YWQxYjM2NDgzMzk4NjRjNWQxMDQ1MjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.7O5-vMEDVkeFQi-WTA7M1A8HAhM1_BuPaoDf9jBVMLQ)
Map view:
![image](https://private-user-images.githubusercontent.com/49095078/295018453-d0f1a276-3cca-41f2-8191-2fdd895ee705.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3MDkzNDUsIm5iZiI6MTcxOTcwOTA0NSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTg0NTMtZDBmMWEyNzYtM2NjYS00MWYyLTgxOTEtMmZkZDg5NWVlNzA1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjMwVDAwNTcyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRhOGQwZmZjZjE2ZTMyNDUyMGU2NDkwODJkZGNiNTBkNDgwMzQ0Njc0MTk3ZDU5M2NhODY3ZDZkYzk1Zjc5OWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.3gYG6AHR8od3CEpoCtPFn3K0I3OgwnVE-xUT7qGvG9o)
Go
- web application and processing managementGin
- go-router, handling url paths and templatesHTMX
,Tailwind
- interactive webpagesAlpineJS
- Google Maps data managementPython
,Flask
- web application for video/image analysisYOLOv8
- video analysis AI modelMySQL
- data storageDocker
- containerizing DB
Application contains 2 main modules.
ph-manager
- webserver on Golang, hosting web application (HTMX) and managing creation and deletion of the recordings.
ph-detector
- webserver on Python running a YOLOv8 AI model and processing video/image data to discover and store potholes and find their geolocation using GPX files.
ph-storage
- defines the filesystem for this project, storing Videos, Images, Detections, GPX files and Yolo Models.
The main processing flows look like this:
![image](https://private-user-images.githubusercontent.com/49095078/295017777-c7409bee-1582-4b84-a62a-377f06d88435.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3MDkzNDUsIm5iZiI6MTcxOTcwOTA0NSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTc3NzctYzc0MDliZWUtMTU4Mi00Yjg0LWE2MmEtMzc3ZjA2ZDg4NDM1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjMwVDAwNTcyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYyNjU2MTUxMWExMTE0NTlhZmRlNWZlYWYwOTdmMTg1NWIwNmI3ZTFmNTQ5NWMyZDJlNzVhY2ZlY2IyYmJiNTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.gY61OQ_0rDm_pJQURQ_k16S7UoBJa0Re0eAeN1OShRI)
Application uses MySQL database to store data about recordings (uploaded images, videos) and detection (images of the potholes discovered)
![image](https://private-user-images.githubusercontent.com/49095078/295015889-8ecefb9d-35c7-4fc9-bd92-e513a72c84f3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3MDkzNDUsIm5iZiI6MTcxOTcwOTA0NSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTU4ODktOGVjZWZiOWQtMzVjNy00ZmM5LWJkOTItZTUxM2E3MmM4NGYzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjMwVDAwNTcyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTczZGNiZjhhZjY2MzQ0ODBhODc0ODUxNzI0OTI5MGUxZDJmNDgwMzE3MmFiYjdjZDNjZWQ3ZTA3MDM0NjVkYjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.7vzdZyv3-hVxkJnMSmOGDBrdEZPHgFM4XrkgG3o5CFQ)