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

visionsketch
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

VisionSketch:

Integrated Support for Example-Centric Programming of Image Processing Applications

Jun Kato1,2, Takeo Igarashi1

1The University of Tokyo 2National Institute of Advanced Industrial Science and Technology

Graphics Interface 2014 Session #5 “Video and Collaboration”

slide-2
SLIDE 2

Cameras are ubiquitous

Interesting information

can be extracted

Interesting events

can be detected

Surveillance Time-lapse photography

Background

Surveillance camera image quoted from http://en.wikipedia.org/wiki/File:Three_Surveillance_cameras.jpg under CC BY-SA 3.0

2

slide-3
SLIDE 3

Programmi ming is needed

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

Background Background

3

slide-4
SLIDE 4

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
  • f changing code and restarting the program

Background Problem

4

slide-5
SLIDE 5

Example-Centric Programming

Programming should be easier

  • Programming in general is to create abstract logic
  • IDEs are equipped with textual interfaces
  • Tuning algorithms takes long time by iterative cycle
  • f changing code and restarting the program

Start off by choosing a concrete example Get graphical feedback with help of the example Update the program and get immediate feedback

Motivation

5

slide-6
SLIDE 6

Integrated Support for Example-Centric Programming

Canvas Visual Editor Code Editor

Demo

Goal: Target apps: image processing applications (fixed viewpoint) Method: provide three interlinked interfaces 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

Our Approach

6

slide-7
SLIDE 7

Subtext

Integrated support for example-centric programming

  • allows to write

incomplete code

  • as well as

concrete test code

[Edwards, OOPSLA Onward ‘04]

Designed for simple character-based applications No graphical representations

Related Work

7

slide-8
SLIDE 8

ConMan

VPL, casual program execution using recorded data

[Haeberli, SIGGRAPH ‘88]

Designed for tuning parameters of CG rendering Mere visualization, no graphical editing

Related Work

8

slide-9
SLIDE 9

DejaVu

Canvas interface for visualizing contents

  • f any variables
  • during execution
  • after the execution

[Kato et al., UIST ‘12]

Designed for record & replay of program executions No support for direct manipulation of graphics

Related Work

9

slide-10
SLIDE 10

Preliminary user study

User Experience

Purpose:

  • 5 male programmers with professional

programming experience, aged 23-36

  • 4 of them have used OpenCV for static

image processing

Participants: Procedures: • Pre-study questionnaire

  • Work on a video (selected based on

their interest) to create their own app

  • Post-study questionnaire and interview
  • To collect user feedback and investigate

applications and limitations

10

slide-11
SLIDE 11

Example applications

Disc Jockey Analyzer Door Watcher Good-for-eating Sensor

User Experience

11

slide-12
SLIDE 12

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

User Experience

12

slide-13
SLIDE 13

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.

Conclusion

13

slide-14
SLIDE 14

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.

Canvas

For sketching program overview

Visual Editor

For drawing shapes to choose & tune algorithms

Code Editor

For writing code to implement algorithms

Conclusion

Open-source distribution for Windows & Mac OS X http://junkato.jp/visionsketch/

14

slide-15
SLIDE 15

Appendix

15

slide-16
SLIDE 16

Canvas

VisionSketch Start off by choosing a concrete example

  • Typical visual programming language but with

graphical representations for all components

  • Freeform comments sketched on the canvas
  • Program execution casually

controlled by the slider

Get graphical feedback with help of the example

Graphical user interface for graphical overview

16

slide-17
SLIDE 17

Visual Editor

  • Parameter-based code completion (drawing shapes

narrows down the list of applicable components)

Update the program and get immediate feedback

Graphical user interface for choosing image processing component and tuning its parameters

Start off by choosing a concrete example

  • Interactive graphical feedback of processing results

VisionSketch

17

slide-18
SLIDE 18

Code Editor

VisionSketch

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