{"id":24719309,"url":"https://github.com/simon-gardier/image-classifier","last_synced_at":"2025-10-10T04:12:26.438Z","repository":{"id":228154292,"uuid":"489160360","full_name":"simon-gardier/image-classifier","owner":"simon-gardier","description":"📷 Image classifier with Dynamic Time Warping","archived":false,"fork":false,"pushed_at":"2024-04-01T09:10:50.000Z","size":340,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-05T20:45:50.911Z","etag":null,"topics":["algorithms","bounded-queue","data-structures","dynamic-time-warping","info0902"],"latest_commit_sha":null,"homepage":"https://en.wikipedia.org/wiki/Dynamic_time_warping","language":"C","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/simon-gardier.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}},"created_at":"2022-05-05T23:58:47.000Z","updated_at":"2024-04-01T09:11:01.000Z","dependencies_parsed_at":"2024-03-17T10:28:02.181Z","dependency_job_id":"43390369-473a-4466-8d83-812bf9fdac4b","html_url":"https://github.com/simon-gardier/image-classifier","commit_stats":null,"previous_names":["simon-gardier/image-classifier"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simon-gardier/image-classifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-gardier%2Fimage-classifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-gardier%2Fimage-classifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-gardier%2Fimage-classifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-gardier%2Fimage-classifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simon-gardier","download_url":"https://codeload.github.com/simon-gardier/image-classifier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-gardier%2Fimage-classifier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002691,"owners_count":26083442,"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-10-10T02:00:06.843Z","response_time":62,"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":["algorithms","bounded-queue","data-structures","dynamic-time-warping","info0902"],"created_at":"2025-01-27T11:17:22.667Z","updated_at":"2025-10-10T04:12:26.408Z","avatar_url":"https://github.com/simon-gardier.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📷 Image classifier with Dynamic Time Warping\n![Release](https://img.shields.io/badge/Release-v1.0-blueviolet?style=for-the-badge)\n![Language](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge)\n\n\u003cdiv style=\"display: flex; justify-content: space-around; align-items: center;\"\u003e\n  \u003cimg src=\"ressources/illustration.png\" alt=\"Classifier illustration, query on top, classes on the bottom\" style=\"width: 70%;\"/\u003e\n\u003c/div\u003e\n\nImage classifier for [ppm images](https://fr.wikipedia.org/wiki/Portable_pixmap).\n\nTo find the nearest neighbour for the query, the tool implements a bounded priority queue processing the given images from the training data set. The nearest neighbour class is the guess for the query.\n\nProject carried out in the context of the Data structures and Algorithm course \"INFO0902\" given by Pr. Geurts, University of Liège.\n\nGrade : 19/20\n\nTo determine the best fit for the query, the algorithm used is [Dynamic time warping](https://en.wikipedia.org/wiki/Dynamic_time_warping)\n\n\u003cdiv style=\"display: flex; justify-content: space-around; align-items: center;\"\u003e\n  \u003cimg src=\"ressources/DTW_wikipedia.png\" alt=\"DTW illustration\" style=\"width: 70%; \"/\u003e\n\u003c/div\u003e\n\nThe training and test sets come from the [Google QuickDraw dataset](https://github.com/googlecreativelab/quickdraw-dataset).\n\n\u003cdiv style=\"display: flex; justify-content: space-around; align-items: center;\"\u003e\n  \u003cimg src=\"ressources/quickdrawpreview.jpg\" alt=\"DTW illustration\" style=\"width: 70%;\"/\u003e\n\u003c/div\u003e\n\n## Summary\n1. [Try it!](#try-it)\n2. [Data sets format](#data-sets-format)\n3. [Credits](#credits)\n\n## Try it!\n\nCompile the tool\n```console\nmake\n```\n\n### Classify one image\nTo classify one image from `testset.txt`, run :\n```console\n./NNSketch -i index -k k -o ./results trainingset.txt testset.txt\n```\n\nWhere :\n- `index` is the index of the image in `testset.txt`.\n- `k` is the number of images from `trainingset.txt` to use for the classification.\n\nExample :\n```console\n./NNSketch -i 1 -k 200 -o ./results trainingset.txt testset.txt\n```\n\nNote : the image selected to be classified is visible in `./results`\n\n### Evaluate the DTW performances\n\nTo test ²the algorithm on all the test set, run :\n```console\n./NNSketch trainingset.txt testset.txt\n```\n\n## Data sets format\n\nThe two data sets have the same structure :\n\n`number of images`\n\n`first image`\n- `class`\n- `number of pixels`\n- `pixels`\n\n`...`\n\n`last image`\n\n\n## Credits\n- [Simon Gardier](https://github.com/simon-gardier) (Co-author)\n- Lei Yang (Co-author)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimon-gardier%2Fimage-classifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimon-gardier%2Fimage-classifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimon-gardier%2Fimage-classifier/lists"}