1 / 16

OLYMPUS (Nesher) Matlab Coder user story

OLYMPUS (Nesher) Matlab Coder user story . By: Nikolay Skarbnik . Introduction About Olympus Medical Why Matlab Coder? Research to product: the way it usually works Research to product: the way we would like it to be Olympus Nesher user story Demo to product plan

osgood
Download Presentation

OLYMPUS (Nesher) Matlab Coder user story

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OLYMPUS (Nesher) Matlab Coder user story By: Nikolay Skarbnik.

  2. Introduction • About Olympus Medical • Why Matlab Coder? • Research to product: the way it usually works • Research to product: the way we would like it to be • Olympus Nesher user story • Demo to product plan • Project I- video enhancement • The issue • Project II- video denoising • Conclusions Agenda

  3. Olympus is a Japan-based word leading manufacturer of optics and reprography products since1919. • Olympus develops innovative capabilities in medical technology, focusing on early detection of diseases and minimally invasive ways to treat them. • Olympus delivers the diagnostic and therapeutic technologies: endoscopes, laparoscopes, video and imaging systems, electro-surgical devices, electronic medical records and accessories. • About Olympus Medical

  4. Olympus Surgical Technologies America’s Israel facility, serves as Global Research Center for Olympus Medical. • Founded in 1999, this facility originally developed and manufactured miniature distal tip video endoscopes. • The site employs ~40 employees specializing in the research of imaging algorithms and new concepts for surgical tools. • About Olympus Medical Nesher

  5. To make things: • better! • faster! • cheaper! • Did it work? • You will have to wait 13 minutes to find out… • Why did we purchase the Matlab Coder?

  6. Research to product: the way it usually works (1) • Algorithms Eng : • Research (Signal/Image processing) • Algorithms selection • Algorithms analysis • Proof of concept/ simulation • Algorithms implementation (inMatlab) • Software Eng : • Hardware oriented implementation • OOP • Real Time • Implementation in: C, C++, DSP, C#, iOS, Java etc… Usually verbal /email explanation. SOW- well documented algorithm, if lucky. State flow charts. Rarely so… Software Eng. /programmer Algorithms Eng. My experience Issues- questions, complaints, misunderstandings (up to verbal violence )…

  7. Research to product: the way it usually works (2) • An algorithms eng. working Vs. programmer. • The pros: • Good software quality. • Parallel software and algorithms development • The cons: • Matlab code hardy resembles the C code. • Updates and bug fixes are a mess. Proper documentation is science fiction. • Ping-pong and inter-personal issues occur. • Company must have algorithms team and software team.

  8. Research to product: the way it usually works- alternatives • An algorithms eng. With good programming skills. • The pros: • No communication or inter-personal issues. • The cons: • Such a silver bullet is rare & usually costly. • Matlab code still differs from the C code. • Bug fixes and features rarely propagate to the Matlab code. • Product development rate naturally decreases. • Well, forget about any documentation- all is in the genius head.

  9. Research to product: the way it should work • An algorithms eng. equipped with good code generator (Coder). • The pros: • Programmers time is saved. • Easy & fast update (bug fix, new features etc.. ). • Almost 100% demo ↔ product compatibility. • The cons: • The Matlab code should be strict & Coder compatible (both good & bad). • Demands form Coder: • Should be cost effective (it is not free to say the least). • The Coder should be really good: • Efficient code • Readable code

  10. Matlab Coder work flow defined in Olympus Nesher Environment MEX Regular Matlab code Coder ready Matlab code Matlab Coder MEX C Visual Studio VS compilation & results C code + Open-CV Bug fixes Product compilation & results Texas instrument Adapt C code for TI Bug & HW demand fixes

  11. Algorithm in a nut-shell • Frames decomposition • Frame image data is divided to several sub feature space images. • Relevant feature elements are extracted from each sub-image • Frames fusion • Multiple sub-images extracted feature are analyzed. • Features data fused to an image where hardly visible details of interest become notable. Product requirements: • VGA image: 1024x768 • Real time: ~30 [fps] • Quick development ~2 month, with part time DSP eng. • Project I- video signal enhancement

  12. Result • Working product: • Quick demo-to-product development time (~1 month). • Row-wise processing issue took ~30% of the time. • Initial product result available promptly (~2 weeks). • Fully aligned with the demo (validation & verification ). • Software Eng. Time: ~2 hours per release (mostly technical work). • Additional HW related optimizations (multi core, optimized functions etc…) coded manually. • Project I- video signal enhancement

  13. Project I- image features enhancement The issue

  14. Result • Coder based development was abandoned due to the issue pushing project time limits. • Working product via regular development path: • Slow (4 work month) demo-to-product development. • Fine tuning (sub-image operations) required several weeks. • Matlab code has no direct connection to C code. • Product results were available only at project end. • Worries & gray hair whether it will work remained till the end. • Project II- “BM3D like” video denoising

  15. We have found Matlab Coder to fit our needs. • It’s utilization is not plug & play. Having invested ~2 weeks in product learning we were ready to work. • We are confident our experience will further improve, as we will become more proficient. • We hope the product will be further improved: • More supported functions. • Code readability (variable names etc…). • Olympus future product algorithms development will rely on Matlab Coder utilization. • Conclusions

  16. Questions? • Fin

More Related