Tuesday, June 19, 2012

Multiple Updates
The videos above show slices obtained by varying the location of slicing plane. The first one has a sphere in the grid space, whereas the other one has cloud

After playing around with the open source volume renderer for a while, I realized that it would be better to make my own volume visualizer/slicer. I am able to obtain slices at a very rapid rate. Once I place these images in the OpenGL buffer, I think interactivity can be achieved easily. My estimate of the frame rate that can be obtained is 10 fps. But I am going to multithread this process, so I hope to achieve 30 fps. If that does not work then I will use CUDA to accelerate it.

I have already spent some time to get multi threading to work in my CIS 560 volumetric renderer. I am proud to say that the render time has come down from ~13 seconds to ~2.5 seconds. So I feel slicing which takes very little time as it is would take even lesser time after multithreading.



But I am curious as to how fast the whole system would be. So, once I get progress in other modules, I will start on this module again and use CUDA to offload the CPU off the rendering task.

Friday, June 8, 2012

Depth


The demonstration above shows that we are able to combine the information of the depth map with the color video stream. And render in 3D environment.

The OpenGL 3.1 is now included into the project. And it has become an integration of the OpenGL (3D display / calculation), OpenCV ( 2D image processing / marker tracking ), and Kinect API ( camera / depth map driver ).

The color marker tracking function mentioned in the last post is refactored to support arbitrary number of the marker. But the stability of our naive tracker is not ideal. And someone suggested us to look for the "Blob tracker" works done by other people. The idea is similar, but they have more filter and estimation for stabilizing the tracking process. cvblob is the one we currently intend to use, since it is built upon OpenCV we have, and works pretty well in the demonstration.

Right now we have all three dimension information in the space we need to read the operation of the trainee. But the error is still large, we hope that by adapting "Blob tracker", the output would be acceptable.