{"id":19454128,"url":"https://github.com/ultralytics/velocity","last_synced_at":"2025-07-03T21:34:13.408Z","repository":{"id":103258396,"uuid":"126519968","full_name":"ultralytics/velocity","owner":"ultralytics","description":"Structure From Motion (SFM) for vehicle speed","archived":false,"fork":false,"pushed_at":"2025-05-11T00:05:11.000Z","size":45813,"stargazers_count":61,"open_issues_count":0,"forks_count":16,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-20T14:07:49.011Z","etag":null,"topics":["deep-learning","machine-learning","machine-vision","opencv-python","pytorch","tensorflow"],"latest_commit_sha":null,"homepage":"http://ultralytics.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ultralytics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null},"funding":{"github":"glenn-jocher","patreon":"ultralytics","open_collective":"ultralytics"}},"created_at":"2018-03-23T17:46:15.000Z","updated_at":"2025-05-17T20:16:53.000Z","dependencies_parsed_at":"2024-01-08T00:20:59.216Z","dependency_job_id":"eb5190fd-9fca-49cd-a3bd-8898c592c105","html_url":"https://github.com/ultralytics/velocity","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ultralytics/velocity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fvelocity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fvelocity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fvelocity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fvelocity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ultralytics","download_url":"https://codeload.github.com/ultralytics/velocity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fvelocity/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263407708,"owners_count":23461903,"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","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":["deep-learning","machine-learning","machine-vision","opencv-python","pytorch","tensorflow"],"created_at":"2024-11-10T17:08:05.483Z","updated_at":"2025-07-03T21:34:13.377Z","avatar_url":"https://github.com/ultralytics.png","language":"Python","funding_links":["https://github.com/sponsors/glenn-jocher","https://patreon.com/ultralytics","https://opencollective.com/ultralytics"],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://www.ultralytics.com/\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/ultralytics/assets/main/logo/Ultralytics_Logotype_Original.svg\" width=\"320\" alt=\"Ultralytics logo\"\u003e\u003c/a\u003e\n\n# 🚗 Introduction\n\nWelcome to the [Ultralytics Velocity](https://github.com/ultralytics/velocity) repository! Here, we delve into the intersection of [Machine Learning (ML)](https://www.ultralytics.com/glossary/machine-learning-ml) and [Structure From Motion (SFM)](https://en.wikipedia.org/wiki/Structure_from_motion) to estimate the speed of vehicles using image analysis. Our objective is to enhance vehicle speed estimation methodologies and provide a foundation for future research and practical applications in fields like [traffic management](https://www.ultralytics.com/blog/ai-in-traffic-management-from-congestion-to-coordination) and [autonomous systems](https://www.ultralytics.com/glossary/autonomous-vehicles).\n\n[![Ultralytics Actions](https://github.com/ultralytics/velocity/actions/workflows/format.yml/badge.svg)](https://github.com/ultralytics/velocity/actions/workflows/format.yml) \u003ca href=\"https://discord.com/invite/ultralytics\"\u003e\u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/1089800235347353640?logo=discord\u0026logoColor=white\u0026label=Discord\u0026color=blue\"\u003e\u003c/a\u003e \u003ca href=\"https://community.ultralytics.com/\"\u003e\u003cimg alt=\"Ultralytics Forums\" src=\"https://img.shields.io/discourse/users?server=https%3A%2F%2Fcommunity.ultralytics.com\u0026logo=discourse\u0026label=Forums\u0026color=blue\"\u003e\u003c/a\u003e \u003ca href=\"https://reddit.com/r/ultralytics\"\u003e\u003cimg alt=\"Ultralytics Reddit\" src=\"https://img.shields.io/reddit/subreddit-subscribers/ultralytics?style=flat\u0026logo=reddit\u0026logoColor=white\u0026label=Reddit\u0026color=blue\"\u003e\u003c/a\u003e\n\n## 🎯 Project Objectives\n\nThis project aims to leverage advanced [ML](https://www.ultralytics.com/glossary/machine-learning-ml) and SFM techniques to accurately estimate vehicle speeds from various forms of imagery. By developing these methods, we hope to contribute valuable tools applicable to traffic monitoring, [autonomous driving systems](https://www.ultralytics.com/solutions/ai-in-automotive), and road safety analysis.\n\n## 📸 Dataset\n\nCurrently, a public [dataset](https://www.ultralytics.com/glossary/benchmark-dataset) is not provided with this repository. The methods are designed for integration with custom datasets. If you possess relevant imagery or wish to collaborate on applying these techniques, please contact us. For general dataset needs, explore resources like [Roboflow](https://roboflow.com/?ref=ultralytics) or public datasets like [COCO](https://docs.ultralytics.com/datasets/detect/coco/).\n\n# 📋 Requirements\n\nTo execute the code within this repository, ensure you meet the following prerequisites:\n\n- **Python 3.7+**: Install [Python](https://www.python.org/) and use [pip](https://pip.pypa.io/en/stable/) to set up the necessary libraries:\n\n  ```bash\n  pip3 install -U -r requirements.txt\n  ```\n\n  The `requirements.txt` file includes essential Python packages such as:\n\n  - [`numpy`](https://numpy.org/): Fundamental package for numerical computation.\n  - [`scipy`](https://scipy.org/): Library for scientific and technical computing.\n  - [`torch`](https://pytorch.org/): An open-source [deep learning](https://www.ultralytics.com/glossary/deep-learning-dl) framework ([PyTorch](https://www.ultralytics.com/glossary/pytorch)).\n  - [`opencv-python`](https://pypi.org/project/opencv-python/): [OpenCV](https://opencv.org/) library for [computer vision](https://www.ultralytics.com/glossary/computer-vision-cv) tasks.\n  - [`exifread`](https://github.com/ianare/exif-py): Library to read Exif metadata from image files.\n  - [`bokeh`](https://bokeh.org/) (optional): For interactive data visualization.\n\n- **MATLAB 2018a or newer**: Some scripts require [MATLAB](https://www.mathworks.com/products/matlab.html). Clone the common functions repository and add it to your MATLAB path:\n\n  ```bash\n  git clone https://github.com/ultralytics/functions-matlab\n  ```\n\n  Then, within MATLAB:\n\n  ```matlab\n  \u003e\u003e addpath(genpath('/path/to/functions-matlab')) % Replace /path/to/ with the actual path\n  ```\n\n  Ensure the following MATLAB toolboxes are installed:\n\n  - `Statistics and Machine Learning Toolbox`\n  - `Signal Processing Toolbox`\n\n# 🏃 Run\n\nThis repository offers various methods for vehicle speed estimation using SFM and ML. While detailed run instructions are context-dependent, the core scripts leverage the libraries listed in the requirements. If you're interested in applying these techniques or need specific guidance on execution, please don't hesitate to reach out or raise an [Issue](https://github.com/ultralytics/velocity/issues).\n\n\u003cimg src=\"https://github.com/ultralytics/velocity/blob/main/results.jpg\" alt=\"Sample speed estimation results visualization\"\u003e\n\n# 📚 Citation\n\nIf this repository contributes to your research or project, please cite it using the following DOI:\n\n[![DOI](https://zenodo.org/badge/126519968.svg)](https://zenodo.org/badge/latestdoi/126519968)\n\n# 🤝 Contribute\n\nWe actively welcome contributions from the community! Whether it's fixing bugs, proposing new features, or enhancing documentation, your input is highly valued. Please see our [Contributing Guide](https://docs.ultralytics.com/help/contributing/) for more details on how to get started. We also encourage you to share your experiences with Ultralytics projects by completing our brief [Survey](https://www.ultralytics.com/survey?utm_source=github\u0026utm_medium=social\u0026utm_campaign=Survey). A huge 🙏 thank you to all our contributors!\n\n[![Ultralytics open-source contributors](https://raw.githubusercontent.com/ultralytics/assets/main/im/image-contributors.png)](https://github.com/ultralytics/ultralytics/graphs/contributors)\n\n# ©️ License\n\nUltralytics provides two licensing options to accommodate different use cases:\n\n- **AGPL-3.0 License**: This [OSI-approved](https://opensource.org/license/agpl-v3) open-source license is ideal for students, researchers, and enthusiasts keen on open collaboration and knowledge sharing. It promotes transparency and community involvement. See the [LICENSE](https://github.com/ultralytics/velocity/blob/main/LICENSE) file for full details.\n- **Enterprise License**: Designed for commercial applications, this license permits the seamless integration of Ultralytics software and AI models into commercial products and services, bypassing the open-source requirements of AGPL-3.0. If your project requires commercial licensing, please contact us through [Ultralytics Licensing](https://www.ultralytics.com/license).\n\n# 📬 Contact Us\n\nFor bug reports, feature suggestions, and contributions, please visit [GitHub Issues](https://github.com/ultralytics/velocity/issues). For broader questions and discussions about this project or other Ultralytics initiatives, join our vibrant community on [Discord](https://discord.com/invite/ultralytics)!\n\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-github.png\" width=\"3%\" alt=\"Ultralytics GitHub\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://www.linkedin.com/company/ultralytics/\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-linkedin.png\" width=\"3%\" alt=\"Ultralytics LinkedIn\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://twitter.com/ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png\" width=\"3%\" alt=\"Ultralytics Twitter\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://youtube.com/ultralytics?sub_confirmation=1\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png\" width=\"3%\" alt=\"Ultralytics YouTube\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://www.tiktok.com/@ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png\" width=\"3%\" alt=\"Ultralytics TikTok\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://ultralytics.com/bilibili\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-bilibili.png\" width=\"3%\" alt=\"Ultralytics BiliBili\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://discord.com/invite/ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png\" width=\"3%\" alt=\"Ultralytics Discord\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultralytics%2Fvelocity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fultralytics%2Fvelocity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultralytics%2Fvelocity/lists"}