Deep Learning Computer Vision for Workplace Monitoring

## Project Description The project involves using deep learning and computer vision to monitor workplace stations and count people entering and leaving a specified area. A camera setup captures video streams, which are processed in real-time to detect and verify people. A Python GUI developed with PyQt5 aids in tagging data for training the model. The training process is conducted using TensorFlow, and the trained model is deployed to a Jetson Nano for real-time inference. ## Technologies Used - **Python**: The primary programming language used for scripting and development. - **OpenCV**: For computer vision tasks such as image processing and video stream handling. - **TensorFlow**: For building and training the deep learning models. - **PyQt5**: For creating a graphical user interface (GUI) to tag data and manage the training process. - **Jetson Nano**: A compact AI computer used for deploying the trained model and running inference in real-time. - **NumPy and Pandas**: For data manipulation and processing. ## Challenges Faced ### 1. **Accurate People Detection** - **Issue**: Ensuring high accuracy in detecting and identifying people in various conditions. - **Solution**: Using a robust pre-trained model and fine-tuning it with a carefully labeled dataset. ### 2. **Real-time Performance** - **Issue**: Maintaining real-time performance for counting people and verifying their presence in workplace stations. - **Solution**: Optimizing the model for deployment on Jetson Nano and using efficient video processing techniques. ### 3. **Data Tagging for Training** - **Issue**: Creating a comprehensive and accurately labeled dataset for training the model. - **Solution**: Developing a PyQt5 GUI to streamline the data tagging process, integrating tools like LabelImg for efficiency. ### 4. **Model Deployment** - **Issue**: Deploying the trained model to Jetson Nano while ensuring it runs efficiently. - **Solution**: Converting the model to a format suitable for Jetson Nano and optimizing the code for resource constraints. ### Key Components #### People Detection and Verification - **Camera Setup**: Capturing video streams from the workplace. - **Deep Learning Model**: Using TensorFlow to train a model for detecting and verifying people. - **Real-time Processing**: Ensuring real-time performance for monitoring workplace stations and counting people. #### Data Tagging GUI - **PyQt5 Interface**: A user-friendly GUI for tagging images and preparing the dataset. - **Labeling Tool Integration**: Incorporating tools like LabelImg for efficient data tagging. #### Model Deployment - **Jetson Nano**: Deploying the optimized model for real-time inference. - **Performance Optimization**: Ensuring the model runs efficiently on Jetson Nano, maintaining real-time processing capabilities. ## Domain Knowledge Requirements The project required specialized knowledge in the following areas: - **Real-time Video Processing**: Techniques for handling and processing video streams in real-time. - **Model Training and Fine-tuning**: Skills in training and fine-tuning deep learning models using TensorFlow. - **GUI Development**: Experience with PyQt5 for creating user-friendly graphical interfaces. - **Embedded Systems**: Knowledge of deploying and optimizing models on embedded systems like Jetson Nano.