/VisionGuard

VisionGuard functions as a standalone desktop application using a webcam to detect the user's gaze and estimate screen time. Leverages the Neural Processing Unit (NPU) of an AI PC for local inference.

Primary LanguageC++OtherNOASSERTION

VisionGuard Logo

VisionGuard

Protect Your Eyes, Enhance Your Productivity

FeaturesInstallationUsageDevelopmentArchitectureBenchmarksContributingLicenseBlog

Google Summer of Code Logo OpenVINO Logo

About VisionGuard

VisionGuard Main Window GUI VisionGuard is an innovative desktop application designed to combat eye strain resulting from prolonged screen time. Leveraging advanced computer vision technology, it utilizes your PC's webcam to monitor screen time and provide timely break reminders, promoting healthier computing habits and reducing eye fatigue.

Gaze Tracking Illustration

Key Advantages

  • Privacy-Focused: Operates entirely locally, requiring no internet access.
  • Data Security: All data remains on your device, ensuring your privacy.
  • Performance Optimized: Supports inference on AI PC's Neural Processing Unit (NPU) for enhanced efficiency.

This project was developed as part of Google Summer of Code 2024 under the OpenVINO Toolkit, mentored by Dmitriy Pastushenkov, Ria Cheruvu, and ZhuoWu. For more details, visit the GSoC Project Page.

Features

Performance and Efficiency

  • Real-time Gaze Tracking: Local processing ensures accurate and private screen-time monitoring.
  • Device Switching: Easily toggle between CPU, GPU, and NPU for optimal performance.
  • Edge Inference: Leverage edge devices for faster and more efficient processing.
  • Performance Optimization: Switch between quantized weights and control frame processing limits.
  • Resource Monitoring: Track system resources for efficient performance.
  • Built with C++: Developed using C++, a low-level language close to the system, ensuring high performance with memory efficiency.
  • Powered by Libraries: Built using Qt6 for the UI, OpenCV for computer vision, and OpenVINO for model inference, for an efficient performance.

Privacy and Data Security

  • Data Kept Locally: All data is processed and stored locally, ensuring privacy.
  • Screen Time Statistics: View daily/weekly usage stats, automatically cleared after a week for privacy.

Customization and Accessibility

  • Custom Break Notifications: Alerts based on customizable intervals, including the 20-20-20 rule.
  • Dark/Light Themes: Customize the interface with light or dark themes.
  • Multiple Cameras: Support for up to five camera devices.
  • System Tray Access: VisionGuard runs in the tray for easy access.

Installation and Extensibility

  • Easy Windows Setup: Comes with an easy installation setup for Windows.
  • Cross-Platform Libraries: Utilizes cross-platform libraries like Qt6, OpenCV, and OpenVINO, dynamically linked for extensibility and future updates.

Installation

Get started with VisionGuard by following our step-by-step Installation Guide.

Usage

Learn how to make the most of VisionGuard's features with our comprehensive User Guide.

Development

Interested in contributing or building VisionGuard from source? Our Development Guide provides all the information you need to get started.

Architecture

For a deep dive into VisionGuard's technical architecture, including backend processes and gaze estimation models, consult our Architecture Documentation.

Benchmarking

We've conducted extensive performance benchmarks across various devices. View our findings in the Benchmarking Documentation.

Contributing

We welcome contributions from the community! Before submitting your pull request, please review our Contributing Guidelines.

Reporting Issues

Encountered a bug or have a suggestion? We value your feedback! Please open an issue in our GitHub repository.

License

VisionGuard is dual-licensed:

  • Core application code (non-Qt): Apache License 2.0
  • Qt-dependent components: GNU Lesser General Public License (LGPL) version 3

For full details, refer to our License File.

Acknowledgements

  • Lead Developer: Inbasekaran
  • Mentors: Dmitriy Pastushenkov, Ria Cheruvu, ZhuoWu
  • OpenVINO Toolkit Community

Blog

Stay updated with our latest developments and insights on our Blog.


Made with ❤️ for healthier computing habits