El uso de la visión por computadora en la investigación marina o 12 personas en el cofre de un muerto


Saludos cordiales, queridos colegas.
La comunidad OpenDataScience está desarrollando con éxito la iniciativa ML4SG: Machine Learning for Social Good . Dentro de su marco, han comenzado una serie de proyectos interesantes, que en varios campos mejoran nuestra vida con usted.


Nos gustaría hablar sobre uno de estos proyectos, cuyo nombre en código es #proj_shipwrecks . El proyecto fue lanzado por los miembros de la comunidad ODS, quienes en un momento acordaron trabajar gratis en lo que les gusta, pero por alguna razón las manos aún no lo han alcanzado. Ahora el proyecto se ha convertido en una pequeña empresa sin fines de lucro, con varias áreas diferentes de investigación y desarrollo.


Como parte del proyecto, nos esforzamos por ayudar a las personas involucradas en varios tipos de investigación marina, desde arqueólogos marinos, biólogos y oceanólogos hasta equipos de rescate acuático, utilizando nuestra experiencia en visión por computadora y creando nuevos movimientos, a veces inesperados.


¿De qué se trata todo esto?


En resumen, nuestro proyecto tiene como objetivo ayudar a los biólogos y arqueólogos marinos, equipos de rescate de agua e investigadores marinos de todas las tendencias. Nos esforzamos por reducir el tiempo y los costos de varias operaciones al automatizar el trabajo con datos de sonares, satélites, radares de apertura sintética y simplemente imágenes visuales y video.


Nuestra investigación ayudará no solo a descubrir nuevos lugares para bucear, sino que también ayudará a las personas cuyos seres queridos faltan en el abismo. El siguiente paso es la creación de un equipo separado que ayudará a los oceanólogos y biólogos a monitorear las poblaciones de vida marina, desde focas hasta corales coloniales, así como a meteorólogos para monitorear la formación y el movimiento de los ciclones polares.


El proyecto comenzó relativamente recientemente, la fase activa comenzó en febrero-marzo de este año. Desde entonces, decidimos el concepto, obtuvimos un buen equipo, nos organizamos en una especie de startup y aprendimos a hacer todo tipo de cosas geniales. Pero lo primero es lo primero.


Quienes somos


Somos el duodécimo (+ -, la estructura del equipo es algo líquida) la fecha de los satanistas de diversos grados de juniority. Alguien está moviendo las neuronas durante mucho tiempo, alguien está descubriendo el mundo mágico de Deep Learning fuera de Kursers. Además, nuestro equipo emplea desarrolladores animados y un ingeniero de citas mega-cool. Todos vinieron en diferentes momentos, principalmente los miembros actuales de UDF comenzaron el proyecto, pero alguien llegó allí solo después de enterarse del proyecto. Obtuvimos un mayor impulso en números después del DataFest celebrado a principios de mayo, cuando el equipo casi se duplicó.


Trabajamos por agil, no tenemos un plan programado por día, solo tenemos una visión del concepto de dónde queremos llegar y qué obtener al final, tácticamente las tareas cambian dependiendo de los datos que logramos recopilar, si esta o aquella hipótesis funcionó, ¿Necesita la función sobre la que funcionó todo el sprint semanal o se volvió obsoleta, porque Alguien tuvo la mejor idea.


En general, nos divertimos y nos sentimos cómodos :)


imagen


Que estamos haciendo


Como su nombre lo indica, estamos trabajando en el uso de la visión por computadora en varios campos de la investigación marina, tanto para el bien social como directamente para los negocios.


imagen


Analicemos las tareas para el bien social y analicemos en detalle las dos primeras: arqueología marina y Búsqueda y rescate


Arqueología marina


Wikipedia nos dice que la arqueología marina estudia la interacción del hombre con el mar, los lagos y los ríos mediante el examen de los restos físicos relacionados, ya sean barcos, estructuras costeras, estructuras relacionadas, cargas, restos humanos y paisajes submarinos. Una disciplina relacionada es la arqueología subacuática, que estudia el pasado a través de cualquier artefacto bajo el agua.


