3D Vision: Developing an Embedded Stereo-Vision System

Download 3D Vision: Developing an Embedded Stereo-Vision System

Post on 22-Sep-2016

218 views

Category:

Documents

5 download

TRANSCRIPT

<ul><li><p>106 Computer</p><p>E M B E D D E D C O M P U T I N G</p><p>M any products would ben-efit greatly from the abil-ity to see people andobjects and respond toevents in real time. Cars,for example, could detect pedestriansor objects in harms way and brakeautomatically. Agricultural equipmentcould navigate fields autonomously,avoiding stray objects, people, andwildlife. Security systems could trackpeople moving through a building.</p><p>Any vision system deployed in thereal world must be able to operate ina broad range of conditions. Lightingcan vary dramatically. Rain, snow,and ice can occlude objects or altertheir appearance. People and objectscan be stationary or moving, and peo-ple can move in different ways and atdifferent speeds. Detecting a darklyclad pedestrian racing across an unlitalley in a thunderstorm requires visual</p><p>sophistication far beyond the simpleidentification of stationary objects in awell-lit laboratory.</p><p>STEREO VISIONThe most promising solution for</p><p>promptly and effectively interpretingvisual data in these challenging con-ditions is 3D vision, and the mosteffective way of realizing 3D vision isstereo vision. Using two cameras side by side, stereo vision produces avirtually instantaneous estimate of the distances to elements in a scene.Detecting distances serves as a pri-mary cue for detecting things thatstand out in depth from a back-ground. In addition to quickly gaug-ing depth, stereo vision is highlyeffective for segmenting objects andgauging their size and shape. Ulti-mately, stereo vision simplifies datainterpretation.</p><p>Accurate, real-time responsivenesswould be difficult, if not impossible,to achieve cost-effectively using 2Dsystems, which rely on a single imager.Besides being more error-prone atgauging distances, 2D-vision systemscan be easily confounded by changinglighting conditions.</p><p>Now that low-cost complementarymetal-oxide semiconductor (CMOS)imagers have come on the market, theopportunity to develop a general-pur-pose 3D embedded-vision system hasnever been better.</p><p>The DeepSea G2 Stereo VisionSystem that Tyzx developed featuresan embedded stereo camera consistingof two CMOS imagers, a TyzxDeepSea 2 stereo application-specificintegrated circuit (ASIC), a field-pro-grammable gate array (FPGA), a DSP/coprocessor, a PowerPC runningLinux, and an Ethernet connection.About the size of a hardback book, theG2 delivers real-time30 frames persecond (fps)interpretations of visualdata even in challenging environmentsand has been deployed in a variety ofapplications, including person-trackingand autonomous-vehicle navigation.</p><p>EFFICIENT PROCESSINGThe richer and more immediately</p><p>useful results that 3D vision systemsproduce come with a price. Processingdata from stereo-imager inputs in-creases the systems computationalrequirementsand potentially itscost. Our biggest design challenge wasto address the computational needs ofstereo vision in a platform that wouldremain affordable, compact, andcapable of running for long periods onlittle power.</p><p>One way to minimize the embeddedcomputational requirements would beto collect image data in the vision sys-tem, then offload the data processingto another system or series of systemson a local network. We quickly real-ized, however, that the bandwidthrequirements for multicamera appli-cations would make this approachuntenable.</p><p>Consider, for example, a wide-areatracking system based on stereo</p><p>3D Vision:Developing anEmbedded Stereo-Vision SystemJohn Iselin Woodfill, Ron Buck, Dave Jurasek, Gaile Gordon, and Terrance Brown Tyzx</p><p>Stereo-vision systems canprovide accurate real-time datain a variety of applications.</p></li><li><p>May 2007 107</p><p>tiating foreground images frombackground images;</p><p> mapping data into a 3D quantizedprojection space; and</p><p> completing other general-purposeprocessing tasks.</p><p>At the simplest level, the computa-tion required for a vision system takesinput from left and right imagers,processes data, and outputs results foruse by an application.</p><p>First-generation productIn our first-generation embedded</p><p>product, we programmed an FPGA toperform image rectification and devel-oped an ASIC, the DeepSea 2 chip, to perform stereo correlation. Theremaining processing was performedon a 600-megahertz Pentium III chip,which also ran the user application.The FPGA, ASIC, and PIII communi-cated over a peripheral componentinterconnect (PCI) bus. The systemran at 15 hertz and processed imagesthat were 400 pixels wide by 300 pix-els high.</p><p>For applications in which a visionsystem must make rapid decisionsabout complex, changing data, its bestto have many frames of data to confirmthe systems interpretation of a scene.While our first-generation product rep-resented a milestone in visual-systemintegration, its 15-fps performancewasnt sufficiently fast for some real-time applications, such as automotivesafety. The system also lacked the com-puting power required for trackingobjectsa common requirement inmany vision applications.</p><p>In addition to increasing the sys-tems performance, we also wanted to</p><p>imagers (one color and one mono-chrome), producing 26 bits (10 bits Y,8 bits U and V) and 10 bits per pixel,respectively. For 640 480 30 fps,the imagers will output approximately300 Mbits of data per second. If wefeed this data into a stereo processorand down-sample the color image, wemight end up with as little as 200 Mbitsof data per second. By processing therange and color data to detect andlocate people, we can further reduce theinformation to a few bytes per persontracked per frame, resulting in perhapsonly 80 Kbits per second. For just onetracking camera, a conventional LANcould accommodate the resulting dataat any stage in the pipeline.</p><p>However, for 100 tracking cameras,the left and right source data becomes33 Gbits per second, the color andrange 20 Gbits, and the segmentedtrack data might be about 8 Mbits persecondin total, an amount of datafar beyond the capacity of most net-works and sufficiently large to callinto question the systems real-timecapabilities.</p><p>Image processing, therefore, is mostpractically performed within the sys-tem itself. A self-contained system isalso the most practical for applica-tions such as automotive safety andconsumer appliances, where offload-ing to another processor would beimpractical.</p><p>FUNCTIONAL DECOMPOSITIONInstead of offloading the processing,</p><p>we solved the computational problemby applying functional decomposi-tion, breaking down the computa-tional work into smaller tasks, andthen putting as much processing aspossible into hardware primitives.</p><p>We decomposed the data-process-ing work into these steps:</p><p> rectificationaligning image datato account for imperfections andmisalignments in the imagers;</p><p> stereo correlationcorrelatingdata from both imagers to createone master set of data;</p><p> background modelingapplyinga background model and differen-</p><p>lower its overall processing and powerrequirements to make it easier todeploy where space is limited.</p><p>Second-generation productAfter considering various tradeoffs,</p><p>we invested in more integration up-front for our second-generation prod-uct, the DeepSea G2. By applyingadditional functional decompositionin the G2, we increased the systemsperformance while decreasing CPUand power requirements.</p><p>The G2 passes even more work tohardware primitives in the FPGA andASIC. For example, an FPGA nowperforms background-modeling prim-itives previously performed on a PIII.This tighter integration and hardwareprocessing enabled the system toachieve process images at 30 fps in asmaller package.</p><p>Table 1 compares the functionaldecomposition of the two products.Whereas the first-generation producttook advantage of an off-the-shelfCPU, the second-generation productrelies on an FPGA for backgroundmodeling and individuation.</p><p>We chose hardware-acceleratedvisual primitives that would be usefulfor many tasks, account for a largepart of the computational load, andbe suitable for hardware acceleration.In the G2, some primitives process theincoming streams of left and rightimages. Other primitives process theoutput of other primitives. </p><p>Since the G2 is an embedded stereocamera, the visual primitives areaimed at producing and interpretingrange data. Since stereo correlation iscomputationally intensive and a com-mon subcomponent of vision algo-</p><p>Table 1: Comparing functional decomposition in two Tyzx products.</p><p>Task First-generation product DeepSea G2 Stereo Vision </p><p>Rectification FPGA FPGA Stereo correlation DeepSea 2 ASIC DeepSea 2 ASIC Background model Pentium III FPGA Projection space Pentium III FPGA DSP coprocessing N/A BlackFin DSP coprocessor User application Pentium III PowerPC </p></li><li><p>108 Computer</p><p>E M B E D D E D C O M P U T I N G</p><p>rithms, its an obvious visual primitiveto support. Background modelingbased on range and color requireshuge amounts of memory bandwidthand finds a place in many trackingalgorithmshence its our secondvisual primitive. A third primitive,ProjectionSpace, produces 2D and 3Dquantized representations or projec-tions of the range data. This is a com-putationally intensive, but widelyapplicable, visual primitive. Lastly, aprogrammable DSP is included in theG2 as a generalized visual primitivean additional resource for doingexpensive, regular image operations.</p><p>Stereo correlation. The primaryvisual primitive is the stereo-correla-tion processor. It takes as input the leftand right images and creates a range</p><p>image as output. The Tyzx DeepSea 2ASIC accelerates the performance ofthis primitive.</p><p>Background modeling. The back-ground-modeling primitive takes asinput range and intensity data and gen-erates a pixel-by-pixel foreground/background map of the image basedon the nature of the pixels changefrom previous frames. This task canrequire reading roughly 400 bits perpixel from memory and writingroughly 200 bits per pixel to memory.For 400 x 300 images at 30 fps, back-ground modeling requires over 2 Gbitsof memory bandwidth per second.</p><p>In addition, matching and updatingeach pixel involves several compar-isons and updates. Offloading this taskto dedicated hardware reduces theCPUs workload and is a key factorenabling the use of a smaller embed-ded CPU. The output is a binary fore-ground mask image.</p><p>ProjectionSpace. The Projection-Space primitive transforms a full 3Dcloud of points into either 3D dataprojected into a Euclidean 3D quan-tized volume or a 2D array. These 3Dvolumes or 2D arrays are useful formany applications, such as peopletracking. The ProjectionSpace primi-tives transform vast amounts of 3Ddata into forms that make sense forapplications tracking people andobjects in a 3D space.</p><p>OTHER DESIGN CHALLENGESThe technical hurdles for such a</p><p>vision system also include size, porta-bility, and power requirements. The</p><p>design goal, in most cases, is to unob-trusively add a vision system to anexisting product or environment. Thatmeans deploying a solution thatscompact and probably lightweightand makes few power and coolingdemands.</p><p>Table 2 details the G2s specifica-tions. The system consumes about 15watts; its camera includes a 100BaseTEthernet interface that accepts Power-over-Ethernet. A compact flash mem-ory card stores a Linux kernel and aroot file system so that the G2 canboot into Linux on power-up.</p><p>I ncreased hardware integration andacceleration in the G2 has paid off.The system can track people andobjects in changing lighting condi-tions, using 512 380 images at 30fpsa rate fast enough to supportrapid decision making and deliver real-time responsiveness. Electroland, acompany that creates interactive envi-ronments, has installed four G2s run-ning our person-tracking applicationin their interactive installation forTarget in Rockefeller Centers newobservation deck. Another partner isdeveloping an autonomous urban-reconnaissance vehicle that uses theG2 to run obstacle-detection and path-planning algorithms. </p><p>In the future, we expect to integrateeven more functionality in hardwareto create embedded stereo systemsthat are smaller, faster, and easier tointegrate in products working in thereal world. </p><p>John Iselin Woodfill is the chief technol-ogy officer; Ron Buck is president andCEO; Gaile Gordon is vice president,advanced development; Dave Jurasek isvice president, hardware engineering;and Terrance Brown is senior hardwaredesign engineer, all at Tyzx. Contact theauthors at info@tyzx.com.</p><p>Editor: Wayne Wolf, Dept. of Electrical Engineering, Princeton University, Princeton NJ; wolf@princeton.edu</p><p>Table 2.Tyzx DeepSea 2 specifications.</p><p>Tyzx DeepSea 2 Stereo-Correlation ChipSpecification Unit of measure </p><p>Input image size (max) 512 2048 (10 bit) pixels Stereo range </p><p>Search window 5 2 disparities Subpixel localization 5 bits Z output 16 bits Max frame rate 200 fps (512 480) </p><p>Power &lt; 1 watt Pixel disparities/second 2.6 billion </p><p>Visionary Web Videosabout the Future of Multimedia.</p><p>Listen to premiere multimedia experts!Post your own views and demos!</p><p>Visit www.computer.org/multimedia</p><p> /ColorImageDict &gt; /JPEG2000ColorACSImageDict &gt; /JPEG2000ColorImageDict &gt; /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 150 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.00333 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict &gt; /GrayImageDict &gt; /JPEG2000GrayACSImageDict &gt; /JPEG2000GrayImageDict &gt; /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 600 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.00167 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict &gt; /AllowPSXObjects true /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError false /PDFXTrimBoxToMediaBoxOffset [ 72.00000 72.00000 72.00000 72.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile (None) /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False</p><p> /Description &gt;&gt;&gt; setdistillerparams&gt; setpagedevice</p></li></ul>

Recommended

View more >