- π Final Model: YOLOv8n (You Only Look Once)
- π― Task: Object Detection, Bounding boxes and Lables & Classification
- π Performance: State-of-the-art detection capabilities
- π Multiple Approaches: From Traditional ML to Deep Learning
- π οΈ Comprehensive Pipeline: Data preprocessing to end to end Project
- Multi-Model Comparison: Traditional ML vs Deep Learning approaches
- Automated Preprocessing: Standardized image processing pipeline
- Format Conversion: Handles multiple annotation formats (XML, YOLO txt)
- Performance Metrics: Detailed evaluation and visualization
- Modular Architecture: Easy to extend and modify
flowchart LR
A[Images + XML] -->|Feature Extraction| B[CSV Format]
B -->|ML Training| C[Traditional Models]
flowchart LR
A[Raw Images] -->|Convert & Resize| B[Standardized Images]
C[XML Annotations] -->|Update| D[Adjusted Annotations]
B --> E[Processed Dataset]
D --> E
- π Converts
.bmp
to.jpg
- π Resizes images to 640x640
- π― Updates bounding box annotations
- Two-stage detector architecture
- Region proposal network
- Feature pyramid network integration
- ResNet18 architecture
- Transfer learning approach
- Single-label classification
flowchart LR
A[Input Image] -->|YOLOv8n| B[Detection]
B -->|Post-processing| C[Final Results]
-
Environment Setup
git clone <repository-url> cd <project-directory>
-
Data Preprocessing
cd data_preprocessing python preprocess_images.py
-
Running YOLOv8n
- Open
objectDetectionDL_YOLOv8n/uatd_YOLOv8n.ipynb
- Follow the notebook instructions for training and inference
- Open
The project demonstrates superior performance with YOLOv8n:
- High precision in object detection
- Real-time inference capabilities
- Robust performance across different scenarios
- Python 3.8+
- PyTorch
- Ultralytics YOLOv8
- OpenCV
- NumPy
- Pandas
- Dataset is preprocessed using the pipeline in
data_preprocessing/
- Annotations follow Pascal VOC XML format
- YOLOv8n provides the best balance of speed and accuracy
- Model ensemble techniques
- Real-time video processing
- API deployment
- Mobile optimization
This is a web application that uses YOLOv8 for object detection in images. The application consists of a React frontend and a Node.js backend that interfaces with a Python script for model inference.
- Node.js (v14 or higher)
- Python (v3.8 or higher)
- Your trained YOLOv8 model (
uatd_yolov8_m-pytorch-default-v1.tar.gz
)
- Install Node.js dependencies:
npm install
- Install Python dependencies:
pip install -r requirements.txt
- Place your trained model file (
uatd_yolov8_m-pytorch-default-v1.tar.gz
) in the root directory of the project.
- Start the backend server:
node server.js
- In a new terminal, start the React development server:
npm start
- Open your browser and navigate to
http://localhost:3000
- Click the "Upload Image" button to select an image from your computer
- Once an image is selected, you'll see a preview
- Click the "Detect Objects" button to run the object detection
- The results will be displayed below the image, showing detected objects and their confidence scores
src/App.js
- React frontend applicationserver.js
- Node.js backend serverdetect.py
- Python script for model inferencerequirements.txt
- Python dependenciespackage.json
- Node.js dependencies
- The application expects your model file to be in the root directory
- The backend server runs on port 3001 by default
- The React development server runs on port 3000
- Uploaded images are temporarily stored in the
uploads
directory and automatically deleted after processing