¿Por qué es tan importante hacerlo? En primer lugar, gracias a la arqueología, conocemos mejor nuestro patrimonio, en este caso, el mar, encontramos artefactos que arrojan luz sobre eventos del pasado o incluso cambian seriamente nuestra visión de algunos momentos históricos. En segundo lugar, no olvide que tuvimos 2 guerras mundiales con la participación activa de las flotas, y las almas de muchos marineros muertos todavía esperan un resto decente de los restos en tierra.


Según la UNESCO (muy aproximado), hay alrededor de 3 millones de naufragios en el mundo, con 3.500 buques de carga y pasajeros (¡3.500, Karl!), 175 buques de guerra y 783 submarinos muertos en la Batalla del Atlántico solo en 1939-1945. Encontrado a partir de todo este esplendor, Dios no lo quiera, 10 por ciento, o incluso menos.


¿Cómo ayuda la visión por computadora a encontrar toda esta grandeza hundida?
Después de todo, a menudo, solo se conoce un lugar de muerte muy aproximado, un cierto cuadrado en mar abierto, sobre el barco hundido, e incluso eso no es exacto.


Para resolver el problema, lo dividimos en 3 partes.


  1. Primero necesita escanear un cuadrado ancho, resaltando las anomalías en las imágenes de sonar y batimetría
  2. Luego clasifique la anomalía encontrada para comprender lo que encontramos
  3. Finalmente, realice una inspección visual del objeto.

En la primera dirección, resolvemos el conocido problema de detección de objetos en imágenes de sonda (detecta una anomalía), así como la tarea de aprender a clasificar: determinamos la "relevancia" de esta anomalía, es decir, que la anomalía es realmente un barco o un avión, o algo más hecho por el hombre, no una piedra, por ejemplo.


imagen


La siguiente tarea en esta dirección es la clasificación de la anomalía encontrada: este es un barco, o aún un avión, o tal vez un contenedor. Para hacer esto, la frecuencia del sonar cambia, lo que le permite obtener una imagen de mayor resolución e intentar clasificar el objeto.


Por cierto, ¿cómo funciona el sonar de barrido lateral?


La exploración lateral utiliza un sonar que emite pulsos cónicos o en forma de abanico hacia el fondo del mar a través de un gran ángulo perpendicular a la trayectoria del sensor. La intensidad de los reflejos acústicos del fondo marino de este haz en forma de abanico se registra en una serie de secciones transversales. Cosidas juntas a lo largo de la dirección de desplazamiento, estas piezas forman una imagen del fondo marino dentro de la franja (ancho de cobertura) de la viga. Las frecuencias de sonido utilizadas en el sonar de barrido lateral están típicamente en el rango de 100 a 500 kHz; frecuencias más altas dan una mejor resolución pero un rango más pequeño.


imagen


Una característica importante de la operación del sonar es que el objeto "escaneado" por él tiene una sombra acústica, cuya forma a veces es más abrupta que la forma del objeto mismo.


imagen


En la segunda dirección, por segunda vez pasamos un sonar sobre cada anomalía con un alto rango y resolvemos el problema de clasificación, tratando de determinar qué tipo de barco o avión nos encontramos.


imagen


El truco es que ahora dicha búsqueda se realiza manualmente. El operador se sienta (¡a veces durante 12 horas!) Y mira la pantalla del sonar, tratando de determinar si hay algo ahí abajo o no. La solución en la que estamos trabajando maximizará la automatización de todo el proceso.


Donde dinero datos, Lebowski?


El principal problema que encontramos durante el estudio es el simple hecho de que hay muy pocas imágenes de sonar disponibles públicamente. En el conjunto de datos que recopilamos de aproximadamente 220 imágenes, un buen detector y, además, el clasificador es prácticamente imposible de enseñar. Sin embargo, logramos encontrar una salida: solo generamos nuestro conjunto de datos;)


