MACHINE VISION GROUP GPGPU-based surface inspection from structured white light Miguel Bordallo 1, Karri Niemelä 2, Olli Silvén 1 1 Center for Machine.

Slides:



Advertisements
Similar presentations
Bayesian Belief Propagation
Advertisements

Exploiting Execution Order and Parallelism from Processing Flow Applying Pipeline-based Programming Method on Manycore Accelerators Shinichi Yamagiwa University.
SE263 Video Analytics Course Project Initial Report Presented by M. Aravind Krishnan, SERC, IISc X. Mei and H. Ling, ICCV’09.
Laser Speckle Extensometer ME 53
--- some recent progress Bo Fu University of Kentucky.
Real-Time Accurate Stereo Matching using Modified Two-Pass Aggregation and Winner- Take-All Guided Dynamic Programming Xuefeng Chang, Zhong Zhou, Yingjie.
Parallel Tracking and Mapping for Small AR Workspaces Vision Seminar
Real-Time Human Pose Recognition in Parts from Single Depth Images Presented by: Mohammad A. Gowayyed.
Foreground-Background Separation on GPU using order based approaches Raj Gupta, Sailaja Reddy M., Swagatika Panda, Sushant Sharma and Anurag Mittal Indian.
GIS and Image Processing for Environmental Analysis with Outdoor Mobile Robots School of Electrical & Electronic Engineering Queen’s University Belfast.
ECE 562 Computer Architecture and Design Project: Improving Feature Extraction Using SIFT on GPU Rodrigo Savage, Wo-Tak Wu.
© Fastvideo, Key Points We implemented the fastest JPEG codec Many applications using JPEG can benefit from our codec.
2009/04/07 Yun-Yang Ma.  Overview  What is CUDA ◦ Architecture ◦ Programming Model ◦ Memory Model  H.264 Motion Estimation on CUDA ◦ Method ◦ Experimental.
Probabilistic video stabilization using Kalman filtering and mosaicking.
Tracking Migratory Birds Around Large Structures Presented by: Arik Brooks and Nicholas Patrick Advisors: Dr. Huggins, Dr. Schertz, and Dr. Stewart Senior.
Detecting Image Region Duplication Using SIFT Features March 16, ICASSP 2010 Dallas, TX Xunyu Pan and Siwei Lyu Computer Science Department University.
7/24/031 Ben Blazey Industrial Vision Systems for the extruder.
Primary Goals Fully develop vision system for Wunderbot IV autonomous robot Adapt it specifically for June 2008 Intelligent Ground Vehicle Competition.
Real-Time Face Detection and Tracking Using Multiple Cameras RIT Computer Engineering Senior Design Project John RuppertJustin HnatowJared Holsopple This.
MACHINE VISION GROUP Head-tracking virtual 3-D display for mobile devices Miguel Bordallo López*, Jari Hannuksela*, Olli Silvén* and Lixin Fan**, * University.
MACHINE VISION GROUP Multimodal sensing-based camera applications Miguel Bordallo 1, Jari Hannuksela 1, Olli Silvén 1 and Markku Vehviläinen 2 1 University.
Introduction Belief propagation: known to produce accurate results for stereo processing/ motion estimation High storage requirements limit the use of.
CSU0021 Computer Graphics © Chun-Fa Chang CSU0021 Computer Graphics September 10, 2014.
Motivation “Every three minutes a woman is diagnosed with Breast cancer” (American Cancer Society, “Detailed Guide: Breast Cancer,” 2006) Explore the use.
GmImgProc Alexandra Olteanu SCPD Alexandru Ştefănescu SCPD.
Binaural Sonification of Disparity Maps Alfonso Alba, Carlos Zubieta, Edgar Arce Facultad de Ciencias Universidad Autónoma de San Luis Potosí.
MACHINE VISION GROUP Graphics hardware accelerated panorama builder for mobile phones Miguel Bordallo López*, Jari Hannuksela*, Olli Silvén* and Markku.
Predictive Runtime Code Scheduling for Heterogeneous Architectures 1.
Real-Time Phase-Stamp Range Finder with Improved Accuracy Akira Kimachi Osaka Electro-Communication University Neyagawa, Osaka , Japan 1August.
Introducing To 3D Modeling George Atanasov Telerik Corporation
KinectFusion : Real-Time Dense Surface Mapping and Tracking IEEE International Symposium on Mixed and Augmented Reality 2011 Science and Technology Proceedings.
A Local Adaptive Approach for Dense Stereo Matching in Architectural Scene Reconstruction C. Stentoumis 1, L. Grammatikopoulos 2, I. Kalisperakis 2, E.
IPD Technical Conference February 19 th 2008 SNAP RING DIMENSION VERIFICATION.
3D SLAM for Omni-directional Camera
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
Implementing a Speech Recognition System on a GPU using CUDA
Implementing Codesign in Xilinx Virtex II Pro Betim Çiço, Hergys Rexha Department of Informatics Engineering Faculty of Information Technologies Polytechnic.
Realtime 3D model construction with Microsoft Kinect and an NVIDIA Kepler laptop GPU Paul Caheny MSc in HPC 2011/2012 Project Preparation Presentation.
Video Based Palmprint Recognition Chhaya Methani and Anoop M. Namboodiri Center for Visual Information Technology International Institute of Information.
Accelerating image recognition on mobile devices using GPGPU
Tracking with CACTuS on Jetson Running a Bayesian multi object tracker on a low power, embedded system School of Information Technology & Mathematical.
Tracking with CACTuS on Jetson Running a Bayesian multi object tracker on an embedded system School of Information Technology & Mathematical Sciences September.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
Autonomic scheduling of tasks from data parallel patterns to CPU/GPU core mixes Published in: High Performance Computing and Simulation (HPCS), 2013 International.
A Region Based Stereo Matching Algorithm Using Cooperative Optimization Zeng-Fu Wang, Zhi-Gang Zheng University of Science and Technology of China Computer.
1 University of Texas at Austin Machine Learning Group 图像与视频处理 计算机学院 Motion Detection and Estimation.
Experiences Accelerating MATLAB Systems Biology Applications Heart Wall Tracking Lukasz Szafaryn, Kevin Skadron University of Virginia.
Designing for energy-efficient vision-based interactivity on mobile devices Miguel Bordallo Center for Machine Vision Research.
1 Research Question  Can a vision-based mobile robot  with limited computation and memory,  and rapidly varying camera positions,  operate autonomously.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
Parallelization of likelihood functions for data analysis Alfio Lazzaro CERN openlab Forum on Concurrent Programming Models and Frameworks.
Chapter 5 Multi-Cue 3D Model- Based Object Tracking Geoffrey Taylor Lindsay Kleeman Intelligent Robotics Research Centre (IRRC) Department of Electrical.
Accelerating Spherical Harmonic Transforms on the NVIDIA® GPGPU
GPU Accelerated MRI Reconstruction Professor Kevin Skadron Computer Science, School of Engineering and Applied Science University of Virginia, Charlottesville,
高精度高速度的三维测量技术. 3D stereo camera Stereo line scan camera 3D data and color image simultaneously 3D-PIXA.
Visual Computing Computer Vision 2 INFO410 & INFO350 S2 2015
Visual Odometry David Nister, CVPR 2004
A Model of Saliency-Based Visual Attention for Rapid Scene Analysis
MACHINE VISION GROUP MOBILE FEATURE-CLOUD PANORAMA CONSTRUCTION FOR IMAGE RECOGNITION APPLICATIONS Miguel Bordallo, Jari Hannuksela, Olli silvén Machine.
Canny Edge Detection Using an NVIDIA GPU and CUDA Alex Wade CAP6938 Final Project.
GPU, How It Works? GRAPHICS PROCESSING UNITS Hidden Surfaces Determine which surfaces should be displayed Texturing Modify each pixel colour for added.
April / 2010 UFOCapture 1 UFOCaptureV2 Time-Shift-Motion-Detect-Video-Recording software for complete records of un-expected events.
Motion tracking TEAM D, Project 11: Laura Gui - Timisoara Calin Garboni - Timisoara Peter Horvath - Szeged Peter Kovacs - Debrecen.
1 Munther Abualkibash University of Bridgeport, CT.
Accelerating K-Means Clustering with Parallel Implementations and GPU Computing Janki Bhimani Miriam Leeser Ningfang Mi
General Engineering Research Institute
Two-Dimensional Phase Unwrapping On FPGAs And GPUs
Parallel Plasma Equilibrium Reconstruction Using GPU
Image Transformation 4/30/2009
IMAGE MOSAICING MALNAD COLLEGE OF ENGINEERING
Presentation transcript:

MACHINE VISION GROUP GPGPU-based surface inspection from structured white light Miguel Bordallo 1, Karri Niemelä 2, Olli Silvén 1 1 Center for Machine Vision Research - University of Oulu, Finland 2 VTT - Technical Research Center of Finland, Oulu, Finland Jari Hannuksela, Olli Silvén Machine Vision Group, Infotech Oulu Department of Electrical and Information Engineeering University of Oulu, Finland

MACHINE VISION GROUP Contents Introduction Automatic Surface Inspection Phase extraction from white structured light Practical problems Measuring Prototype Design and construction GPU as a computing engine Experimental setup Description of the system Algorithms and Implementation Experiments Qualitative results Speed and scalability Summary

MACHINE VISION GROUP Motivation Automatic surface inspection used in the industry: –To detect all kinds of surface defects –To measure the overall quality of a produced piece Most convenient inspection method should provide exact 3D information High speed of production lines need: –Fast imaging methods –Lots of computational power Systems must be cost effective: –Standard PCs –Graphics Processing Units (GPUs)

MACHINE VISION GROUP GPU as a computing engine All computers and many embedded systems include a GPU Standard PCs and components Cost-effective systems Highly scalable GPU can be treated as an independent entity Graphics Processing Units offer important parallelization capabilities GPUs offer ”many-core” computation Thousands of threads can be executed concurrently. GPU and CPU can be used concurrently If data transfer is small, CPU load remains low (CPU can be used for other tasks) CUDA is a highly optimized and attractive accelerator interface

MACHINE VISION GROUP Surface topography from white structured light (SLS) Phase-shifting methods: –Based on fringe pattern projections or structured light –Extensively utilized in topography measurement –Provide for high resolution height measurements on each pixel. The illuminator projects a sine pattern: –On a moving target –In a synchronized manner The camera system obtains suitable input pictures using: –Pulse-like illumination –Synchronized camera subsystem –Certain known rate

MACHINE VISION GROUP Phase measurement In practice δ1, δ2, δ3 are not known in beforehand If δ1, δ2, δ3 are known: And the height: The input images are defined by the following:

MACHINE VISION GROUP Phase extraction with syntetic images 120dg Phase Shifted patterns Reconstructed Images Phase/Height Comparison

MACHINE VISION GROUP Problems and errors Clipping effect: saturation Wrong phase shift (δ1, δ2, δ3) Wrong frequency Combined effect ++ =

MACHINE VISION GROUP Problems and errors Clipping effect: saturation Wrong frequency Combined effect Input ++ = + Wrong phase shift (δ1, δ2, δ3)

MACHINE VISION GROUP Problems and errors Clipping effect: saturation Wrong frequency Combined effect Input Result ++ = += Wrong phase shift (δ1, δ2, δ3)

MACHINE VISION GROUP Prototype design

MACHINE VISION GROUP Prototype design VTT prototype: Sine period of 250um –Camera: Basler Scout scA gm. 1628x1236 pixels, Area 4.4*4.4um2 –Interface: GiGE, 17 frames per second –Optics: Optosigma Telecentric (TC1236). Pixel size 30 µm –Illuminator: 9 Luxeon K2 Red LEDS + collimating lens. 3 channels Laptop: Lenovo W700 –CPU: Intel Core 2 Extreme QX GHz –GPU: Nvidia Quadro FX3700 (128 cores) –IDE: Visual Studio. CUDA & C code environments Motor Line Controller: ATMEL microcontroler and PC –Line speed: 0,3 m/s Samples used: –Offline: 10 cents coin, printed electronics (10 µm thick) –Online: MDF-fiberboard

