413 meneos
4349 clics
Investigadores de la UCLA lanzan como código abierto un potente algoritmo de reconocimiento de imágenes [ENG]
Ingenieros de la UCLA han lanzado un nuevo y potente algoritmo de reconocimiento de imágenes bajo la fórmula del código abierto. El algoritmo, denominado Phase Stretch Transform, tiene como principal característica que mejora las imágenes, reconoce texturas y puede distinguir los bordes y otros detalles que aparecen en las imágenes. Incluso es capaz de mostrar detalles no visibles, como estructuras de diversos materiales. [Vía: www.microsiervos.com/archivo/tecnologia/avanzado-reconocimiento-imagen ]
|
comentarios cerrados
Por que he leido, es un filtro que realza ciertos detalles (no reconoce texturas, distinguir los bordes,... sino que ayuda a reconocerlos a otros algoritmos) y lo realmente novedoso se supone que es la mejora en la velocidad de procesameinto frente a la competencia, que permite analizar videos de alta velocidad (de la que no dan absolutamente ninguna comparacion).
<<Entre otras funciones sus creadores enumeran las que permiten navegar a los coches autónomos, detectar células cancerígenas o realizar análisis de seguridad>> Lo que dice el articulo, es que los investigadores creen que puede ser de utilidad en esos ambitos, no que se haya probado y este usando ya.
Si cada vez que se publica el codigo algoritmo lo sacamos en las noticias de cientos de blogs, apaga y vamonos.
Quizá esta no sea la noticia más relevante sobre el reconocimiento de imágenes, pero supone un soplo de aire fresco.
Solo comentar que el “reconocimiento de células cancerígenas” no es tan extraño, hay bastantes conjuntos de datos (datasets) para la detección de células cancerígenas para que los científicos prueben sus algoritmos (mirad un poco en kaggle o búsquedas en papers).
This function is provided for research purposes only. A license must be obtained from the University of California, Los Angeles for any commercial applications. The software is protected under a US patent.
Vamos que solo lo puedes usar para investigación, para cualquier otra cosa está limitado.
Una de las aplicaciones que más interesan es la de la detección de células cancerigenas en la sangre.
1. No es un algoritmo de reconocimiento:
-- Es un algoritmo de transformación de imágenes que facilita la detección de bordes, objetos y formas. Puede ser útil para algoritmos de reconocimiento o de muchas otras cosas (por ejemplo coches autónomos).
2. No es openSource (ni código abierto)
-- El código publicado, es un trocito de código Matlab (herramienta propietaria de código cerrado).
-- El uso del algoritmo (aunque lo reescribas en otro lenguaje) está reservado y patentado y únicamente es libre para investigación.
3. El algoritmo es realmente bastante simple y usa funciones de cálculo muy rápido y muy optimizadas en muchos sistemas (transformada rápida de fourier básicamente). No dudo que haya buena ciencia detrás... pero no parecen años de investigación.
++ Que sea simple y rápido es muy bueno y puede ampliar sus aplicaciones... esto salva la noticia, que no el titular.
Un tal Uqam ha ido bombardeando la Wikipedia con referencias a este método.
'The algorithm is patented, so for educational purposes you can use the algorithm but to use it in a commercial application, you need to obtain license from UCLA.'
De todas formas, sacar los bordes (o las texturas) de un objeto es un problema clasico de vision artificial y hay muchos algoritmos que ya lo hacen (incluso algunos clasicos que funcionan muy bien y muy rapido), por ejemplo uno de los primeros que se estudian es el algoritmo o filtro de Canny (1986) www.youtube.com/watch?v=w52zYkKlj9o , junto con el de Kalman (1960) y el de Sobel (1968).
La ventaja principal ventaja de este del propuesto en este articulo es su supuesta velocidad, de la que todavia no he podido ver ningun dato.
Detectar bordes en imagenes no es algo nuevo (como bien dice #4, ni siquiera en celulas cancerigenas, que es uno de los datasets estandar del area de computer vision), yo mismo tuve que hacerlo durante la carrera... otro dataset clasico es el de detectar cancer de mama (dado los datos de las celulas detectadas), muy tipico para aprender redes neuronales (sacan resultados por encima del 98% de precision). Lo importante es saber los resultados que saca en los dataset estandares del campo, comparadolo con los demas algoritmos actuales (es una mejora si acierta mas que los demas, o si acierta lo mismo pero lo hace mas rapido).
En ese sentido la noticia deja muchisimo que desear, ya que no da ningun dato util, lo unico que dice es que es "open sorce" (cuando en realidad esta patentado), que detecta bordes y texturas (como si eso fuera algo nuevo, cuando se viene haciendo desde los 70s) y que es potentisimo (pero sin compararlo con ningun otro en data sets estandares).
PS: creo que con GIMP puedo hacer lo mismo con un algoritmo de detección de bordes y aplicando el filtro retinex luego.
Algunos comentarios a lo que dijiste:
1. Efectivamente sirve para transformar una imagen en otra, típicamente una imagen 'física' como una fotografía, típicamente con colores o diferentes tonos de grises, en una imagen típicamente compuesta de líneas, que serían los "bordes" en los que habría un cambio de color o de tono de gris. El resultado sería una imagen de líneas como las que haría un dibujante o como los dibujos de líneas que se dan a los niños para colorear, donde cada niño rellena el espacio delimitado por esas líneas o bordes con un color. Luego ya el para qué se pueden usar esas líneas pues lógicamente puede ser para muchas cosas: para reconocimiento de formas (OCR, caras, iris, objetos, señales de tráfico...), para hacer un filtro 'chuli' de Instagram / Photoshop, ... Y en el caso de coches autónomos, supongo que viene bien para saber las líneas de la carretera (más que para 'reconocer' que es una línea o no, quizá para saber dónde está situada la línea o incluso la situación de otros vehículos o peatones: que no tienes que reconocer si es un niño o perro o bicicleta sino saber que hay un objeto, con bordes, que no es carretera y que no lo debes atropellar). Nota: ojo, los coches autónomos no sólo usan imágenes sino también señales de RADAR, LIDAR, etc. para tener con todo ello un conocimiento bastante completo y rápido del entorno por el que se mueven.
Existen otros "filtros" o transformaciones de imágenes para detectar bordes, como el filtro/operador de Sobel (básicamente una aproximación del gradiente) o el algoritmo de Canny (que se resumiría como un suavizado previo + aproximación de gradiente), este último mucho más famoso que el PST del artículo por lo que he visto. ( de esto habla también #27 )
Aunque el nombre a mi me confundió porque la palabra "transform" se suele traducir en español como "transformada" y la transformada suele ser a otro "dominio" / "espacio vectorial" diferente. Por ejemplo, la transformada de Fourier o de Laplace... la "señal" original está en el dominio del tiempo o del espacio y la transformada es en el "dominio" de la frecuencia (ciclos por segundo, ciclos por metro, etc). Viene a ser un cambio de base ortonormal... Pero, vamos, sin enrollarme más, lo que quería decir es que cuando se habla de "transform" o "transformada" el resultado es en un espacio diferente, que si partes de una fotografía (que es… » ver todo el comentario
De todas formas código abierto no significa que tu puedas coger y utilizarlo sin violar alguna patente, que es lo que de hecho comenta #13.
No necesitas ningun codigo para patentar un algoritmo (de hecho las patentes de software en EEUU son muy genericas), ni el dar el codigo en Github te impide que tengas que pagar si lo usas para fines comerciales. Lo dicho, ¿Es seria una noticia que lo unico que dice es que unos investigadores han publicado un algoritmo en Github?
#5 #16 A mi desde luego me parece un sensacionalismo de libro, "codigo abierto" pero patentado; los investigadores creen que sera util para muchas cosas, pero la noticia lo pone como si ya se estubiera usando (en el paper ni siquiera dan los resultados de los datasets de reconocimiento de celulas cancerigenas solo un ejemplo concreto, como dice #4 es un problema bastante estandar); la principal ventaja es la velocidad, pero no se dan comparativas. Yo tambien estoy hasta las narices de las noticias sobre Esperanza Aguirre, pero espero algo mas de calidad en cuanto a noticias cientificas se refiere...
Alguien conoce alguna buena librería opensource de reconocimiento de imágenes que esté portada a (o usada en) varios lenguajes?
www.pyimagesearch.com/2014/01/12/my-top-9-favorite-python-libraries-fo
el blog tb es muy bueno
Eso sí, también estoy de acuerdo que esta noticia no aporta mucho más que simplemente darnos la oportunidad de hablar de este tema en los comentarios. Y eso es otro aspecto de meneame que tampoco me gusta demasiado.
"The algorithm performs a mathematical operation that identifies objects’ edges and then detects and extracts their features. It also can enhance images and recognize objects’ textures."
Es un algoritmo en sí, por lo que dice el artículo.
Y respecto a lo de Open Source, como ya apunta #7, el que un algoritmo esté descrito en un documento accesible no quiere decir que su uso sea libre. Así es el mundo de las patentes, y peor que podría ser si se hace caso a ciertas opiniones.
De nada.