Cómo aprender el procesamiento de imágenes

Primero, la pregunta es defectuosa. Lo que es “mejor” para mí puede no ser lo que es “mejor” para usted. Por lo tanto, las herramientas que necesita dependerán de su estilo de aprendizaje y de las herramientas que tenga disponibles.

Un buen libro de referencia ha sido tradicionalmente un buen punto de partida. El libro ‘Digital Image Processing’ de Woods and Gonzalez es un libro que me ha sido de gran utilidad. Sin embargo, tenga en cuenta que no hay un libro que cubra todos los detalles en la profundidad que desea o necesita y no todos encontrarán el estilo de un libro en particular para su satisfacción. Sin embargo, en mi experiencia, hay suficiente texto descriptivo para ayudar a comprender las matemáticas del procesamiento de imágenes y la visión por computadora para ayudar a alguien que está comenzando (sin perderse tampoco en las matemáticas). Aún así, este es solo un libro que he encontrado útil y otros pueden tener otros que les resulten útiles.

También vale la pena tener en cuenta que hay muchas referencias en línea que pueden ayudar.

Dicho esto, la ventaja de un libro es que, después de haber pasado por el proceso editorial, generalmente tendrá una estructura más coherente. No es esencial ser tan estructurado, pero es fácil familiarizarse íntimamente con pequeñas secciones del campo y tener brechas evidentes en otros … una presentación estructurada puede reducir el riesgo de caer en esa trampa.

Luego, además de comprender los conceptos teóricos, también es importante poder comprender cómo las operaciones matemáticas transforman una señal (recuerde, una imagen es una señal, pero en dos dimensiones). Aquí es donde tener una herramienta para experimentar con los diferentes operadores puede ser muy útil.

ImageJ es una herramienta que podría ser útil para esto (sin entrar en Matlab, que es astronómicamente costoso para un individuo).

Si ya es un programador (y razonablemente competente en C / C ++ / Python / …), entonces Open CV tiene un amplio conjunto de herramientas / operadores que pueden ser útiles (pero, al ser un conjunto de bibliotecas, se supone que no es un programador principiante).

Con estas herramientas, puede examinar el efecto de tomar una imagen y aplicar diferentes operaciones, lo que, a medida que su experiencia crece, junto con su comprensión más profunda de las operaciones reales, aumentará su competencia para comprender las fortalezas y desventajas de las diferentes operaciones / operadores

De todos modos, espero que esto ayude al menos a comenzar.

Coursera tiene un curso sobre procesamiento de imágenes digitales en camino. Únete; trabajar a través de todos los problemas se plantea usted mismo.

Descubrí que trabajar en proyectos y resolver conjuntos de problemas es el método más efectivo para aprender el procesamiento de imágenes. La teoría (salvo temas avanzados) es básicamente matemática discreta; Se puede buscar fácilmente en Internet. La intuición y la visualización mental de los algoritmos son muy importantes y solo se obtienen a través de la experiencia.

Una advertencia: el procesamiento de imágenes es en gran medida un problema resuelto ahora. El principal progreso está ocurriendo en la visión por computadora (las computadoras entienden lo que ven, por ejemplo, caras reconocidas).

Cuando estaba estudiando esto en 2010 o 2011, este libro me pareció excelente: Procesamiento de imagen digital (3a edición): Rafael C.González, Richard E. Woods: 9780131687288: Amazon.com: Libros

También te recomiendo que comiences a mirar los filtros creados por la comunidad para GIMP.

Una de las áreas interesantes del procesamiento de imágenes es la pintura de imágenes, donde los algoritmos adivinan cómo llenar un espacio en blanco. Este podría no ser especialmente convincente para usted:

Rellenar las partes poco fiables de una foto antigua

Sin embargo, dado unos pasos más, este es el estado del arte: el uso de imágenes semánticas (etiquetas de “automóvil”, “carretera”, etc. en píxeles) para producir una imagen plausible de la escena:

Para obtener una descripción general de cómo las empresas se están adaptando a los avances en este espacio, tal vez le interese un artículo que escribí hace unos meses, VC Re-imaginando los robots que nos prometieron .

Puede encontrar algunas demostraciones de lo que está haciendo tanuki.ai hospitality analytics en nuestra página de Facebook: Tanuki.ai

Terminologías utilizadas:

IP – Procesamiento de imágenes

ML – Aprendizaje automático

La forma correcta de aprender es ensuciarse las manos. El procesamiento de imágenes es un vasto campo que cubre el recorte de la imagen para dar una etiqueta a la imagen mediante capacitación. Algunos IP básicos funcionan como cambiar el tamaño, cambiar canales, recortar, eliminar ruido, agregar ruido, la conversión de pérdida de calidad se puede aprender a un ritmo más rápido y una curva más fácil. Hay pocas bibliotecas en Python como OpenCV, Scikit-image que admite una implementación más fácil.

Pero para el reconocimiento de imágenes, el etiquetado de la imagen, el cuadro delimitador para la imagen se incluye en ML y esto requiere algunos conocimientos básicos como la diferenciación [para calcular la función de pérdida], la convolución [para la cobertura espacial], etc. Aquí es donde necesitas aprender muchas matemáticas y programación al mismo tiempo. No te preocupes Hay recursos bastante interesantes en YouTube que le ayudan a entender los conceptos básicos fácilmente.

Todo lo mejor 🙂

Comience a capturar imágenes y videos de su cámara y la cámara de su teléfono móvil. Vea estas imágenes y trabaje en ellas. Utilice técnicas simples de filtrado de imágenes y analice los resultados. Luego, elija un enfoque multimodal y desarrolle la cadena de procesamiento de imágenes. Algunos ejemplos de la cadena de procesamiento de imágenes son: clasificación de imágenes, identificación de objetos, seguimiento, segmentación, costura y correspondencia.

Puede referir a Gonzalez & Woods, “Digital Image Processing”, 3ª ed., Pearson Education, 2008 para el procesamiento de imágenes. Es un libro muy bueno para aprender el procesamiento de imágenes. Y también puede descargar algunos tutoriales de Matlab para el procesamiento de imágenes para implementar lo que haya aprendido del libro.

Leyendo a mi amigo
Habrá muchas bibliotecas que tendrán muchos algoritmos ya implementados. Pero usar bibliotecas solo lo ayudará a comenzar. El verdadero aprendizaje ocurre cuando entiendes lo que hay dentro y desarrollas una comprensión de la teoría y la intuición.
Hay muchísimas herramientas disponibles. Cuando sepa lo que quiere hacer, los encontrará. Gracias a internet.
También habrá disponibles muchas conferencias en video sobre procesamiento de imágenes básico y avanzado. Puede llevar tiempo ser bueno en teoría, pero teoría y práctica van juntas.

Espero que esto ayude.

Respuesta de:
La respuesta de Abdelrahman Hamdy a ¿Cómo aprendo el procesamiento de imágenes?

Si desea aprenderlo desde la perspectiva matemática, le recomendaré: ” Fundamentos del procesamiento de imágenes digitales” de Jain :
Fundamentos del procesamiento de imágenes digitales: Anil K. Jain: 9780133361650: Amazon.com: Libros

Si desea aprenderlo desde la perspectiva de conceptos y algoritmos generales, le recomiendo:
Procesamiento de imagen digital” por Rafael González:
Procesamiento de imagen digital (3a edición): Rafael C.González, Richard E. Woods: 9780131687288: Amazon.com: Libros

Estos tutoriales también son geniales:

Procesamiento de imagen digital
EGGN 510 – Procesamiento de imagen y señal multidimensional

Hay varios cursos en coursera.com, las siguientes dos lecciones son muy buenas.

Procesamiento de imagen y video: de Marte a Hollywood con una parada en el hospital | Coursera
Coursera
Fundamentos del procesamiento de imagen y video digital | Coursera
Coursera

recursos útiles
para Álgebra lineal LAFF – Fundamentos a las fronteras
Álgebra lineal LAFF – Fundamentos a las fronteras (www.ulaff.net)
para aprendizaje automático, búsqueda web, análisis de datos
Página en youtube.com
para visión por computadora media y baja
Página en youtube.com

