Revisi贸n del curso: Pr谩ctica de la visi贸n por computadora con OpenCV y Python

    Introducci贸n

    En este art铆culo proporcionar茅 una revisi贸n del curso de Udemy Manos a la obra con visi贸n artificial con OpenCV y Python de Shrobon Bis apareci贸 en el Udemy sitio de aprendizaje en l铆nea. En el momento de escribir este art铆culo, dir铆a que el curso tiene un 茅xito moderado con un total de 146 calificaciones con un promedio de 4.1 / 5 estrellas junto con una matr铆cula total de 851 estudiantes.

    Seg煤n la descripci贸n, este curso es de naturaleza introductoria y est谩 dirigido a programadores principiantes e intermedios con un conocimiento b谩sico del lenguaje de programaci贸n Python. En el momento en que comenc茅 este curso, ten铆a muy pocos conocimientos b谩sicos sobre procesamiento de im谩genes o visi贸n por computadora y ninguna experiencia con OpenCV, lo que me convierte en el p煤blico objetivo ideal para este curso.

    En las siguientes secciones, revisar茅 y discutir茅 las diversas 谩reas de contenido, proporcionando mi opini贸n sobre el material.

    Revisi贸n de la secci贸n del curso

    Introducci贸n e instalaci贸n

    Esta secci贸n tiene el contenido introductorio t铆pico que cubre la mayor铆a de los cursos de esta naturaleza, como una explicaci贸n b谩sica del curso y se cubri贸 un esquema. La instalaci贸n se present贸 en forma de una descripci贸n simple de c贸mo instalar el entorno Anaconda junto con OpenCV. En mi opini贸n, hubiera sido bueno dar una demostraci贸n en video de la instalaci贸n del software requerido en lugar de las instrucciones proporcionadas.

    Conceptos b谩sicos de la imagen

    En esta secci贸n, el autor del curso describe los conceptos b谩sicos de lectura y escritura de im谩genes hacia y desde el disco junto con c贸mo tomar una imagen de un recurso web a trav茅s de HTTP.

    Adem谩s del IO de archivos b谩sico, explica muy bien el concepto de canales de imagen para im谩genes en color rojo, verde y azul. Adem谩s de su explicaci贸n de los canales de imagen, hay algunos buenos ejemplos del uso del lenguaje de programaci贸n Python y la biblioteca OpenCV para seleccionar y manipular canales individualmente, as铆 como convertir de un lado a otro entre im谩genes en color y escala de grises. Por 煤ltimo, se explica c贸mo mostrar im谩genes utilizando tanto la biblioteca OpenCV como la biblioteca de visualizaci贸n matplotlib.

    En general, mi opini贸n de esta secci贸n es bastante positiva. Creo que hubo un equilibrio adecuado entre la explicaci贸n y los ejemplos de codificaci贸n para describir suficientemente c贸mo leer y conservar los datos de la imagen usando el disco.

    Adem谩s, creo que la inclusi贸n de c贸mo leer en una imagen a trav茅s de HTTP fue una gran decisi贸n pr谩ctica, pero el autor no dej贸 en claro aqu铆 que la biblioteca que se estaba utilizando no era OpenCV, sino un subm贸dulo de la biblioteca Scikit-Learn. instalado junto con el paquete de instalaci贸n de Anaconda. La discusi贸n sobre la noci贸n de canales de imagen fue bien pensada y demostrada con un ejemplo simple pero elegante.

    Histogramas

    Aqu铆 el autor analiza el uso de histogramas para representar la distribuci贸n de intensidades a lo largo de canales individuales de una imagen en color, as铆 como para una imagen en escala de grises. Hay ejemplos que muestran c贸mo usar la biblioteca OpenCV para manipular los datos de p铆xeles contenidos en una imagen digital en estructuras de datos apropiadas para mostrar como un histograma usando la biblioteca matplotplib.

    Aunque la cobertura en esta secci贸n es breve, va al grano y sienta las bases para temas posteriores del curso.

    Geometr铆a y manipulaci贸n de p铆xeles

    En esta secci贸n, el autor comienza demostrando que los datos de im谩genes digitales que OpenCV presenta al usuario no son m谩s que una matriz multidimensional de n煤meros enteros. Esto luego se elabora m谩s a trav茅s de ejemplos de manipulaci贸n de valores de p铆xeles individuales utilizando la indexaci贸n numpy familiar. Luego, el autor avanza en c贸mo usar la biblioteca OpenCV para dibujar l铆neas simples y otras formas geom茅tricas.

    Despu茅s de demostrar c贸mo dibujar formas geom茅tricas b谩sicas, el autor profundiza en la manipulaci贸n de im谩genes. Los temas de voltear, escalar y rotar se tratan con m谩s ejemplos de codificaci贸n.

    Fue durante esta secci贸n que not茅 que comenc茅 a sentirme un poco frustrado. Hubo momentos en los que el autor parec铆a un poco apresurado y se movi贸 r谩pidamente sobre los detalles de varios par谩metros del m茅todo de la biblioteca. Tambi茅n hubo una ruptura en la coherencia en esta secci贸n. Por ejemplo, en las secciones anteriores a esta, todas las im谩genes y los scripts utilizados en los ejemplos se proporcionaron como recursos descargables. Sin embargo, en esta secci贸n se dejaron fuera del recurso disponible un par de im谩genes y no se proporcionaron varios de los scripts de ejemplo, lo que hace que sea m谩s dif铆cil de seguir, pero no imposible. Debo se帽alar que cuando segu铆 la codificaci贸n de los ejemplos, funcionaron perfectamente bien usando una imagen alternativa.

    Proyecto – Utilidad de recortes

    Esta secci贸n es una demostraci贸n del uso de la biblioteca OpenCV para capturar eventos del mouse en una imagen mostrada para seleccionar y generar una imagen recortada del original.

    Me alegr贸 mucho ver esta secci贸n en el curso. Personalmente, me gusta cuando un curso se toma el tiempo para demostrar las utilidades de una tecnolog铆a para producir algo que demuestre la funcionalidad, como en el caso de una herramienta de recorte primitiva en esta secci贸n.

    Filtrado, difuminado y eliminaci贸n de ruido

    Encontr茅 esta secci贸n bastante fascinante. Quiz谩s esto se deba a que el concepto de aplicar t茅cnicas de filtrado para mejorar las im谩genes digitales es uno que encuentro notable. Sin embargo, creo que el instructor hace un trabajo suficientemente s贸lido al explicar por qu茅 es 煤til y demuestra c贸mo lograrlo. Desafortunadamente, nuevamente hay una ruptura en la coherencia porque el autor no proporciona la imagen o el script de ejemplo utilizado.

    Todo sobre los umbrales

    Esta secci贸n comienza con una explicaci贸n simple de qu茅 es el umbral. Despu茅s de eso, el instructor desaf铆a al estudiante con un ejercicio de codificaci贸n para crear una imagen de umbral manualmente sin la ayuda de la biblioteca OpenCV. Por supuesto, el instructor brinda una soluci贸n, pero siempre me gusta cuando este tipo de desaf铆os se hacen en los cursos. No solo refuerza la parte de “c贸mo” de un concepto, sino que tambi茅n demuestra “por qu茅” una biblioteca como OpenCV es tan valiosa.

    Proyecto: hacer un filtro de brillo personalizado

    En esta secci贸n, el instructor demuestra c贸mo crear un filtro de una imagen utilizando t茅cnicas de filtrado adaptativo. Adem谩s de filtrar, demuestra c贸mo modificar una imagen cambiando los valores de color de los p铆xeles individuales, volviendo a se帽alar la estructura de datos tridimensional de las im谩genes digitales y el hecho de que son simplemente matrices multidimensionales de n煤meros.

    Esta secci贸n se sinti贸 un poco apresurada, pero el contenido se present贸 con un ejemplo s贸lido y se proporcionaron tanto el c贸digo como las im谩genes que se estaban manipulando para que el estudiante tenga la capacidad de explorar m谩s el tema.

    Superposici贸n de im谩genes

    Nuevamente, esta secci贸n fue un poco apresurada y me hubiera gustado tener mejores explicaciones de qu茅 par谩metros se estaban modificando, as铆 como su impacto en la superposici贸n de im谩genes. Nuevamente hubo una ruptura en la consistencia por la cual no se proporcionaron el c贸digo de ejemplo y las im谩genes, lo que deja al estudiante un poco fuera del circuito en su capacidad para seguir el curso.

    Trabajar con videos

    En esta secci贸n, el instructor demuestra c贸mo usar la biblioteca OpenCV para interactuar con una c谩mara web. En primer lugar, muestra c贸mo capturar fotogramas y mostrarlos en una ventana. Luego contin煤a mostrando c贸mo manipular la representaci贸n de color de la transmisi贸n de video en funci贸n de las entradas del teclado.

    Una vez m谩s, los ejemplos de codificaci贸n no se proporcionan para esta secci贸n.

    Dominar los contornos

    Como sugiere el t铆tulo, esta secci贸n cubre la noci贸n de contornos que delimitan objetos en una imagen. Aqu铆 el instructor hace un buen trabajo al usar algunas im谩genes caseras bastante simples de formas monocrom谩ticas simples para simplificar los conceptos.

    Sin embargo, al igual que en otras secciones de este curso, creo que se pas贸 por alto una cantidad significativa de detalles en la explicaci贸n de los diversos par谩metros que se utilizan para ajustar los resultados de los m茅todos OpenCV. Encuentro esto un poco frustrante y siento que simplemente decir que un tema “es complicado y debes jugar con los valores hasta que obtengas el resultado deseado” no es una explicaci贸n suficiente.

    Proyecto – Detecci贸n de veh铆culos

    La secci贸n final de este curso demuestra c贸mo crear una aplicaci贸n que detecta veh铆culos a partir de datos de im谩genes de tr谩fico. Como mencion茅 anteriormente, realmente aprecio cuando los cursos crean una aplicaci贸n funcional que demuestra el valor real de la tecnolog铆a que se ense帽a. Felicito al autor por incluir esta secci贸n a pesar de que era un poco compleja y dif铆cil de comprender, pero definitivamente saqu茅 valor de ella.

    Conclusi贸n

    En este art铆culo me he esforzado por ofrecer una descripci贸n general justa y equilibrada del curso. Manos a la obra con visi贸n artificial con OpenCV y Python por Shrobon Biswas en Udemy. Al hacerlo, mi objetivo ha sido describir el contenido cubierto y tener cuidado de no divulgar los detalles del contenido real, ya que creo que el instructor ha proporcionado valor a la comunidad de aprendizaje en l铆nea.

    Como dije al principio, llegu茅 a este curso con muy poca comprensi贸n de los conceptos de Visi贸n por Computadora, armado solo con una comprensi贸n razonable del lenguaje de programaci贸n Python. Dicho esto, siento que pude aprender una cantidad encomiable sobre c贸mo usar la biblioteca OpenCV para interactuar y manipular tanto el contenido de imagen como de video. En mi opini贸n, creo que podr铆a haber habido una mejor cobertura de los detalles de algunas de las funciones de la biblioteca y la teor铆a subyacente, pero no estoy seguro de que ese fuera el objetivo principal de este curso.

    Tengo algunas quejas sobre el aspecto organizativo de la estructura y el contenido del curso, ya que parec铆a un poco confuso en ciertas partes. Por ejemplo, hubo m谩s de unos pocos casos en los que no se proporcionaron im谩genes de ejemplo y guiones y el autor menciona volver para cubrir diferentes temas, que luego nunca ocurren.

    En general, dir铆a que este curso es una buena compra si lo puede encontrar en oferta, pero el precio base de $ 199 probablemente sea demasiado alto para el valor proporcionado.

    Como siempre, gracias por leer y no dude en comentar o criticar a continuaci贸n.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *