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

Recommend


More recommend