¿Cuáles son los mejores recursos para aprender visión computacional para alguien con experiencia en probabilidad y álgebra lineal (y un poco en aprendizaje automático)? El libro “Visión por computadora: Algoritmos y aplicaciones” no es muy adecuado para principiantes.

La mejor manera de mejorar la visión de la computadora es comenzar a trabajar en pequeñas tareas de programación con imágenes. La visión no es un tema en el que quieras entrar sin un poco de programación. Como un hombre sabio dijo una vez a sus estudiantes de doctorado, “hazte amigo de cada píxel”.

Si busca en Google cursos de visión artificial, encontrará muchos de los materiales de conferencias de las mejores universidades en línea.

Antes de hacer algo demasiado sofisticado, asegúrese de saber cómo leer las imágenes, guardarlas, cambiar su tamaño y aplicar algunas operaciones básicas como un desenfoque. Matlab (si tiene acceso a una licencia), o OpenCV en C ++ si está dispuesto a ser bueno en C ++.

¡Y empieza a cepillar el álgebra lineal! Cuanto antes te sientas cómodo con las matrices y los vectores, ¡antes obtendrás experiencia en visión!

He estado trabajando en la visión por computadora por más de 10 años, y aunque no es un campo fácil, ¡definitivamente es gratificante!

Por cierto, creo que lo realmente emocionante de la visión por ordenador es el reconocimiento de objetos. Pero al principio, no se deje intimidar por el aprendizaje automático, ¡solo se preocupe por las simples operaciones de imagen!

Una vez que se convierta en un experto, podrá utilizar una gran cantidad de herramientas de código abierto, y algunas de las nuevas tecnologías en las que está trabajando mi startup harán que la parte de reconocimiento de objetos sea fácil de integrar para todos los desarrolladores en sus programas. Para ver a qué me refiero, revisa mi campaña de Kickstarter para obtener una tecnología de visión increíble como servicio:

http://www.kickstarter.com/proje…

¡Buena suerte con tu búsqueda de entrar en lo que considero el campo del futuro!

Lee los siguientes libros:
Aprendiendo OpenCV por Bradski y Kaehler : este libro explica la teoría mientras te enseña cómo codificar en OpenCV. Es muy práctico y es imprescindible hacer cualquier cosa útil en la visión por computadora. Matlab no es el camino a seguir para la visión por computadora. Utilice OpenCV o VTK / ITK (para imágenes médicas).
Introducción a la visión por computadora en 3D por Trucco y Verri : este libro explica la teoría y le brinda los pasos que implica un algoritmo en un formato tabular. Utilizado por Sebastian Thrun en Stanford.
Visión por computadora: Algoritmos y aplicaciones por Richard Szeliski : este libro es en línea, gratuito, y está escrito por una estereopsis, estructura desde el movimiento, experto en Microsoft Kinect. http://szeliski.org/Book/ Este libro es usado por Noah Snavely en Cornell.

Espero que esto ayude,
Ankur

Aquí está uno de los conjuntos más grandes de recursos relacionados con CV que he encontrado en línea hasta ahora:

jbhuang0604 / awesome-computer-vision

He identificado dos enfoques para el aprendizaje de la visión por ordenador.
Funciona mejor si ambos enfoques van de la mano, pero obviamente dependerá del tiempo que pueda dedicarle y del objetivo final del aprendizaje.

  1. Comience con las matemáticas (Cálculo, Álgebra lineal, Teoría de la probabilidad, etc.) si aún no lo sabe. Luego proceda con un buen libro o un curso y complételo con tutoriales temáticos para los conceptos que requieren más tiempo. Simplemente buscar en Google el nombre del tema obtendrá muchos recursos universitarios. Este enfoque asegurará que usted entienda los fundamentos y que tenga sentido si tiene tiempo.
  2. Recoge un proyecto o una aplicación. Comienza con los trabajos de investigación y los proyectos ya desarrollados relacionados con él. Identifique los conceptos utilizados para resolver el problema y luego búsquelos. Lo más importante es probar estos por tu cuenta. Esto le dará mucha confianza para llegar y familiarizarse con más conceptos que pueden parecer desalentadores al principio. Instale OpenCV o Matlab o SimpleCV o cualquier otro software mencionado en ese enlace (personalmente comencé con OpenCV porque era de código abierto, pero Matlab también es bastante bueno).

Cuando se sienta más cómodo con el mundo de la visión, puede comenzar con los blogs de investigación, los últimos documentos de conferencias y mucho más.
Ir a través del enlace de arriba. Es un excelente conjunto de recursos.
¡¡Buena suerte!!

PD:
Yo mismo todavía estoy en la fase de aprendizaje y me encantaría recibir mejores consejos sobre la metodología para un mejor aprendizaje de la visión artificial.
Cualquier sugerencia / corrección en la respuesta anterior es bienvenida.

Las siguientes sugerencias se basan en el siguiente supuesto:

  1. Te gustaría aprender Visión de Computadora sin costo.
  2. Puede dedicar al menos una hora (considerando que este no es su trabajo principal del día)
  3. Estas decidido a aprender

Wiki: Visión por computadora – Wikipedia

Esto le proporciona una comprensión básica de lo que es la visión por computador y los temas relacionados.

Punto de tutoría: Visión por computadora y gráficos por computadora

Esto te ayuda a entender un poco el detalle, en su mayoría trata con la teoría.

El conocimiento sobre los siguientes temas será útil:

  1. Estructuras de datos
  2. MATLAB / Python con Numpy

Cursos online:

  • Udacity: Introducción a la Visión por Computador | Udacity

Es un título en línea de Georgia Tech, que aprendes sobre

  1. Procesamiento de imágenes
  2. Modelos de cámara y vistas.
  3. Características de la imagen
  4. Iluminación
  5. Movimiento de imagen
  6. Rastreo
  7. Clasifcación
  8. Modelos y sistema visual humano.
  • AL Shack : Tutoriales para OpenCV, visión artificial, aprendizaje profundo, procesamiento de imágenes, redes neuronales e inteligencia artificial.
  • Procesamiento de imágenes digitales – RPI ECSE-4540 por Rich Radke
  • Aprendizaje automático – Stanford CS229 por Andrew Ng
  • Inteligencia Artificial – MIT 6.034 por Patrick Winston

