|
|
(98 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| = Wikipage of Jan Gumprecht = | | = Wikipage of Jan Gumprecht = |
| | | |
− | == About myself == | + | == About Myself == |
| | | |
− | I am a student in Computer Engineering from Germany with a specification in Optoelectronics. At the moment I am writing my diploma thesis on "3D-Ultrasound Integration in Slicer". My university back in Germany is University of Mannheim. From September 2006 to August 2007 I studied in Waterloo, On Canada. | + | [[Image:Gumprecht Jan.jpg |thumb|Jan Gumprecht]] |
| + | |
| + | I am a student in Computer Engineering from the University of Mannheim, Germany with a specification in Optoelectronics. At the moment I am writing my diploma thesis on the project described below. This is not my first stay in North America. I studied already in Waterloo, On, Canada from September 2006 to August 2007 . You may find more information in my [[Media: Gumprecht-Jan-Resume.pdf | Resume]] |
| + | |
| + | == Contact Information == |
| | | |
| If you would like to contact me feel free to write me an e-mail. | | If you would like to contact me feel free to write me an e-mail. |
Line 9: |
Line 13: |
| E-mail: jgumprec (at sign) bwh.harvard.edu | | E-mail: jgumprec (at sign) bwh.harvard.edu |
| | | |
− | == What I am working on at the moment ==
| + | == Project - Development and Validation of an Open-Source Real-Time Freehand 3D Ultrasound Navigation System for Liver Surgery with GPGPU Acceleration== |
− | * Understand and use OpenIGTLink (Oct,2nd)
| |
− | | |
− | == Project - 3D-Ultrasound integration in Slicer == | |
− | | |
− | The main part of the project will be the integration of the source code of [http://www.midasjournal.org/browse/publication/289 SynchroGrab] in Slicer by using CUDA support.
| |
− | | |
− | [[Image:SystemAufbau.png | 400px]]
| |
− | | |
− | <br> <br>
| |
− | | |
− | After discussing with Junichi I got a deeper understanding of how the technical solution might look like.
| |
− | | |
− | This will be the technical approach.
| |
− | | |
− | [[Image:ProjectWorkflow.png]]
| |
− | | |
− | === 3D CUDA ===
| |
− | ==== TO DO ====
| |
− | * Understand the CUDA source code of Nicholas and Ben
| |
− | | |
− | ==== Contacts ====
| |
− | * Ben Grauer: [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_With_Cuda Volume Rendering with CUDA]
| |
− | * Nicholas Harlambang: CUDA Guru
| |
− | | |
− | ==== Documentation: VolumeRenderingCuda Module ====
| |
− | | |
− | * Adjust the '''threshold''' (scroll bar below 'Component Weights Scrollbars') to correct values. Especially the lower value. Normally > 0
| |
− | * '''Scalar Opacity Mapping''': Shows a histogram of the used values an their transparence. Low transparent, high solid
| |
− | * '''Scalar Color Mapping''': You can click into and than in the color circle above and select certain colors for a specific value
| |
− | * '''Composite''': Here you can select different rendering modes
| |
− | * '''Volume''': You can also select just to display a slice instead of the whole volume. You can transform the slice in the ''Transforms Module'' and than select the transformation matrix in '''Slice Matrix'''
| |
− | * '''Plus/Minus''': Select if you want to see everything or just the volume on one side of the slice and on the other
| |
− | | |
− | === Ultrasound tracking device ===
| |
− | | |
− | Hopefully most of this part is already done by [http://www.midasjournal.org/browse/publication/289 SynchroGrab]
| |
− | | |
− | ==== SynchroGrab ====
| |
− | | |
− | In summary SynchroGrab does:
| |
− | * Continuous acquisition of ultrasound images using an open-interface ultrasound system;
| |
− | * Continuous acquisition of tracking information using a pose measurement system;
| |
− | * Explicit synchronization of the two acquisition threads;
| |
− | * Reconstruction of 3D ultrasound volumes using the synchronized data; and
| |
− | * Transfer of the raw ultrasound images, the 3D volumes and the probe tracking information to an OpenIGTLink-compliant system.
| |
− | | |
− | ==== TO DO ====
| |
− | * Find out what is already coverd by Synchrograb
| |
− | ** Adjust the tracker part, so that our tracker is working
| |
− | ** Replace image acquistion part. We have to use a frame grabber card instead of reading the images directly from memory
| |
− | * Compile Synchrograb and see if everthing is working
| |
− | | |
− | ==== Capture Video ====
| |
− | * Existing Videocard: Hauppauge ImpactVCB [http://www.haupauge.com/site/products/data_impactvcb.html]
| |
− | * Linux Driver: Video4Linux2
| |
− | **There is existing C source for V4L2 on the web
| |
− | **Should run on new fedora kernel
| |
− | | |
− | ===== Contacts =====
| |
− | * Christoph Ruetz
| |
− | | |
− | ==== Tracker ====
| |
− | Track data via vtk not itk <br>
| |
− | =====Contacts=====
| |
− | * Haiying Liu
| |
− | | |
− | ==== Calibration ====
| |
− | Description: To get correct information from the ultrasound device is has to be calibrated<br>
| |
− | ===== Contacts =====
| |
− | * Raul San Jose
| |
− | Information:
| |
− | * I have serval links and information from Raul on which I have to go through
| |
− | | |
− | === Infos on loadable Modules ===
| |
| | | |
− | [http://www.slicer.org/slicerWiki/index.php/Slicer3:Loadable_Modules:HOWTO HowTo Loadable Module] <br>
| + | In my project I developed an open-source navigation system with general purpose graphics unit (GPGPU) acceleration for real-time freehand 3D-Ultrasound using conventional hardware equipment. |
− | [http://slicer.spl.harvard.edu/slicerWiki/index.php/Slicer3:How_to_implement_an_Interactive_Module_GUI HowToLoadable Module GUI]<br>
| |
− | [http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Infos about Executable Modules inSlicer] <br>
| |
| | | |
− | == Other Stuff to do ==
| + | The proposed software system consists of two distinct components (see graphic below). First, it records data of a tracked US-device and reconstructs volume data in real-time. Simultaneously, position and orientation data of a tracked instrument are acquired. Both the volumes and the spatial information about the tracked instrument are forwarded to the 3D simulation and navigation software [http://www.slicer.org Slicer3D]. |
− | === Find a new cart for the ultrasound unit ===
| |
− | * Infos in the intraweb
| |
− | * Figure out what hardware and how much space on the cart I need
| |
− | ** CUDA Card
| |
− | ** Capture Card
| |
− | ** Ultrasound device
| |
− | ** Tracker device
| |
− | ** Uninterruptible power supply
| |
| | | |
− | === Subscribe to different meetings ===
| + | [[Image:SystemStructure.png | 800px ]] |
− | * Journal Club
| |
− | * 1st Monday Seminar
| |
− | * Office OPRC
| |
− | * Radiology Grand Rounds
| |
− | * Cimit Forum
| |
| | | |
− | == Time Schedule == | + | === Documentation of the System === |
| | | |
| + | * Download a presentation of the system [[Media:Gumprecht_Jan-4DUltrasound.pdf | here]] |
| + | * Download my thesis [[Media:Gumprecht_Jan-2009-Diploma_Thesis.pdf |here]] |
| | | |
− | ! not complete !
| + | === Technical Information === |
| | | |
− | {| border="1" cellpadding="2"
| + | All technical Information can be found here: [[Technical Information]] |
− | |- bgcolor="#abcdef"
| |
− | ! Month !! Week # : Start Date - End Date !! Done !! Date Done
| |
− | |- bgcolor="silver"
| |
− | ! September !! colspan = 3|Week 39: 22.09 - 28.09
| |
− | |-
| |
− | | || Totally Understand GradientDiffusion Filter Module || align="center" | x || Thu Sep, 25th
| |
− | |-
| |
− | | || Set up Fedora 8 on th303_d4_6 || align="center" | x || Fri Sep, 26th
| |
− | |- bgcolor="silver"
| |
− | ! October !! colspan=3 | Week 40: 29.09 - 5.10
| |
− | |-
| |
− | | || Set up CUDA driver on th303_d4_6 || align="center" | x || Tue Sep, 30th
| |
− | |-
| |
− | | || Get CUDA Rendering Volume working in Slicer || align="center" |x || Wed Oct, 2nd
| |
− | |-
| |
− | | || Understand and Use OpenIGTLink ||align="center" | ||
| |
− | |-
| |
− | ! !! colspan=3 | Week 41: 06.10 - 12.10
| |
− | |-
| |
− | |}
| |
| | | |
− | == How to "Enable CUDA 2.0 in Fedora 8 for use with Slicer 3.3 Alpha" == | + | === Progress === |
− | Date: Sept. 26th 2008
| |
| | | |
− | Fedora 8 is the newest Fedora version for which CUDA is available. The available CUDA Version is 2.0. <br>
| + | You can see the progress of my project [[4D Ultrasound Progress | here]] |
− | To enable CUDA 2.0 in Fedora 8 for Slicer 3.3 Alpha follow the steps below:
| |
| | | |
− | === Installation of Drivers === | + | === Screenshots === |
| | | |
− | * Download the CUDA installation files (Driver, Toolkit, SDK) here [http://www.nvidia.com/object/cuda_get.html] and remember the directory in which you downloaded them. I used
| + | [[Image:4DUltrasound-Screenshot-1.png | 600px]] |
− | for the driver installation binary
| |
− | ~/Download/CUDA/Driver/
| |
− | for the tool kit installation binary
| |
− | ~/Download/CUDA/Toolkit/
| |
− | and for the SDK installation binary
| |
− | ~/Download/CUDA/SDK/
| |
− | * For the installation there must not run a X-Server. Therefore we have to restart the computer. When you see the GRUB Bootscreen after the reboot press any key to enter the GRUB menu. Highlight the Fedora Version you want to boot and press
| |
− | a
| |
− | Then type
| |
− | Type 3
| |
− | and hit the 'Enter' key. Fedora will boot up without X Server and drop you at Command Line Login prompt.
| |
− | * Login and change into root mode via:
| |
− | su
| |
− | * Then switch to the directory where you downloaded the driver. For me this means:
| |
− | cd ~/Download/CUDA/Driver/
| |
− | * Now we have to change the permissions for the driver-binary and make it executable. This works with
| |
− | chmod +a BINARY-NAME
| |
− | (Replace 'BINARY-NAME' with the name of the driver binary)
| |
− | * Now start the installation with:
| |
− | ./BINARU-NAME
| |
− | I changed none of the default values during the installation
| |
| | | |
− | * For the sdk compilation follow this reference guide: [http://developer.download.nvidia.com/compute/cuda/2.0-Beta2/docs/SDK_Rel_Notes_Linux_2.0beta2.txt]<br> If you get the error message: "ld: cannot find -lglut", like I did, have a look at the reference under 'IV. Known Issues'
| + | [[Image:4DUltrasound-Screenshot-2.png | 600px]] |
| | | |
− | * In the next step we do the same for the toolkit and for the sdk, e.g chance to the according directory, change the permissions and run the installation with the default values
| + | [[Image:4DUltrasound-Screenshot-3.png | 600px]] |
| | | |
− | === Enable CUDA in Slicer 3.3 Alpha ===
| + | [[Image:4DUltrasound-Screenshot-4.png | 600px]] |
| | | |
− | * Start with the installation manual of Ben Grauer. You find it here [http://www.slicer.org/slicerWiki/images/a/ae/Cuda2slicer3.pdf]<br> Below you find corrections to certains points that did not work for me the way it was explained in the manual
| + | [[Image:4DUltrasound-Screenshot-5.png | 600px]] |
| | | |
− | * In 1.1.2 Check out the following slicer branch instead and build it:
| + | [[Image:4DUltrasound-Screenshot-6.png | 600px]] |
| | | |
− | svn co http://svn.slicer.org/Slicer3/trunk Slicer3
| + | [[Image:4DUltrasound-Screenshot-7.png | 600px]] |
− | ./Slicer3/Scripts/getbuildtest.tcl
| |
| | | |
− | * Before you can go on with step 1.2.2 you have to Uncomment:
| + | [[Image:4DUltrasound-Screenshot-8.png | 600px]] |
− | **''CudaSupport'' in Slicer3/Libs/CMakeLists.txt
| |
− | **''VolumeRenderingCuda'' in Slicer3/Modules/CMakeLists.txt
| |
| | | |
− | * In step 1.2.2
| + | === Images === |
− | **you have to use your build directory (Slicer-build) as parameter for ccmake
| |
− | **for CUDA_INSTALL_PREFIX use /usr/local/cuda
| |
− | **for FOUND_CUT use $HOME/NVIDIA_CUDA_SDK/common/lib/linux/libcudpp.a
| |
− | **for FOUND_CUT_INCLUDE use $HOME/NVIDIA_CUDA_SDK/common/inc
| |
| | | |
− | * Step 1.2.3 was not necessary for me
| |
| | | |
− | * Just do a rebuild (run Slicer3/Scripts/getbuildtest.tcl) and the VolumeRenderingCUDA module is available
| + | [[Image:4DUltrasound-Image-1.JPG | 600px]] |
| | | |
− | This installation worked for me on a DELL machine with XEON Dual Core and a Nvidia G8800. For fast rendering make sure not enable compiz(Desktop Effects).
| + | [[Image:4DUltrasound-Image-2.JPG | 600px]] |