Chuck Needham

Chuck Needham
MICROSOFT RESEARCH SUPPORT ENGINEER
.

Projects

Kinect for Windows SDK beta

Coming later this spring, the Kinect for Windows SDK is a programming toolkit that will enable researchers and enthusiasts easy access to the capabilities offered by the Microsoft Kinect device connected to computers running Microsoft Windows 7.

 

 

Microsoft Tag

 Microsoft Tag connects real life with the digital world. Microsoft Tags are small, colorful codes that can be printed, stuck, or displayed just about anywhere. When you snap a Tag with the camera on your internet-enabled phone, additional information or experiences are automatically opened on your phone. There is no fumbling with URLs or texting short codes. Microsoft Tags can make product packages, posters, print-based ads, magazine articles, exhibit signage, billboards, storefronts, business card, or just about anything else, interactive.

Songsmith

Songsmith

Songsmith generates musical accompaniment to match a singer’s voice. Just choose a musical style, sing into your PC’s microphone, and Songsmith will create backing music for you. Then share your songs with your friends and family, post your songs online, or create your own music videos.

 

WorldWide Telescope

WorldWide Telescope

The WorldWide Telescope (WWT) is a rich visualization environment that functions as a virtual telescope, bringing together imagery from the best ground- and space-based telescopes in the world to enable seamless, guided explorations of the universe.

 

 

 

People
Angel, Tambie
Angel, Tambie

Blank, Tom
Blank, Tom

Carbary, Tony
Carbary, Tony

Chandrasekaran, Nirupama
Chandrasekaran, Nirupama

Choudhury, Piali
Choudhury, Piali

Edelman Pelton, Alicia
Edelman Pelton, Alicia

Eversole, Adam
Eversole, Adam

Hart, Ted
Hart, Ted

Hughes, Richard
Hughes, Richard

Johnston, David
Johnston, David

Marriott, Ian
Marriott, Ian

Moeur, Robin
Moeur, Robin

Olynyk, Kirk
Olynyk, Kirk

Paradiso, Ann
Paradiso, Ann

Personal Web Site

Contact Info

Research News
Downloads
  • Spectrogram Inversion Toolbox
    The Spectrogram Inversion Toolbox allows one to create spectrograms from audio, and, more importantly, estimate the audio that generates any given spectrogram. This is useful because often one wants to think about, and modify sounds in the spectrogram domain. This toolbox is provided as Matlab source code. It does not depend on any Mathworks toolboxes. There are two big problems with spectrogram inversion: most importantly, one (generally) drops the phase when computing a spectrogram, and two not every (spectrogram) image corresponds to a valid waveform. This code finds the waveform that has a magnitude spectrogram most like the input spectrogram. The easy solution is to just do the inversion assuming some phase (like 0). Back in the time domain you get an answer, but there is a lot of destructive interference because the segments of adjacent frames do not have consistent phase. Some people advocate starting with a random phase. A better solution to this problem is to use an iterative algorithm proposed by Griffin and Lim many decades ago. It does converge, but slowly. An even better solution is to do the inversion, explicitly looking for a good set of phases. This toolbox does that, after the inverse Fourier transform of each slice, by finding the best time delay so the new frame and the summed frames to now are consistent. This is equivalent to starting with some arbitrary linear phase. The effect of this is to reduce the reconstruction error by an order of magnitude.
  • Foveated 3D Graphics
    This download represents the source code supporting the 2012 SIGGRAPH paper, “Foveated 3D Graphics”, available at http://research.microsoft.com. Dependencies on any specific gaze tracker have been removed, and replaced by function stubs which track the mouse cursor. The stubs may be filled in with calls to any high speed low latency gaze tracker. In particular, the key anti-aliasing techniques as described in the paper are demonstrated. The source code implementing the foveated rendering techniques is isolated into a small library. This library is provided in two formats, supporting both the D3DX API from the June 2010 DirectX SDK, as well as the XVECTOR API of the latest DirectX Windows Kits. A generic application rendering objects on a terrain is provided to drive the foveated rendering technique, but the technique is general to most real time 3D rendering. The application is provided as a Visual Studio 2010 solution which compiles against the June 2010 DirectX SDK.
  • Structured Edge Detection Toolbox
    Very fast edge detector (up to 60 fps depending on parameter settings) that achieves excellent accuracy. Can serve as input to any vision algorithm requiring high quality edge maps. Toolbox also includes the Edge Boxes object proposal generation method and fast superpixel code. Please see the following papers for details: (1) Structured Forests for Fast Edge Detection, P. Dollár and C. Zitnick, ICCV 2013. (2) Fast Edge Detection Using Structured Forests, P. Dollár and C. Zitnick, arXiv 2014. (3) Edge Boxes: Locating Object Proposals from Edges, C. Zitnick and P. Dollár, ECCV 2014. Provided is the Matlab source code (requires Matlab to run).
  • Random-Access Vector Graphics
    This program demonstrates our work on random-access rendering anti-aliased vector graphics on the GPU. We support a broad class of vector primitives, including multiple layers of semitransparent fills and strokes, with quadratic outlines and color gradients. Our approach is to create a coarse lattice in which each cell contains a variable-length encoding of the graphics primitives that overlap it. These cell-specialized encodings are interpreted at run time within a pixel shader. Advantages include coherent memory access and the ability to map vector graphics onto arbitrary surfaces or under arbitrary deformations. Most importantly, we perform both pre-filtering and supersampling within a single pixel-shader invocation, achieving inter-primitive anti-aliasing at no added memory-bandwidth cost.
  • Weighted PINQ
    Weighted PINQ is a generalization of the Privacy Integrate Queries (PINQ) platform for exploring differentially private data analyses. The new generalization introduces support for records and operators with fractional weights, allowing more expressive queries, especially in the context of the Join operator, with applications to graph analysis.