C es una mala elección de lenguaje para el procesamiento de imágenes. Consulte ¿Cómo empiezo a aprender el procesamiento de imágenes en C / C ++?

Sin embargo, la bien revisada biblioteca de procesamiento de imágenes, OpenCV, escrita en C ++, tiene una interfaz de lenguaje C si desea evitar usar C ++ usted mismo. OpenCV | OpenCV. Se encuentran disponibles muchos libros y tutoriales en línea, tal como se documenta en DOCUMENTACIÓN | OpenCV.

Puedes echar un vistazo a las video conferencias que están disponibles gratuitamente en los MOOC.

Coursera tiene un curso gratuito sobre procesamiento de imágenes digitales por Guillermo Sapiro (creo que estoy en lo correcto con la ortografía). Además, si recuerdo bien, también hay un par de cursos relevantes.

NPTEL alberga una serie de conferencias sobre procesamiento de imágenes digitales por el profesor SK Biswas de IIT Kharagpur, India. Está disponible gratuitamente en el sitio web http://www.nptel.iitm.ac.in

Además, hay video conferencias de Mubarak Shah que están disponibles en YouTube, lo cual es extremadamente bueno. También hay algunos otros, que actualizaré lo antes posible.

Cuando estudiaba el procesamiento de imágenes, sentí que la mayoría de los tutoriales / conferencias / maestros se enfocaban en el aspecto matemático del mismo. Esto es necesario. Pero también es necesario tener una comprensión intuitiva de ello. Es por eso que puede consultar el siguiente enlace:

Procesamiento de imágenes con GNU Octave: un software compatible con MATLAB

Recomendaría este curso Fundamentos del procesamiento de imagen y video digital | Coursera

Puede consultar este enlace para una revisión rápida.

Pero la mejor manera de aprender y comprender este tema es haciendo muchos proyectos.

Puedes revisar los proyectos aquí.

Es un campo muy interesante y emocionante. Espero eso ayude.

Puedes probar OpenCV. Eso fue lo que utilicé para mi trabajo de investigación sobre detección y corrección de ángulo oblicuo. Tiene buena documentación considerando que comencé sin tener ni idea sobre el procesamiento de imágenes. El software que hice para mi trabajo de investigación utilizaba C y VB. Darle una oportunidad.

El procesamiento de imágenes es un gran campo orientado a la investigación. Sugeriría tomar el curso bajo una buena guía. Si estás en India puedes consultar el CVIT de IIIT-H

http://cvit.iiit.ac.in/index.php

Depende completamente del lenguaje que se utilice para procesar la imagen. Por ejemplo, PHP tiene algunas buenas bibliotecas sobre cómo hacer este tipo de cosas (ImageMagick es el más poderoso, GD es el más básico y Cairo se adapta al medio). Supongo que te refieres a cambiar el tamaño, crear versiones png / jpeg de otros formatos, completar el espacio transparente y ese tipo de cosas.

Después de elegir el idioma y la biblioteca que desea usar, hay varios tutoriales en Internet para procesar estas imágenes. Explicarán todo, desde la captura de imágenes hasta la creación de una imagen nueva y procesada mediante la aplicación de transformaciones. Simplemente se reduce al idioma que elija: PHP, en mi opinión, tendrá la mayor cantidad de tutoriales porque probablemente sea el lenguaje de fondo más documentado.

Bueno, si pudiera recordar, busque en la web el tutorial del profesor Guillermo Sapiro o el estudio de caso o libro, estaba asociado con la Universidad de Duke (actualmente no tengo idea). Obtendrá lo mejor del procesamiento de imágenes, todo lo que él haga.

Busque una herramienta de procesamiento de imágenes e intente aprender las técnicas.

Consulte los tutoriales en línea. Compruebe los sitios como stackoverflow, blogs.

Verifique los perfiles de personas profesionales de procesamiento de imágenes, obtendrá algunas pistas de los perfiles.

Si prefiere Python, instale Python e intégrelo con OpenCv.

Luego sigue estos videos tutoriales