{"id":21733902,"url":"https://github.com/shaheennabi/Production-Ready-Sign-Language-Object_detection-Project","last_synced_at":"2025-10-07T13:31:56.518Z","repository":{"id":262778845,"uuid":"869668318","full_name":"shaheennabi/Production-ready-Object_detection-Project","owner":"shaheennabi","description":"An object detection system powered by the YOLOv5s pretrained model 🚀, trained on 2,086 images (1,461 training, 417 validation, 208 testing). Data annotation was done using Roboflow 🖌️, and training took place on Google Colab for 250 epochs.🔥💥  The model achieved high accuracy on both validation and test datasets! 🎯🔥💥 ","archived":false,"fork":false,"pushed_at":"2025-01-08T07:43:35.000Z","size":66605,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-19T22:46:29.850Z","etag":null,"topics":["docker","docker-compose","github-actions","google-colab","jenkins","object-detection","yolov5"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shaheennabi.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}},"created_at":"2024-10-08T17:23:00.000Z","updated_at":"2025-01-08T07:43:38.000Z","dependencies_parsed_at":"2025-01-02T11:18:03.388Z","dependency_job_id":"416c32c2-bd5c-4dcf-9197-2acad1ce2cf8","html_url":"https://github.com/shaheennabi/Production-ready-Object_detection-Project","commit_stats":null,"previous_names":["shaheennabi/object_detection-end-to-end-project","shaheennabi/production-ready-object_detection-project"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaheennabi%2FProduction-ready-Object_detection-Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaheennabi%2FProduction-ready-Object_detection-Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaheennabi%2FProduction-ready-Object_detection-Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaheennabi%2FProduction-ready-Object_detection-Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shaheennabi","download_url":"https://codeload.github.com/shaheennabi/Production-ready-Object_detection-Project/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235633951,"owners_count":19021455,"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":["docker","docker-compose","github-actions","google-colab","jenkins","object-detection","yolov5"],"created_at":"2024-11-26T05:06:57.845Z","updated_at":"2025-10-07T13:31:50.598Z","avatar_url":"https://github.com/shaheennabi.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎆🎉 Object_detection-End-to-End-project 🎉🎆\r\n### feel free to create a pull request and improve this project..\r\nthe readme of this repo will be updated with full pipeline explanation soon....\r\n\r\n## Project Overview\r\n\r\n* **Objective**: Develop an object detection system using the YOLOv5s pretrained model.\r\n\r\n* **Dataset**:\r\n  - Total Images: 2,086 images\r\n  - Training Images: 1,461\r\n  - Validation Images: 417\r\n  - Testing Images: 208\r\n  - Annotation Tool: Data was annotated using Roboflow for efficient labeling.\r\n\r\n* **Model Training**:\r\n  - Framework: Utilized the YOLOv5s model, known for its speed and accuracy.\r\n  - Environment: Training conducted on Google Colab with GPU support.\r\n  - Epochs: The model was trained for 250 epochs, resulting in significant improvements in detection accuracy.\r\n  - Performance: The trained model demonstrated great accuracy on the validation and testing datasets.\r\n\r\n* **Additional Information**: Further details, including setup instructions and usage, can be found in the project repository.\r\n\r\n### 🎋 Project Tree Structure 🎋\r\n```bash\r\n\r\nObject_Detection-End-to-End-project/\r\n  ├── .github/\r\n  │   └── workflows/\r\n  │       └── main.yaml\r\n  ├── .jenkins/\r\n  │   └── Jenkinsfile\r\n  ├── artifact/\r\n  │   └── 10_05_2024_03_23_14 (or time Stamp)/\r\n  │       ├── data_ingestion/\r\n  │       │   ├── feature_store/\r\n  │       │   │   ├── test\r\n  │       │   │   ├── train\r\n  │       │   │   ├── valid\r\n  │       │   │   └── data.yaml\r\n  │       └── SignLangData.Zip\r\n  │       ├── data_validation/\r\n  │       │   └── status.txt           \r\n  │       └── model_trainer/\r\n  │           └── best.pt\r\n  ├── data/\r\n  │   ├── .gitkeep\r\n  │   └── inputImage.jpg\r\n  ├── flowchart/\r\n  ├── logs/\r\n  ├── notebook/\r\n  │   ├── Object_Detection_with_Yolov5.ipynb\r\n  │   └── test.ipynb\r\n  ├── scripts/\r\n  │   ├── ec2_setup.sh\r\n  │   └── jenkins.sh\r\n  ├── SignLanguage or src/\r\n  │   ├── components/\r\n  │   │   ├── __pycache__/\r\n  │   │   ├── __init__.py\r\n  │   │   ├── data_ingestion.py\r\n  │   │   ├── data_validation.py\r\n  │   │   ├── model_pusher.py\r\n  │   │   └── model_trainer.py\r\n  │   ├── configuration/\r\n  │   │   ├── __pycache__/\r\n  │   │   ├── logs/\r\n  │   │   ├── __init__.py\r\n  │   │   ├── gdown_connection.py\r\n  │   │   └── s3_operations.py\r\n  │   ├── constants/\r\n  │   │   ├── __pycache__/\r\n  │   │   ├── __init__.py\r\n  │   │   └── training_pipeline/\r\n  │   └── entity/\r\n  │       ├── __pycache__/\r\n  │       ├── __init__.py\r\n  │       ├── artifact_entity.py\r\n  │       └── config_entity.py\r\n  ├── templates/\r\n  │   └── index.html\r\n  ├── yolov5/\r\n  ├── app.py\r\n  ├── data_collector.py\r\n  ├── docker_compose.yml\r\n  ├── Dockerfile\r\n  ├── README.md\r\n  ├── requirements.txt\r\n  ├── setup.py\r\n  └── template.py\r\n\r\n  ```\r\n## Installation Instructions\r\n\r\n1. Clone the repository:\r\n   ```bash\r\n   git clone https://github.com/shaheennabi/Object_detection-End-to-End-project.git\r\n   cd Object_detection-End-to-End-project\r\n   ```\r\n\r\n\r\n* Create a new conda environment and activate it:\r\n\r\n```bash\r\nconda create -n signLanguage python=3.10 -y\r\n\r\n```\r\n```bash\r\nconda activate signlanguage\r\n```\r\n* Install the required dependencies:\r\n\r\n```bash\r\npip install -r requirements.txt\r\n```\r\n\r\n\r\n### Export the  environment variable(anaconda prompt)\r\n\r\n```bash\r\nset DATA_DOWNLOAD_URL=https://drive.google.com/uc?/export=download\u0026id=  your file_id goes here\"\r\n```\r\n### Export the  environment variable(git bash)\r\n\r\n```bash\r\nexport DATA_DOWNLOAD_URL=\"https://drive.google.com/file/d/ your file_id goes here\"\r\n```\r\n\r\n\r\n\r\n# 🎉 Workflow 🎉\r\n\r\nAfter creating the project template:\r\n * 🎇 Update constants 🎆\r\n * 🎇 Update Entity modules 🎆\r\n * 🎇 Update respective component 🎆\r\n * 🎇 Update pipeline 🎆\r\n * 🎉 Endpoint - (app.py) 🎉\r\n\r\n## 🎆 Model Training 🎆\r\n\r\n1. Ensure the dataset is properly loaded in the `data/` folder.\r\n2. Run the training script:\r\n\r\n   ```bash\r\n   python  cd yolov5/ \u0026\u0026 python train.py --img 416 --batch 16 --epochs 300 --data '../data.yaml' --cfg ./models/custom_yolov5s.yaml --weights 'yolov5s.pt' --name yolov5s_results  --cache\r\n   ```\r\n\r\nTo use the trained model for inference on new images, run:\r\n```bash\r\npython cd yolov5/ \u0026\u0026 python detect.py --weights /content/runs/train/yolov5s_results/weights/best.pt --img 416 --conf 0.5 --source /content/test/images\r\n  ```\r\n\r\n\r\n\r\n\r\n## Deployment\r\n\r\nTo deploy the application locally:\r\n1. Install the dependencies in `requirements.txt`.\r\n2. Run the Flask app:\r\n   ```bash\r\n   python app.py\r\n\r\n\r\n### Deployment  (CI/CD)\r\n\r\n# Run these commands on EC2 Machine\r\n\r\n* Update package lists\r\n```bash\r\nsudo apt update\r\n```\r\n\r\n* Update package lists (alternate command)\r\n```bash\r\nsudo apt-get update\r\n\r\n```\r\n\r\n* Upgrade the system\r\n```bash\r\nsudo apt upgrade -y\r\n\r\n```\r\n\r\n* Download Docker installation script\r\n```bash\r\ncurl -fsSL https://get.docker.com -o get-docker.sh\r\n\r\n```\r\n\r\n* Run the Docker installation script\r\n```bash\r\nsudo sh get-docker.sh\r\n\r\n```\r\n\r\n* Add current user to the Docker group (run both lines)\r\n```bash\r\nsudo usermod -aG docker $USER\r\nsudo usermod -aG docker $USER\r\n\r\n```\r\n\r\n\r\n* Install AWS CLI\r\n```bash\r\nsudo apt install awscli -y  (if not worked- install with curl -check doc)\r\n\r\n```\r\n\r\n\r\n* AWS Configuration\r\n```bash\r\naws configure\r\n\r\n```\r\n\r\n\r\n### Run these commands to install Jenkins on EC2\r\n\r\n* Update package lists\r\n\r\n```bash\r\nsudo apt update\r\n```\r\n* Install OpenJDK 8\r\n\r\n```bash\r\nsudo apt install openjdk-8-jdk -y\r\n```\r\n\r\n```bash\r\n# Jenkins repository (links for reference)\r\n# https://pkg.jenkins.io/\r\n# https://pkg.jenkins.io/debian-stable/\r\n```\r\n* Start Jenkins service\r\n```bash\r\nsudo systemctl start jenkins\r\n```\r\n\r\n\r\n* Enable Jenkins to start on boot\r\n```bash\r\nsudo systemctl enable jenkins\r\n```\r\n\r\n* Check the status of Jenkins service\r\n```bash\r\nsudo systemctl status jenkins\r\n```\r\n\r\n* Download Docker installation script\r\n```bash\r\ncurl -fsSL https://get.docker.com -o get-docker.sh\r\n```\r\n \r\n* Run the Docker installation script\r\n```bash\r\nsudo sh get-docker.sh\r\n```\r\n\r\n* Add current user to Docker group\r\n```bash\r\nsudo usermod -aG docker $USER\r\n```\r\n\r\n\r\n* Add Jenkins user to Docker group\r\n```bash\r\nsudo usermod -aG docker jenkins\r\n```\r\n\r\n* Activate Docker group changes\r\n```bash\r\nnewgrp docker\r\n```\r\n\r\n\r\n* Install AWS CLI\r\n```bash\r\nsudo apt install awscli -y\r\n```\r\n\r\n* Add Jenkins to Docker group again to ensure it has access\r\n```bash\r\nsudo usermod -a -G docker jenkins\r\n```\r\n\r\n* Download Docker installation script\r\n```bash\r\ncurl -fsSL https://get.docker.com -o get-docker.sh\r\n```\r\n\r\n\r\n* Run the Docker installation script\r\n```bash\r\nsudo sh get-docker.sh\r\n```\r\n\r\n* Add current user to Docker group\r\n```bash\r\nsudo usermod -aG docker $USER\r\n```\r\n\r\n* Add Jenkins user to Docker group\r\n```bash\r\nsudo usermod -aG docker jenkins\r\n```\r\n\r\n* Activate Docker group changes\r\n```bash\r\nnewgrp docker\r\n```\r\n\r\n* Install AWS CLI\r\n```bash\r\nsudo apt install awscli -y\r\n```\r\n\r\n* Add Jenkins to Docker group again to ensure it has access\r\n```bash\r\nsudo usermod -a -G docker jenkins\r\n```\r\n\r\n* Retrieve the initial Jenkins admin passwo\r\n```bash\r\nsudo cat /var/lib/jenkins/secrets/initialAdminPassword\r\n```\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaheennabi%2FProduction-Ready-Sign-Language-Object_detection-Project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaheennabi%2FProduction-Ready-Sign-Language-Object_detection-Project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaheennabi%2FProduction-Ready-Sign-Language-Object_detection-Project/lists"}