MACHINE VISION GROUP Prototype construction

MACHINE VISION GROUP Application flow

MACHINE VISION GROUP Application flow

MACHINE VISION GROUP Application flow

MACHINE VISION GROUP Application flow

MACHINE VISION GROUP Application flow

MACHINE VISION GROUP Application flow

MACHINE VISION GROUP Application flow

MACHINE VISION GROUP Application flow

MACHINE VISION GROUP Input images Full frame size: 1628x1236 pixels, 8 or 10 bpp, grayscale, 17 fps

MACHINE VISION GROUP Input images 64x256 correlation area Full frame size: 1628x1236 pixels, 8 or 10 bpp, grayscale, 17 fps

MACHINE VISION GROUP Image registration Based on modified phase correlation –Tukey window + FFT-based (+ Gaussian filtering) –Robust to blur (even motion blur) –Robust to image intensity changes –Fast to compute Easy to parallelize –CUDA FFT routines already optimized –Per-pixel operations Identifies corresponding pixels –Subpixel level access as a CUDA texture object Predict initial phase shift for phase computation Fine tune the motor displacements & camera rate 600x300 ROIs

MACHINE VISION GROUP Correlation algorithm performance FFTMultiplication & Normalization Correlate 2 images (3 fft + mul./norm.) Correlate 3 full frames ( 5 fft + 2 mul./norm.) Matlab Intel Core2 2.6Ghz CUDA Nvidia Quadro FX1700 CUDA Nvidia Quadro FX3700 Matlab Intel Core2 2.6Ghz CUDA Nvidia Quadro FX1700 CUDA Nvidia Quadro FX3700 Matlab Intel Core2 2.6Ghz CUDA Nvidia Quadro FX1700 CUDA Nvidia Quadro FX3700 Matlab Intel Core2 2.6Ghz CUDA Nvidia Quadro FX1700 CUDA Nvidia Quadro FX x256 Time /SpeedUp 18 ms3.5 ms 0.9 ms 4 ms 0.3 ms <0.1 ms 62 ms 12 ms 2.9 ms 100 ms 20 ms 4 ms X5X20XX12X>40XX5X22XX5X25X 128x512 Time /SpeedUp 70 ms 13 ms 3 ms 15 ms 1.1 ms 0.2 ms 230 ms 40 ms 6.1 ms 390 ms 65 ms 15 ms X5.5X25XX14X67XX5.8X37.5XX6X30X 256x1024 Time /SpeedUp 275 ms 42 ms 9 ms 58 ms 3.5 ms 0.7 ms 820 ms 120 ms 24 ms 1500 ms 200 ms 41 ms X6.5X30XX17X80XX7X34XX7.5X36X

MACHINE VISION GROUP Advanced Phase Shifting Algorithm (APSA) First introduced by Z. Wang in 2004 Iterative algorithm –Initial estimation of phase difference (δ1, δ2, δ3) from correlation and previous frames –Phase of each pixel is computed Using a CUDA 2-dimensional kernel –Average phase of the image is computed By adding together the values of all the pixels Using CUDPP parallel reductions –Average phase is the new phase difference –Iterate until convergent and error < threshold Result is a phase wrapped image –Range between -π and π Wrapped image

MACHINE VISION GROUP APSA times AlgorithmMATLAB timeC/CUDA timeSize Mpix/s SpeedUp APSA1: Phase extraction (CUDA) 130,0 ms/iteration10,9 ms/iteration350x82626,5211x APSA2: Average phase (CUDA) 470,0 ms/iteration18,8 ms/iteration350x82615,1124x APSA 10 iterations6200 ms300 ms350x8260,9520x

