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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend