// Contact details
var objContact = new Object();
objContact.Phone = "+61 2 6125 8612";
objContact.Fax = " +61 2 6125 8660";
objContact.Email = base64decode("cmFtdGluLnNoYW1zQGFudS5lZHUuYXU=");

// Menu items
var objMenu = new Object();
objMenu.text = new Array();
objMenu.text[0] = "Home";
objMenu.text[1] = "Publications";
objMenu.text[2] = "CUDA";
objMenu.text[3] = "Projects";

objMenu.link = new Array();
objMenu.link[0] = "index.htm";
objMenu.link[1] = "publications.htm";
objMenu.link[2] = "cuda.htm";
objMenu.link[3] = "projects.htm";

// Project items
var arrPrj = new Array();
var idx = -1;

idx++;
arrPrj[idx] = new Object();
arrPrj[idx].Title = "Real-Time Registration for Ultrasound Guided Navigation";
arrPrj[idx].Type = "HDR";
arrPrj[idx].Image = "";
arrPrj[idx].Description =             
            "The project aims to develop an ultrasound-based imaging and navigation system for gastrointestinal " + 
            "endoscopic and laparoscopic interventions. Navigation is facilitated by real-time registration of " + 
            "intraoperative ultrasound images with preoperative CT or MR scans of the patient. Electromagnetic (EM)" +
            "tracking sensors that do not require a line-of-sight access are mounted on the ultrasound probe and " +  
            "tracked inside the patient to initialise the image-based registration process. Initially, methods based " +
            "on the more accurate optical tracking system in a controlled setup using phantoms are developed. " + 
            "The results will be used to establish a baseline to evaluate the performance of the EM tracking setup " + 
            "and the application of the procedure on live subjects (live experiments are conducted by our partners at Harvard)." +
            "It is expected that the imaging and navigation tools developed as part of this project will assist in better " + 
            "management of oncological interventions and reduce the aggressiveness of treatments. Real-time performance is " +
            "expected to be achieved on a high performance platform using GPUs." +

            "<br/>" + 
            "<br/><b>Supervisors</b>" +
            "<br/>&nbsp;&nbsp;&nbsp; Dr. R. Shams, Prof. R. Hartley" +

            "</br><b>Partner</b>" +
            "</br>&nbsp;&nbsp;&nbsp; CIGL, Harvard Medical School (Dr. Kirby Vosburgh)" +

            "</br><b>Suggested Reading</b>" +
            "</br><a href='papers/2010/SPM_2010.pdf' onclick=\"javascript:urchinTracker('papers/2010/SPM_2010.pdf')\">A Survey of Medical Image Registration on Multicore and the GPU</a>" +
            "";

idx++;
arrPrj[idx] = new Object();
arrPrj[idx].Title = "Heterogeneous Algorithms and Toolkit for High Performance Image Registration";
arrPrj[idx].Type = "HDR";
arrPrj[idx].Image = "";
arrPrj[idx].Description =             
            "Registration is a fundamental task, frequently encountered in image processing applications. In " +
            "medical applications, images of similar or differing modalities often need to be aligned as a preprocessing " + 
            "step for many planning, navigation, data-fusion and visualization applications. Image registration is " +
            "computationally expensive and has been largely confined to pre-operative applications.<br/>" +
            
            "This project will develop an extensive toolkit of image registration methods on a number of competing" +
            "many-core architectures including massively parallel GPUs, many-core CPUs and the Cell Broadband Engine." +
            "The registration methods will be categorized based on the (a) application domain " +
            "(single/multi-modality, inter/intra-subject, atlas generation), (b) modalities (CT/CTA, MRI/fMRI, " +
            "PET, US, etc), (c) transformations used (rigid, similarity, affine, polynomial, parametric non-rigid " +
            "and non-parametric deformable), (d) optimization algorithms (centralized/decentralized), (e) similarity/" +
            "distance measures (SSD, SAD, NCC, CR, MI, and their derivatives)." +
                       
            "Once the common threads and building blocks have been identified, the various components of" +
            "the image registration library will be developed and tested on various target platforms. Our focus will" +
            "be on accelerating registration methods at the grid-of-threads, node, and cluster levels. This project " +
            "will contribute to a number of more general numerical and computational fields, including numerical " +
            "solutions of partial differential equations, multi-grid methods, distributed optimization, development " +
            "of new and improved data-structures (e.g. trees with warp parallelism), nearest neighbor algorithms " +
            "(e.g. kd-tree), histogram computation, particle filtering, etc." +
            
            "An interesting problem is to developing computational models for different algorithms and utilising them to optimize" + 
            "computational load across a cluster of heterogeneous computing resources including CPUs and accelerators." + 
            "We will consider optimal load-sharing and data-distribution, and also study distributed optimization algorithms" +
            "for cluster level parallelisation.<br/>" +
            
            "<br/>The project will make extensive use of our GPU cluster comprising of multiple nodes each with multiple GPUs installed." +
            "<br/><img src='images/gpu_box.png' style='margin: 10px; margin-left: 160px;'><br/>" + 

            "<br/>" + 
            "<br/><b>Supervisors</b>" +
            "<br/>&nbsp;&nbsp;&nbsp; Dr. R. Shams, A/Prof. A. Rendell" +

            "</br><b>Partner</b>" +
            "</br>&nbsp;&nbsp;&nbsp; Microsoft Research" +

            "</br><b>Suggested Reading</b>" +
            "</br><a href='papers/2010/SPM_2010.pdf' onclick=\"javascript:urchinTracker('papers/2010/SPM_2010.pdf')\">A Survey of Medical Image Registration on Multicore and the GPU</a>" +
            "";

idx++;
arrPrj[idx] = new Object();
arrPrj[idx].Title = "Analysis of Exocytosis Events in the Cell Membrane Using TIRF Images";
arrPrj[idx].Type = "HDR";
arrPrj[idx].Image = "";
arrPrj[idx].Description = 
            "Molecular traffic across lipid membranes is essential for normal cellular function. " + 
            "The process by which cells discharge material from intracellular vesicles (membrane-bound " +
            "compartments in cells) to the cell plasma membrane is called exocytosis. The advanced understanding of the " + 
            "biochemistry and physiology of exocytosis contrasts with the relatively limited knowledge of its physical " +
            "manifestation - particularly how molecular functions correlate with the movement, attachment, and fusion steps " + 
            "required for exocytosis. Total Internal Reflection Fluorescence Microscopy (TIRFM) is used to probe the " + 
            "spatio-temporal context of the biochemical and physiological steps of exocytosis. TIRFM has the ability to " + 
            "observe an incredibly thin region at the cell surface, approximately 100 nanometres into a cell, revealing the " +
            "behaviour of vesicles in the vicinity of a cell membrane." +
        
            "<br/>" +
            "A typical TRIF experiment on a single cell generates in the order of 10,000-40,000 images resulting in several gigabytes " + 
            "of data. Analysing the vast amount of data generated by TIRFM is a challenge and requires development of automated and " + 
            "semi-automated image analysis procedures and use of high performance computing. Size of some structures of interest is " + 
            "in the order of the images’ resolution. Visual appearance varies greatly among cells due to natural diversity, type of " + 
            "cells, and use of different constructs in treating the cells. Automated methods must achieve robust results and high " + 
            "performance while maintaining an acceptable level of sensitivity. These challenges present new opportunities for development " + 
            "of computer vision and biomedical image analysis methods suited to analysis of molecular structures in TRIF images." +

            "<br/><br/><b>Outcomes and Benefits</b><br/>" +
            "The proposed research project is a multidisciplinary project that applies computer vision to the field of life sciences " +
            "- more specifically to use high fidelity image analysis to understanding cell processes that play part in diabetes and obesity. " + 
            "Type II Diabetes results from a defect in glucose transporter exocytosis and thus understanding this process is essential " + 
            "in order to help prevent, detect, manage and cure this chronic disease." + 

            "<br/><br/><b>Goals</b>" +
            "<blockquote>" + 
            "    <li>Identification of events preceding fusion including docking and trafficking</li>" +
            "    <li>Identification of vesicular tracks</li>" +
            "    <li>Segmentation of molecular clusters from super-resolution TIRF images</li> " +
            "    <li>Categorization of fusion events</li> " +
            "</blockquote>" +

            "<br/><b>Supervisors</b>" +
            "<br/>The project is offered for PhD or Masters students by Dr. Shams and Prof. Hartley " +
            "in conjunction with our partners at CSIRO (Dr. Katarina Mele) and Garvan Medical Research Institute (Dr. Will Hughes)." +

            "</br><b>Suggested Reading</b>" +
            "</br>Automatic Identification of Fusion Events in TIRF Microscopy Image Sequences, K. Mele et. al., ICCV Workshop 2009" +
            "";


