{"id":26758214,"url":"https://github.com/ksm26/object-detection-microservice","last_synced_at":"2025-03-28T16:18:55.998Z","repository":{"id":267272674,"uuid":"900730876","full_name":"ksm26/object-detection-microservice","owner":"ksm26","description":"This repository provides a fully containerized microservice for object detection using YOLOv8 and FastAPI. With Docker and Docker Compose, developers can easily set up, run, and integrate advanced object recognition capabilities into their applications.","archived":false,"fork":false,"pushed_at":"2024-12-09T11:41:59.000Z","size":21150,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-09T12:30:02.685Z","etag":null,"topics":["computervision","containerization","devops","docker","fastapi","imageprocessing","machinelearning","microservices","modelinference","objectdetection","yolov8","yolov8s"],"latest_commit_sha":null,"homepage":"https://github.com/ksm26/object-detection-microservice/tree/main","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ksm26.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-12-09T11:17:48.000Z","updated_at":"2024-12-09T11:50:32.000Z","dependencies_parsed_at":"2024-12-10T04:40:17.224Z","dependency_job_id":null,"html_url":"https://github.com/ksm26/object-detection-microservice","commit_stats":null,"previous_names":["ksm26/object-detection-microservice"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksm26%2Fobject-detection-microservice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksm26%2Fobject-detection-microservice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksm26%2Fobject-detection-microservice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksm26%2Fobject-detection-microservice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ksm26","download_url":"https://codeload.github.com/ksm26/object-detection-microservice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246059336,"owners_count":20717085,"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":["computervision","containerization","devops","docker","fastapi","imageprocessing","machinelearning","microservices","modelinference","objectdetection","yolov8","yolov8s"],"created_at":"2025-03-28T16:18:55.220Z","updated_at":"2025-03-28T16:18:55.984Z","avatar_url":"https://github.com/ksm26.png","language":"Python","readme":"# Object Detection Microservice\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"images/yolov8.png\" height=\"200\"\u003e \n\u003c/p\u003e\n\nThis repository contains a containerized microservice for object detection using YOLOv8. The project leverages Docker, FastAPI, and YOLOv8 to provide an efficient and user-friendly solution for object detection.\n\n---\n\n## Prerequisites\n\nBefore starting, ensure you have the following installed:\n\n- **Docker**: For containerization of services.\n- **Docker Compose**: To manage multi-container applications.\n- **Ubuntu**: This guide assumes an Ubuntu-based system.\n\n---\n\n## Installation\n\nFollow these steps to set up Docker and Docker Compose on your system.\n\n### Step 1: Update System Packages\n```bash\nsudo apt update \u0026\u0026 sudo apt upgrade -y\n```\n### Step 2: Remove Older Docker Versions\n```bash\nsudo apt remove docker docker-engine docker.io containerd runc\n```\n### Step 3: Install Dependencies\n```bash\nsudo apt install -y apt-transport-https ca-certificates curl software-properties-common\n```\n### Step 4: Add Docker’s GPG Key\n```bash\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg\n```\n### Step 5: Add Docker Repository\n```bash\necho \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list \u003e /dev/null\n```\n\n### Step 6: Install Docker\n```bash\nsudo apt update\nsudo apt install -y docker-ce docker-ce-cli containerd.io\ndocker --version\n```\n### Step 7: Install Docker Compose\n```bash\nsudo curl -L \"https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose\nsudo chmod +x /usr/local/bin/docker-compose\ndocker-compose --version\n```\n### Step 8: Add User to Docker Group\n```bash\nsudo usermod -aG docker $USER\nnewgrp docker\n```\n## File Structure\n```plaintext\nobject_detection_microservice/\n├── ai_backend/\n│   ├── Dockerfile\n│   ├── main.py\n│   ├── models/\n│   │   └── yolov8s.pt\n│   ├── output/\n│   └── requirements.txt\n├── ui_backend/\n│   ├── Dockerfile\n│   ├── main.py\n│   └── requirements.txt\n├── docker-compose.yml\n└── images/\n    └── img1.jpg\n```\n\n## Project Setup\n### Step 1: Clone the Repository\n```bash\ngit clone https://github.com/ksm26/object-detection-microservice\ncd object_detection_microservice\n```\n\n### Step 2: Pre-download YOLOv8s Weights\n```bash\nmkdir -p ai_backend/models\nwget https://github.com/ultralytics/yolov3/releases/download/v9.6.0/yolov8s.pt -O ai_backend/models/yolov8s.pt\n```\n\n## Running the Microservice\n### Step 1: Start the Services\n```bash\ndocker-compose up --build\n```\n### Step 2: Test the Microservice\n```bash\ncurl -X POST \"http://localhost:8000/detect/\" -F \"file=@images/img1.jpg\"\n```\n## Output\n### JSON File: Contains detection details\nJSON: ai_backend/output/\u003cimage_name\u003e_detections.json\n```plaintext\n[{\"bbox\": [[171.80197143554688, 177.1391143798828, 276.281494140625, 426.3130187988281]], \"confidence\": 0.787072479724884, \"class\": 15, \"label\": \"cat\"}, {\"bbox\": [[255.08807373046875, 65.53730773925781, 426.2208557128906, 423.4767761230469]], \"confidence\": 0.7535444498062134, \"class\": 16, \"label\": \"dog\"}, {\"bbox\": [[253.9145965576172, 65.65737915039062, 424.5438232421875, 423.5783386230469]], \"confidence\": 0.3015751242637634, \"class\": 15, \"label\": \"cat\"}]\n```\n### Processed Image: The image with bounding boxes drawn\nImage: ai_backend/output/predict_\u003cimage_name\u003e.jpg \n\u003cp align=\"center\"\u003e\n\u003cimg src=\"ai_backend/output/predict_img1.jpg\" height=\"450\"\u003e \n\u003c/p\u003e\n\n## Restarting the Services\n```bash\ndocker-compose down\ndocker-compose up\n```\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fksm26%2Fobject-detection-microservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fksm26%2Fobject-detection-microservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fksm26%2Fobject-detection-microservice/lists"}