200 likes | 418 Views
Video Overlay. Advanced Computer Integrated Surgery (600.446) Jeff Hsin, Cyrus Moon, Anand Viswanathan. Outline. Synopsis of Project Present Work Accomplished Exposures, Dependencies Future Plans. Image Overlay. Image/Video Overlay. Image Overlay:
E N D
Video Overlay Advanced Computer Integrated Surgery (600.446) Jeff Hsin, Cyrus Moon, Anand Viswanathan
Outline • Synopsis of Project • Present Work Accomplished • Exposures, Dependencies • Future Plans
Image/Video Overlay Image Overlay: The ability to see bone/tissue/target superimposed onto the patient during surgery through a half-silver mirror. Video Overlay: The ability to superimpose a computer generated image on a desired object within a live video feed.
Original Plan • Tracker code: • Testing 3/18 • Networking Code (SPREAD/CORBA): • Integration/Testing 3/18-3/25 • Graphics Code: • diagram, frames and transformations 3/11 • framework 3/24 • ability to track/render sphere: 3/25 • tool object creation 3/25 • tool calibration 4/? • video overlay 4/7
Plan Changes • Doing video overlay (instead of image overlay) is definite • Using CORBA instead of SPREAD (using CIS tracker class) • Extended schedule
Updated Plan • Tracker code: • Testing 3/18 • Networking Code (SPREAD/CORBA): • Integration/Testing 4/13* • Graphics Code: • diagram, frames and transformations 3/11 • framework 3/25 • primitive tracking/rendering: 4/15* • tool object creation 3/25 • tool calibration 4/? • video input 4/15* • camera calibration ? • Working video overlay system 4/22* Blue – Completed * – Changed Date
Software Components • Tracking • Networking (CORBA) • Video Input • Rendering
Software Flow Chart Camera Input Video Software Tracker Input Network Software Tracking Software Graphics Software Overlay Image
Tracking • Functional Optotracker class • Misc. Programs: • RigidBody Definition procedure • Temporary Pointer Calibration • DefineCurve function
OPTOTRAK • measurement system that tracks small infrared (IRED) markers that are attached to a subject or object. • active marker based technology. Real-time data that is very accurate.
Tracking Libraries • Objective: Create an object oriented library for the OptoTrack for the CIS libraries. • OptoTracker class implements the Tracker Class. • OptoTracker class can track multiple rigid bodies as well as individual markers and returns frames and 3D positions in the OptoTrack coordinate system.
Optotracker class • OptoTracker() • ~OptoTracker() • void updateToolSamples(char* save_filename) • cis_status_t setConfiguration (char* config_filename) • void DefineRigidBody(char* save_filename) • cis_status_t Initialize() • cis_status_t DestructOpto()
CORBA Networking • Reasons for choosing CORBA • Ability to use on any computer • use C++ for the implementation • An Optotracker object is created on the server, then the object is transported to the client. • This can then be used for multiple clients: • one client controller • other clients monitors
Video Implementation • Calibrate Camera lens (Dewarp Camera data) • Access the SGI Video Stream in order to acquire a continuous video buffer. • Integrate the video buffer with the graphics code.
Graphics Software Outline • Input-Frames of tracked objects (from tracker software), stored video data • For each object, calculates object-to-lens transform; renders the object in the appropriate position/orientation in camera-space • renders video image at a constant position/orientation in camera space • Texture mapping, frame buffer • Outputs Video/Graphical image
Coordinate Graph (Video Overlay) World (Tracker) Camera Patient markers Lens Model (from Imaging) . . . . . . . . Tool 1 Tool k Screen *Dynamic Transforms (determined by Optotrak)
Current/Future Problems • Integration of software modules • Synchronization of Video and Graphics • Learning/Using existing libraries • Camera calibration • Generalization of the graphics software • Tree implementation of the scene graph • Class work
Dependencies • Logistical help – ERC staff • CORBA software – Sadi • Mentors – Dr. Cohen, Dr. Taylor • Calibration rigid body – rigid corner, dimple • Object to be tracked – pelvis