En pocas palabras, el enfoque es el siguiente:


1) En caso de inundación, el barco se acuesta con mayor frecuencia con la quilla hacia abajo, con menos frecuencia a bordo, muy raramente la cubierta.
2) Tomamos imágenes de un barco vivo (fotografía aérea, satélite, existen tales conjuntos de datos, el mismo conjunto de la competencia de Airbus en Kaggle , por ejemplo) y lo "ahogan".



Para la "inundación" usamos CycleGAN, una subespecie de la Red Adversaria Generativa, que permite la transferencia de estilos de una imagen a otra. Después de entrenar en aproximadamente 400 eras y ~ 220 pares A y B (vivos y hundidos), ya es posible obtener una imagen adecuada.


Tomamos la imagen real del sonar:


imagen


Imagen satelital:


imagen


Y al final obtenemos esta imagen:


imagen


Y seleccionamos cuidadosamente el conjunto de validación para que el modelo del detector o clasificador no se vuelva a entrenar en imágenes artificiales.


Finalmente, en la tercera dirección , inspección visual y análisis, nosotros, entre otras cosas, resolvemos los problemas de corrección de color de imágenes y videos, desvanecimiento y superresolución utilizando las mismas GAN, pero esta vez las arquitecturas U-GAN, W-GAN y SRGAN.


La naturaleza de los disparos bajo el agua es tal que existen muy pocas fuentes de luz natural (más precisamente, no existen en absoluto), y la luz artificial de los reflectores de los vehículos de aguas profundas es bastante baja.


Como resultado, una imagen tomada bajo el agua generalmente se ve así:


imagen


Nuestra canalización le permite recibir actualmente estas imágenes:


imagen


Esto también se aplica al video (el video fue filmado en un vehículo submarino de control remoto Gnome pro):



Búsqueda y rescate


Según las estadísticas de la UE, de 2011 a 2017, más de 20,000 embarcaciones participaron en varios incidentes, con casi 7,000 personas heridas, de las cuales 683 murieron.


imagen


Los incidentes fueron muy diferentes, por varias razones: desde la pérdida de control de un barco hasta colisiones en la oscuridad o en otras condiciones de poca visibilidad. Las embarcaciones se pierden en mar abierto cuando la falla de los transpondedores, las plantas de energía fallan y el barco puede ser desenergizado, finalmente, alguien del equipo puede ser arrastrado por una ola.


Nos propusimos el objetivo de influir de alguna manera en estadísticas tan tristes y para ello estamos resolviendo las siguientes tareas:


1) Detección y clasificación de imágenes con radar de apertura sintética
2) Detección y clasificación de una embarcación por imagen de satélite / aeronave
3) Búsquedas de personas ahogadas y equipos hundidos y carga de imágenes de sonar


Además, también resolvemos el problema de segmentación de la embarcación en la imagen del sonar, lo que nos permitirá determinar con mayor precisión los puntos para el buceo posterior.


Detengámonos con más detalle en cada tarea.


Con la detección satelital, todo está más o menos claro, un problema similar ya se resolvió en la competencia Airbus Kaggle mencionada anteriormente. También puede descargar un buen conjunto de datos en kaggle.


Con las imágenes SAR, también es más o menos claro, hay un buen conjunto de datos OpenSARShip, que es de dominio público, ya que el lanzamiento del satélite Sentinel-1 por parte de la Unión Europea ha hecho que los datos sean más heterogéneos en el dominio público.


Una línea base rápida, incluso en un pequeño número de eras, muestra una velocidad aceptable en la arquitectura ResNet.


dibujo

La clasificación adicional es difícil, excepto que se dedican muchas horas de trabajo al marcado.


Algo más interesante es el caso de las imágenes infrarrojas. Quizás solo haya un buen conjunto de datos con imágenes infrarrojas de barcos: VAIS , pero es relativamente pequeño.


