visionsketch
play

VisionSketch : Integrated Support for Example-Centric Programming - PowerPoint PPT Presentation

Graphics Interface 2014 Session # 5 Video and Collaboration VisionSketch : Integrated Support for Example-Centric Programming of Image Processing Applications Jun Kato 1,2 , Takeo Igarashi 1 1 The University of Tokyo 2 National Institute


  1. Graphics Interface 2014 Session # 5 “ Video and Collaboration ” VisionSketch : Integrated Support for Example-Centric Programming of Image Processing Applications Jun Kato 1,2 , Takeo Igarashi 1 1 The University of Tokyo 2 National Institute of Advanced Industrial Science and Technology

  2. Background Cameras are ubiquitous Surveillance camera image quoted from http://en.wikipedia.org/wiki/File:Three_Surveillance_cameras.jpg under CC BY-SA 3.0 Surveillance Time-lapse photography Interesting events Interesting information 2 can be detected can be extracted

  3. Background Background Programmi ming is needed Monitoring 24h/7days? Computers never get tired Regarding the variety of desired information, using preset programs is not enough. 3

  4. Background Problem Programming is d difficult • Programming in general is to create abstract logic • IDEs are equipped with textual interfaces • Tuning algorithms takes long time by iterative cycle of changing code and restarting the program 4

  5. Motivation Programming should be easier • Programming in general is to create abstract logic Start off by choosing a concrete example • IDEs are equipped with textual interfaces Get graphical feedback with help of the example • Tuning algorithms takes long time by iterative cycle of changing code and restarting the program Update the program and get immediate feedback Example-Centric Programming 5

  6. Our Approach Integrated Support for Demo Example-Centric Programming Target apps: image processing applications (fixed viewpoint) Goal: address difficulties of current mainstream IDEs by allowing programmers to… Start off by choosing a concrete example • Get graphical feedback with help of the example • Update the program and get immediate feedback • Method: provide three interlinked interfaces Canvas Visual Editor Code Editor 6

  7. Related Work Subtext [Edwards, OOPSLA Onward ‘04] Integrated support for example-centric programming • allows to write incomplete code • as well as concrete test code Designed for simple character-based applications No graphical representations 7

  8. Related Work ConMan [Haeberli, SIGGRAPH ‘88] VPL, casual program execution using recorded data Designed for tuning parameters of CG rendering Mere visualization, no graphical editing 8

  9. Related Work DejaVu [Kato et al., UIST ‘12] Canvas interface for visualizing contents of any variables • during execution • after the execution Designed for record & replay of program executions No support for direct manipulation of graphics 9

  10. User Experience Preliminary user study • To collect user feedback and investigate Purpose: applications and limitations • 5 male programmers with professional Participants: programming experience , aged 23-36 • 4 of them have used OpenCV for static image processing Procedures: • Pre-study questionnaire • Work on a video (selected based on their interest) to create their own app • Post-study questionnaire and interview 10

  11. User Experience Example applications Door Watcher Disc Jockey Analyzer Good-for-eating Sensor 11

  12. User Experience Observations from the study IDE + user code = application • Normally: toolkit + user code = application • Suitable for prototyping (programmer = user) Many simple components > a few complex code • When computational cost doesn’t matter… • Preference for graphical operations over coding Improvements on code editor needed • Criticism on not providing graphical feedbacks • Combination with past work (e.g. DejaVu) desired 12

  13. Conclusion Limitations and Future Work Technical limitations • Images are assumed to be captured from static viewpoints but the system can be extended to handle dynamic viewpoints. • Graphs with loops are not supported but can be supported. Intrinsic limitation • Example-centric approach cannot be applied to building apps with real-time feedback loops. 13

  14. Conclusion Integrated Support for Example-Centric Programming Proposed and evaluated design of VisionSketch IDE with three interlinked interfaces to aid example- centric programming of image processing apps. Open-source distribution for Windows & Mac OS X http://junkato.jp/visionsketch/ Canvas Visual Editor Code Editor For sketching For drawing shapes to For writing code to program overview choose & tune algorithms implement algorithms 14

  15. Appendix 15

  16. VisionSketch Canvas Graphical user interface for graphical overview Start off by choosing a concrete example • Program execution casually controlled by the slider Get graphical feedback with help of the example • Typical visual programming language but with graphical representations for all components • Freeform comments sketched on the canvas 16

  17. VisionSketch Visual Editor Graphical user interface for choosing image processing component and tuning its parameters Start off by choosing a concrete example • Parameter-based code completion (drawing shapes narrows down the list of applicable components) Update the program and get immediate feedback • Interactive graphical feedback of processing results 17

  18. VisionSketch Code Editor Text-based code editor for editing and creating image processing components Update the program and get immediate feedback • Seamless switch between text and visual interface • Selective updates of corresponding components without restarting the whole program 18

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