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 …