Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

FruitNeRF++: A Generalized Multi-Fruit Counting Method Utilizing Contrastive Learning and Neural Radiance Fields

Auteurs: Lukas Meyer, Andrei-Timotei Ardelean, Tim Weyrich, Marc Stamminger · IROS 2025

Licences

  • Accès libre
  • Article: CC BY 4.0

Tout ce qui suit s'appuie sur l'article complet sous sa licence CC BY 4.0 ; sa figure est montrée en citant les auteurs.

En bref

Ajoute à un NeRF de fruits un champ d'instances entraîné de manière contrastive, de sorte que des fruits de tout type puissent être comptés en regroupant un nuage de points 3D, sans gabarits de forme propres à chaque fruit.

Pourquoi c'est important

Un seul pipeline traite six types de fruits sans gabarit par fruit, à partir de photographies non ordonnées et de modèles de fondation prêts à l'emploi pour les masques. Pour l'estimation du rendement des vergers, cela supprime le réglage par fruit et par stade de croissance qu'exigeait le clustering fondé sur des gabarits.

Problème

Le comptage des fruits aide à planifier la main-d'œuvre de récolte, le conditionnement, le stockage et la transformation, mais la plupart des méthodes existantes sont conçues pour un seul type de fruit. Son prédécesseur FruitNeRF projette les masques RGB et sémantiques dans un champ neuronal, mais son clustering en cascade repose sur des gabarits propres à chaque fruit et sur plusieurs hyperparamètres sensibles, qui doivent changer selon le type de fruit et le stade de croissance.

Solution proposée

FruitNeRF++ ajoute au NeRF un champ d'instances neuronal et l'entraîne avec une perte contrastive de type InfoNCE sur des masques d'instance 2D issus de Grounded-SAM ou de Detic, en utilisant la caractéristique moyenne de chaque fruit comme positif et les fruits voisins comme négatifs difficiles. Les champs de densité et de couleur sont entraînés d'abord, puis le champ sémantique, puis le champ d'instances seul, les autres étant gelés. La scène est échantillonnée en un nuage de points de fruits portant des caractéristiques d'instance de dimension 32, découpé en partitions par k-means, et chaque partition est regroupée avec HDBSCAN à l'aide d'une somme pondérée de la distance cosinus des caractéristiques et de la distance euclidienne.

Idées clés

  • Utiliser une caractéristique prototype (moyenne) par fruit comme positif, au lieu de contraster chaque paire de pixels, a fourni un meilleur signal d'entraînement au champ d'instances.
  • L'échantillonnage uniforme des pixels convient à l'entraînement des couleurs du NeRF mais pas à l'apprentissage des instances, car les pixels d'arrière-plan dominent ; échantillonner des groupes de fruits voisins fournit des négatifs locaux difficiles.
  • Le clustering sur la distance cosinus des caractéristiques plus la distance euclidienne des positions a mieux fonctionné que chacune seule ; sur les données synthétiques, l'essentiel de la séparation venait de la position, car les fruits qui se touchent sont rares. La Section IV-E donne λe = 5 comme poids euclidien, tandis que la Section V indique λe = 1 pour les expériences synthétiques et λe = 5 pour FUJI.
  • Une température contrastive τ comprise entre 0,1 et 0,3, avec un optimum à 0,2, a fonctionné sur les données synthétiques ; hors de cette plage, le clustering ne parvenait pas à séparer les instances.
  • La qualité des masques limite le comptage : sur les données synthétiques, les masques Grounded-SAM ont atteint une IoU moyenne de 0,561 et ceux de Detic 0,49, et une feuille ou une branche traversant un fruit peut le scinder en deux instances.

Principaux résultats

  • F1 moyen sur six types de fruits synthétiques : 0,925 avec les masques de vérité terrain, 0,832 avec les masques Grounded-SAM et 0,776 avec les masques Detic.
  • Avec les masques de vérité terrain, F1 par fruit pour FruitNeRF++ contre FruitNeRF (Table II, valeurs de FruitNeRF tirées de son propre article) : pomme 0,996 contre 1, prune 0,859 contre 0,885, citron 0,978 contre 0,978, poire 0,996 contre 0,971, pêche 0,996 contre 0,987, mangue 0,713 contre 0,873.
  • La mangue a été le cas le plus difficile (649 sur 1150 comptées avec les masques de vérité terrain), ce que les auteurs attribuent au grand nombre de fruits et à une forte occultation.
  • Jeu de données réel de pommes FUJI (582 images, 12 arbres) : F1 de 0,765 avec les masques Grounded-SAM, contre 0,881 pour la méthode propre au fruit de Gené-Mola et al.
  • Sur le jeu de données Messy Rooms de 100 objets domestiques, 99 objets ont été détectés.
  • Pour les pommes, le F1 atteint 1 avec une taille d'embedding D = 16 ; les prunes et les mangues nécessitent des embeddings plus grands.

Limites

  • L'entraînement sur une scène plus grande comme FUJI prend environ 8 heures sur une Nvidia A5000 (24 GB), si bien que la méthode n'est pas en temps réel ; la convergence lente du champ d'instances représente plus de la moitié de ce temps.
  • Les résultats dépendent d'une bonne couverture de l'arbre ; des données bruitées, principalement des poses de caméra imprécises, laissent les embeddings d'un fruit contaminer ceux de ses voisins.
  • La segmentation d'instances tend à prédire deux instances lorsqu'une feuille ou une branche divise visuellement un fruit, écartant les embeddings des deux moitiés.
  • Les fruits qui poussent en grappes, comme les bananes, les baies ou les dattes, nécessitent des recherches supplémentaires pour estimer la taille et le nombre des grappes.
  • L'évaluation réelle porte sur un seul jeu de données de pommes dont les poses de caméra ont nécessité COLMAP plus un recalage manuel des deux côtés de l'arbre ; les auteurs attribuent l'écart avec Gené-Mola et al. à ces poses bruitées.

Impact sur le domaine

FruitNeRF++ a été finaliste d'un prix à IROS 2025 et compte 5 citations. Les auteurs indiquent un dépôt de code, github.com/meyerls/FruitNeRFpp, dont le code doit être publié à l'acceptation, et étendent le jeu de données multi-fruits de FruitNeRF avec des masques d'instance.

Résumé

Nous présentons FruitNeRF++, une nouvelle approche de comptage de fruits qui combine l'apprentissage contrastif et les champs de radiance neuronaux pour compter les fruits à partir de photographies d'entrée non structurées de vergers. Notre travail s'appuie sur FruitNeRF, qui emploie un champ sémantique neuronal combiné à une approche de clustering propre à chaque fruit. La nécessité d'une adaptation à chaque type de fruit limite l'applicabilité de la méthode et la rend difficile à utiliser en pratique. Pour lever cette limite, nous concevons un cadre de comptage multi-fruits indépendant de la forme, qui complète les données RGB et sémantiques par des masques d'instance prédits par un modèle de fondation de vision. Les masques servent à encoder l'identité de chaque fruit sous forme d'embeddings d'instance dans un champ d'instances neuronal. En échantillonnant volumétriquement les champs neuronaux, nous extrayons un nuage de points doté des caractéristiques d'instance, qui peut être regroupé de manière indépendante du fruit pour obtenir le nombre de fruits. Nous évaluons notre approche à l'aide d'un jeu de données synthétique contenant des pommes, des prunes, des citrons, des poires, des pêches et des mangues, ainsi que d'un jeu de données de référence réel de pommes. Nos résultats démontrent que FruitNeRF++ est plus facile à contrôler et se compare favorablement aux autres méthodes de l'état de l'art.

Liens

  • arXiv 2505.19863: https://arxiv.org/abs/2505.19863
  • DOI 10.1109/IROS60139.2025.11247341: https://doi.org/10.1109/IROS60139.2025.11247341
  • PDF: https://arxiv.org/pdf/2505.19863v1
  • Code: https://github.com/meyerls/FruitNeRFpp
  • Page du projet: https://meyerls.github.io/fruit_nerfpp

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.