fixing the image problem of the web using machine learning
play

Fixing the image problem of the web using machine learning Chris - PowerPoint PPT Presentation

Fixing the image problem of the web using machine learning Chris Heilmann @codepo8, GotoCon Copenhagen, October 2016 Of innovation and impatience CHRIS HEILMANN @CODEPO8 Chris Heilmann @codepo8, Future Decoded, London, Nov 2015 We all know


  1. Fixing the image problem of the web using machine learning Chris Heilmann @codepo8, GotoCon Copenhagen, October 2016

  2. Of innovation and impatience CHRIS HEILMANN @CODEPO8 Chris Heilmann @codepo8, Future Decoded, London, Nov 2015

  3. We all know this character, right? https://en.wikipedia.org/wiki/Mario#Concept_and_creation

  4. But do you know why it looks like it does? https://en.wikipedia.org/wiki/Mario#Concept_and_creation

  5. Red and Blue offered the best contrast to the skin, boots and the game background. https://en.wikipedia.org/wiki/Mario#Concept_and_creation

  6. The cap meant there was no need to worry about hair style, eyebrows and forehead. (There were also not enough pixels for waving hair when falling down a hole)

  7. The large nose and moustache made it possible to avoid a mouth and facial expressions.

  8.  Design by limitations.

  9. ⚙ Everything has its reasons and meaning.

  10. Evolution is happening around us… 🖦 → 💼 → 📲 …and user numbers are shifting.

  11. 📲 T echnology advanced

  12. 📹 Pixels are a side-product of our interactions on 📺 the web.

  13. So much, that they become a nuisance… Type Size (kB) Images 1426 Scripts 357 Video 174 Fonts 123 Stylesheets 76 HTML 67 Other 4 Total 2232 kB http://www.httparchive.org/interesting.php#bytesperpage

  14. 🖍 Inspirational obesity 🐙

  15. • Wrong file formats • Delivering scaled hi-res images to everybody 1.4 MB images… • No automatic conversion and optimisation steps • Hero image instead of text content

  16. 🚁 We need to change that to make the web fast again…

  17. The web is much bigger than our little developer world and growth happens outside of it.

  18. Surgical solutions: Proxy Browsers and Cloud Services https://www.flickr.com/photos/89306448@N00/334479803 {Guerrilla Futures | Jason Tester}

  19.  Here are a few things you can do.

  20. • Huge images for everybody • Unoptimised images The problems: • No alternative content • No training or incentive to add content in CMS

  21. • Better browsers with responsive image support • Automated, loss-less image optimisation tools • File level access to images to extract metadata Our arsenal: • Scripting solutions to offer alternative content • Cloud services with machine learning APIs for intelligent resizing • Machine learning for tagging

  22. Browsers with responsive image support…

  23. https://www.christianheilmann.com/ Media queries are greedy! 2012/12/19/conditional-loading-of- resources-with-mediaqueries/

  24. 🖽 <picture> element and srcset

  25. Support is great!

  26. More info… https://jakearchibald.com/2015/ anatomy-of-responsive-images/

  27. Live demo… https://dev.windows.com/en-us/microsoft- edge/testdrive/demos/picture/

  28. Automated tools for lossless image optimisation

  29. ImageOptim https://imageoptim.com/ PNGOUT, Zopfli, Pngcrush, AdvPNG, extended OptiPNG, JpegOptim, MozJPEG ( jpegtran & jpegrescan), Gifsicle.

  30. File-level access to embedded information in images

  31. EXIF - hidden gems http://code.flickr.net/2012/06/01/parsing- exif-client-side-using-javascript-2/

  32. EXIF - hidden gems http://code.flickr.net/2012/06/01/parsing- exif-client-side-using-javascript-2/

  33. http://code.flickr.net/2012/06/01/parsing- EXIF - THE HIDDEN GEMS exif-client-side-using-javascript-2/

  34. Removing EXIF data… http://removephotodata.com/

  35. Remove locations… http://removephotodata.com/image-to-map.html

  36. How about providing fallback content? http://www.datapointed.net/2010/01/crayola-crayon-color-chart/

  37. Blur-up technique https://css-tricks.com/the-blur-up-technique- for-loading-background-images/

  38. Counting pixels… https://codepo8.github.io/canvas-images-and-pixels/ http://colorify.rocks/index.html

  39. Counting pixels… https://codepo8.github.io/canvas-images-and-pixels/

  40. Colorify.js http://colorify.rocks

  41. Color thief… http://lokeshdhakar.com/projects/color-thief/ https://github.com/jwagner/smartcrop.js/

  42. SCRIPTING SOLUTIONS FOR Intelligent image resizing ALTERNATIVE CONTENT

  43. Smartcrop.js https://github.com/jwagner/smartcrop.js/

  44. Intelligent resizing http://cloudinary.com/blog/ automatically_art_directed_responsive_images

  45. Intelligent resizing http://cloudinary.com/blog/ automatically_art_directed_responsive_images

  46. High contrast tricks https://blog.imgix.com/2015/10/21/automatic- point-of-interest-cropping-with-imgix.html

  47. 🔯 What about information that isn’t in the image?

  48. Machine learning and artificial intelligence to the rescue

  49. Automated alternative text (Facebook) Image may contain: dog, outdoor and nature

  50. How? Image may contain: dog, outdoor and nature https://code.facebook.com/posts/561187904071636

  51. Making photos findable… https://photos.google.com

  52. Learning from good data… http://image-net.org/

  53. Learning from *lots* of data… http://image-net.org/

  54. Learning from *lots* of data… https://github.com/ openimages/dataset

  55. Learning from *lots* of data… https://github.com/ openimages/dataset

  56. Refining the data with language https://research.googleblog.com/2016/09/show-and-tell-image-captioning-open.html

  57. Compare and enhance…

  58. Detect syntax and mix and match

  59. Add visual information

  60. Adding automated content in context… https://research.googleblog.com/2016/05/aw-so-cute-allo-helps-you-respond-to.html

  61. APIs and demos to use yourself… http://captionbot.ai

  62.  Detecting humans…

  63. Detect Faces… Detection Result: JSON: [ { "faceRectangle": { "width": 109, "height": 109, "left": 62, "top": 62 }, "attributes": { "age": 31, "gender": "male", "headPose": { "roll": "2.9", "yaw": "-1.3", "pitch": "0.0" } "faceLandmarks": { "pupilLeft": { "x": "93.6", "y": "88.2" }, "pupilRight": { "x": "138.4", "y": "91.7" }, ...

  64. Verify Faces Verification Result: JSON: [ { "isIdentical":false, "confidence":0.01 } ]

  65. Cluster automatically…

  66. 🦅 Empowering people…

  67. https://www.youtube.com/watch?v=R2mC-NUAmMk

  68. CHRIS HEILMANN THANKS! @CODEPO8 CHRISTIANHEILMANN.COM

Recommend


More recommend