https://github.com/chandanthota75/enhancing-precision-agriculture-with-yolov8-a-practical-study-on-basil-crop-detection
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: chandanthota75
- Language: Jupyter Notebook
- Default Branch: main
- Size: 78.5 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Enhancing Precision Agriculture with YOLOv8: A Practical Study on Basil Crop Detection
This project delves into the application of YOLOv8, a state-of-the-art object detection model, for real-world use cases in precision agriculture. Here, we focus on automating basil crop identification within agricultural fields. By leveraging a deep learning approach, this project aims to enhance efficiency and accuracy in crop monitoring tasks, empowering farmers with valuable insights.
This readme serves as a comprehensive guide to the project, outlining the methodology, implementation details, and key findings. We'll delve into each step, providing a clear understanding of how the YOLOv8 model was constructed and evaluated for basil crop detection.
Step-by-Step Guide
1. Project Setup
- Environment:
- Ensure you have Python (version 3.7 or higher) installed on your system.
- Set up a virtual environment to manage project dependencies effectively. Tools like
venvorcondacan be used. Refer to their documentation for specific instructions.
- Libraries:
- Install the necessary Python libraries using
pip:seaborn(for statistical data visualization)scikit-learn(for machine learning algorithms and tools)opencv-python(for image processing)ultralytics(the object detection model)
- Install the necessary Python libraries using
2. Data Acquisition/Collection
- Basil Crop Dataset:
- The dataset containing images of basil crops in fields. (around 209 images)
- The dataset include annotations for each basil plant, typically in the form of bounding boxes around the plants. (in YOLO format)
3. Data Pre-processing
- Resizing Images and Annotations:
- Resizing all the images in the dataset to a uniform size, such as 640 x 480 pixels (YOLOv8 image format).
- Adjust the corresponding annotations (bounding boxes) to reflect the resized image dimensions.
- Data Normalization:
- Normalize the pixel values of resized images to a common scale (e.g., [0, 1] range) to ensure consistency in input data for the model.
- Typical normalization techniques include dividing pixel values by 255 (for 8-bit images) or using z-score normalization based on dataset statistics.
- Data Split:
- Divide your dataset into two distinct subsets: a training set (typically around 80% of the data) and a validation set (remaining 20%). (171 images for training and 38 images for testing)
- The training set is used to train the YOLOv8 model, while the validation set is used to evaluate its performance on unseen data.
4. Model Building and Evaluation
- YOLOv8 Model Configuration:
- Utilize the
yolov8library to configure and build the YOLOv8 model. - Specify the model architecture (e.g., YOLOv8s, YOLOv8m, etc.). (we are using YOLOv8n)
- Defining the training parameters such as batch size, learning rate, optimizer, etc.).
- Adapt the model to detect basil crops by modifying the class labels. Refer to the
yolov8documentation for detailed instructions.
- Utilize the
Training:
- Train the YOLOv8 model using the prepared training dataset.
- The model learns to identify basil crops within the images based on the provided annotations.
- Training typically involves iterating through the training data multiple times.
Performance Metrics:
- Evaluate the model's performance on the validation set using metrics like:
- Mean Average Precision (mAP) at different IoU thresholds.
- Precision and Recall.
- F1 Score.
- Analyze training and validation loss values (box loss and classification loss).
- Evaluate the model's performance on the validation set using metrics like:
Owner
- Name: Chandan Thota
- Login: chandanthota75
- Kind: user
- Repositories: 1
- Profile: https://github.com/chandanthota75
GitHub Events
Total
- Fork event: 1
Last Year
- Fork event: 1