> 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/detections-shapes/detectors/custom-cnn-model.md).

# Custom CNN Model

Ce bloc de fonction vous permet de charger un modèle de classification d'images basé sur TensorFlow et d'exécuter des prédictions sur les images entrantes. Il s'adresse aux utilisateurs souhaitant appliquer un réseau de neurones convolutionnel (CNN) entraîné sur mesure pour classer des images dans un flux de travail visuel.

## 📥 Entrées

`Image Any` L'image qui sera classée par le modèle chargé.

## 📤 Sorties

`Class Index (Detected)` L'indice numérique de la classe prédite.\
`Class Name (Detected)` Le nom lisible de la classe (si le modèle fournit des labels de classes).\
`Detection Result (Raw Output)` La sortie brute du modèle ou les scores produits par le classifieur.

## 🕹️ Contrôles

`Load Model` Ouvre une boîte de dialogue de fichiers pour sélectionner et charger un fichier de modèle. Les types pris en charge incluent les modèles TensorFlow standards et les modèles TFLite.\
`Classes` Une zone de texte affichant la liste des classes trouvées dans le modèle chargé (si disponible).

## 🎨 Fonctionnalités

* Importation simple du modèle : chargez un modèle entraîné TensorFlow ou TFLite via un seul contrôle.
* Prévisualisation des labels : le bloc affiche les noms de classes extraits du modèle pour vérifier les labels avant l'exécution.
* Inférence immédiate : lorsqu'un modèle est chargé, les images entrantes sont classées et les résultats sont envoyés en sortie pour une utilisation en aval.
* Sorties pour automatisation : indice numérique et nom lisible sont disponibles, ainsi que les sorties brutes du modèle pour un traitement avancé.

## ⚙️ Fonctionnement

* Utilisez le contrôle `Load Model` pour importer un fichier de modèle depuis le disque.
* Une fois le modèle chargé et vérifié, le bloc accepte les images via l'entrée `Image Any`.
* Pour chaque image entrante, le bloc effectue l'inférence et fournit l'indice de classe prédit, le nom de classe optionnel et les valeurs de prédiction brutes en sortie.

## 📝 Instructions d'utilisation

1. Cliquez sur le bouton `Load Model` et choisissez votre fichier de modèle. Vérifiez que la liste des classes apparaît dans l'affichage `Classes` pour confirmer que le modèle est correctement chargé.
2. Connectez une source d'image à l'entrée `Image Any` (par exemple `Camera USB`, `Load Image` ou `Stream Reader`).
3. Utilisez les sorties du bloc pour diriger les résultats de classification vers des blocs de visualisation, de journalisation ou de logique décisionnelle.

## 💡 Astuces

* Prétraitez les images pour correspondre à la taille d'entrée attendue par votre modèle avec `Image Resizer` ou `Image Resize` avant de les envoyer à ce bloc. Cela améliore la cohérence des prédictions.
* Pour vérification visuelle, connectez la source d'image de ce bloc à `Show Image` afin de prévisualiser ce que le modèle "voit".
* Superposez les résultats de classification sur les images en utilisant `Write Text On Image` ou `Draw Result On Image` pour créer des sorties visuelles compréhensibles pour les opérateurs.
* Sauvegardez les événements de classification avec `Image Logger` ou exportez les résultats numériques vers des fichiers avec `CSV Export` pour analyses ultérieures.
* Utilisez `Image ROI Select` ou `Image ROI` pour recadrer les zones pertinentes avant la classification si votre modèle attend des objets à des positions fixes.
* Combinez avec `Is None` ou `Data Memory` pour gérer les images manquantes ou geler les sorties si nécessaire.

## 🛠️ Dépannage

* Aucune classe affichée après le chargement : assurez-vous que le modèle contient les métadonnées des labels de classes. Si la liste des classes est vide, le bloc sortira toujours des indices numériques mais pas de noms lisibles.
* Modèle ne se charge pas : vérifiez que vous avez sélectionné un fichier de modèle pris en charge et que le chemin d'accès est accessible. Choisissez le type approprié si vous avez un fichier TFLite ou TensorFlow.
* Prédictions inattendues : confirmez que la taille de l'image d'entrée, les canaux couleurs et le prétraitement correspondent à ceux utilisés lors de l'entraînement du modèle. Utilisez `Image Resize`, des blocs de conversion de couleur ou des étapes de prétraitement en amont pour correspondre aux conditions d'entraînement.
* Inférence lente : pensez à réduire la taille des images avec `Image Resizer` ou à utiliser une variante de modèle plus légère avant un déploiement en temps réel.
