Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/data-pioneer/mlops-tenniscourt-house-detection-using-yolov8

Implementation of Mlops pipeline for Object and orientation Detection with customization of YOLOv8 computer vision model. Further using GitHub actions CI/CD tool for monitoring, finally deployment AWS EC2 with Docker image and AWS ECR.
https://github.com/data-pioneer/mlops-tenniscourt-house-detection-using-yolov8

aws aws-ec2 aws-s3 computer-vision deep-learning docker-image yolov8

Last synced: 1 day ago
JSON representation

Implementation of Mlops pipeline for Object and orientation Detection with customization of YOLOv8 computer vision model. Further using GitHub actions CI/CD tool for monitoring, finally deployment AWS EC2 with Docker image and AWS ECR.

Awesome Lists containing this project

README

        

# TCH: Tennis Court and Houses AI-powered Detection System

TCH is an AI-powered computer vision system designed to detect orintation of loation as well as orientation of tennis court and houses. For implementation of TCH yolo8 model with oriented bounding boxes of computer vision is used, which has smaller size.

- Annotated and Downloaded image data from Roboflow (https://universe.roboflow.com/learningworkspace-zrodd/object_detection_tennis_house)
- Implementation guide (https://docs.ultralytics.com/tasks/obb/#how-do-i-validate-the-accuracy-of-a-yolov8n-obb-model)

# Flow Diagram of MLops pipeline

![MLops_ISD_Architexture_Flow_Diagram](https://github.com/data-pioneer/MLops-Industry-Safety-Detection-using-Yolov7/assets/33811437/681cbdbb-8d95-4308-9b6b-3225c81c1488)

# Project Structure Explaintation

- Data Acquisition:
Image Annotation and Download: Images are annotated and labeled using Roboflow. The labeled data is downloaded as a ZIP file from an AWS S3 bucket and then unzipped.

- Data Validation
Ensuring Data Integrity: This stage verifies that all necessary files generated by the data acquisition component exist. Any missing files are captured in a validation report.

- Model Training (if data validation passes):
Leveraging YOLOv8-obb for Efficiency: Since no image preprocessing is required, the validated images are directly fed into a pre-trained YOLOv8-obb model for training. YOLOv8 is chosen for its faster inference speed and higher accuracy due to its smaller size and efficient architecture.

- Model Deployment:
Cloud Storage and Containerization: The trained model is uploaded to an AWS S3 bucket for storage. The entire pipeline, including the model, is containerized using Docker and deployed to AWS EC2 instances. CI/CD automation via GitHub Actions is implemented to manage the deployment process.

- User Interface:
Flask-based Application: A user-friendly application is built using Flask to interact with the deployed pipeline.

# Benefits

- Enhances workplace safety by ensuring proper safety gear usage.
- Improves efficiency with real-time monitoring and automated access control.

## Workflows

- constants
- config_entity
- artifact_entity
- components
- pipeline
- app.py

## Git commands

```bash
git add .

git commit -m "Updated"

git push origin main
```

## AWS Configurations

```bash
#aws cli download link: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

aws configure
```

## How to run?

```bash
conda create -n TennisCourtHouse python=3.9 -y
```

```bash
conda activate TennisCourtHouse
```

```bash
pip install -r requirements.txt
```

```bash
python app.py
```

# AWS-CICD-Deployment-with-Github-Actions

## 1. Login to AWS console.

## 2. Create IAM user for deployment

#with specific access

1. EC2 access : It is virtual machine

2. ECR: Elastic Container registry to save your docker image in aws

#Description: About the deployment

1. Build docker image of the source code

2. Push your docker image to ECR

3. Launch Your EC2

4. Pull Your image from ECR in EC2

5. Lauch your docker image in EC2

#Policy:

1. AmazonEC2ContainerRegistryFullAccess

2. AmazonEC2FullAccess


## 3. Create ECR repo to store/save docker image
- Save the URI: 443360382709.dkr.ecr.us-east-1.amazonaws.com/yolov7repo
## 4. Create EC2 machine (Ubuntu)

## 5. Open EC2 and Install docker in EC2 Machine:


#optinal

sudo apt-get update -y

sudo apt-get upgrade

#required

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

sudo usermod -aG docker ubuntu

newgrp docker

# 6. Configure EC2 as self-hosted runner:
setting>actions>runner>new self hosted runner> choose os> then run command one by one

# 7. Setup github secrets:

AWS_ACCESS_KEY_ID=

AWS_SECRET_ACCESS_KEY=

AWS_REGION = us-east-1

AWS_ECR_LOGIN_URI = demo>> 443360382709.dkr.ecr.us-east-1.amazonaws.com
ECR_REPOSITORY_NAME = yolov8repo

# 8. Deployment Screens: