> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/function-blocks/blocks-reference/ai-blocks/object-detection-custom-cpu.md).

# Object Detection - Custom (CPU)

Ce bloc de fonction vous permet d'exécuter un détecteur d'objets personnalisé sur une image d'entrée en utilisant vos propres fichiers de poids, de configuration et de classes. Utilisez les contrôles fournis pour charger les fichiers du modèle, choisir les classes à détecter et définir le seuil de confiance. Le bloc retourne une image résultat annotée ainsi que des données de détection structurées (nombre, positions, tailles et étiquettes) pour une utilisation en aval.

## 📥 Entrées

`Image Any`\
Image à traiter par le détecteur personnalisé.

## 📤 Sorties

`Image Any`\
Image annotée avec les détections (boîtes/étiquettes) dessinées.

`Object Count`\
Nombre d'objets détectés dans la trame.

`Object Locations`\
Positions centrales des objets détectés (plusieurs).

`Object Sizes (w, h)`\
Largeur et hauteur de chaque objet détecté (plusieurs).

`Object Class`\
Noms des classes détectées (plusieurs).

`Rectangles`\
Coordonnées des rectangles englobants pour chaque détection (plusieurs).

## 🕹️ Contrôles

`Open Weight File`\
Bouton pour charger le fichier de poids du détecteur (par ex. .weights).

`Open Config File`\
Bouton pour charger le fichier de configuration du détecteur (par ex. .cfg).

`Open Class File`\
Bouton pour charger le fichier de noms de classes (liste texte simple). Après le chargement, les noms de classes sont remplis dans la table.

`Class Names`\
Table affichant les classes disponibles. Activez/désactivez les lignes pour sélectionner les classes que le détecteur doit rapporter.

`Confidence Threshold %`\
Curseur pour définir la confiance minimale requise pour qu'une détection soit rapportée. Augmentez la valeur pour réduire les faux positifs ; diminuez-la pour capturer des détections plus faibles.

## 🎯 Fonctionnalités

* Chargement facile des ressources de modèle personnalisé via les boutons de l'interface.
* Possibilité de sélectionner un sous-ensemble de classes pour cibler la détection sur des objets pertinents.
* Retourne à la fois des sorties visuelles et des données : image annotée, comptes, positions, tailles, étiquettes de classes et rectangles.
* Fonctionnement compatible CPU pour les systèmes sans GPU.

## 📝 Instructions d'utilisation

1. Cliquez sur `Open Weight File` et sélectionnez votre fichier de poids du détecteur.
2. Cliquez sur `Open Config File` et sélectionnez le fichier de configuration correspondant.
3. Cliquez sur `Open Class File` et chargez le fichier texte contenant les noms de classes. La table `Class Names` se remplira.
4. Activez/désactivez les lignes de `Class Names` pour choisir les classes à détecter.
5. Injectez une image dans l'entrée `Image Any`.
6. Ajustez `Confidence Threshold %` pour contrôler la sévérité des détections.
7. Lisez les valeurs de sortie ou connectez des blocs suivants pour réagir aux détections.

## 📊 Ce que fait le bloc lors de l'exécution

* Traite l'image d'entrée avec le détecteur chargé en utilisant les classes sélectionnées et le seuil de confiance.
* Produit une image annotée sur `Image Any` ainsi que des données de détection sur les autres sorties pour le comptage, la mesure, le suivi, la journalisation ou la prise de décision.

## 💡 Tips and Tricks

* Si vous souhaitez inspecter visuellement les résultats dans une plus grande fenêtre, connectez la sortie `Image Any` au bloc `Show Image`.
* Pour dessiner des superpositions personnalisées ou formater différemment les annotations, utilisez le bloc `Draw Detections` avec les sorties `Rectangles` et le nombre.
* Pour un débit plus élevé sur de grandes images, insérez `Image Resizer` avant ce bloc pour réduire la résolution — cela accélère souvent la détection avec un faible impact sur la précision.
* Limitez la zone de recherche pour accélérer et stabiliser les résultats en recadrant avec `Image ROI Select` ou `Image ROI` avant d'alimenter le bloc.
* Pour conserver un enregistrement des trames contenant des détections, connectez la sortie image annotée à `Image Logger` ou `Image Write`.
* Pour des scénarios continus où vous voulez maintenir des identités à travers les images, associez ce bloc à `Object_Detection_Tracker` en utilisant les rectangles et les sorties de classe.
* Si vous avez besoin d'un détecteur alternatif rapide pour expérimenter, comparez les résultats avec `Object Detection` ou `Object Detection (D-FINE)` (si disponibles) pour trouver le meilleur compromis vitesse/qualité.

## 🛠️ Résolution des problèmes

* Aucune classe listée après le chargement du fichier de classes
  * Assurez-vous d'avoir sélectionné le bon fichier de classes (texte simple, une classe par ligne). Utilisez `Open Class File` à nouveau si nécessaire.
* Trop de faux positifs
  * Augmentez `Confidence Threshold %`. Essayez aussi de fournir une image redimensionnée via `Image Resizer` ou de restreindre la zone via `Image ROI Select`.
* Le détecteur manque des objets petits ou éloignés
  * Diminuez légèrement `Confidence Threshold %`, ou fournissez une image à plus haute résolution (évitez les tailles extrêmement grandes — utilisez `Image Resizer` pour trouver un compromis vitesse/détail).
* Performances lentes sur CPU
  * Réduisez la résolution d'entrée avec `Image Resizer` ou recadrez la région d'intérêt avec `Image ROI Select`. Envisagez d'exécuter la détection moins fréquemment (par ex. traitement par lot).
* Besoin d'agir sur les détections dans d'autres parties du flux
  * Utilisez les sorties numériques et structurées (`Object Count`, `Object Locations`, `Rectangles`, `Object Class`) pour alimenter des blocs logiques, de journalisation ou de suivi comme `Object_Detection_Tracker`.
