# **NanoTrack**
![Downloads](https://static.pepy.tech/badge/nanotrack)
**NanoTrack** is a lightweight and efficient object detection and tracking library designed for seamless integration with **YOLOv5** and **YOLOv8** models. It delivers **real-time tracking** with minimal resource usage, making it ideal for edge devices and systems with limited performance.
---
## **Features**
- π **Lightweight**: Optimized for minimal computational overhead.
- π― **Seamless Integration**: Fully compatible with YOLOv5 and YOLOv8.
- β‘ **Real-Time Performance**: Fast and accurate tracking for video streams.
- π οΈ **Simple API**: Easy-to-use interfaces for rapid development.
- πΉ **Video & Stream Support**: Works with video files and live camera streams.
---
## **Installation**
### **Install via PyPI**
To install NanoTrack from PyPI, run:
```bash
pip install nanotrack
```
### **Install from GitHub**
For the latest version directly from the source:
```bash
pip install git+https://github.com/ragultv/nanotrack.git
```
---
## **Usage**
### **1. Import and Initialize**
```python
from nanotrack import YOLOv8Detector, NanoTrack
import cv2
# Initialize the YOLOv8 Detector
detector = YOLOv8Detector(model_path="yolov8n.pt") # Replace with your model path
# Initialize the NanoTrack Tracker
tracker = NanoTrack()
```
### **2. Process Video for Detection and Tracking**
```python
# Load video file or webcam input
cap = cv2.VideoCapture("path_to_video.mp4") # Replace with your video file path
while True:
ret, frame = cap.read()
if not ret:
break
# Perform object detection
detections = detector.detect(frame)
# Update tracker with detections
tracks = tracker.update(detections)
# Draw bounding boxes and track IDs
for track in tracks:
x1, y1, x2, y2, _, _, track_id = track[:7]
cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
cv2.putText(frame, f"ID: {track_id}", (int(x1), int(y1) - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 255), 1)
# Display the results
cv2.imshow("NanoTrack", frame)
# Press 'q' to exit
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
```
---
## **Supported Models**
NanoTrack seamlessly works with:
- **YOLOv5**: Optimized and reliable object detection.
- **YOLOv8**: Cutting-edge detection accuracy and performance.
---
## **Example Output**
Here is an example of NanoTrack in action:
![Example Output](https://github.com/GeekAlexis/FastMOT/blob/master/assets/dense_demo.gif)
---
## **Contributing**
We welcome contributions to NanoTrack!
To contribute:
1. **Fork** the repository.
2. **Create a branch**:
```bash
git checkout -b feature-branch
```
3. Make your changes and test thoroughly.
4. **Submit a Pull Request** with a clear description.
---
## **License**
This project is licensed under the **MIT License**. See the `LICENSE` file for details.
---
## **Support**
For issues, feature requests, or questions, feel free to:
- Open an issue on our [GitHub repository](https://github.com/ragultv/nanotrack).
- Reach out with feedback or suggestions.
---
### **Letβs Track Smarter, Faster, and Lighter with NanoTrack!** π
---
Raw data
{
"_id": null,
"home_page": "https://github.com/ragultv/NanoTrack",
"name": "nanotrack",
"maintainer": "RAGUL T",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "object detection tracking kalman-filter lightweight",
"author": "RAGUL T, KARTHICK RAJA E",
"author_email": "tragulragul@gmail.com, e.karthickraja2004@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ad/fd/70337c5ec0f0ab1788c4ffdc75c929f97bd359727b46e1869ee049f381ef/nanotrack-0.2.1.tar.gz",
"platform": null,
"description": "# **NanoTrack**\r\n\r\n![Downloads](https://static.pepy.tech/badge/nanotrack)\r\n\r\n**NanoTrack** is a lightweight and efficient object detection and tracking library designed for seamless integration with **YOLOv5** and **YOLOv8** models. It delivers **real-time tracking** with minimal resource usage, making it ideal for edge devices and systems with limited performance.\r\n\r\n---\r\n\r\n## **Features**\r\n- \ud83d\ude80 **Lightweight**: Optimized for minimal computational overhead. \r\n- \ud83c\udfaf **Seamless Integration**: Fully compatible with YOLOv5 and YOLOv8. \r\n- \u26a1 **Real-Time Performance**: Fast and accurate tracking for video streams. \r\n- \ud83d\udee0\ufe0f **Simple API**: Easy-to-use interfaces for rapid development. \r\n- \ud83d\udcf9 **Video & Stream Support**: Works with video files and live camera streams.\r\n\r\n---\r\n\r\n## **Installation**\r\n\r\n### **Install via PyPI**\r\nTo install NanoTrack from PyPI, run:\r\n```bash\r\npip install nanotrack\r\n```\r\n\r\n### **Install from GitHub**\r\nFor the latest version directly from the source:\r\n```bash\r\npip install git+https://github.com/ragultv/nanotrack.git\r\n```\r\n\r\n---\r\n\r\n## **Usage**\r\n\r\n### **1. Import and Initialize**\r\n```python\r\nfrom nanotrack import YOLOv8Detector, NanoTrack\r\nimport cv2\r\n\r\n# Initialize the YOLOv8 Detector\r\ndetector = YOLOv8Detector(model_path=\"yolov8n.pt\") # Replace with your model path\r\n\r\n# Initialize the NanoTrack Tracker\r\ntracker = NanoTrack()\r\n```\r\n\r\n### **2. Process Video for Detection and Tracking**\r\n```python\r\n# Load video file or webcam input\r\ncap = cv2.VideoCapture(\"path_to_video.mp4\") # Replace with your video file path\r\n\r\nwhile True:\r\n ret, frame = cap.read()\r\n if not ret:\r\n break\r\n\r\n # Perform object detection\r\n detections = detector.detect(frame)\r\n\r\n # Update tracker with detections\r\n tracks = tracker.update(detections)\r\n\r\n # Draw bounding boxes and track IDs\r\n for track in tracks:\r\n x1, y1, x2, y2, _, _, track_id = track[:7]\r\n cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)\r\n cv2.putText(frame, f\"ID: {track_id}\", (int(x1), int(y1) - 10),\r\n cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 255), 1)\r\n\r\n # Display the results\r\n cv2.imshow(\"NanoTrack\", frame)\r\n\r\n # Press 'q' to exit\r\n if cv2.waitKey(1) & 0xFF == ord('q'):\r\n break\r\n\r\ncap.release()\r\ncv2.destroyAllWindows()\r\n```\r\n\r\n---\r\n\r\n## **Supported Models**\r\nNanoTrack seamlessly works with:\r\n- **YOLOv5**: Optimized and reliable object detection. \r\n- **YOLOv8**: Cutting-edge detection accuracy and performance.\r\n\r\n---\r\n\r\n## **Example Output**\r\n\r\nHere is an example of NanoTrack in action:\r\n\r\n![Example Output](https://github.com/GeekAlexis/FastMOT/blob/master/assets/dense_demo.gif)\r\n\r\n---\r\n\r\n## **Contributing**\r\nWe welcome contributions to NanoTrack! \r\nTo contribute: \r\n1. **Fork** the repository. \r\n2. **Create a branch**: \r\n ```bash\r\n git checkout -b feature-branch\r\n ```\r\n3. Make your changes and test thoroughly. \r\n4. **Submit a Pull Request** with a clear description. \r\n\r\n---\r\n\r\n## **License**\r\nThis project is licensed under the **MIT License**. See the `LICENSE` file for details.\r\n\r\n---\r\n\r\n## **Support**\r\nFor issues, feature requests, or questions, feel free to: \r\n- Open an issue on our [GitHub repository](https://github.com/ragultv/nanotrack). \r\n- Reach out with feedback or suggestions.\r\n\r\n---\r\n\r\n### **Let\u2019s Track Smarter, Faster, and Lighter with NanoTrack!** \ud83d\ude80\r\n\r\n---\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A lightweight object detection and tracking package",
"version": "0.2.1",
"project_urls": {
"Bug Tracker": "https://github.com/ragultv/NanoTrack/issues",
"Documentation": "https://github.com/ragultv/NanoTrack/blob/main/README.md",
"Homepage": "https://github.com/ragultv/NanoTrack",
"Source": "https://github.com/ragultv/NanoTrack"
},
"split_keywords": [
"object",
"detection",
"tracking",
"kalman-filter",
"lightweight"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3e80e77ba6a03c7349d041ca830d70cfa3096d5a8c0966254b330e80e89f2344",
"md5": "c413de92b57d3c2cfa055d822c6d5a7f",
"sha256": "db987e9c1723bab78d094941df2c2a68c76f708ec03bc544940b31af29ba9abd"
},
"downloads": -1,
"filename": "nanotrack-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c413de92b57d3c2cfa055d822c6d5a7f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 10681,
"upload_time": "2024-12-14T12:27:42",
"upload_time_iso_8601": "2024-12-14T12:27:42.092190Z",
"url": "https://files.pythonhosted.org/packages/3e/80/e77ba6a03c7349d041ca830d70cfa3096d5a8c0966254b330e80e89f2344/nanotrack-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "adfd70337c5ec0f0ab1788c4ffdc75c929f97bd359727b46e1869ee049f381ef",
"md5": "66330bf6a3e1c8f0678c15b8f5ab244c",
"sha256": "b413860d994304dd3e414d95d8cd9fd4108b57e59863a8a33ac65839968082f9"
},
"downloads": -1,
"filename": "nanotrack-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "66330bf6a3e1c8f0678c15b8f5ab244c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 8206,
"upload_time": "2024-12-14T12:27:44",
"upload_time_iso_8601": "2024-12-14T12:27:44.456503Z",
"url": "https://files.pythonhosted.org/packages/ad/fd/70337c5ec0f0ab1788c4ffdc75c929f97bd359727b46e1869ee049f381ef/nanotrack-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-14 12:27:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ragultv",
"github_project": "NanoTrack",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nanotrack"
}