- Aperçu du Projet
- Structure du Projet
- Prérequis par SystÚme d'Exploitation
- Installation
- Téléchargement des Datasets
- Référence des Datasets
- Utilisation pour l'EntraĂźnement
- Dépannage
- Licences
Ce projet collecte et structure des images corporelles de volailles (principalement des poulets) provenant de datasets open-source hĂ©bergĂ©s sur Roboflow Universe. L'objectif est de fournir un jeu de donnĂ©es prĂȘt Ă l'emploi pour entraĂźner un modĂšle de deep learning capable de classifier si une volaille est saine ou malade Ă partir d'une photographie de son corps.
Les datasets inclus couvrent des images en corps entier de poulets, dindes et autres volailles, avec des annotations qui distinguent les Ă©tats physiques sains des Ă©tats anormaux. Cela inclut la qualitĂ© du plumage, la posture, l'Ă©tat des pattes, l'apparence de la tĂȘte et l'aspect gĂ©nĂ©ral de l'animal.
Ce qui est inclus :
- 4 datasets d'images corporelles de volailles (environ 2 300+ images au total)
- Un script de téléchargement automatisé avec authentification API et détection de version
- Une structure de dossiers organisĂ©e et prĂȘte pour l'entraĂźnement
- Une documentation individuelle pour chaque dataset, incluant le mapping des classes et les métriques de performance connues
Ce qui est exclu (par conception) :
- Images de fientes et d'excréments
- Images de lésions d'organes internes
- Données microbiologiques ou de laboratoire
- Datasets Kaggle, Zenodo et Mendeley (non compatibles avec le workflow automatisé)
Les datasets sont téléchargés au format YOLOv8, qui comprend les images, les annotations et un fichier de configuration. Ce format est compatible avec la plupart des frameworks modernes de vision par ordinateur, notamment PyTorch, Ultralytics YOLO et TensorFlow.
data-vik/
â
âââ .env # ClĂ©s API (exclu du versionnement)
âââ .env.example # Template pour les clĂ©s API
âââ .gitignore # RĂšgles d'exclusion Git
âââ README.md # Ce fichier de documentation
âââ requirements.txt # DĂ©pendances Python
âââ rapport_complet.md # Rapport d'analyse dĂ©taillĂ© des datasets
â
âââ scripts/
â âââ download_all.py # Script principal de tĂ©lĂ©chargement
â
âââ docs/
â âââ 01_ROBOFLOW_POULTRY_DETECTION.md
â âââ 02_ROBOFLOW_CHIKHEN.md
â âââ 03_ROBOFLOW_DISEASE_PREDICTION.md
â âââ 04_ROBOFLOW_BROILER.md
â
âââ datasets/ # DonnĂ©es tĂ©lĂ©chargĂ©es (gĂ©nĂ©rĂ©, exclu du git)
â âââ 01_poultry_detection_counter/
â âââ 02_chikhen/
â âââ 03_disease_prediction/
â âââ 04_broiler_health/
â
âââ merged/ # Structure fusionnĂ©e (prĂȘte Ă l'emploi)
â âââ train/
â âââ val/
â âââ test/
â
âââ setup.sh # Script d'installation automatisĂ© (Linux/macOS)
âââ setup.ps1 # Script d'installation automatisĂ© (Windows)
â
âââ venv/ # Environnement virtuel Python (gĂ©nĂ©rĂ©)
Avant de configurer le projet, vous devez disposer d'une installation fonctionnelle de Python 3.12 ou plus récent sur votre machine. Les sections ci-dessous détaillent les méthodes recommandées pour chaque systÚme d'exploitation.
Sur les distributions Linux basées sur Debian, Python s'installe via le gestionnaire de paquets :
sudo apt update
sudo apt install -y python3 python3-pip python3-venvPour les autres distributions (Fedora, Arch, etc.), utilisez le gestionnaire de paquets correspondant.
La méthode recommandée sur macOS est d'utiliser Homebrew, qui fournit une version récente de Python sans interférer avec le Python systÚme :
brew install python@3.12Vous pouvez également télécharger l'installateur officiel depuis python.org/downloads.
- Téléchargez Python 3.12 ou plus récent depuis le site officiel : python.org/downloads
- Pendant l'installation, veillez Ă cocher l'option "Add Python to PATH".
- Vous pouvez aussi installer Python via PowerShell avec le Windows Package Manager :
winget install Python.Python.3.12 - Redémarrez votre terminal aprÚs l'installation pour que les changements de PATH prennent effet.
Des scripts d'installation automatisés sont fournis pour gérer l'ensemble du processus, y compris la création de l'environnement virtuel et l'installation des dépendances.
Linux et macOS :
bash setup.shWindows (PowerShell) :
.\setup.ps1Si PowerShell bloque l'exĂ©cution du script, vous devrez peut-ĂȘtre ajuster la politique d'exĂ©cution au prĂ©alable :
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserLe script d'installation effectue automatiquement les actions suivantes :
- Vérifie que Python est installé et accessible
- Crée un environnement virtuel Python dans le dossier
venv/ - Installe toutes les dépendances requises depuis
requirements.txt - Copie
.env.examplevers.envsi ce dernier n'existe pas dĂ©jĂ
Une fois le script terminé, vous devrez :
- Ăditer le fichier
.envpour ajouter votre clé API Roboflow - Lancer la commande de téléchargement des datasets
Si vous préférez configurer le projet manuellement, suivez les étapes ci-dessous.
git clone <url-du-repo> data-vik
cd data-vikSi vous avez téléchargé le projet en ZIP, extrayez-le et ouvrez un terminal dans le dossier.
L'environnement virtuel isole les dépendances du projet de votre Python systÚme, évitant ainsi les conflits de versions :
# Linux et macOS
python3 -m venv venv
# Windows (PowerShell)
python -m venv venvL'activation de l'environnement rend les paquets installés disponibles pour vos sessions Python. Vous devriez voir le préfixe (venv) apparaßtre dans votre terminal.
# Linux et macOS (bash/zsh)
source venv/bin/activate
# Windows (PowerShell)
.\venv\Scripts\Activate.ps1
# Windows (Invite de commandes)
venv\Scripts\activate.batUne fois l'environnement virtuel activé, installez les paquets requis :
pip install --upgrade pip
pip install -r requirements.txtLe fichier requirements.txt contient les paquets suivants :
| Paquet | Utilité |
|---|---|
torch et torchvision |
Framework deep learning (PyTorch) pour l'entraßnement et l'évaluation |
opencv-python-headless |
Traitement d'images et opérations de vision par ordinateur |
roboflow |
Client API pour télécharger les datasets depuis Roboflow Universe |
numpy et pandas |
Calcul numérique et manipulation de données |
matplotlib et seaborn |
Visualisation de données et tracés |
scikit-learn |
Métriques d'apprentissage automatique et outils d'évaluation |
albumentations |
Augmentation d'images pour les données d'entraßnement |
jupyter |
Notebooks interactifs pour l'exploration de données |
python-dotenv |
Chargement des variables d'environnement depuis le fichier .env |
Les datasets sont hébergés sur Roboflow Universe et nécessitent une clé API pour le téléchargement. L'obtention d'une clé est gratuite.
Ătape 1 : CrĂ©ez un compte Roboflow gratuit sur app.roboflow.com/settings/api.
Ătape 2 : Sur la page des paramĂštres, localisez votre clĂ© API (elle commence par rf_). Cliquez sur le bouton Copier.
Ătape 3 : CrĂ©ez et Ă©ditez le fichier .env Ă la racine du projet :
cp .env.example .envOuvrez le fichier .env avec un éditeur de texte :
nano .env # ou vim, code, notepad, etc.Remplacez la valeur fictive par votre clé API réelle :
ROBOFLOW_API_KEY="rf_votre_cle_copice"Méthode alternative : Si vous préférez ne pas utiliser de fichier .env, vous pouvez exporter la variable directement :
# Linux et macOS
export ROBOFLOW_API_KEY='rf_votre_cle'
# Windows (PowerShell)
$env:ROBOFLOW_API_KEY='rf_votre_cle'
# Windows (Invite de commandes)
set ROBOFLOW_API_KEY=rf_votre_cleUne fois l'environnement virtuel activé et la clé API configurée, vous pouvez télécharger les datasets à l'aide du script fourni.
Lister les datasets disponibles sans télécharger :
python scripts/download_all.py --listCette commande affiche les quatre datasets disponibles avec leur nombre d'images et de classes.
Télécharger tous les datasets Roboflow :
python scripts/download_all.py --roboflow-onlyPour chaque dataset, le script de téléchargement effectue les opérations suivantes :
- Connexion à l'API Roboflow avec la clé configurée
- Détection automatique de la derniÚre version du dataset
- Téléchargement des données au format YOLOv8
- Vérification de l'intégrité des fichiers téléchargés
- Rapport du nombre d'images et de fichiers d'annotation
Autres commandes disponibles :
# Tout faire (téléchargement + documentation)
python scripts/download_all.py --all
# Générer uniquement les fichiers de documentation
python scripts/download_all.py --docs-onlyLe volume total de téléchargement est d'environ 90 Mo. Selon la vitesse de votre connexion internet, le processus peut prendre plusieurs minutes.
Le tableau ci-dessous résume les quatre datasets inclus dans ce projet. Chaque dataset contient des images de volailles capturées dans des conditions réelles, avec des variations d'éclairage, d'arriÚre-plan et d'angle de prise de vue.
| Dataset | Images | Classes | Contenu | Taille |
|---|---|---|---|---|
| Poultry Detection for Counter | 1 268 | 18 | Corps entier, tĂȘte, pattes, plumage | 37 Mo |
| Chikhen | 509 | 6 | Corps, tĂȘte et pattes (normal vs anormal) | 39 Mo |
| Disease Prediction | 30 | 2 | Corps entier (Normal vs Anormal) | 1.4 Mo |
| Broiler Chicken Healthy and Sick | 505 | 2 | Corps entier (Sain vs Malade) | 10 Mo |
| Total | 2 312 | 88 Mo |
Note : La vue liste (--list) affiche environ 9 145 images d'aprÚs les métadonnées des datasets. Le téléchargement via l'API retourne un sous-ensemble exploitable d'environ 2 312 images, qui correspond à la version préparée par les auteurs pour une utilisation directe en entraßnement.
Convention de mapping des classes :
Les classes d'images de l'ensemble des datasets sont mappées vers une tùche de classification binaire :
- healthy (classe positive) - Volailles en condition physique normale
- sick (classe négative) - Volailles présentant des signes visibles de maladie ou d'anomalie
Les datasets sont téléchargés au format YOLOv8, compatible avec la plupart des frameworks de vision par ordinateur. Chaque dossier de dataset contient la structure suivante :
datasets/01_poultry_detection_counter/
âââ train/
â âââ images/ # Images d'entraĂźnement
â âââ labels/ # Annotations au format YOLO
âââ valid/
â âââ images/ # Images de validation
â âââ labels/ # Annotations correspondantes
âââ test/
â âââ images/ # Images de test
â âââ labels/ # Annotations correspondantes
âââ data.yaml # Fichier de configuration (noms des classes, chemins)
Exemple : Chargement des données pour un entraßnement PyTorch
L'extrait de code suivant montre comment charger les images pour entraĂźner un modĂšle de classification avec PyTorch :
import torch
import torchvision.transforms as T
from torch.utils.data import DataLoader
from torchvision.datasets import ImageFolder
transform = T.Compose([
T.Resize((224, 224)),
T.ToTensor(),
T.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225]),
])
dataset = ImageFolder(
root="datasets/01_poultry_detection_counter/train/images",
transform=transform
)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)Fusion des datasets pour un ensemble d'entraßnement unifié :
Le dossier merged/ est pré-configuré avec les sous-dossiers train/, val/ et test/ (actuellement vides). Vous pouvez l'utiliser comme destination pour combiner les images de plusieurs datasets en une structure unique de classification sain/malade.
Le script ne trouve pas votre clé API. Vérifiez que le fichier .env existe à la racine du projet et contient la clé correcte :
cat .envVous pouvez également vérifier si la variable d'environnement est correctement définie :
echo $ROBOFLOW_API_KEY # Linux et macOS
echo %ROBOFLOW_API_KEY% # Windows Invite de commandesSi la clé est manquante, éditez le fichier .env ou exportez la variable manuellement comme décrit dans la section d'installation.
Des versions obsolÚtes de pip peuvent causer des échecs d'installation. Mettez à jour pip avant de réessayer :
pip install --upgrade pipSur les systĂšmes Linux, si vous installez en dehors d'un environnement virtuel, vous pourriez avoir besoin de :
pip install --break-system-packages -r requirements.txtLe script détecte automatiquement la derniÚre version de chaque dataset. Si vous recevez une erreur liée à la version, il s'agit probablement d'un problÚme transitoire avec l'API. Relancez simplement la commande de téléchargement :
python scripts/download_all.py --roboflow-onlyInstallez le paquet manuellement :
pip install roboflowAssurez-vous que le script a les permissions d'exécution :
chmod +x scripts/download_all.pySi PowerShell bloque le script d'installation avec une erreur de sécurité, ajustez la politique d'exécution :
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserRéessayez ensuite les commandes d'installation ou d'activation.
Chaque dataset inclus dans ce projet est régi par sa propre licence. Veuillez vérifier les conditions avant d'utiliser les données dans des applications commerciales.
| Dataset | Licence |
|---|---|
| Poultry Detection for Counter | CC BY 4.0 |
| Chikhen | CC BY 4.0 |
| Disease Prediction | Roboflow Public License |
| Broiler Chicken Healthy and Sick | CC BY 4.0 |
La licence CC BY 4.0 autorise le partage et l'adaptation du matériel pour tout usage, à condition de créditer correctement l'auteur. La Roboflow Public License autorise une utilisation non commerciale et de recherche ; pour un usage commercial, veuillez consulter les conditions spécifiques sur la page Roboflow Universe du dataset concerné.
Ce projet a Ă©tĂ© créé dans le but de collecter et structurer des donnĂ©es d'entraĂźnement pour la dĂ©tection de maladies aviaires par vision par ordinateur. Il fournit un pipeline reproductible d'acquisition de datasets, qui pourra ĂȘtre Ă©tendu avec des sources supplĂ©mentaires Ă l'avenir.
Pour toute question ou contribution, veuillez ouvrir une issue ou une pull request sur le dépÎt.