Skip to content

ragultv/NanoTrack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NanoTrack

Downloads

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.
  • 📹 Video & Stream Support: Works with video files and live camera streams.

Installation

Install via PyPI

To install NanoTrack from PyPI, run:

pip install nanotrack

Install from GitHub

For the latest version directly from the source:

pip install git+https://github.com/ragultv/nanotrack.git

Usage

1. Import and Initialize

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

# 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.

Contributing

We welcome contributions to NanoTrack!
To contribute:

  1. Fork the repository.
  2. Create a branch:
    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:


Let’s Track Smarter, Faster, and Lighter with NanoTrack!


About

NanoTrack is a lightweight object detection and tracking package designed for use with YOLO. It provides efficient tracking algorithms with minimal resource requirements.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages