Successfully reported this slideshow.

Python simplecv

5,894 views

Published on

Python simplecv

  1. 1. Uma Introdução aComputer Vision Gustavo Pinto @gustavopinto
  2. 2. @gustavopinto
  3. 3. voltando alguns meses atrás
  4. 4. ainda em2012
  5. 5. Computer Vision Made Easy Gustavo Pinto www.entropie.com.br
  6. 6. Computer Vision Made Easy Gustavo Pinto www.entropie.com.br
  7. 7. Reconhece essa imagem?
  8. 8. Reconhece essa imagem? Ela é *a* original?
  9. 9. E essa?
  10. 10. E essa? Como você sabe?
  11. 11. E essa? Como você sabe?
  12. 12. E essa? Como você sabe? how to code?
  13. 13. Pixel
  14. 14. Pixelr, g, b = monalisa[10, 0]r = 231g=0b = 41
  15. 15. Pixel (231, 0, 14)
  16. 16. Pixel (231, 0, 14) R, G, B
  17. 17. Pixel (231, 0, 14) R, G, B [0..255]
  18. 18. Pixel (231, 0, 14) R, G, B [0..255] ....
  19. 19. logo... [[ 8, 0, 0], [10, 0, 0], = [ 7, 0, 0], ..., [ 0, 3, 0], [ 0, 2, 0], [ 0, 2, 1]]]
  20. 20. E se... - = x
  21. 21. E se...[[ 2 0 0] [[ 8 0 0] [2 0 0] [10 0 0] [1 0 0] [ 7 0 0] ..., [0 0 0] - ..., [ 0 3 0] = x [0 0 0] [ 0 2 0] [0 0 14]] [ 0 2 1]]]
  22. 22. logo:[[ 2 0 0] [[ 8 0 0] [[ -6 0 0] [2 0 0] [10 0 0] [ -8 0 0] [1 0 0] [ 7 0 0] [ -6 0 0] ..., [0 0 0] - ..., [ 0 3 0] = ..., [ 0 -3 0] [0 0 0] [ 0 2 0] [ 0 -2 0] [0 0 14]] [ 0 2 1]]] [ 0 -2 13]]]
  23. 23. logo:[[ 2 0 0] [[ 8 0 0] [[ -6 0 0] [2 0 0] [10 0 0] [ -8 0 0] [1 0 0] [ 7 0 0] [ -6 0 0] ..., [0 0 0] - ..., [ 0 3 0] = ..., [ 0 -3 0] [0 0 0] [ 0 2 0] [ 0 -2 0] [0 0 14]] [ 0 2 1]]] [ 0 -2 13]]]
  24. 24. logo: Então não existe[[ 2 0 0] [[ 8 0 0] cor negativa? 0] [[ -6 0 [2 0 0] [10 0 0] [ -8 0 0] [1 0 0] [ 7 0 0] [ -6 0 0] ..., [0 0 0] - ..., [ 0 3 0] = ..., [ 0 -3 0] [0 0 0] [ 0 2 0] [ 0 -2 0] [0 0 14]] [ 0 2 1]]] [ 0 -2 13]]]
  25. 25. logo:[[ 2 0 0] [[ 8 0 0] [[ 0 0 0] [2 0 0] [10 0 0] [0 0 0] [1 0 0] [ 7 0 0] [0 0 0] ..., [0 0 0] - ..., [ 0 3 0] = ..., [0 0 0] [0 0 0] [ 0 2 0] [0 0 0] [0 0 14]] [ 0 2 1]]] [0 0 13]]]
  26. 26. x.show()
  27. 27. - =
  28. 28. - =75.88 61.04 27.57
  29. 29. - =75.88 61.04 27.57
  30. 30. x= -if x >= threshold : print "fake"
  31. 31. x= -if x >= threshold : print "fake"
  32. 32. Como criaresse código?
  33. 33. Enabling Computers to See
  34. 34. ● Open source● Escrito em Python● Integrado com iPython● Excelente para ○ manipulação de imagens ○ conversão de formatos ○ detecção de features● Captura imagens de streams ○ kinect, webcams, IP Cams, ...
  35. 35. What is Computer Vision?
  36. 36. What is Computer Vision?
  37. 37. What is Computer Vision? acquire process analyze
  38. 38. This is computer vision made easy!
  39. 39. Primeiro Problema2004
  40. 40. Primeiro Problema2004
  41. 41. Primeiro Problema2004
  42. 42. Primeiro Problema Vou criar um script pra redimensionar..2004
  43. 43. Primeiro Problema
  44. 44. Primeiro Problema
  45. 45. Primeiro Problema
  46. 46. Primeiro Problema imgs = ImageSet(image_dir) for img in imgs: img = img.resize(w=x, h=y) img.save()
  47. 47. Primeiro Problema imgs = ImageSet(image_dir) for img in imgs: img = img.resize(w=x, h=y) img.save()
  48. 48. Primeiro Problema imgs = ImageSet(image_dir) for img in imgs: img = img.resize(w=x, h=y) img.save()
  49. 49. Primeiro Problema imgs = ImageSet(image_dir) for img in imgs: img = img.resize(w=x, h=y) img.save()
  50. 50. Primeiro Problema imgs = ImageSet(image_dir) for img in imgs: img = img.resize(w=x, h=y) img.save() Esse cara sou eu..
  51. 51. Primeiro Problema imgs = ImageSet(image_dir) for img in imgs: img = img.resize(w=x, h=y) img.save() 150+ methodshttp://simplecv.org/docs/SimpleCV.html
  52. 52. Outras featuresoriginal / 5 original original * 5
  53. 53. Outras featuresrotate(73., point=(img.width/2,img.height/2)) img.binarize() img.binarize().invert() img.crop(50,40,100, 100)
  54. 54. Segundo ProblemaQuem mexeu no meu sorvete?
  55. 55. Quem mexeu no meu sorvete?
  56. 56. Quem mexeu no meu sorvete?
  57. 57. ++
  58. 58. ++ = Como eu vejo
  59. 59. ++ = Como realmente é
  60. 60. cam =Camera()cam.live()
  61. 61. cam =Camera()cam.live()
  62. 62. cam =Camera()cam.live()cam = Camera()while True: cam.getImage().show()
  63. 63. cam =Camera()cam.live()cam = Camera()while True: cam.getImage().show()cam = Camera()disp = Display()while disp.isNotDone(): img = cam.getImage() img.save(disp)
  64. 64. cam =Camera()cam.live()cam = Camera()while True: cam.getImage().show()cam = JpegStreamReader(device)disp = Display()while disp.isNotDone(): img = cam.getImage() img.save(disp)
  65. 65. cam = JpegStreamReader(device)disp = Display()previous = cam.getImage()while disp.isNotDone(): current = cam.getImage() diff = current - previous if diff.getNumpy().mean() > threshold: estaoMexendoNaGeladeira(current)
  66. 66. cam = JpegStreamReader(device)disp = Display()previous = cam.getImage()while disp.isNotDone(): current = cam.getImage() diff = current - previous if diff.getNumpy().mean() > threshold: postAtFacebook(current)
  67. 67. Terceiro Problema Identificando Imagens
  68. 68. Template Maching search for instances in a image
  69. 69. .findTemplate( )
  70. 70. .findTemplate( )matches.draw()
  71. 71. .findTemplate( )
  72. 72. .findTemplate( )matches.draw()
  73. 73. Key PointTemplate Maching search for keypoints
  74. 74. .findkeypointMatch( )
  75. 75. .findkeypointMatch( ).findkeypoints().draw()
  76. 76. .findkeypointMatch( )matches.draw()
  77. 77. Haar Like Features classify more generic objects
  78. 78. ● Face● Perfil● Olhos● Orelhas● Óculos img.findHaarFeatures(face)[-1].draw()
  79. 79. ● Face● Perfil● Olhos● Boca● Nariz
  80. 80. ● Face● Perfil● Olhos● Boca● Nariz
  81. 81. ● Face● Perfil● Olhos● Boca● Nariz
  82. 82. Haar-like Features != FaceRecognition
  83. 83. Sim, e dai?
  84. 84. mustacheinator.py https://gist.github.com/4685584
  85. 85. Problema Bónus
  86. 86. Problema Bónus
  87. 87. Problema Bónus barcode = img.findBarcode() if barcode is not None: print barcode[0].data

×