idx++;
arrPrj[idx] = new Object();
arrPrj[idx].Title = "Ultrasound Beamforming";
arrPrj[idx].Type = "HDR";
arrPrj[idx].Image = "images/sonix_rp.png";
arrPrj[idx].Description = 
            "The quality of ultrasonography is limited by the low signal-to-noise ratio, speckle, and ultrasonic " +
            "artefacts due to non-linear and inhomogeneous propagation of sound-waves through living tissue. One determining " +
            "factor in the quality of ultrasound is the resolution of the image in the azimuth (lateral) and elevation " + 
            "directions. Ultrasound devices improve image resolution through the use of an array of transducer elements by carefully " +
            "controlling transmit and receive timings and by proper apodization (weighting) of emitted or received signals to generate " +
            "focused and coherent beams; a process known as beamforming. Ideally, one wishes to create very narrow steerable beams with " +
            "uniform intensity and small side-lobes over large depths in the area of interest. However, in practice, there are a number " +
            "of competing factors that need to be carefully balanced based on the application and computational capabilities." +

            "<br/>" +
            "In this project, we investigate advanced beamforming techniques such as adaptive beamforming, synthetic aperture, and time " + 
            "reversal pulse design to improve ultrasound image quality and to develop and test a number of fast-converging adaptive " + 
            "beamforming techniques that are robust to estimation errors and are implementable on modern parallel processing architectures " + 
            "for real-time operation. Challenges include blind estimation of optimal beamforming parameters in real-time and as the signal " + 
            "being acquired, matched filter design, and near-instantaneous convergence of matching process for proper correlation with the " +
            "reference. The student will have accesss to a SonixRP ultrasound which provides control over timing and activation of transducer " + 
            "elements, pulse shape, apodization and filtering parameters. The Sonix platform also allows us to integrate our methods by " + 
            "customising the signal processing pipeline of the ultrasound device for real-time display. The performance of the developed methods " + 
            "are validated using carefully designed experiments with phantoms and live subjects." +

            "<br/>" + 
            "<br/><b>Supervisors</b>" +
            "<br/>&nbsp;&nbsp;&nbsp; Dr. P. Sadeghi, Prof. R.A. Kennedy, Dr. R. Shams" +
            "";

