Skip to content

HeadCount is a deep learning model that uses semantic segmentation to count wheat heads in field images, designed for yield estimation, flowering time detection, and field maturity assessment.

License

Notifications You must be signed in to change notification settings

chmcbs/HeadCount

Repository files navigation

🌾 HeadCount

A semantic segmentation model for counting wheat heads in field images. Designed for yield estimation, flowering time detection, and field maturity assessment.

Interactive Demo →

Model Card →

Overlay Example

ℹ️ About

Manual wheat head counting is time-consuming and impractical at scale. Traditional computer vision methods struggle with overlapping heads and varying lighting conditions. HeadCount is a fine-tuned deep learning model trained to segment wheat heads from other organs, enabling automated, accurate counting from field images.

📁 Project Structure

HeadCount/
├── inference.py              # Main inference module
├── demo.py                   # Local Gradio demo
├── app.py                    # HuggingFace Spaces app
├── 01_eda.ipynb              # Exploratory data analysis
├── 02_data_prep.ipynb        # Data preparation
├── 03_training.ipynb         # Model training
├── 04_evaluation.ipynb       # Model evaluation
├── 05_head_counting.ipynb    # Head counting analysis
├── cache/                    # Model checkpoints
└── validation/               # Validation images and overlays

💻 Example Usage

from inference import GWFSSModel
from PIL import Image

# Load model
model = GWFSSModel("model.pth")

# Load and process image
image = Image.open("input.jpg")
predictions = model.predict(image)

# Count heads
num_heads = model.count_heads(predictions)
print(f"🌾 {num_heads} heads detected")

# Create visualisation
overlay = model.overlay_mask(image, predictions, alpha=0.5, heads_only=True)
overlay.save("output.png")

⚠️ Limitations

Best performance is achieved with overhead imagery under diffuse lighting. Known challenges include:

  • Lighting Sensitivity: Bright or harsh lighting can cause over-segmentation, splitting single heads into multiple detections
  • Overlapping Heads: Dense clusters with significant overlap are challenging to separate accurately
  • Colour Dependency: Performance is lower on senesced plants

Training Data

The model is trained on GWFSS_v1.0_labelled from the Global Wheat Full Semantic Organ Segmentation dataset.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

HeadCount is a deep learning model that uses semantic segmentation to count wheat heads in field images, designed for yield estimation, flowering time detection, and field maturity assessment.

Topics

Resources

License

Stars

Watchers

Forks