the art of counting potatoes with linux
play

The Art of counting potatoes (with Linux) Ricardo Ribalda 1 2 - PowerPoint PPT Presentation

The Art of counting potatoes (with Linux) Ricardo Ribalda 1 2 Initial Questions Why? Who? How? Agenda Potato Grader DSP FPGA GPU Conclusions Open Discussion 3 Why? 4 Why Potatoes? 368M tons per


  1. The Art of counting potatoes (with Linux) Ricardo Ribalda 1

  2. 2

  3. ● Initial Questions ○ Why? ○ Who? ○ How? Agenda ● Potato Grader ○ DSP ○ FPGA ○ GPU ● Conclusions ● Open Discussion 3

  4. Why? 4

  5. Why Potatoes? 368M tons per year [1]. Price per kg: 0.104 € [2]. Kg per capita: Europe: 88 World: 31 [1] FAOSTAT 2013 [2] Potato Weekly (yes this exists….) 19/01/2015 [3] International Year of the potato 2008 (I do not make up the names) 5

  6. Why Potatoes? 6

  7. Why Grade them? 7

  8. Why Grade them? Solanine hypothermia Delirium Paralysis Diarrhea Shock Dilated pupils Slow pulse Fever Slowed breathing Hallucinations Abdominal pain Headache Vision changes Loss of sensation Vomiting Conclusion: Eat chocolate, not potatoes 8

  9. Why Grade them? Green Spot Black Spot Scurf Golf Ball Grey Damage Rot Fresh Cut Potato Fruit 9

  10. Why? 3 reasons: 10

  11. $ Why? 3 reasons: 11

  12. $ € Why? 3 reasons: 12

  13. $ € £ Why? 3 reasons: 13

  14. Who? 14

  15. Who? 15

  16. Who? 16

  17. How? 17

  18. How? 18

  19. How it is done? Computer Vision 101 19

  20. How it is done? Computer Vision 101 20

  21. How it is done? Computer Vision 101 ? 21

  22. Potatoes like diversity 22

  23. How it is done? Potatoes 23

  24. Potato Grader 24

  25. Potato Grader: Initial Approach - Noise - Latency - Framerate + - Low level sensor access 25

  26. Potato Grader: Industrial Smart Cameras - Black Box - Limited selection sensors - Closed source image processing software 26

  27. Potato Grader: Industrial Smart Cameras - Black Box - Limited selection sensors - Closed source image processing software 27

  28. 2002 28

  29. Potato Grader: Celox v2002 29

  30. Potato Grader: Celox v2002 30

  31. Potato Grader: Celox v2002 31

  32. Potato Grader: Celox v2002 32

  33. Potato Grader: Celox v2002 - Barebone application - updates? - multithread? - Expensive - Complicated 33

  34. 2005 34

  35. Potato Grader: Celox v2005 35

  36. Potato Grader: Celox v2005 36

  37. Potato Grader: Celox v2005 37

  38. Potato Grader: Celox v2005 38

  39. Potato Grader: Celox v2005 39

  40. Potato Grader: Celox v2005 - Linux From Scratch - Strong Latency Requirements - All code in kernel-space - Difficult to debug - Difficult to update - Difficult to replicate 40

  41. 2009 41

  42. Potato Grader: Celox v2009 42

  43. Potato Grader: Celox v2009 43

  44. Potato Grader: Celox v2009 44

  45. Potato Grader: Celox v2009 - Hardware - Modularity - Low access to Sensor - Software - Build System - Userland 45

  46. Use case: U-boot - No upstream support for Embedded PowerPC440 - We managed to use it! 46

  47. Use case: U-boot - No upstream support for Embedded PowerPC440 - We managed to use it! 47

  48. Use case: U-boot - Bigger challenge than expected - Need to allocate time - CodeStyle matters - Great Benefit - Support 48

  49. Lesson Learned Remember you need to make this trivial to review in order to get it accepted. You have to do extra work because of this: our limited resource is reviewers and maintainers, not developers. Greg Kroah-Hartman 49

  50. 2012 The Epiphany 50

  51. Potato Grader: Celox v2015 51

  52. Potato Grader: Celox v2015 52

  53. Potato Grader: Celox v2015 53 Credit to: Brendan D. Gregg

  54. Why Standard interfaces? - Pre documented code :) - Validation Tools - Easy to get help in work peaks 54

  55. Potato Grader: Celox v2012 55

  56. Potato Grader: Celox v2012 - Two track Strategy - Open Source - Upstream 56

  57. Why Upstream? - Support [1] - Training experience - Code Review - Distro Independent! [1] Kernel Newbies Autoresponder: What changes are you making to the kernel that you are sticking with such an old version (X.Y is Z years old now, and over KKK thousand changes have happened to the kernel since then)? 57

  58. Use case: Kernel - Great Community - Infinite Patience - Port to last version under 2 hours!! 58

  59. Use case: USB Gadget 3380 - Upstream driver - Access to engineers from: - Samsung - Texas Instruments - Intel 59

  60. Video Demo 60

  61. 61

  62. Today 62

  63. Qtechnology Contributions - Linux Kernel: 172 patches. Including a 9+ year old bugfix. - U-boot: 25 patches. Maintainers of Virtex PowerPC boards. - Yocto project: 17 patches. Supporting organization of the project. - v4l-utils/libv4l2: 7 patches. - Flashrom: Support for the first board with EEprom memory. - Gerbil: 2 patches. - Clpeak: 2 patches. - Video Lan Client: 1 patch. 63

  64. More Machines Batch analyzer Checkweigher Spectral Camera 64

  65. ● Upstreaming is extremely beneficial. ○ Even for Small Companies! ○ But Allocate resources! Conclusions ● Use standard Interfaces ● DO NOT reinvent the wheel ● 1st Portability 2nd Performance 65

  66. The Art of counting potatoes (with Linux) Ricardo Ribalda 66

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