MACHINE VISION GROUP Phase unwrapping and surface fitting Lp Norm algorithm: –Developed in CUDA (Mistry, 2009) –Accurate results –Very high computation times (up to 2.5 seconds) –Not suitable for real-time Sorting by reliability in noncontinuous path: –Fast two dimensional unwrapping –Developed in C for a CPU (Arevalillo 2004) –Sufficient accuracy –Very fast (about 125 ms.) –Can be executed concurrently with the GPU phase extraction Surface fitting computes the closer average plane 600x300 Surface map

MACHINE VISION GROUP Display system

MACHINE VISION GROUP Automatic calibration system Phase maps measured continuously in real time –The information of the phase extraction process can be used to improve further results and conditions. Synchronizes –Illumination, –Camera capture –Motor speed Input parameters: –Correlation results (adjust motor speed) –Phase average (adjust illumination and camera capture Phase tuning and system calibration improve the results gradually

MACHINE VISION GROUP Real-time tests: MDF fibreboard sample

MACHINE VISION GROUP Real time tests: 3D representation

MACHINE VISION GROUP Printed electronics sample

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Copy Images as texture Get input frames N = 1 CPUGPU Get Correlation ROI Get Surface ROI Get pixel phase Get average phase APSA1 Get average phase APSA2 Get phase map Surface fitting Forward correlation values Forward phase average values Perform correlation

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Get input frames N = 1 CPUGPU Surface fitting Forward correlation values Forward phase average values Copy Images as texture Get Correlation ROI Get Surface ROI Get pixel phase Get average phase APSA1 Get average phase APSA2 Get phase map Perform correlation

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Surface ftting Get input frames N = 1 CPUGPU Calculate wrapped phase Image N = 1

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Surface fitting N = 1 Calculate wrapped phase Image N = 1 Get input frames N = 1 CPUGPU

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Surface fitting N = 1 Calculate wrapped phase Image N = 1 Get input frames N = 1 Get input frames N = 2 CPUGPU

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Surface fitting N = 1 Calculate wrapped phase Image N = 1 Calculate wrapped phase Image N = 2 Get input frames N = 1 Get input frames N = 2 CPUGPU

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Surface fitting N = 1 Calculate wrapped phase Image N = 1 Calculate wrapped phase Image N = 2 Phase unwrapping Surface fitting N = 2 Calculate wrapped phase Image N = 3 Get input frames N = 1 Get input frames N = 2 Get input frames N = 3 CPUGPU

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Surface fitting N = 1 Calculate wrapped phase Image N = 1 Calculate wrapped phase Image N = 2 Phase unwrapping Surface fitting N = 2 Calculate wrapped phase Image N = 3 Get input frames N = 1 Get input frames N = 2 Get input frames N = 3 CPUGPU

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Surface fitting N = 1 Calculate wrapped phase Image N = 1 Calculate wrapped phase Image N = 2 Phase unwrapping Surface fitting N = 2 Calculate wrapped phase Image N = 3 Get input frames N = 1 Get input frames N = 2 Get input frames N = 3 Get input frames N = n Phase unwrapping Surface fitting N = n-1 Calculate wrapped phase Image N = n CPUGPU

MACHINE VISION GROUP Complete system Image size: 3 ROI of 600x300 Computation time: < 150 ms. Frame rate: > 5 fps. Resolution: 30µm per pixel. Phase unwrapping Surface fitting N = 1 Calculate wrapped phase Image N = 1 Calculate wrapped phase Image N = 2 Phase unwrapping Surface fitting N = 2 Calculate wrapped phase Image N = 3 Get input frames N = 1 Get input frames N = 2 Get input frames N = 3 Get input frames N = n Phase unwrapping Surface fitting N = n-1 Calculate wrapped phase Image N = n CPUGPU

MACHINE VISION GROUP Summary A sine projection technique is a suitable method to optically measure a layer-like surface topography The system could be used in rapid motor lines with proper synchronization An integrated automatic calibration system helps synchronization and increases quality and robustness High accuracy can be achieved with fast imaging methods and intensive computation Time critical algorithms can be executed with GPU-based parallel computing

MACHINE VISION GROUP Thank you! Any questions ???