0 votes
par dans 07 - Réseaux convolutifs CNN
Bonjour,

Je suis tout à fait débutant dans le monde du deep learning.

Pour un petite application en biologie, je souhaite utiliser un CNN pour segmenter des images (comptage d'oeufs d'insectes), a priori une tache très facile sur des images de bonne qualité.

Mes images sont nativement de taille 3000x4000. J'ai découpé des vignettes de 1000x1000 que j'ai annoté (environ 200 vignettes annotées).

Via la librairie detectron2, j'ai entrainé un modèle MaskRCNN qui marche à la perfection sur mon sous-jeu de données de vignettes 'test', jamais vues par le réseau entrainé.

Mon pb : lorsque je passe à la prédiction sur mes images natives (3000x4000), la qualité de la prédiction chute dramatiquement.

J'ai l'impression qu'il y a un rapport avec la taille/ la forme de mes images, car j'ai l'impression que les prédictions sont légèrement meilleures sur des images de grandes tailles mais carrées (eg, 3000x3000).

Y'aurait-il un paramètre à modifier pour passer à de la prédiction sur des images de taille/forme différente entre entrainement et prédiction ?

J'ai vu un seul tuto sur internet qui faisait de la segmentation avec detectron2 sur de grandes images et la stratégie était de faire la prédiction sur des tiles de format identique à l'annotation/entrainement puis de reunir tous les masques ensemble sur une grande image. Je trouve cette stratégie très surprenante car j'imagine que la plupart des images sur lesquels sont utilisées MaskRCNN sont largement supérieures en dimension aux 1330x1330 de tailles maximum autorisée pour l'entrainement.

Merci d'avance pour vos lumières,

et bien entendu merci pour votre travail de formation de qualité exceptionnelle,

Julien

1 Réponse

0 votes
par
sélectionné par
 
Meilleure réponse
Ton réseau a été entrainé sur des images de 1000x1000. Quand tu lui donnes des images de 3000x3000 ou 3000x4000 lors du test, elles seront resizées à 1000x1000 du coup les oeufs vont paraître plus petits sur les images 3000x3000 et petits et déformés sur les images 3000x4000, Donc c'est normal si ton réseau ne marche pas bien puisqu'il ne connait pas les oeufs déformés.
par
Je dois dire que je suis assez étonné que la première étape d'une prédiction soit un resize qui dans le cas d'une image avec un format différent provoque ce genre d'erreur. Cela limiterait grandement l'applicabilité de MaskRCNN.
par Vétéran du GPU 🐋 (68.8k points)
Vous avez trouvez l'erreur, pour corriger votre problème vous devez conserver la même pipeline de pré-traitement.
Vous comptez vos oeufs sur chaque patch puis vous additionner l'ensemble pour votre image complète
...