idx++;
arrPrj[idx] = new Object();
arrPrj[idx].Title = "Fast Wave-Based Modelling of B-mode, 3D and Doppler Ultrasound";
arrPrj[idx].Type = "HDR";
arrPrj[idx].Image = "";
arrPrj[idx].Description = 
            "Simulation of ultrasound RF-signals and images from a model representing a scattering and reflecting medium " +
            "(such as soft tissue) can be used in the design of ultrasound devices (optimization of filters, designing estimators, " + 
            "transducers, and processing of RF-signals), for the training of medical students, and for the registration of ultrasound " + 
            "images to images of other modalities such as CT scans. The state-of-the-art in ultrasound modelling is based on the " + 
            "Tupholme/Stepanishen field model. This method uses the principle of linear acoustics to determine a pressure field describing the " + 
            "movement of particles at a given time and distance from an ultrasound aperture excited by an impulse in a homogeneous medium. " +
            "This is known as the spatial impulse response of the aperture. The spatial impulse response is used to determine the incident field " +
            "for a given excitation and aperture geometry. There are two shortcomings with existing methods based on the wave-based simulation of " +
            "ultrasound:<br/>" +
            "<blockquote>" +
            "   <li>The computation of the ultrasound signal is extremely time-consuming and almost impractical for 3D and Doppler ultrasound.</li>" +
            "   <li>Little validation has been done to ascertain or compare the accuracy of the simulated signal for complicated models involving live subjects.</li>" +
            "</blockquote>" +
            "We attempt to address both shortcomings as part of this project. We use a cluster of graphics processing units (GPUs) to address " +
            "the computational requirements. The second objective is assisted by the SonixRP platform and its ability to directly access RF signals." +

            "<br/>" + 
            "<br/><b>Supervisors</b>" +
            "<br/>&nbsp;&nbsp;&nbsp; Dr. R. Shams, Dr. P. Sadeghi, Prof. R.A. Kennedy" +

            "<br/><b>Partner</b>" +
            "<br/>&nbsp;&nbsp;&nbsp; Microsoft Research" +
            "";

idx++;
arrPrj[idx] = new Object();
arrPrj[idx].Title = "Intraoperative Ultrasound Probe Calibration";
arrPrj[idx].Type = "HDR";
arrPrj[idx].Image = "";
arrPrj[idx].Description =             
            "Ultrasound-based navigation systems depend on ultrasound tracking with an electromagnetic or an optical " +
            "tracking systems. The tracking sensor mounted on the ultrasound probe needs to be calibrated with respect " +
            "to the ultrasound imaging plane. The process requires a custom-built phantom and a coupling medium, and is " +
            "usually time-consuming. In interventions on human subjects, strict sterility requirements impose restrictions " +
            "on the type of equipment used and its handling, and require the ultrasound probe and the tracking sensor to " + 
            "be dismantled, separately disinfected, and supplied at the time of operation in the sterile field.  This means " +
            "that the calibration process cannot be performed prior to the operation and there is a need for intraoperative " +
            "calibration of the instruments.<br/>" + 

            "In this project, we investigate methods for intraoperative calibration of a tracked ultrasound probe under " +
            "sterile conditions and wihout the use of phantoms. Validity and accuracy of the phantom-less methods is " +
            "established by comparison with state-of-the-art phantom-based methods. The process involves use of optical " +
            "and electromagnetic tracking and building custom-made precision phantoms (based on a CAD design) that are used " + 
            "to measure the accuracy of our calibration techniques." +

            "<br/>" + 
            "<br/><b>Supervisor</b>" +
            "<br/>&nbsp;&nbsp;&nbsp; Dr. R. Shams" +

            "</br><b>Suggested Reading</b>" +
            "</br><a href='papers/2009/MICCAIW_2009.pdf' onclick=\"javascript:urchinTracker('papers/2007/MICCAIW_2009.pdf')\">Intraoperative Ultrasound Probe Calibration in a Sterile Environment</a>" +
            "";

idx++;
arrPrj[idx] = new Object();
arrPrj[idx].Title = "Augmented reality visualization of {3D} {CT} and {MRI} on {iPhone}";
arrPrj[idx].Type = "Honours";
arrPrj[idx].Image = "images/iphone_dvr_40.png";
arrPrj[idx].Description = 
            "Star Trek fans are familiar with a medical 'tricorder', a hand-held device" +
            "used to scan living organisms and patient's internal organs. In this project we " +
            "will be building a tricoder of our own using an iPhone. This is a fun project for" +
            "Honours students.<br />" +
            "The idea is to display a direct volume rendering (DVR) of a 3D CT or MRI image " +
            "of a patient on the iPhone. The DVR image is superimposed on the real world image " +
            "of the patient to create an augmented reality display of the anatomy and the real " +
            "environment.<br />" +
            
            "<br />The project involves " +
            "<blockquote>" +
            "   <li>Direct volume rendering using OpenGL</li>" +
            "   <li>Image fusion on iPhone using the built-in camera and DVR images over WiFi</li>" +
            "   <li>3D tracking of iPhone using some tracking technology such as infrared tracking, electromagnetic tracking or an external camera</li>" +
            "   <li>Programming in C++, OpenGL and using iPhone SDK</li>" +
            "</blockquote>" + 

            "<b>Outcomes and Benefits</b>" +
            "<blockquote>" + 
            "    <li>Involvement in an exciting multi-disciplinary area of research with high visibility</li>" +
            "    <li>Learning about medical imaging and visualization with OpenGL and tracking technology</li>" +
            "    <li>A good chance of publishing the results in one or more conferences with the possiblity of funding support for presentation of the results</li> " +
            "    <li>You get an iPhone, a Mac Mini and potentially the new iPad (of course for the period of the project)</li> " +
            "</blockquote>" +

            "<b>Requirements</b>" +
            "<blockquote>" + 
            "    <li>Good C/C++ programming background</li> " +
            "    <li>Prior experience with OpenGL concepts and programming is beneficial</li>" +
            "</blockquote>" +
            "";