Pero, como puede suponer, la hipótesis del aumento del conjunto utilizando la transferencia de estilo también puede venir aquí. Sin embargo, incluso en el conjunto de datos inicial, logramos obtener un buen clasificador de línea base (= mejor que aleatorio) en las redes siamesas .


dibujo3

Todo es mucho más complicado con la detección de personas ahogadas.


En primer lugar, no hay conjuntos de datos.
En segundo lugar, no lo son.
En tercer lugar, no lo son en absoluto.


Sin embargo, el problema está siendo resuelto.


Una persona ahogada en la pantalla del sonar se ve de alguna manera así:


dibujo2

La altura sobre el fondo puede ser diferente, dependiendo del período que haya pasado desde el momento de la muerte.


¿Cómo obtenemos un conjunto de datos con esas imágenes? Por supuesto, puedes ahogar a varios maniquíes y tomar fotos con un sonar, pero hay una forma más barata.


Podemos recopilar modelos 3D de personas en sitios de bancos de imágenes gratuitos, y no es necesario en absoluto con texturas o detalles altos. Luego, caliente las escenas con un fondo irregular o coloque el modelo 3D en uno de los simuladores de código abierto como UWSim o UUVSimulator, donde el agua y todo lo que está debajo se simula de acuerdo con todos los cánones.


imagen


Luego puede obtener capturas de pantalla de estas escenas, que luego ... correctamente, aplican la transferencia de estilo. ¡Más GANS para el dios de GANS!


Como resultado, la tubería será así:


dibujo4

Este enfoque le permite obtener un conjunto de datos válido sin la necesidad de costos innecesarios.


Planes adicionales


Y nuestros planes futuros son grandes :) Estamos trabajando en todas las direcciones indicadas al comienzo del artículo utilizando las técnicas y los trucos que aprendimos mientras trabajamos para la arqueología marina y la Búsqueda y Rescate.


Estamos negociando con el MSU Marine Research Center , la Administración Nacional Oceánica y Atmosférica de los EE. UU., La Agencia Estonia Climate4Media para el Monitoreo del Clima y el Medio Ambiente sobre asociaciones, así como con fabricantes de sonar y servicios gubernamentales responsables de la búsqueda y rescate en el agua.


Y, por supuesto, estamos buscando más ayudantes y socios.


En primer lugar, estaremos encantados con los biólogos marinos, ecologistas, arqueólogos y oceanólogos: te enseñaremos en Deep Learning y tú harás el resto :)
Si tiene datos de sonares, en formatos .xtf o .dat, o cualquier otro dato sobre nuestro tema, también estaremos encantados de cooperar.


En segundo lugar, llevamos a cabo una gran cantidad de investigaciones (¡GAN, Karl! Todavía tenemos GAN 3D en el camino para generar nubes de puntos 3D), que requieren una potencia informática considerable, principalmente la GPU.


En tercer lugar, estamos buscando clientes potenciales para probar nuestras soluciones en condiciones de combate.


Y finalmente, estamos buscando inversores que estén interesados ​​en nuestro trabajo y las perspectivas de utilizar sus resultados no solo para el bien social, sino también para los negocios.


Nuestro plan más importante es alejarnos del modo "hacer por la noche y los fines de semana" y pasar al "este modo" es nuestro trabajo y nos gusta ":)


Debido a la naturaleza general del artículo, no me detuve en las tecnologías utilizadas en detalle. Si tiene alguna pregunta, bienvenido a los comentarios, a la página del proyecto , al primer ministro, al correo (pavel.golubev@maritimeai.net), ¡a la holgura de SLM , finalmente! También puede ver nuestro breve informe en la sección ML4SG en el DataFest celebrado en mayo, aquí . Si será interesante considerar algunas tecnologías en detalle, escriba, escribiremos una publicación separada.


Eso es probablemente todo, haz buenas obras :)

Source: https://habr.com/ru/post/454964/


All Articles