Detector
Para la etapa de detección usamos dos enfoques bastante distintos dependiendo del tipo de fruta, y a su vez estos finamente ajustados para cada tipo de fruta. Por esta razón es que necesitamos de antemano determinar el tipo de fruta, para poder aplicar el proceso de detección ideal.

Diagrama del detector
Se detallan a continuación los dos enfoques abordados:
-
Detección de círculos (Naranjas, manzanas, kiwis y ciruelas):
En caso de ser una imágen de ciruelas, directamente se usa el detector de círculos de Hough sobre la imágen, con los parámetros del mismo elegidos según las dimensiones de las ciruelas.
En caso de ser alguna de las otras tres frutas, es factible aplicar el mismo procedimiento usado para la clasificación para obtener la máscara y remover el fondo (pues son frutas con color), y sobre la imágen sin fondo aplicar ahora el detector de círculos con los parámetros apropiados para cada fruta.
Una vez reconocidos los círculos, simplemente basta contarlos para saber el número de frutas en la imágen, y la sección del círculo será la de la fruta. -
Operaciones morfológicas (Bananas y mangos):
Como estas frutas también tienen color, se binarizan igual que en clasificación. Como no son redondas se tiene que usar otra técnica.
Primero se erosiona la imágen para separar frutas pegadas por pequeños cabos, se filtran áreas pequeñas (ahora teniendo en cuenta el tamaño de bananas y mangos correspondientemente) y se aplica luego un CLOSE para suavizar las componentes.
Sobre esta imágen binaria se obtienen los contornos, y para suavizar los mismos se aplican distintos procedimientos según la fruta. Para los mangos se aplica un Convex Hull, y para las bananas un Approx Poly (se evita la Convex Hull pues al ser las bananas formas alargadas, ciertas configuraciones de bananas pegadas pueden generar una Convex Hull que incluya mucho fondo en comparación a la fruta).
Teniendo los contornos, se decide si el contorno delimita a una o más frutas (y cuantas) en función del área encerrada (por si hay dos frutas pegadas y el contorno detectado es el de ambas juntas). Entonces se obtiene la cantidad de frutas en la imágen y los contornos que delimitan a las mismas.







Cadena de procesamiento para detector de bananas
En todo este proceso de detección hay parámetros que debieron ser seteados para optimizar el funcionamiento,
como los parámetros del detector de círculos de Hough (radio mínimo, máximo, distancia mínima entre círculos,
umbral de votos, etc) y otros como el tamaño del núcleo para las operaciones morfológicas.
Para agilizar este proceso y obtener la solución más eficiente, se usó la librería de Python “Optuna”,
la cual permite optimizar una serie de parámetros de un proceso utilizando optimización Bayesiana en función de una métrica final, la cual en
nuestro caso era el porcentaje de acierto al contar las frutas de la imágen (suponiendo en todo momento que el clasificador no falla).