Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

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

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

Licencias

  • Acceso abierto
  • Artículo: CC BY 4.0

Todo lo que sigue se basa en el artículo completo bajo su licencia CC BY 4.0; su figura se muestra con crédito a los autores.

En resumen

Añade a un NeRF de frutos un campo de instancias entrenado de forma contrastiva para poder contar frutos de cualquier tipo agrupando una nube de puntos 3D, sin plantillas de forma específicas de cada fruta.

Por qué importa

Un único pipeline maneja seis tipos de fruta sin plantillas por fruta, usando fotografías desordenadas y modelos fundacionales listos para usar para obtener las máscaras. Para la estimación del rendimiento de los huertos, esto elimina el ajuste por fruta y por fase de crecimiento que exigía el clustering basado en plantillas.

Problema

El recuento de frutos ayuda a planificar la mano de obra de la cosecha, el envasado, el almacenamiento y la transformación, pero la mayoría de los métodos existentes están pensados para un solo tipo de fruta. Su predecesor, FruitNeRF, eleva las máscaras RGB y semánticas a un campo neuronal, pero su clustering en cascada depende de plantillas específicas de cada fruta y de varios hiperparámetros sensibles, que deben cambiar según el tipo de fruta y la fase de crecimiento.

Solución propuesta

FruitNeRF++ añade al NeRF un campo de instancias neuronal y lo entrena con una pérdida contrastiva de tipo InfoNCE sobre máscaras de instancia 2D de Grounded-SAM o Detic, usando la característica media de cada fruto como positivo y los frutos vecinos como negativos difíciles. Primero se entrenan los campos de densidad y color, luego el campo semántico y después solo el campo de instancias con los demás congelados. La escena se muestrea en una nube de puntos de frutos con características de instancia de 32 dimensiones, se divide en particiones con k-means y cada partición se agrupa con HDBSCAN usando una suma ponderada de la distancia coseno entre características y la distancia euclídea.

Ideas clave

  • Usar una característica prototipo (media) por fruto como positivo, en lugar de contrastar cada par de píxeles, dio una mejor señal de entrenamiento para el campo de instancias.
  • El muestreo uniforme de píxeles sirve para entrenar el color del NeRF pero no para aprender instancias, porque dominan los píxeles de fondo; muestrear grupos de frutos vecinos aporta negativos locales difíciles.
  • El clustering con la distancia coseno entre características más la distancia euclídea entre posiciones funcionó mejor que cualquiera de las dos por separado; en los datos sintéticos, la mayor parte de la separación procedía de la posición porque los frutos que se tocan son raros. La Sección IV-E da λe = 5 como peso euclídeo, mientras que la Sección V indica λe = 1 para los experimentos sintéticos y λe = 5 para FUJI.
  • Una temperatura contrastiva τ entre 0,1 y 0,3, con el máximo en 0,2, funcionó en los datos sintéticos; fuera de ese rango, el clustering no lograba separar las instancias.
  • La calidad de las máscaras limita los recuentos: en los datos sintéticos, las máscaras de Grounded-SAM alcanzaron un IoU medio de 0,561 y las de Detic 0,49, y una hoja o rama que cruce un fruto puede dividirlo en dos instancias.

Resultados principales

  • F1 medio en seis tipos de fruta sintéticos: 0,925 con máscaras reales (ground truth), 0,832 con máscaras de Grounded-SAM y 0,776 con máscaras de Detic.
  • Con máscaras reales, F1 por fruta de FruitNeRF++ frente a FruitNeRF (Tabla II, valores de FruitNeRF tomados de su propio artículo): manzana 0,996 frente a 1, ciruela 0,859 frente a 0,885, limón 0,978 frente a 0,978, pera 0,996 frente a 0,971, melocotón 0,996 frente a 0,987, mango 0,713 frente a 0,873.
  • El mango fue el caso más difícil (649 de 1150 contados con máscaras reales), lo que los autores atribuyen al gran número de frutos y a la fuerte oclusión.
  • Conjunto de datos real de manzanas FUJI (582 imágenes, 12 árboles): F1 de 0,765 con máscaras de Grounded-SAM, frente a 0,881 del método específico para la fruta de Gené-Mola et al.
  • En el conjunto de datos Messy Rooms, con 100 objetos domésticos, se detectaron 99 objetos.
  • Para las manzanas, el F1 llega a 1 con un tamaño de embedding de D = 16; las ciruelas y los mangos necesitan embeddings más grandes.

Limitaciones

  • El entrenamiento en una escena más grande como FUJI tarda unas 8 horas en una Nvidia A5000 (24 GB), así que el método no funciona en tiempo real; la lenta convergencia del campo de instancias supone más de la mitad de ese tiempo.
  • Los resultados dependen de una buena cobertura del árbol; los datos ruidosos, sobre todo las poses de cámara imprecisas, hacen que los embeddings de un fruto contaminen a sus vecinos.
  • La segmentación de instancias tiende a predecir dos instancias cuando una hoja o una rama divide visualmente un fruto, lo que separa los embeddings de las dos mitades.
  • Los frutos que crecen en racimos, como los plátanos, las bayas o los dátiles, necesitan más investigación para estimar el tamaño de los racimos y los recuentos.
  • La evaluación en el mundo real abarca un único conjunto de datos de manzanas cuyas poses de cámara necesitaron COLMAP más un registro manual de ambos lados del árbol; los autores atribuyen la diferencia con Gené-Mola et al. a estas poses ruidosas.

Impacto en el campo

FruitNeRF++ fue finalista de un premio de IROS 2025 y tiene 5 citas. Los autores indican un repositorio de código, github.com/meyerls/FruitNeRFpp, con el código pendiente de publicarse tras la aceptación, y amplían el conjunto de datos multifruta de FruitNeRF con máscaras de instancia.

Resumen

Presentamos FruitNeRF++, un novedoso método de recuento de frutos que combina el aprendizaje contrastivo con los campos de radiancia neuronales para contar frutos a partir de fotografías de entrada no estructuradas de huertos. Nuestro trabajo se basa en FruitNeRF, que emplea un campo semántico neuronal combinado con un enfoque de clustering específico de cada fruta. La necesidad de adaptarlo a cada tipo de fruta limita la aplicabilidad del método y dificulta su uso en la práctica. Para eliminar esta limitación, diseñamos un marco de recuento multifruta independiente de la forma, que complementa los datos RGB y semánticos con máscaras de instancia predichas por un modelo fundacional de visión. Las máscaras se usan para codificar la identidad de cada fruto como embeddings de instancia en un campo de instancias neuronal. Muestreando volumétricamente los campos neuronales, extraemos una nube de puntos con las características de instancia incrustadas, que puede agruparse de forma independiente de la fruta para obtener el recuento de frutos. Evaluamos nuestro método con un conjunto de datos sintético que contiene manzanas, ciruelas, limones, peras, melocotones y mangos, así como con un conjunto de datos de referencia real de manzanas. Nuestros resultados demuestran que FruitNeRF++ es más fácil de controlar y se compara favorablemente con otros métodos del estado del arte.

Enlaces

  • 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
  • Código: https://github.com/meyerls/FruitNeRFpp
  • Página del proyecto: https://meyerls.github.io/fruit_nerfpp

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.