{"id":26702355,"url":"https://github.com/alexandresajus/weather-classification","last_synced_at":"2025-08-20T11:22:16.827Z","repository":{"id":91226595,"uuid":"427938466","full_name":"AlexandreSajus/Weather-Classification","owner":"AlexandreSajus","description":"Classifying street-level images according to weather to help the training of autonomous vehicles","archived":false,"fork":false,"pushed_at":"2022-01-20T11:03:07.000Z","size":61884,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T02:41:06.741Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlexandreSajus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-14T13:37:16.000Z","updated_at":"2024-10-18T02:19:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"1af74c09-e139-4bfb-8a55-1571b2e07d01","html_url":"https://github.com/AlexandreSajus/Weather-Classification","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlexandreSajus/Weather-Classification","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FWeather-Classification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FWeather-Classification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FWeather-Classification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FWeather-Classification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexandreSajus","download_url":"https://codeload.github.com/AlexandreSajus/Weather-Classification/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FWeather-Classification/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271307448,"owners_count":24736910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-27T02:37:33.126Z","updated_at":"2025-08-20T11:22:16.822Z","avatar_url":"https://github.com/AlexandreSajus.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weather Classification\nClassifying street-level images according to weather to help the training of autonomous vehicles. This work has been done as a student project for Valeo.\n\n![](media/acdc_example.png)\n\n## Strategy\n- **Day/Night**: RandomForest on average RGB and HSV values\n- **Clear/Rain/Snow**: Simple CNN with Dropout\n- **NoFog/Fog**: Simple CNN\n\nTraining on a mix between two manually cleaned datasets:\n- **ACDC** ( https://acdc.vision.ee.ethz.ch/ )\n- **Berkeley DeepDrive** ( https://bdd-data.berkeley.edu/ )\n\n## Performance\n\nOn our TEST dataset (ACDC/BDD):\n- **Day/Night**: 97.8% accuracy ( Human Level Performance = 100% )\n- **Clear/Rain/Snow**: 92.0% accuracy ( HLP = 96% )\n- **NoFog/Fog**: not enough data to train and evaluate\n  \nHere is the Clear/Rain/Snow confusion matrix\n\n\u003cimg src=\"media/cm_precipitation.jpg\" alt=\"cm_precipitation\" width=\"400\"/\u003e\n\n\nOn unseen datasets:\n(dataset and results can be found in inference_images and inference_results.csv)\n\n- **Mapillary**: 73% accuracy on 19 images\n- **Valeo Woodscape**: 40% accuracy on 10 images\n\nThis shows a very high training/serving skew that indicates that the models must be retrained on images captured in the same way as the inference images, as images from different datasets are too far from each other for a deep learning approach (example: observe the differences between a bdd and a woodscape image in the folder \"inference_images\"). Maybe a more robust, non-DL approach would have been enough.\n\n## Setup\n- clone the repository\n- pip install -r requirements.txt\n\n## Run\n- Put images to test in the inference_images folder\n- Run inference.py\n- The results will be saved in inference_results.csv\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandresajus%2Fweather-classification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandresajus%2Fweather-classification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandresajus%2Fweather-classification/lists"}