Simultáneamente haz:

  • Implementar proyectos:
  • Microsoft Azure Computer Vision API: Visión por computadora — Procesamiento de imágenes y análisis | Microsoft Azure
  • Mantenga una ficha sobre los últimos trabajos en la industria
    • MIT News: Visión por computador | Noticias MIT
  • Leer trabajos de investigación:
    • Elsevier : resultados de búsqueda

    Ya he compartido los mismos recursos y contenido en ¿Cómo comienzo el aprendizaje automático? ¿AI? ¿Procesamiento de imágenes? ¿Visión por computador? ¿PNL? ¿En qué secuencia debo empezar?

    Para los entusiastas de la visión por computadora, hemos intentado guiar con un punto focal de recursos.

    Para que la respuesta sea breve y precisa, estos podrían ser los principales destellos:
    Cursos:

    • Visión por computadora – Mubarak Shah (UCF): todos los materiales relacionados con el curso están disponibles en línea y lo que es más interesante es que incluso las conferencias de video están disponibles.
    • Visión por computadora – Subhransu Maji (UMass Amherst): brinda acceso a todos los materiales y tareas de la conferencia, pero no hay conferencias de video.
    • Reconocimiento visual – Kristen Grauman (UT Austin): Esto proporciona enlaces a algunos de los documentos interesantes y fundamentales de la visión por computadora.
    • Lenguaje y visión – Tamara Berg (UNC Chapel Hill): este curso está básicamente dirigido a explorar temas que se extienden a lo largo del límite entre el procesamiento del lenguaje natural y la visión por computadora.
    • Redes neuronales convolucionales para el reconocimiento visual – Fei-Fei Li y Andrej Karpathy (Universidad de Stanford): Este curso es una inmersión profunda en los detalles de las arquitecturas de aprendizaje profundo con un enfoque en el aprendizaje de modelos de extremo a extremo para tareas de visión artificial con una centrarse en la clasificación de imágenes.

    Algunos recursos adicionales:

    • Visión por Computador – Rob Fergus (NYU)
    • Visión por computadora – Derek Hoiem (UIUC)
    • Visión por computadora: Fundamentos y aplicaciones – Kalanit Grill-Spector y Fei-Fei Li (Universidad de Stanford)
    • Avances en la visión por computadora – Antonio Torralba y Bill Freeman (MIT)

    Los detalles sobre las conferencias, los libros que se deben hacer y cómo comenzar con la codificación y la publicación se encuentran en el blog:
    ¿Cómo comenzar su carrera en el campo de la Visión Computacional y el Aprendizaje Automático?

    La mejor manera de mejorar la visión de la computadora es comenzar a trabajar en pequeñas tareas de programación con imágenes. La visión no es un tema en el que quieras entrar sin un poco de programación. Como un hombre sabio dijo una vez a sus estudiantes de doctorado, “hazte amigo de cada píxel”.

    Si busca en Google cursos de visión artificial, encontrará muchos de los materiales de conferencias de las mejores universidades en línea.

    Antes de hacer algo demasiado sofisticado, asegúrese de saber cómo leer las imágenes, guardarlas, cambiar su tamaño y aplicar algunas operaciones básicas como un desenfoque. Matlab (si tiene acceso a una licencia), o OpenCV en C ++ si está dispuesto a ser bueno en C ++.

    ¡Y empieza a cepillar el álgebra lineal! Cuanto antes te sientas cómodo con las matrices y los vectores, ¡antes obtendrás experiencia en visión!

    He estado trabajando en la visión por computadora por más de 10 años, y aunque no es un campo fácil, ¡definitivamente es gratificante!

    Por cierto, creo que lo realmente emocionante de la visión por ordenador es el reconocimiento de objetos. Pero al principio, no se deje intimidar por el aprendizaje automático, ¡solo se preocupe por las simples operaciones de imagen!

    Una vez que se convierta en un experto, podrá utilizar una gran cantidad de herramientas de código abierto, y algunas de las nuevas tecnologías en las que está trabajando mi startup harán que la parte de reconocimiento de objetos sea fácil de integrar para todos los desarrolladores en sus programas. Para ver a qué me refiero, revisa mi campaña de Kickstarter para obtener una tecnología de visión increíble como servicio:

    http://www.kickstarter.com/proje

    ¡Buena suerte con tu búsqueda de entrar en lo que considero el campo del futuro!

    Empezar con:

    (1) Señales y sistemas (2ª edición): Alan V. Oppenheim, Alan S. Willsky, con S. Hamid: 9780138147570: Amazon.com: Libros

    y entonces:

    (2) Señal bidimensional y procesamiento de imágenes: Jae S. Lim: 9780139353222: Amazon.com: Libros

    y entonces:

    (3) Robot Vision (MIT Electrical Engineering and Computer Science): Berthold KP Horn: 9780262081597: Amazon.com: Libros

    y luego cualquiera de estos:

    Visión por computadora: un enfoque moderno (2ª edición): David A. Forsyth, Jean Ponce: 9780136085928: Amazon.com: Libros
    Visión por Computadora: Algoritmos y Aplicaciones (Textos en Informática): Richard Szeliski: 9781848829343: Amazon.com: Libros
    (o los kazillion otros libros que son aproximadamente iguales)

    Y para la lectura opcional:

    (4) Ciencia de la visión: fotones a la fenomenología: 9780262161831: Libros de medicina y ciencias de la salud en Amazon.com
    (5) Visión: una investigación computacional sobre la representación humana y el procesamiento de información visual, David Marr, Tomaso A. Poggio, Shimon Ullman, libro electrónico – Amazon.com
    (y otros libros sobre temas como el aprendizaje profundo, la comparación de patrones, etc.)

    Y, por favor, haga esto último (o en paralelo), pero no solo haga esto:

    Amazon.com: Aprendiendo OpenCV: Visión por computadora con la biblioteca OpenCV (9780596516130): Gary Bradski, Adrian Kaehler: Libros

    Ahora que estás completamente aburrido. Escúchame.

    Esto es más o menos el camino de la ingeniería eléctrica y la ciencia de la visión a la visión por computadora. Un estudiante de pregrado que quiera aprender visión por computador usualmente tomaría clases en esta línea. Estas cosas consisten básicamente en 5 cosas principales:
    – Teoría del procesamiento de señales e imágenes.
    – Visión por computador basada en la física (primeros enfoques de principio)
    – Visión por computadora convencional (cómo hackear algoritmos juntos)
    – Percepción y visión biológica (ciencia de la visión).
    – trabajo de laboratorio (opencv; cómo hackear código juntos)

    Y la razón es que para comprender realmente y poder construir algoritmos novedosos, debe comprender la teoría subyacente y el trabajo que se ha hecho antes.

    Por ejemplo, este papel.

    Modelos espaciotemporales de energía para la percepción del movimiento.

    propone algo como esto (lo he modificado un poco para simplificar las cosas):

    [math] h_1 (x, y, t) = sin ((u \ cdot x + v \ cdot y) \ cdot f_s + t \ cdot f_t + \ phi) [/ math]
    [math] h_2 (x, y, t) = sin ((u \ cdot x + v \ cdot y) \ cdot f_s + t \ cdot f_t + \ frac {\ pi} {2} + \ phi) [/ math ]
    [math] y (t) = [(i \ otimes h_1) (t)] ^ 2 + [(i \ otimes h_2) (t)] ^ 2 [/ math]

    para la entrada de video [math] i (x, y, t) [/ math] vector unidad [math] (u, v) [/ math]. [math] y (t) [/ math] es el movimiento global extraído en la dirección de [math] (u, v) [/ math] en las frecuencias temporales y espaciales [math] f_t [/ math] and [math] f_s [/ math], respectivamente.

    Y podemos modificar nuestra h para obtener:

    [math] g_j (x, y, t) = h_j (x, y, t) \ cdot n (\ mu, u, v, \ sigma_1, \ sigma_2) [/ math]

    donde n (.) es 2D gaussiano.

    Y voilá. Tenemos núcleos representativos para la primera capa de una red neuronal convolucional de procesamiento de video después del entrenamiento.

    Ahora, ¿cómo reconciliamos lo que acabamos de discutir con esto?

    Método de Horn-Schunck

    Eso es para que lo averigües después de leer esos libros. Solo quería ilustrar 1 línea de pensamiento en visión por computadora desde el muy simple modelo de energía desarrollado en los años 80 hasta la red neuronal convolucional de la que todo el mundo habla ahora. Todo esto comienza con:

    Teorema de representacion de riesgo

    que es la afirmación matemática que dice que cada sistema lineal (en la práctica) se puede representar de forma única mediante:

    [math] y (t) = (x \ otimes h) (t) = \ int x (\ tau) h (\ tau – t) d \ tau [/ math]

    (1), (2), (3), (4) y (5) le darían todo lo que necesita para obtener justo después del teorema de representación para la detección de movimiento. Construir sobre eso para el aprendizaje profundo es trivial.

    Y ahora podemos implementar todo esto en OpenCV, pero por favor no empieces con OpenCV.

    Y puede elegir casi cualquier otro tema en la visión por computador (con la excepción de quizás un puñado de métodos basados ​​en gráficos y conjuntos de niveles):
    – estereopsis
    – coincidencia de formas
    – detección de bordes
    – HoG, detección de rostros, etc.
    – y muchos otros

    Casi sobre la mayoría de las teorías en los libros.

    Mi pensamiento personal es que la visión computacional es un matrimonio de matemáticas (análisis real + funcional), física, procesamiento de señales, ciencias de la visión, ciencias de la computación e ingeniería de software. Dejar cualquiera de las piezas es privarte de algo muy profundo

    Seamos realistas, cualquier estudiante de secundaria puede hacer esto:

    src = imread (“my-image-file.png”);
    kernel = Mat :: ones (5,5, CV_32F) / (float) (5 * 5);
    filter2D (src, dst, -1, kernel, Point (-1, -1), 0, BORDER_DEFAULT);
    imshow (“mi imagen borrosa”, dst);

    ¿Dónde está la diversión en eso …

    Desde un punto de vista práctico, sugeriría leer sobre OpenCV:

    http://www.amazon.com/Learning-O…
    http://quantombone.blogspot.com/

    Desde un ángulo más académico, algunos de los trabajos clave que se deben tener en cuenta al comenzar con Computer Vision incluyen los siguientes:

    Además, los libros comúnmente citados que actúan como encuestas de visión por computador (algo anticuados)

    http://szeliski.org/Book/ (reciente, 2010)
    http://portal.acm.org/citation.c…
    http://books.google.com/books?hl…

    Finalmente, en una publicación separada, incluí información para conferencias en video que puede ser útil para alguien que está comenzando y mirando para estudiar el campo:

    ¿Hay buenas conferencias en video sobre visión por computadora?

    Usé Opencv es uno de los prototipos que desarrollé para la demostración de reconocimiento facial. Puedes entender los conceptos básicos de la visión por computadora y las matemáticas detrás de eso. Puede descargar Opencv y probar algunos códigos de muestra, como la comparación de imágenes estáticas, la detección y clasificación de objetos, etc. para obtener el código de forma práctica.

    En mi caso, había creado un prototipo que toma una imagen de la persona que está parada en la puerta de su casa, a través de una cámara montada en la puerta. Luego, la imagen se enviará a la PC que estaba ejecutando el código de reconocimiento facial. Hace coincidir la imagen con la base de datos de imágenes (la base de datos de imágenes debe crearse para cada persona que requiera acceso para ingresar a la casa. Supongamos que hay 5 personas que desean obtener acceso, usted necesita crear una base de datos de imágenes de cada una con la cara girando hacia arriba , izquierda, derecha, etc.) y abre el sistema de control de acceso si hay una coincidencia; de lo contrario, sonará una alarma para una persona desconocida

    Opencv es bueno para aprender y experimentar, pero no es adecuado para usar en productos comerciales. Hay muchos productos comerciales que funcionan mejor que Opencv, pero no puede obtener los detalles técnicos en el dominio público.

    Así que busca en Google y encuentra algunos artículos sobre la visión por computadora para aprender lo básico y luego experimentar con Opencv para obtener experiencia práctica.

    Sugiero este increíble libro: Procesamiento de imágenes, análisis y visión artificial. Es un libro que leí cuando empecé a inclinar la visión por computadora, y me beneficio de sus buenos ejemplos.

    Otra cosa que me gusta de este libro: le brinda un programa de estudios para graduados y postgraduados, lo que lo ayuda a aprender de manera gradual y sin problemas, y todavía hay un lugar para mejorar este punto.

    Otra cosa es que no tienes que apresurarte. De vez en cuando, debes dejar de leer, examinar lo que has aprendido, acumular experiencia, luego regresar y completar. Este método en espiral le ayudará a usar herramientas y a descubrir qué tan bueno o malo es para un determinado problema.

    Cuando desee adquirir experiencia, busque una fuente de “laboratorio”, como los libros de OpenCV mencionados anteriormente, o intente hacer algunos de los desafíos de Kaggle The Home of Data Science. Prefiero lo segundo, ya que te obligará a buscar soluciones por ti mismo dentro de un entorno competitivo.

    Grandes respuestas aquí ya.

    Sí, el mejor enfoque para aprender campos tan complejos es desafiarte con proyectos prácticos. En realidad, estaba aprendiendo de libros como el que se menciona en los detalles de esta pregunta más revistas de David Lowe [1] y muchos más del autor de ese libro mientras construía mi sistema de visión por computadora (CV) desde cero.

    Aprendí sobre visión por computadora al terminar un sistema de CV real. Sin embargo, no fue fácil, me tomó 4 años hacerlo. Tuve que superar una gran cantidad de negatividad de amigos tóxicos y mis propias inseguridades para reunir el coraje de creer en mis habilidades para aprender y construir soluciones novedosas a problemas realmente difíciles. Me alegro de haberme dado la oportunidad, ahora sé mucho sobre CV y ​​ML gracias a la búsqueda de Google, Stackoverflow y muchas de las mejores universidades que ofrecen muchas fuentes para leer en línea de forma gratuita.

    El comienzo fue realmente difícil, pero empecé poco a poco y aumenté gradualmente los desafíos. Comencé a implementar técnicas de procesamiento de imágenes como operaciones convolucionales para filtros como Gaussian, Binomial y Box. También pasé un tiempo leyendo sobre neurociencia, especialmente el llamado área de Brodmann 17 o la corteza visual primaria en primates. Llamé al proyecto “área del proyecto 17” después del área 17 de Brodmann.

    Aprendí sobre ganglio retiniano, células simples, complejas e hipercomplejas. También existe la llamada hipótesis de dos flujos de la corteza visual, que comprende los flujos dorsal y ventral, también leí sobre todo eso. Pasé mucho tiempo tratando de darle sentido a todo eso.

    Me tomó 2 años para llegar a un punto en el que entendí las cosas. Una imagen comienza a formarse en mi cabeza sobre cómo podría construir mi propio sistema. En ese momento ya había revisado mucha literatura, incluidas las redes neuronales artificiales (ANN). También estaba constantemente implementando los conceptos básicos en CV todo el tiempo.

    Después, decidí desarrollar una biblioteca central para construir mi propio sistema de visión artificial. Lo llamé reconocimiento de objeto por motivos biológicos (BIMOR) porque las ideas estaban motivadas de alguna manera por lo que llegué a entender acerca de las teorías de la visión de la neurociencia. Desarrollar la biblioteca fue una tarea desafiante porque en ese momento mis habilidades de codificación estaban por debajo de lo esperado. Tuve que mejorar al mejorar mis habilidades de codificación, opté por usar C ++ debido a la eficiencia, ya que también tuve que codificar operaciones de bajo nivel de alto rendimiento desde cero.

    Después de que terminé la biblioteca, comencé a trabajar en un motor de costura de panorama automático llamado Bimostitch (puntada BIMOR +) construido sobre BIMOR. De nuevo, esa fue una tarea muy desafiante. El objetivo era desarrollar un algoritmo de costura tal que, dado un conjunto de imágenes desordenadas (más de 1), genere un panorama (s). El sistema debe averiguar qué imágenes coinciden y luego recuperar las distancias focales y las rotaciones 3D de los puntos clave correspondientes. Logré terminar ese proyecto y porté el código a Android a través del NDK (kit de desarrollador nativo) para construir la aplicación llamada Bimostitch, un moderno motor de costura de panorama.

    Construí nuevos subsistemas en el proceso, tales como:

    1. Un detector de características simple pero muy robusto. No uso las características SIFT, SURF ni FAST en BIMOR.
    2. Un descriptor simple pero efectivo para BIMOR llamado M3oh. De nuevo, no uso los descriptores SIFT ni SURF porque están patentados.
    3. Un nuevo algoritmo de comparación escalable rápido para vectores de alta dimensión llamado FastMatcher. Lo desarrollé recientemente y lo implementé en Bimostitch panorama grapador. No vuelve a coincidir con los puntos clave de FAST, el nombre simplemente significa que es extremadamente rápido para encontrar a los vecinos más cercanos dado un vector de consulta.

    Los enfoques anteriores utilizan muy poco aprendizaje automático (ML), solo se utilizan en su mayoría algoritmos de agrupación tales como k-means o agrupación jerárquica del vecino más cercano recíproco. Entonces, para presentar ML a mis sistemas de visión, decidí comenzar a construir un sistema de visión en 3D que aprendiera de los ejemplos, a ese sistema al que llamo sistema integrado de reconocimiento e inferencia (IRIS) para la detección de objetos en 3D. IRIS es un sistema de aprendizaje profundo de extremo a extremo diseñado con el objetivo de aprender a localizar objetos en una escena 3D. He estado trabajando en IRIS durante aproximadamente un año y ha sufrido muchos cambios de diseño e implementación hasta el momento.

    Así que los proyectos anteriores han ampliado mi comprensión de los campos de LD y CV en particular. Trabajar en ellos ha aumentado mi conocimiento dramáticamente y así es como aprendí CV y ​​ML.

    Por lo tanto, los mejores recursos solo están disponibles en línea. Empiece a trabajar en algo interesante, como un proyecto paralelo, y su mente tendrá curiosidad de aprender para que pueda resolver las tareas en cuestión.

    El mejor maestro es la experiencia cuando se trata de campos prácticos como ML y CV. Una gran cantidad de materiales en línea fácilmente accesibles y fácilmente disponibles son suficientes.

    Los prerrequisitos para aprender CV son:

    1. Matemáticas :
    1. Álgebra lineal
    2. Probabilidades y estadísticas
    3. Optimización numérica
    4. Cálculo
  • Procesamiento de imágenes : o en general procesamiento de señales digitales.
    1. Filtros digitales: desenfoque gaussiano
    2. Transformaciones de imagen: rotaciones, traducciones, escalado y muchos más.
    3. Teorema del espacio de escala para el procesamiento de estímulos naturales. Básicamente implementado utilizando pirámides de imágenes, el llamado enfoque multiescala.
  • Aprendizaje automático (MA) : un área muy importante que está cambiando muchos subcampos de IA. Necesitas saber sobre:
    1. Redes neuronales convolucionales (CNN).
    2. Redes neuronales totalmente conectadas.
    3. Máquinas de vectores de soporte (SVM)
    4. Redes neuronales recurrentes (RNN, por sus siglas en inglés), como redes de unidad recurrente cerrada (GRU).
    5. Redes adversas generativas (GAN): para muchas tareas, como la traducción de imagen a imagen. Mejoras de imagen, transferencia de estilo de arte y así sucesivamente.
    6. Autoencoders: para reducción de ruido y compresión de imagen.
  • Programación :
    1. C / C ++: puede usar OpenCV para implementaciones de CV o construir su propio desde cero utilizando C / C ++.
    2. Java: OpenCV también está disponible en Java.
    3. Python: puedes usar OpenCV de nuevo en el lenguaje Python. Probablemente esta sea una mejor opción ya que Python es un lenguaje de muy alto nivel y fácil de aprender.

    Así que, personalmente, solo aprendo de las cosas dispersas en línea, no hay una fuente que pueda señalar como la mejor fuente.

    Espero que esto ayude.

    Notas al pie

    [1] Publicaciones de David Lowe.

    La respuesta de este artículo debería proporcionar mucha información valiosa: Introducción a la investigación de la visión por computadora

    Para un comienzo suave:
    – Elija un curso de aprendizaje automático – Para principiantes Aprendizaje automático

    – Practicar usando bibliotecas OpenCV, tienen muchos buenos libros.

    – Aprende más sobre temas de visión: me gusta escuchar:
    https://www.youtube.com/playlist

    https://www.youtube.com/playlist

    Lea Aprendizaje de OpenCV junto con Visión por Computadora: Algoritmos y Aplicaciones, que brinda una visión general de las técnicas más avanzadas en visión por computadora, y proporciona referencias para que estudie el método con mayor profundidad.

    En el libro de Szeliski: la tabla de contenidos me parece bien. Nunca lo toqué por cierto. pero se usa en muchas escuelas.
    Cómo iniciarse en Visión por Computador (una guía para la licenciatura CS) por Arturo Deza en Publicaciones
    Un libro más hostil es por forsyth y ponce . Darle una oportunidad.
    La geometría de múltiples vistas de hartley es un libro completo. Pero es un poco de trabajo duro. (Nada en reconocimiento, solo geomtria y reconstrucción)
    Depende también de lo que quieras hacer.
    Algún tiempo los libros difíciles son más precisos y fáciles. Un libro que da una visión general es sólo una visión general. 🙂

    Open CV es un muy buen comienzo para aprender la visión computacional práctica. El libro, Aprendiendo OpenCV es nuevamente, un muy buen recurso. Si está buscando un enfoque teórico, puede comenzar con un par de libros como “Digital Image Processing 3rd Edition” de Gonzales y Woods. Y, por supuesto, todos esos recursos en línea como wikipedia, sitios especializados, etc.

    aprende álgebra lineal (youtube gilbert strang), aprende programación lineal (coursera), aprende aprendizaje automático (coursera, aprende de datos, youtube) y aprende algo de optimización (optimización convexa en youtube por boyd).
    Comience con geometría de vista múltiple por Hartley, Zisserman.
    Tome cualquier libro sobre Visión por computadora (tal vez Visión por computadora: modelos, aprendizaje e inferencia por Simon JD Prince).
    Sigue haciendo proyectos a medida que aprendes. Sigue aplicando tus conocimientos.

    También vea esto: me encanta la inteligencia artificial pero no soy bueno en matemáticas y promedio en codificación, ¿debo continuar?

    (lea en la voz de Bane): “Su castigo debe ser más severo”

    Cómo iniciarse en Visión por Computador (una guía para la licenciatura CS) por Arturo Deza en Publicaciones

    (También lea en la voz de Bane): “Y solo entonces, tiene mi permiso para morir”.

    Idiomas: MATLAB / Python, C ++. Codifico MATLAB y ocasionalmente C ++, pero Python se está convirtiendo rápidamente en un reemplazo de MATLAB, por lo que sería bueno saber Python.
    Conocimiento de:
    -Algoritmos: sí, por supuesto.
    -Database: No, en realidad no. Nunca he tomado un curso de base de datos, y es poco probable que lo haga.
    -Compiladores: Igual que la base de datos: no es necesario.
    -Sistemas operativos: una vez más, no es necesario, aparte de la pequeña cantidad que necesita para realizar la programación en general.

    Además, probablemente le iría bien con un curso de procesamiento de imagen / procesamiento de señal y un curso de aprendizaje automático / máquina.
    Y por supuesto un curso de visión por ordenador :).

    Esta es un área donde algunas investigaciones pueden llevarte lejos. Puedes buscar muchas de estas cosas (apostaría a que MIT Course Wave y quizás Coursera tienen todo el material del curso disponible).

    Pero la experiencia práctica puede ser una forma particularmente divertida de aprender, especialmente al principio. Personalmente, lo que he hecho es descubrir una forma de obtener datos de la cámara web (obviamente, también puede usar archivos de imágenes estáticas para esto), y luego hacer algo para extraer rápidamente los datos de píxeles, ya sea todo o una submuestra.

    Entonces puedes procesar esto para hacer lo que quieras. Puedes alimentarlo en una red neuronal artificial (Python tiene algunas bibliotecas agradables para eso) y entrenarlo para clasificar imágenes (por ejemplo, Rock Paper Scissors). O puede determinar qué píxeles han cambiado desde el cuadro anterior dado un cierto umbral de diferencia al tener una ventana deslizante de matrices almacenadas de datos de píxeles, y luego detectar gestos basados ​​en las coordenadas promedio de los píxeles movidos.

    Lo que quieras. Elige una idea que parezca divertida y pruébala. Investiga cualquier cosa a tu manera.

    Naturalmente, se encontrará con problemas de velocidad y tendrá que encontrar formas de optimizar su tiempo de ejecución. O tendrás una teoría y te darás cuenta de que no funciona como pensaste, por lo que deberás reescribir parte de ella. Tal vez desee comenzar a detectar grupos de movimientos y tener o investigar métodos de agrupamiento eficientes.

    Es una forma muy divertida y natural de aprender, para complementar tu investigación.

    Realmente no sé de dónde empiezas, así que es difícil decirlo. Si ya tiene un historial decente, entonces un buen lugar para comenzar podría ser revisar el estado de la técnica para diferentes temas de visión artificial. Por ejemplo, si desea saber algo acerca de los algoritmos de detección de rostros, probablemente debería comenzar por entender el marco de detección de objetos Viola-Jones. Si no sabe cómo funciona el flujo óptico, comience por entender los algoritmos de Horn-Schunk y Lucas-Kanade.

    Es posible que solo desee comenzar a explorar diferentes temas en un nivel muy superficial para tener una idea de dónde le gustaría ir más allá. Para eso, AI Shack tiene una visión general bastante buena de varios algoritmos importantes de visión de computadora. ¡Espero que esto ayude!