martes, 20 de septiembre de 2016

Recursos y enlaces a material de computer vision, digital image processing, machine learning, deep learning

Este mini artículo, pretende ser un listado en donde se agrupan recursos relacionados a temas como:
  • Inteligencia Artificial IA.
  • Computer vision - Visión de computadoras, Visión artificial.
  • Procesamiento digital de imágenes con Matlab.
  • Speech recognition - Reconocimiento de voz.
  • Machine learning - Aprendizaje automático.
Me gustaría que el listado se agrande y que pueda ser útil a otros :)

Inteligencia Artificial - AI

  1. Artificial Intelligence Resources. http://aima.cs.berkeley.edu/books.html
  2. Artificial Inteligence Foundations of Computational Agents 2E. http://artint.info/index.html

Computer vision - Visión de computadoras

  1. The Computer Vision Home Page, http://www.cs.cmu.edu/~cil/vision.html
  2. Digital Image Processing ~ Books and Materials by Wilhelm Burger & Mark Burge https://imagingbook.com/ 
  3. Domingo Mery, buen material sobre procesamiento digital de imágenes y visión de computadoras, http://dmery.ing.puc.cl/
  4. CS 545/ECE 545 Digital Image Processing, Spring Semester 2014, http://web.cs.wpi.edu/~emmanuel/courses/cs545/S14/
  5.  Book Szeliski, http://szeliski.org/Book/.
  6. Book Computer Vision: models, learning and inference, Simon Prince. http://www.computervisionmodels.com/
  7. Computational Vision at CALTECH, http://www.vision.caltech.edu/index.html 
  8.  Procesamiento digital de imágenes,
  9. Buen curso de procesamiento de imágenes. http://asignatura.us.es/imagendigital/ 
  10. Libro Visión computacional, http://ccc.inaoep.mx/~esucar/Libros/vision-sucar-gomez.pdf 
  11.  Image Processing resources, http://homepages.inf.ed.ac.uk/rbf/HIPR2/hipr_top.htm
  12. Libro Visión artificial industrial. Procesamiento de imágenes para inspección industrial y robótica. Capítulo 4 Imágenes binarias. http://www.librovision.eii.uva.es/framesContenidos.html
  13. the Serious Computer Vision Blog, https://computervisionblog.wordpress.com/
  14. Portal de noticias sobre Visión de Computadoras. http://visionporcomputadornoticias.blogspot.com


    Procesamiento digital de imágenes Matlab

    1. Procesamiento de imágenes con Matlab, http://asignatura.us.es/imagendigital/Matlab_PID_1314.pdf
    2. Blog Steve on Image Processing. http://blogs.mathworks.com/steve/

    Machine learning - Aprendizaje automático

    1. Learn machine learning using these courses, https://www.springboard.com/blog/machine-learning-online-courses/
    2. Coursera - Aprendizaje automático, https://www.coursera.org/learn/machine-learning
    3. Learning from data, https://work.caltech.edu/telecourse.html
    4. Machine learning Andrew NG, http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=MachineLearning
    5. Machine learning, fall 2015, https://www.csie.ntu.edu.tw/~htlin/course/ml15fall/
    6.  A course in machine learning, el libro es interesante, http://ciml.info/ 
    7. Open Course Ware - Machine learning http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-867-machine-learning-fall-2006/index.htm 
    8. Book, Element of statistical learning, http://statweb.stanford.edu/~tibs/ElemStatLearn/
    9. Buena página con información general de machine learning, http://quantdare.com/
    10. Varios cursos (machine learning, speech recognition); https://www.isip.piconepress.com/drupal/courses
    11. Curso Udacity - Deep Leaning, https://www.udacity.com/course/deep-learning--ud730.
    12. Libro (Free ebook online) Neural Networks and Deep Learning. http://neuralnetworksanddeeplearning.com/
    13. Deep Learning. http://www.deeplearningbook.org/
    14. Libro en línea, Deep Learning - MIT. http://www.deeplearningbook.org/
    15. Deep Learning con GPU's NVIDIA, https://developer.nvidia.com/deep-learning
    16. Libro An Introduction to Statistical Learning. http://www-bcf.usc.edu/~gareth/ISL/book.html
    17. Curso de Machine Learning de Tom Mitchell. http://www.cs.cmu.edu/~tom/10701_sp11/
    18.  Curso Deep Learning by Google. https://www.udacity.com/course/deep-learning--ud730
    19. Machine Learning for Developers, sin dudar un muy buen sitio que baja a tierra las ideas sobre machine learning (RECOMENDADO). http://machinelearningmastery.com/
    20. Enlaces agrupados sobre machine learning, varios cursos. https://medium.freecodecamp.com/i-ranked-all-the-best-data-science-intro-courses-based-on-thousands-of-data-points-db5dc7e3eb8e#.rshjnlf6a
    21. Convolucional Neural Networks. https://www.nervanasys.com/convolutional-neural-networks/
    22. Introduction to Statistical Learning with Applications in R, http://www-bcf.usc.edu/~gareth/ISL/
    23. EMOOC "Learn R, Python and Data Science", https://campus.datacamp.com/
    24. In-depth introduction to machine learning in 15 hours of expert videos, http://www.dataschool.io/15-hours-of-expert-machine-learning-videos/
       


    Speech recognition - Reconocimiento de voz

    1. Fundamentals of Speech Recognition; https://www.isip.piconepress.com/courses/temple/ece_8525/syllabus/current/


    jueves, 8 de septiembre de 2016

    Matlab/Octave: Procesamiento Digital de Imágenes, Ejercicio Cebra

    En procesamiento digital de imágenes (PDI) se realizan tareas de tratamiento de imágenes tomadas a partir de una fuente.
    En este ejemplo, se busca establecer una secuencia de pasos que separe a una cebra del fondo de barras, utilizando operaciones de morfología matemática.
    Para acompañar se ha incluido código Matlab y su explicación en https://github.com/freelanceparaguay/matlabExamples/tree/master/ejemploCebra


    Se adjunta un archivo .PDF, el cual fue realizado con una herramienta visual denominada FePI (Ferramenta de Procesamiento de Imagens).
    La implementación de la secuencia automática se desarrolló en Matlab/Octave.
    El ejemplo es un buen punto de partida para conocer las operaciones morfológicas aplicadas en Matlab.
    Como siempre, esto es un ayuda memoria, el trabajo formó parte de la materia Procesamiento Digital de Imágenes.
    A continuación una lista instrucciones en Matlab para realizar operaciones morfológicas sobre una imagen.

    • Leer una imagen --> Iorig=imread(nombreImagenOriginal);
    • Mostrar en una ventana una imagen --> figure;imshow(Iorig);
    • Definir el nivel de gris para binarizar--> nivel = graythresh(Iorig); %umbral de nivel de gris
      Binarizar una imagen --> IB2=im2bw(Iorig,nivel);
    • Definir un elemento estructurante --> SE = strel('diamond', 2); %elemento estructurante
      Operación dilatación --> IB3 = imdilate(IB2,SE);
    • Operación cerradura --> IB7=imclose(IB5,SE);  
    • Operación XOR --> IB9=bitxor(IB8,IB2);
    • Operación inversión --> IB10=1-IB9;



    miércoles, 7 de septiembre de 2016

    PHP: Scrap to HTML, Web Scraping


    Muchas veces se desea realizar extracción de información desde sitios web, a esta tarea se la denomina web scraping.
    El web scraping consiste en extraer información desde páginas web con software especializado simulando la navegación como si lo hiciera un usuario de un navegador web. Ver Web Scrap.
    Aquí copio un código en lenguaje PHP, el cual se dirige a una página para extraer información, la procesa y la traspasa a un archivo html como resultado. La idea básica es obtener una tabla y procesar sus filas.
    Las intrucciones principales a tener en cuenta y sobre las cuales se podrá verificar su utilización en el manual de ayuda en PHP (http://php.net/) son:

    $doc = new DOMDocument();
    $doc->loadHTMLFile($fileParsear);
    $elementsTabla = $doc->getElementsByTagName('table');

            if (!is_null($elementsTabla)) {
                  foreach ($elementsTabla as $elementFila) {
                  echo $contador." <<<< ";
                  echo $elementFila->nodeValue. "\n";


    El ejemplo extrae datos desde una página de apuestas. Para pruebas ofline, se incluyen dos archivos de ejemplo.
    • archivo_ejemplo_a_parsear.html -> ejemplo para parsear.
    • archivo_ejemplo_resultado.html -> ejemplo para ver el resultado obtenido.
    El script se ejecutó desde línea de comandos, colocar los permisos de ejecución con chmod 755 script, se puede descargar el código desde:

    https://github.com/freelanceparaguay/phpExamples/tree/master/scrapToHTML