Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

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

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

Licenze

  • Open access
  • Articolo: CC BY 4.0

Tutto ciò che segue si basa sull'articolo completo secondo la sua licenza CC BY 4.0; la figura è riportata citando gli autori.

In breve

Aggiunge a un NeRF dei frutti un campo di istanze addestrato in modo contrastivo, così che frutti di qualsiasi tipo possano essere contati con il clustering di una nuvola di punti 3D, senza modelli di forma specifici per ogni frutto.

Perché è importante

Un'unica pipeline gestisce sei tipi di frutto senza modelli per singolo frutto, usando fotografie non ordinate e foundation model pronti all'uso per le maschere. Per la stima della produzione dei frutteti, ciò elimina la regolazione per frutto e per stadio di crescita richiesta dal clustering basato su modelli di forma.

Problema

Il conteggio dei frutti supporta la pianificazione della manodopera per la raccolta, il confezionamento, lo stoccaggio e la lavorazione, ma la maggior parte dei metodi esistenti è pensata per un solo tipo di frutto. Il predecessore FruitNeRF porta le maschere RGB e semantiche in un campo neurale, ma il suo clustering a cascata si basa su modelli specifici per frutto e su diversi iperparametri sensibili, che devono cambiare con il tipo di frutto e lo stadio di crescita.

Soluzione proposta

FruitNeRF++ aggiunge al NeRF un campo di istanze neurale e lo addestra con una loss contrastiva in stile InfoNCE su maschere di istanza 2D di Grounded-SAM o Detic, usando la feature media di ogni frutto come positivo e i frutti vicini come negativi difficili. Vengono addestrati prima i campi di densità e colore, poi il campo semantico e quindi il solo campo di istanze con gli altri congelati. La scena viene campionata in una nuvola di punti dei frutti con feature di istanza a 32 dimensioni, suddivisa in partizioni con k-means, e ogni partizione viene sottoposta a clustering con HDBSCAN usando una somma pesata della distanza coseno tra feature e della distanza euclidea.

Idee chiave

  • Usare una feature prototipo (media) per frutto come positivo, invece di contrapporre ogni coppia di pixel, ha dato un segnale di addestramento migliore per il campo di istanze.
  • Il campionamento uniforme dei pixel va bene per addestrare il colore del NeRF ma non per l'apprendimento delle istanze, perché dominano i pixel di sfondo; campionare gruppi di frutti vicini fornisce negativi locali difficili.
  • Il clustering sulla distanza coseno tra feature più la distanza euclidea tra posizioni ha funzionato meglio di ciascuna delle due da sola; sui dati sintetici la maggior parte della separazione veniva dalla posizione, perché i frutti a contatto sono rari. La Sezione IV-E indica λe = 5 come peso euclideo, mentre la Sezione V indica λe = 1 per gli esperimenti sintetici e λe = 5 per FUJI.
  • Una temperatura contrastiva τ tra 0,1 e 0,3, con il massimo a 0,2, ha funzionato sui dati sintetici; fuori da questo intervallo il clustering non riusciva a separare le istanze.
  • La qualità delle maschere limita i conteggi: sui dati sintetici le maschere di Grounded-SAM hanno raggiunto un IoU medio di 0,561 e quelle di Detic 0,49, e una foglia o un ramo che attraversa un frutto può dividerlo in due istanze.

Risultati principali

  • F1 medio su sei tipi di frutto sintetici: 0,925 con maschere ground truth, 0,832 con maschere di Grounded-SAM e 0,776 con maschere di Detic.
  • Con maschere ground truth, F1 per frutto di FruitNeRF++ contro FruitNeRF (Tabella II, valori di FruitNeRF presi dal suo stesso articolo): mela 0,996 contro 1, susina 0,859 contro 0,885, limone 0,978 contro 0,978, pera 0,996 contro 0,971, pesca 0,996 contro 0,987, mango 0,713 contro 0,873.
  • Il mango è stato il caso più difficile (649 su 1150 contati con maschere ground truth), cosa che gli autori attribuiscono al gran numero di frutti e alla forte occlusione.
  • Dataset reale di mele FUJI (582 immagini, 12 alberi): F1 di 0,765 con maschere di Grounded-SAM, contro 0,881 del metodo specifico per frutto di Gené-Mola et al.
  • Sul dataset Messy Rooms di 100 oggetti domestici sono stati rilevati 99 oggetti.
  • Per le mele, l'F1 raggiunge 1 con una dimensione dell'embedding di D = 16; susine e manghi richiedono embedding più grandi.

Limiti

  • L'addestramento su una scena più grande come FUJI richiede circa 8 ore su una Nvidia A5000 (24 GB), quindi il metodo non è in tempo reale; la lenta convergenza del campo di istanze occupa più di metà di quel tempo.
  • I risultati dipendono da una buona copertura dell'albero; i dati rumorosi, soprattutto pose della fotocamera imprecise, fanno sì che gli embedding di un frutto contaminino quelli dei vicini.
  • La segmentazione delle istanze tende a predire due istanze quando una foglia o un ramo divide visivamente un frutto, allontanando gli embedding delle due metà.
  • I frutti che crescono a grappolo, come banane, bacche o datteri, richiedono ulteriori ricerche per stimare la dimensione dei grappoli e i conteggi.
  • La valutazione nel mondo reale copre un unico dataset di mele le cui pose della fotocamera hanno richiesto COLMAP più una registrazione manuale di entrambi i lati dell'albero; gli autori attribuiscono a queste pose rumorose il divario rispetto a Gené-Mola et al.

Impatto sul settore

FruitNeRF++ è stato finalista di un premio a IROS 2025 e ha 5 citazioni. Gli autori indicano un repository di codice, github.com/meyerls/FruitNeRFpp, con il codice da rilasciare dopo l'accettazione, ed estendono con maschere di istanza il dataset multi-frutto di FruitNeRF.

Abstract

Introduciamo FruitNeRF++, un nuovo approccio al conteggio dei frutti che combina l'apprendimento contrastivo con i neural radiance field per contare i frutti a partire da fotografie di input non strutturate di frutteti. Il nostro lavoro si basa su FruitNeRF, che impiega un campo semantico neurale combinato con un approccio di clustering specifico per ogni frutto. La necessità di adattamento per ogni tipo di frutto limita l'applicabilità del metodo e ne rende difficile l'uso pratico. Per superare questo limite, progettiamo un framework di conteggio multi-frutto indipendente dalla forma, che integra i dati RGB e semantici con maschere di istanza predette da un foundation model di visione. Le maschere sono usate per codificare l'identità di ogni frutto come embedding di istanza in un campo di istanze neurale. Campionando volumetricamente i campi neurali, estraiamo una nuvola di punti con incorporate le feature di istanza, che può essere sottoposta a clustering in modo indipendente dal tipo di frutto per ottenere il conteggio. Valutiamo il nostro approccio con un dataset sintetico contenente mele, susine, limoni, pere, pesche e manghi, oltre a un dataset di benchmark reale di mele. I nostri risultati dimostrano che FruitNeRF++ è più facile da controllare e si confronta favorevolmente con altri metodi allo stato dell'arte.

Link

  • 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
  • Codice: https://github.com/meyerls/FruitNeRFpp
  • Pagina del progetto: https://meyerls.github.io/fruit_nerfpp

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.