¿Cómo debería abordar el problema de segmentar el césped de una imagen?

Una forma de segmentar el césped es aplicar una técnica de filtrado basada en parches. Podría generar un pequeño conjunto de entrenamiento de unos cientos de parches de hierba en diferentes lugares, orientaciones e iluminaciones (todos normalizados a escala de grises) y luego entrenar un modelo de aprendizaje automático como un SVM en estos parches positivos. Para parches negativos, muestre parches al azar desde la mitad superior de la imagen (también conocida como Minería negativa negativa).

Una vez que tenga este SVM, se convierte en un proceso simple de muestreo de parches a diferentes escalas en la imagen y puntuación de cada parche, ¿es un parche de hierba o no? Una vez que tenga todos los parches que se puntúan como parches de hierba, puede usar las ubicaciones espaciales de esos parches para seleccionar qué partes de la imagen son hierba.

Creo que un enfoque más fácil sería encontrar propuestas de objetos utilizando algo como la Búsqueda selectiva y luego marcar todo lo demás como fondo. Si la posición de su cámara en el robot es constante, use la altura de la cámara para hacer una estimación del horizonte y separar el cielo de la tierra. Por supuesto, esto significa que la tierra podría ser cualquier terreno y no solo pasto.

Es casi seguro que se beneficiará de tener color, incluso si la variación de apariencia debido a la iluminación, las sombras, el tipo de césped / temporada es mucho.

Dado que está operando en un robot móvil, supongo que no tiene mucha capacidad computacional para esta tarea. Entonces, un enfoque simple podría ser entrenar un clasificador barato (por ejemplo, SVM lineal) directamente en los histogramas RGB de pequeños parches de imagen, digamos 10 × 10 píxeles (experimente usted mismo). Puede probar diferentes discretizaciones: digamos 25 contenedores discretos para rojo, 25 para verde y 25 para azul. También debe experimentar con otros espacios de color, como HSV.

Dado que la clasificación basada en el color puede darle muchos falsos positivos en los árboles; Una manera fácil de incorporar alguna estructura previa en su formulación sería variar el umbral para aceptar un parche como “hierba” basado en la coordenada y de ese parche. Es decir, acepte parches que sean muy altos, solo si obtienen un valor de confianza muy alto del SVM; mientras que los parches que están cerca de la parte inferior de la imagen deben clasificarse como hierba incluso si la puntuación SVM para ellos es relativamente menor.

Utilicé la clasificación de colores más una distribución previa para detectar manos en las imágenes capturadas desde una cámara portátil (montada en la cabeza) hace algunos años:

http://www.zeeshanzia.com/pdf_fi

Además de su planteamiento del problema, voy a considerar los siguientes supuestos:

  • no habrá capacitación involucrada, es decir, no se proporcionarán imágenes previas de paisajes al robot

Abordaría este problema con una combinación de soluciones basadas en características y basadas en reglas. Será realmente difícil segmentar el césped sin información de color.

  1. extraiga los parches HSV de la ventana deslizante de la imagen, para cada parche HSV determine si la distribución está sesgada hacia el verde y clasifique el parche como “hierba”, determinando así la segmentación del color.
  2. extraer texturas de ventanas deslizantes (LBP estaría bien), realizar algunos clusters para determinar la segmentación de texturas.
  3. combina estos dos y tendrás tu “segmentación de césped”

El enfoque anterior es rápido y confiable, pero el error se propaga / multiplica, lo que hace que sea menos preciso. Sin embargo, será lo suficientemente preciso como para ayudar a navegar el robot (por ejemplo: conducir siempre sobre hierba, etc.) siempre que tenga cuidado con las condiciones de contorno y otras trampas. Dependiendo de la potencia informática de su robot, puede simplemente lanzar un modelo pre-entrenado de aprendizaje profundo a la imagen y segmentarlo (como http://www.cs.berkeley.edu/~jonl …, http: // www .cv-foundation.org / ope …, o

Gracias por pedirme que responda.

Una clase estándar de modelos es usar el agrupamiento en el conjunto de píxeles de la imagen. Dado que su imagen es en escala de grises, es mejor usar un pequeño parche alrededor del píxel en lugar de solo el píxel mismo.

Después de eso, la tarea consiste básicamente en agrupar un montón de puntos en un espacio euclidiano. Cualquier método comercial como k-means o agrupación espectral debería funcionar bien.

More Interesting

¿Podemos agregar la capa SVM como capa inferior en la arquitectura CNN para una mejor clasificación?

¿El aprendizaje automático es un tema torpe?

¿Cuáles serían los proyectos / servicios más interesantes en el cuidado de la salud que involucren alta tecnología como dispositivos móviles, big data y data science? Por ejemplo, Ginger.io.

¿Puedo ser un ingeniero de aprendizaje automático con habilidades en desarrollo web y móvil?

¿Cuáles son algunas de las estadísticas más importantes y más engañosas en la predicción de partidos de fútbol?

¿Cómo se relaciona la RNN con el aprendizaje profundo?

¿Cuándo y dónde se usaron por primera vez los términos 'aprendizaje profundo', 'aprendizaje automático', 'ciencia de datos'?

¿Qué idioma es el mejor para construir código de producción de aprendizaje automático?

¿Cuáles son las probabilidades de ingresar a un programa de posgrado de aprendizaje automático en una escuela superior si mi experiencia en investigación es en bioinformática y algo de experiencia en investigación en PNL?

En la capacitación de CNN, ¿también se actualizan los pesos correspondientes al mapa de características?

¿Qué datos puedo recopilar y hacer un procesamiento de Big Data para diagnosticar en mis sistemas?

¿Cuáles son los mejores solucionadores de programas cuadráticos?

¿Cómo debo abordar mi tesis sobre 'conversión de lenguaje de señas a texto'? ¿Cuál debería ser el método?

¿Por qué las redes neuronales recurrentes no pueden ampliarse bien?

¿Cuáles son los nuevos modelos de aprendizaje profundo que aparecen en los últimos años?