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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjY3MDEsIm5iZiI6MTczOTE2NjQwMSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTgxNjAtYjkzZjczMTctOTUzYS00ZTNkLTg4YmEtNjRhYzczYjZmNzVkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgxODY5OGQ2ODhiMzI0YjUxNDBjMTI4NTczOGM0MTAyZjYzY2I0NjA1MjBkNmM4OTUzOTI2ZjU0NmM1YjY1Y2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SIgED9mIrKP-oNrSzoNHxff8ywuZjKjf5QkTRnSYAQQ)
Video recording analysis results:
![image](https://private-user-images.githubusercontent.com/49095078/295018377-0ce07597-a477-400c-ba8b-c635d2ccd10f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjY3MDEsIm5iZiI6MTczOTE2NjQwMSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTgzNzctMGNlMDc1OTctYTQ3Ny00MDBjLWJhOGItYzYzNWQyY2NkMTBmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZmZmY2NjgwOTBiYTZiOTI2OGVlMGJjODliOGZjYjQwNjk5NWU4ZGMyOGY4NTgwY2Q0ZjM1YTRhNTAzMzFjYjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Vf1IPIwJ6zKtzkyeLcKY9yp7TZakkanIpcTHnHkk33A)
Image recording analysis results:
![image](https://private-user-images.githubusercontent.com/49095078/295018430-7ccffe8a-3df9-42b1-9296-3d043ce77300.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjY3MDEsIm5iZiI6MTczOTE2NjQwMSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTg0MzAtN2NjZmZlOGEtM2RmOS00MmIxLTkyOTYtM2QwNDNjZTc3MzAwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYyMzc2NmM5ZDFhN2ZkNzU1ODFjZjAyYWUyM2U2OTA3NDUwZmVlMzlkOGY4MWZjODQyNjJjODUzOGRhOTM5NDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.PLtr6yPYB4xcFBfDCTtWiscyrYfWhijrB6ICzBiIHNw)
Map view:
![image](https://private-user-images.githubusercontent.com/49095078/295018453-d0f1a276-3cca-41f2-8191-2fdd895ee705.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjY3MDEsIm5iZiI6MTczOTE2NjQwMSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTg0NTMtZDBmMWEyNzYtM2NjYS00MWYyLTgxOTEtMmZkZDg5NWVlNzA1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEzZjE2MTQzY2M2MTYyOTQ3ZjA2NTkxMDg5ZWI1M2E1ZTdmZjgwNGU3ZmIxOWNlYmExNWQwZGI1MDMzNDQ5ZTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pYIv8lzE5-f8PCdKJsMg_uqk1BuVqrDHJ47sJ6r7jmc)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjY3MDEsIm5iZiI6MTczOTE2NjQwMSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTc3NzctYzc0MDliZWUtMTU4Mi00Yjg0LWE2MmEtMzc3ZjA2ZDg4NDM1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ2YTllNDkwNjUyMWM4YmY5NTMyZWI3MGM3YjI3NzQyODg1ZGZiYzk2NDEyMjY1ZjYyNTBiNTllYjNjNzY3MjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.7hkZeM7CqH_I5vytjUwRzLVTPv_uua8qdV_kQVG6MXY)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjY3MDEsIm5iZiI6MTczOTE2NjQwMSwicGF0aCI6Ii80OTA5NTA3OC8yOTUwMTU4ODktOGVjZWZiOWQtMzVjNy00ZmM5LWJkOTItZTUxM2E3MmM4NGYzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NDY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYyM2Q1NzcyYzFhOGExNzg3NWI2MTFkN2U3MzU4ZThlNTI1MmNmZDJhZDMwZjc5ZTBkZDA0MjMwMTUwN2M1ZjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QX4NXNkzZqrSow35lwsZNKoRxkdCD4PrJuSI8JPUyQw)