idx++;
arrPrj[idx] = new Object();
arrPrj[idx].Title = "Real-time point-to-surface image registration on the {GPU} for medical applications";
arrPrj[idx].Type = "Honours";
arrPrj[idx].Image = "";
arrPrj[idx].Description =             
            "A common problem in image guided surgery is the registration of a pre-operative 3D " +
            "image such as a CT scan or an MR image with the physical position of the patient. " +
            "The solution typically involves collecting position data from the body using a calibrated " +
            "probe and registering the recorded point cloud with the 3D image. This point-to-surface " +
            "registration problem can be efficiently solved using the ‘iterative closest point’ (ICP) algorithm. " +
            "The purpose of this project is to develop a real-time point-to-surface registration tool " +
            "through an efficient implementation of a nearest-neighbour search on the GPU using a kd-tree data structure.<br />" +
            "<br/> <b>Outcomes and Benefits</b><br/>" +
            "At the end of the project, the student will have learned GPU programming (including CUDA and OpenCL), " +
            "the basic concepts of medical image registration, the ICP algorithm, and the kd-tree data structure. " +
            "Efficient implementation of a kd-tree-based search on the GPU is not trivial due to the need to " +
            "traverse a binary tree which in practice is not balanced while making sure that all computational " +
            "resources are being utilised and also due to lack of native support for a stack in a GPU kernel.<br />" +

            "The project is associated with a major ARC Linkage project involving five ANU academics, " +
            "the Microsoft Beijing Research Laboratory and a Microsoft incubator group located in Redmond, USA. " +
            "The work is expected to lead to one or more publications with the ARC grant providing " +
            "funding to support presentation of this work at a conference.<br />" +
            
            "<br/><b>Requirements</b>" +
            "<blockquote>" + 
            "    <li>C/C++ programming, knowledge of computer architecture</li> " +
            "    <li>Prior experience with GPU programming is beneficial but not essential</li>" +
            "</blockquote>" +
            "";


// ---------------------------
function base64decode(input) 
{
    var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var output = "";
    var chr1, chr2, chr3 = "";
    var enc1, enc2, enc3, enc4 = "";
    var i = 0;
  
    // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
    var base64test = /[^A-Za-z0-9\+\/\=]/g;
    if (base64test.exec(input))
        return null;

    do 
    {
         enc1 = keyStr.indexOf(input.charAt(i++));
         enc2 = keyStr.indexOf(input.charAt(i++));
         enc3 = keyStr.indexOf(input.charAt(i++));
         enc4 = keyStr.indexOf(input.charAt(i++));

         chr1 = (enc1 << 2) | (enc2 >> 4);
         chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
         chr3 = ((enc3 & 3) << 6) | enc4;

         output = output + String.fromCharCode(chr1);

         if (enc3 != 64)
            output = output + String.fromCharCode(chr2);
         if (enc4 != 64) 
            output = output + String.fromCharCode(chr3);

         chr1 = chr2 = chr3 = "";
         enc1 = enc2 = enc3 = enc4 = "";
    } while (i < input.length);

    return unescape(output);
}

