A GPU based Real-Time Line Detector using a Cascaded 2D Line Space

Size: px
Start display at page:

Download "A GPU based Real-Time Line Detector using a Cascaded 2D Line Space"

Transcription

1 A GPU based Real-Time Line Detector using a Cascaded 2D Line Space Jochen Hunz jhunz@uni-koblenz.de Anna Katharina Hebborn ahebborn@uni-koblenz.de University of Koblenz-Landau Universitätsstraße Koblenz Germany Stefan Müller stefanm@uni-koblenz.de ABSTRACT We propose the Line Space as a novel parameterization for lines in 2D images. The approach has similarities to the well known Hough Transform; however, we use a linear parameterization instead of angular representations leading to a better quality and less redundancy. The Line Space is very well suited for GPU implementation since all potential lines in an image are captured through rasterization. In addition, we improve the efficiency by introducing the term Cascaded Line Space, where the image is subdivided into smaller Line Spaces which are finally merged to the global Line Space. We implemented our approaches exploiting modern GPU facilities (i.e. compute shader) and we will describe the details in this paper. Finally, we will discuss the enormous potential of the Line Space for further extensions. KEYWORDS Image Processing, Visual Computing, Line Detection, GPGPU, Line Space 1 INTRODUCTION Lines are typical image features of interest in computer vision and image analysis. Several use cases are depending on capturing a set of lines in images accurately and efficiently. Since 1962, one established way to detect lines in images is the Hough Transform [1]. Significantly involved in the present algorithm is the work of Duda and Hart [2]. They represent a line in its normal form. Thereby they parameterize the line through its algebraic distance d and its normal's angle α. By restricting α to the interval [0, α), all normal parameters are unique. Therefore, every line in the input image corresponds to a unique point in the Hough accumulator. If the coordinate system s origin is the center of the image, the maximum distance d to the origin is. Thus, the resolution of the Hough accumulator depends on the number of discretizations of α and the input image of size. This is, the resolution of the Hough accumulator is given by. Transforming a set of collinear points from the input image to the Hough accumulator will result in sinusoidal curves with one common point of intersection. Finding this point of intersection results in a detected line. The discretization of the angle α leads to a subsampling of the lines if the discretization is not selected properly. Thus, the line's accuracy is not perfect. In contrast to this, our approach detects lines in images using a linear parameterization of lines instead of an angular representation. Doing this, we consider all possible lines in an image. In this paper, we propose a novel approach for detecting lines in images. Due to the computing power of modern GPUs and the versatile ability of compute shaders, all possible lines in an image can be scanned. In section 2, we will describe the idea and theory behind the Line ISBN: SDIWC 56

2 Space and we will introduce the Cascaded Line Space to optimize the algorithm. Section 3 illustrates and discusses implementation details for detecting lines in an efficient way on the GPU using OpenGL Compute Shaders. Afterwards, section 4 presents our evaluated results related to the Hough Transform, specifically the quality of the results and the algorithm's efficiency. At last, we will conclude this paper with a discussion about the results and we will give a look on what might await us in the future, in terms of possibilities and chances of the Line Space. 2 LINE SPACE all corner points of an image, which is filtered by the Canny edge detector [4]. In figure 1 an edge image of size n x n is shown with an exemplary line. The border edges are numbered from 0 to 4n - 1. Now we consider all lines from every border edge to all border edges, each identified by a tuple (start edge number, end edge number). As a result, we get a two dimensional space (the Line Space) of size 4n x 4n, where each index tuple represents a line in the image. As a consequence, the algorithm rasterizes lines in total without any applied optimization. The blue line in figure 1a is represented by the index (1,8) or (8,1) respectively. Thereby, the entry in the Line Space is the number of pixels in the Canny image with a value not equal to zero. As we can see, the Line Space has some interesting properties: (a) (b) ) Figure 1: (a) An empty image with one exemplary line and (b) the corresponding Line Space entries. The term Line Space was introduced by Drettakis and Sillion [3] in the context of hierarchical radiosity simulation. In their paper, a line is considered as a link between two arbitrary surface elements, surrounded by a shaft, covering all potential rays between both surface elements. For each shaft, a list of potential occluding candidates is computed during the radiosity simulation. The candidate list can be reused for further visibility computation (i.e. if a link needs to be refined) or for dynamic scene updates. We use the term Line Space in a somehow similar manner. However, instead of shafts between surfaces, we investigate lines between 1. LS(s,e) = LS(e,s): it is symmetric and only the upper triangle is needed. 2. LS(s,s) = 0: the elements of the diagonal characterize degenerated lines with zero length and can be omitted. 3. Collinearity: lines between collinear edges are also degenerated, leading to blocks around the diagonal in this example. 2.1 Cascaded Line Space As the computation of the Line Space should be as fast as possible to remain real-time capable, we developed a Cascaded Line Space (CLS) to speed up the algorithm. The idea is rather simple: Instead of rasterizing lines between all corner points of an image, we divide the image into cascades of size. In a similar way as described before, we number the border edges of each cascade from 0 to 4k - 1. Now we consider all lines within a cascade between these border edges, resulting in one Line Space per cascade. Thereby, each Line Space is pixels in size. Consequently, we ISBN: SDIWC 57

3 compute Line Spaces while rasterizing lines, which are as many lines as before. Because of that we can store the CLS in an Image of size 4n x 4n. The advantage of this approach is, that we rasterize short lines instead of longer lines through the whole image, which results in a significant speed increase. Figure 2a shows an image of size 16 x 16 divided into 4 x 4 cascades. The result of our algorithm is a CLS as in figure 2b. In order to obtain the same information from the CLS as from the Line Space we need to merge the CLS together. We can compute the next higher CLS hierarchy based on the existing one by merging groups of four Line Spaces to one Line Space. Thereby, the cascade intersection points of each line in the Line Space are determined as in figure 3. Here, the line intersects the cascade at the red, green, and orange points. The red points give the index tupels (2,5) and (5,2) within the upper left cascade, whereby the green points give the index tuple (12,13) and (13,12) within the lower left cascade, for instance. Knowing this for every intersection pair, we can perform simple look ups in the CLS to determine how many pixels are set on the way of this line. The result is stored in the next higher CLS hierachy at the proposed line entry. Doing this for all cascades leads to a new CLS which is a composition of cascades. Repeating this procedure times will result in the complete Line Space. Figure 4a shows the result of the first merge step of the CLS shown in figure 2b. The result is a new CLS with 2 x 2 cascades of size each. The next and last merge step in this example is shown in figure 4b, which is the complete Line Space of the image in figure 2a: A CLS with only 1 cascade of size (a) (b) ) Figure 2: (a) An image of size 16 x 16 divided into 4 x 4 cascades and (b) the corresponding Cascaded Line Space. (a) (b) ) Figure 3: (a) Determined intersection points for each cascade and (b) the corresponding CLS entries, exemplary for the left upper image section of figure 2. (a) (b) ) Figure 4: (a) Cascaded Line Space with 2 x 2 cascades and (b) the complete Line Space as a result of the last merge step. ISBN: SDIWC 58

4 3 IMPLEMENTATION As the Line Space is constructed through line rasterization, we implemented our approach using OpenGL 4 and the performance of modern GPUs. We obtained the best performance using Compute Shaders as they provide high-speed general-purpose computing. The dispatch of a Compute Shader can be fully configured. Thereby, the Shader gets dispatched in one global work group, which is a three dimensional space of local work groups. Each local work group itself forms a three dimensional space of threads and gets executed on one streaming multiprocessor of the GPU. A Compute Shader invocation is dispatched for every border edge tuple (start edge, end edge) to determine whether a line appears between the edges or not. For this, a line from the start to the end edge is rasterized by the Digital Differential Analyzer (DDA) algorithm. Thereby, the number of pixels with a value not equal to zero is counted. The Line Space stores this value, whereby the tuple serves as the Line Space's index. We reduce the computational complexity of the Line Space by using a Buffer Object to store all important tuples and to omit equivalent and degenerated lines at the same time. The following listing shows the core of the entire algorithm in the OpenGL Shading Language: void main() { uint ID = gl_globalinvocationid.x; ivec2 tuple = buffer[id]; uint hits = DDA(tuple.x,tuple.y); imagestore(linespace,tuple,hits); } For CLS computation the core of the algorithm remains the same, only the input buffer and the compute shader dispatch vary. Now the buffer contains only border edge tuples of one cascade and we dispatch a set of two dimensional local work groups. Using this technique, we can determine the ID of the cascade inside the shader. Knowing this, we can compute the exact start- and endpoint of the line in the image. After computing the number of line hits, the result gets stored on its proposed cascade position. To merge the cascades as fast as possible, the intersections points for every cascade level can be precomputed and can be made available in the shader through a buffer. It is also recommended to omit equivalent and degenerated lines as before. 3.1 Line Extraction After computing the Line Space, it needs to get analyzed in a similar way as the Hough accumulator of the Hough Transform to extract the detected lines. As every entry in the Line Space stores the number of line hits, the simplest way to analyze the Line Space is to introduce a threshold. Now every Line Space entry is considered. If the value of the entry is greater than the threshold, the entry is regarded as a detected line. The value of the threshold should depend on the size of the input image as well as on the size of the lines which are expected. If the threshold is chosen too small, this approach detects too many lines. Conversely, an overlarge t would detect too few or, in the worst case, even no lines in the image. The neighborhood of a strong Line Space entry is also densely occupied, and therefore, it is advantageous to supress that neighborhood. Thus, we avoid detecting similar and false lines. As the number of detected lines by using thresholding depends on the used threshold and the input image, a stable method, which detects exactly m lines, is desirable. In general, one could search for the m-maxima by going through the Line Space sequentially. Nevertheless, a preferable technique would be to search for the m-maxima on the GPU. For this, the Line Space is divided into a grid using a compute shader. Each compute shader ISBN: SDIWC 59

5 invocation reduces the four entries of a grid cell to one entry so that only the largest entry remains (see figure 5). Repeating the image reduction ld(4n) times will lead to the maximum value in the Line Space, and therefore to the most distinct line in the image. For this, each entry in the Line Space must store its position additionally. With this knowledge, the detected line can be deleted in the Line Space by setting its value to zero. The next maximum in the input image will be another distinct line, which is different from the first one. Therefore, doing this procedure m times will deliver the m-maxima of the Line Space. It can improve the results if the neighborhoods of the maxima gets deleted in the Line Space. maxima. To improve the detected lines, the Line Space can be filtered in a preprocessing step. One approach is to use the image reduction technique as in figure 5. Importantly, the Line Space is not reduced ld(4n) times but less. This will reduce the regions a line in the input image produces in the Line Space and will suppress false lines in such a region. 4 RESULTS Figure 5: Image reduction on an n x n input image applied ld(n) = 3 times to find the global maximum. [5] The computational performance of the algorithm depends on m. To detect any number of lines with almost constant performance, the Line Space gets sorted by using a sorting algorithm which is appropriate for GPUs. There are two categories of sorting algorithms: datadriven ones and data-independent ones. Thereby, data-independent sorting algorithms are well suited to be implemented for multiple processors, therefore to run on the GPU [6]. The most common algorithms in the literature are the bitonic merge sort [6] and the radix sort [7]. The first m texel of the sorted Line Space are the m most distinct lines in the input image. Consequently, if the unfiltered Line Space is sorted, the detected lines will be the same as through reducing the Line Space m*ld(4n) times without deleting the neighborhoods of the Figure 6: Top row: input and Canny image of size 512 x 512. Bottom row: 8 most distinct lines detected by Hough (left) and the Line Space (right). We compare the Line Space and the Cascaded Line Space to the Hough Transform. Both extract straight lines from an image and in direct comparison, both approaches find reasonable lines in the image (see figure 6). To be as fair as possible, we use the well tested and fast CPU and GPU implementation provided by OpenCV. As mentioned in the introduction, the Hough Transform's accuarcy depends on the fineness of the discretization of the angle α and the algebraic distance d to the image coordinate system's origin. Therefore, simply applying the Hough Transform to images of different sizes using the same discretization parameters (e.g. an of one ISBN: SDIWC 60

6 degree) is not a fair comparison. Furthermore, the result's accuracy depends strongly on the parameters and the image size. Hence, the minimum angle between two discrete lines in an image serve as the for the Hough Transform to be comparable to the Line Space. 4.1 Performance Our test system consists of an Intel Core i7 CPU with 4 cores, 2.66 GHz and 12 GB main memory. The GPU is an Nvidia GTX 770 with 1536 cores and 2 GB video memory. The input Canny images varies between 64 x 64 and 1024 x 1024 pixels in size. We only use quadratic images as our proposed implementation of the CLS is solely running on those. However, this is only an implementation detail and the algorithm is adaptable for arbitrary sized images as well. Table 1 shows the average computation time in milliseconds for the Hough Transform running on the CPU and the GPU as well as the average computation time for the Line Space and the CLS. While evaluating the performance of the CLS we consider the initial cascade computation time and the time to merge the cascades to the global Line Space separately. Here we use an initial cascading of k = 8, which provides the best performance in our test scenario. Consequently, a Canny image of size n x n =1024 x 1024 consists of 128 x 128 cascades and as many Line Spaces. The Hough Transform only considers pixels in the image with a value not equal to zero. Therefore, the Hough Transform's performance strongly depends on the number of these pixels in the image. To consider this circumstance, we use two different test images with a different amount of structure in it. Thus, we have two different test results for the Hough Transform for Canny images of n = 512, for instance. In the first image p = 6.7% of the pixels are not equal to zero while the second image has twice as many pixels not equal to zero (p = 13.5%). Please notice that the second image corresponds to the Canny image of figure 6. The computation of the Line Space only depends on the image size and therefore does not require a differentation. For image sizes up to 128 x 128 both, the Line Space as well as the CLS, run significantly faster than the implementations of the Hough Transform. Table 1: Average computation time in milliseconds for the Hough Transform on the CPU and the GPU, the Line Space and the Cascaded Line Space for an Canny image size of n x n. The Cascaded Line Space is separated into the computation time for the initial cascades and the merge phase. Two different images are tested. The minimum angle between two discrete lines in an image is given by. The amount of pixels in percent with a value not equal to zero is given by p. n p Hough CPU Hough GPU Line Space Cascaded Line Space Initial Cascades Merge Total ISBN: SDIWC 61

7 The Line Space is more than 19 times faster than the GPU Hough Transform for n = 64 and p = 15.3 and the CLS is even faster than the Line Space. For n = 128 the Line Space is still more than twice as fast as the GPU Hough Transform. For an image resolution of n = 256 the Line Space is significantly slower than the GPU Hough Transform for the first image (p = 9.8%). Nevertheless, the CLS is still more than 1.5 times faster than the GPU Hough Transform. However, the Hough Transform requires 4.56 ms on the second image (p = 14.4%) which is slower than the Line Space and significantly slower than the CLS. Considering images of size n = 512 and p = 6.7 the CLS is also faster than the GPU Hough Transform, although the difference is not that big anymore. However, it can be stated that the initial computation of the cascades for k = 8 is very fast since it requires only 0.91 milliseconds to get computed. Obviously, the merging of the initial cascades is crucial as it is the main time factor. The Hough Transform runs significantly slower on the second image (p = 13.5) than the CLS. The resulting lines of that image are shown in figure 6. For n = 1024, the GPU Hough Transform is 29% faster than the CLS on image 1 but for image 2, the CLS is almost 1.5 times faster than the GPU Hough Transform. Again, we can observe that the initial computation of the cascades is very fast, requiring only 3.31 milliseconds. As before, the expensive part is the merging. One must consider that for an image size of n = 1024 and an initial cascading of k = 8 a total of merge steps are necessary. However, increasing k will not increase the performance. Therefore, it is desirable for future work to speed up the merging phase. Overall, it can be stated that the CLS is faster than the Line Space considering every image size in our scenario. The merging phase of the CLS is time consuming and therefore critical. The computation of the initial cascades is very fast in contrast to the merge phase. For images with only a few pixels not equal to zero, the Hough Transform runs faster than the CLS. In spite of this, the CLS would already be the better choice for an image with p = 6.7%. In general, the CLS runs constantly fast but the Hough Transform's performance greatly depends on the input image which can be a disadvantage. Furthermore, the Hough Transform is very slow when running on the CPU so that the GPU implementation should be used in general. 5 DISCUSSION AND FUTURE WORK We introduced the Line Space as a new and efficient parameterization for lines in 2D images. The major benefit of the Line Space is that all potential lines in an image are captured without any redundancy. In addition, the Line Space is well suited for GPU implementation. As a first application, we presented a global line detection algorithm with a Cascaded Line Space. The results of our brute force implementation can already compete with the OpenCV GPU Hough Transform. We have several ideas to optimize the merge phase as the most time consuming task. One idea is to use the group shared memory provided for GPU cores, which might result in a significant speed-up. Another idea is to merge line spaces directly, since for each line exit point in one cascade the line starting point of the next cascade is well defined. Using this approach, we are working on a line segment detector as well. In conclusion, we are convinced that the Line Space has an enormous potential for line and line segment detection, since it provides an efficient basis for further optimization and more complex algorithm in this area. ISBN: SDIWC 62

8 6 REFERENCES [1] Hough, Paul VC. "Method and means for recognizing complex patterns." U.S. Patent No. 3,069, Dec [2] Duda, Richard O., and Peter E. Hart. "Use of the Hough transformation to detect lines and curves in pictures." Communications of the ACM 15.1 (1972): [3] Drettakis, George, and François X. Sillion. "Interactive update of global illumination using a line-space hierarchy." Proceedings of the 24th annual conference on Computer graphics and interactive techniques. ACM Press/Addison-Wesley Publishing Co., 1997, pp [4] Canny, John. "A computational approach to edge detection." Pattern Analysis and Machine Intelligence, IEEE Transactions on 6 (1986): [5] Buck, Ian, and Tim Purcell. "A toolkit for computation on GPUs." GPU Gems (2004): [6] Kipfer, Peter, and Rüdiger Westermann. "Improved GPU sorting." GPU gems 2 (2005): [7] Harris, Mark, Shubhabrata Sengupta, and John D. Owens. "Gpu gems 3."Parallel Prefix Sum (Scan) with CUDA (2007): ISBN: SDIWC 63

Data-Parallel Algorithms on GPUs. Mark Harris NVIDIA Developer Technology

Data-Parallel Algorithms on GPUs. Mark Harris NVIDIA Developer Technology Data-Parallel Algorithms on GPUs Mark Harris NVIDIA Developer Technology Outline Introduction Algorithmic complexity on GPUs Algorithmic Building Blocks Gather & Scatter Reductions Scan (parallel prefix)

More information

Pattern recognition systems Lab 3 Hough Transform for line detection

Pattern recognition systems Lab 3 Hough Transform for line detection Pattern recognition systems Lab 3 Hough Transform for line detection 1. Objectives The main objective of this laboratory session is to implement the Hough Transform for line detection from edge images.

More information

Fast BVH Construction on GPUs

Fast BVH Construction on GPUs Fast BVH Construction on GPUs Published in EUROGRAGHICS, (2009) C. Lauterbach, M. Garland, S. Sengupta, D. Luebke, D. Manocha University of North Carolina at Chapel Hill NVIDIA University of California

More information

Scan Primitives for GPU Computing

Scan Primitives for GPU Computing Scan Primitives for GPU Computing Shubho Sengupta, Mark Harris *, Yao Zhang, John Owens University of California Davis, *NVIDIA Corporation Motivation Raw compute power and bandwidth of GPUs increasing

More information

Computer and Machine Vision

Computer and Machine Vision Computer and Machine Vision Lecture Week 7 Part-1 (Convolution Transform Speed-up and Hough Linear Transform) February 26, 2014 Sam Siewert Outline of Week 7 Basic Convolution Transform Speed-Up Concepts

More information

Efficient Stream Reduction on the GPU

Efficient Stream Reduction on the GPU Efficient Stream Reduction on the GPU David Roger Grenoble University Email: droger@inrialpes.fr Ulf Assarsson Chalmers University of Technology Email: uffe@chalmers.se Nicolas Holzschuch Cornell University

More information

Optimization solutions for the segmented sum algorithmic function

Optimization solutions for the segmented sum algorithmic function Optimization solutions for the segmented sum algorithmic function ALEXANDRU PÎRJAN Department of Informatics, Statistics and Mathematics Romanian-American University 1B, Expozitiei Blvd., district 1, code

More information

ACCELERATING SIGNAL PROCESSING ALGORITHMS USING GRAPHICS PROCESSORS

ACCELERATING SIGNAL PROCESSING ALGORITHMS USING GRAPHICS PROCESSORS ACCELERATING SIGNAL PROCESSING ALGORITHMS USING GRAPHICS PROCESSORS Ashwin Prasad and Pramod Subramanyan RF and Communications R&D National Instruments, Bangalore 560095, India Email: {asprasad, psubramanyan}@ni.com

More information

Advanced Computer Graphics CS 563: Making Imperfect Shadow Maps View Adaptive. Frederik Clinck lie

Advanced Computer Graphics CS 563: Making Imperfect Shadow Maps View Adaptive. Frederik Clinck lie Advanced Computer Graphics CS 563: Making Imperfect Shadow Maps View Adaptive Frederik Clinckemaillie Computer Science Dept. Worcester Polytechnic Institute (WPI) Background: Virtual Point Lights Simulates

More information

Data parallel algorithms, algorithmic building blocks, precision vs. accuracy

Data parallel algorithms, algorithmic building blocks, precision vs. accuracy Data parallel algorithms, algorithmic building blocks, precision vs. accuracy Robert Strzodka Architecture of Computing Systems GPGPU and CUDA Tutorials Dresden, Germany, February 25 2008 2 Overview Parallel

More information

Improved Integral Histogram Algorithm. for Big Sized Images in CUDA Environment

Improved Integral Histogram Algorithm. for Big Sized Images in CUDA Environment Contemporary Engineering Sciences, Vol. 7, 2014, no. 24, 1415-1423 HIKARI Ltd, www.m-hikari.com http://dx.doi.org/10.12988/ces.2014.49174 Improved Integral Histogram Algorithm for Big Sized Images in CUDA

More information

high performance medical reconstruction using stream programming paradigms

high performance medical reconstruction using stream programming paradigms high performance medical reconstruction using stream programming paradigms This Paper describes the implementation and results of CT reconstruction using Filtered Back Projection on various stream programming

More information

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #2 due this Friday, October

More information

Edge detection. Convert a 2D image into a set of curves. Extracts salient features of the scene More compact than pixels

Edge detection. Convert a 2D image into a set of curves. Extracts salient features of the scene More compact than pixels Edge Detection Edge detection Convert a 2D image into a set of curves Extracts salient features of the scene More compact than pixels Origin of Edges surface normal discontinuity depth discontinuity surface

More information

XIV International PhD Workshop OWD 2012, October Optimal structure of face detection algorithm using GPU architecture

XIV International PhD Workshop OWD 2012, October Optimal structure of face detection algorithm using GPU architecture XIV International PhD Workshop OWD 2012, 20 23 October 2012 Optimal structure of face detection algorithm using GPU architecture Dmitry Pertsau, Belarusian State University of Informatics and Radioelectronics

More information

Face Detection CUDA Accelerating

Face Detection CUDA Accelerating Face Detection CUDA Accelerating Jaromír Krpec Department of Computer Science VŠB Technical University Ostrava Ostrava, Czech Republic krpec.jaromir@seznam.cz Martin Němec Department of Computer Science

More information

Line Segment Based Watershed Segmentation

Line Segment Based Watershed Segmentation Line Segment Based Watershed Segmentation Johan De Bock 1 and Wilfried Philips Dep. TELIN/TW07, Ghent University Sint-Pietersnieuwstraat 41, B-9000 Ghent, Belgium jdebock@telin.ugent.be Abstract. In this

More information

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. 1 2 Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. Crowd rendering in large environments presents a number of challenges,

More information

Practical Shadow Mapping

Practical Shadow Mapping Practical Shadow Mapping Stefan Brabec Thomas Annen Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken, Germany Abstract In this paper we propose several methods that can greatly improve

More information

Sorting and Searching. Tim Purcell NVIDIA

Sorting and Searching. Tim Purcell NVIDIA Sorting and Searching Tim Purcell NVIDIA Topics Sorting Sorting networks Search Binary search Nearest neighbor search Assumptions Data organized into D arrays Rendering pass == screen aligned quad Not

More information

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST CS 380 - GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1 Markus Hadwiger, KAUST Reading Assignment #2 (until Feb. 17) Read (required): GLSL book, chapter 4 (The OpenGL Programmable

More information

Other Linear Filters CS 211A

Other Linear Filters CS 211A Other Linear Filters CS 211A Slides from Cornelia Fermüller and Marc Pollefeys Edge detection Convert a 2D image into a set of curves Extracts salient features of the scene More compact than pixels Origin

More information

First Swedish Workshop on Multi-Core Computing MCC 2008 Ronneby: On Sorting and Load Balancing on Graphics Processors

First Swedish Workshop on Multi-Core Computing MCC 2008 Ronneby: On Sorting and Load Balancing on Graphics Processors First Swedish Workshop on Multi-Core Computing MCC 2008 Ronneby: On Sorting and Load Balancing on Graphics Processors Daniel Cederman and Philippas Tsigas Distributed Computing Systems Chalmers University

More information

Types of Edges. Why Edge Detection? Types of Edges. Edge Detection. Gradient. Edge Detection

Types of Edges. Why Edge Detection? Types of Edges. Edge Detection. Gradient. Edge Detection Why Edge Detection? How can an algorithm extract relevant information from an image that is enables the algorithm to recognize objects? The most important information for the interpretation of an image

More information

CS427 Multicore Architecture and Parallel Computing

CS427 Multicore Architecture and Parallel Computing CS427 Multicore Architecture and Parallel Computing Lecture 6 GPU Architecture Li Jiang 2014/10/9 1 GPU Scaling A quiet revolution and potential build-up Calculation: 936 GFLOPS vs. 102 GFLOPS Memory Bandwidth:

More information

Abstract. Introduction. Kevin Todisco

Abstract. Introduction. Kevin Todisco - Kevin Todisco Figure 1: A large scale example of the simulation. The leftmost image shows the beginning of the test case, and shows how the fluid refracts the environment around it. The middle image

More information

Analyzing Dshield Logs Using Fully Automatic Cross-Associations

Analyzing Dshield Logs Using Fully Automatic Cross-Associations Analyzing Dshield Logs Using Fully Automatic Cross-Associations Anh Le 1 1 Donald Bren School of Information and Computer Sciences University of California, Irvine Irvine, CA, 92697, USA anh.le@uci.edu

More information

Mesh Repairing and Simplification. Gianpaolo Palma

Mesh Repairing and Simplification. Gianpaolo Palma Mesh Repairing and Simplification Gianpaolo Palma Mesh Repairing Removal of artifacts from geometric model such that it becomes suitable for further processing Input: a generic 3D model Output: (hopefully)a

More information

A Real Time GIS Approximation Approach for Multiphase Spatial Query Processing Using Hierarchical-Partitioned-Indexing Technique

A Real Time GIS Approximation Approach for Multiphase Spatial Query Processing Using Hierarchical-Partitioned-Indexing Technique International Journal of Scientific Research in Computer Science, Engineering and Information Technology 2017 IJSRCSEIT Volume 2 Issue 6 ISSN : 2456-3307 A Real Time GIS Approximation Approach for Multiphase

More information

Computing on GPUs. Prof. Dr. Uli Göhner. DYNAmore GmbH. Stuttgart, Germany

Computing on GPUs. Prof. Dr. Uli Göhner. DYNAmore GmbH. Stuttgart, Germany Computing on GPUs Prof. Dr. Uli Göhner DYNAmore GmbH Stuttgart, Germany Summary: The increasing power of GPUs has led to the intent to transfer computing load from CPUs to GPUs. A first example has been

More information

An Efficient Approach for Emphasizing Regions of Interest in Ray-Casting based Volume Rendering

An Efficient Approach for Emphasizing Regions of Interest in Ray-Casting based Volume Rendering An Efficient Approach for Emphasizing Regions of Interest in Ray-Casting based Volume Rendering T. Ropinski, F. Steinicke, K. Hinrichs Institut für Informatik, Westfälische Wilhelms-Universität Münster

More information

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11. Chapter 11 Global Illumination Part 1 Ray Tracing Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.3 CG(U), Chap.11 Part 1:Ray Tracing 1 Can pipeline graphics renders images

More information

E0005E - Industrial Image Analysis

E0005E - Industrial Image Analysis E0005E - Industrial Image Analysis The Hough Transform Matthew Thurley slides by Johan Carlson 1 This Lecture The Hough transform Detection of lines Detection of other shapes (the generalized Hough transform)

More information

High-quality Shadows with Improved Paraboloid Mapping

High-quality Shadows with Improved Paraboloid Mapping High-quality Shadows with Improved Paraboloid Mapping Juraj Vanek, Jan Navrátil, Adam Herout, and Pavel Zemčík Brno University of Technology, Faculty of Information Technology, Czech Republic http://www.fit.vutbr.cz

More information

RASTERIZING POLYGONS IN IMAGE SPACE

RASTERIZING POLYGONS IN IMAGE SPACE On-Line Computer Graphics Notes RASTERIZING POLYGONS IN IMAGE SPACE Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis A fundamental

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Last Time? The Traditional Graphics Pipeline Participating Media Measuring BRDFs 3D Digitizing & Scattering BSSRDFs Monte Carlo Simulation Dipole Approximation Today Ray Casting / Tracing Advantages? Ray

More information

COMP30019 Graphics and Interaction Scan Converting Polygons and Lines

COMP30019 Graphics and Interaction Scan Converting Polygons and Lines COMP30019 Graphics and Interaction Scan Converting Polygons and Lines Department of Computer Science and Software Engineering The Lecture outline Introduction Scan conversion Scan-line algorithm Edge coherence

More information

INFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Acceleration. Welcome!

INFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Acceleration. Welcome! INFOGR Computer Graphics J. Bikker - April-July 2015 - Lecture 11: Acceleration Welcome! Today s Agenda: High-speed Ray Tracing Acceleration Structures The Bounding Volume Hierarchy BVH Construction BVH

More information

L10 Layered Depth Normal Images. Introduction Related Work Structured Point Representation Boolean Operations Conclusion

L10 Layered Depth Normal Images. Introduction Related Work Structured Point Representation Boolean Operations Conclusion L10 Layered Depth Normal Images Introduction Related Work Structured Point Representation Boolean Operations Conclusion 1 Introduction Purpose: using the computational power on GPU to speed up solid modeling

More information

An Efficient Single Chord-based Accumulation Technique (SCA) to Detect More Reliable Corners

An Efficient Single Chord-based Accumulation Technique (SCA) to Detect More Reliable Corners An Efficient Single Chord-based Accumulation Technique (SCA) to Detect More Reliable Corners Mohammad Asiful Hossain, Abdul Kawsar Tushar, and Shofiullah Babor Computer Science and Engineering Department,

More information

Edge Detection Using Streaming SIMD Extensions On Low Cost Robotic Platforms

Edge Detection Using Streaming SIMD Extensions On Low Cost Robotic Platforms Edge Detection Using Streaming SIMD Extensions On Low Cost Robotic Platforms Matthias Hofmann, Fabian Rensen, Ingmar Schwarz and Oliver Urbann Abstract Edge detection is a popular technique for extracting

More information

Circular Arcs as Primitives for Vector Textures

Circular Arcs as Primitives for Vector Textures Circular Arcs as Primitives for Vector Textures Zheng Qin, Craig Kaplan, and Michael McCool University of Waterloo Abstract. Because of the resolution independent nature of vector graphics images, it is

More information

Comparison of Some Motion Detection Methods in cases of Single and Multiple Moving Objects

Comparison of Some Motion Detection Methods in cases of Single and Multiple Moving Objects Comparison of Some Motion Detection Methods in cases of Single and Multiple Moving Objects Shamir Alavi Electrical Engineering National Institute of Technology Silchar Silchar 788010 (Assam), India alavi1223@hotmail.com

More information

GPU Programming for Mathematical and Scientific Computing

GPU Programming for Mathematical and Scientific Computing GPU Programming for Mathematical and Scientific Computing Ethan Kerzner and Timothy Urness Department of Mathematics and Computer Science Drake University Des Moines, IA 50311 ethan.kerzner@gmail.com timothy.urness@drake.edu

More information

HOUGH TRANSFORM CS 6350 C V

HOUGH TRANSFORM CS 6350 C V HOUGH TRANSFORM CS 6350 C V HOUGH TRANSFORM The problem: Given a set of points in 2-D, find if a sub-set of these points, fall on a LINE. Hough Transform One powerful global method for detecting edges

More information

Introduction. Chapter Overview

Introduction. Chapter Overview Chapter 1 Introduction The Hough Transform is an algorithm presented by Paul Hough in 1962 for the detection of features of a particular shape like lines or circles in digitalized images. In its classical

More information

Multimedia Computing: Algorithms, Systems, and Applications: Edge Detection

Multimedia Computing: Algorithms, Systems, and Applications: Edge Detection Multimedia Computing: Algorithms, Systems, and Applications: Edge Detection By Dr. Yu Cao Department of Computer Science The University of Massachusetts Lowell Lowell, MA 01854, USA Part of the slides

More information

Accelerated Ambient Occlusion Using Spatial Subdivision Structures

Accelerated Ambient Occlusion Using Spatial Subdivision Structures Abstract Ambient Occlusion is a relatively new method that gives global illumination like results. This paper presents a method to accelerate ambient occlusion using the form factor method in Bunnel [2005]

More information

Applications of Explicit Early-Z Culling

Applications of Explicit Early-Z Culling Applications of Explicit Early-Z Culling Jason L. Mitchell ATI Research Pedro V. Sander ATI Research Introduction In past years, in the SIGGRAPH Real-Time Shading course, we have covered the details of

More information

Benchmark 1.a Investigate and Understand Designated Lab Techniques The student will investigate and understand designated lab techniques.

Benchmark 1.a Investigate and Understand Designated Lab Techniques The student will investigate and understand designated lab techniques. I. Course Title Parallel Computing 2 II. Course Description Students study parallel programming and visualization in a variety of contexts with an emphasis on underlying and experimental technologies.

More information

Einführung in Visual Computing

Einführung in Visual Computing Einführung in Visual Computing 186.822 Rasterization Werner Purgathofer Rasterization in the Rendering Pipeline scene objects in object space transformed vertices in clip space scene in normalized device

More information

GPU Implementation of a Multiobjective Search Algorithm

GPU Implementation of a Multiobjective Search Algorithm Department Informatik Technical Reports / ISSN 29-58 Steffen Limmer, Dietmar Fey, Johannes Jahn GPU Implementation of a Multiobjective Search Algorithm Technical Report CS-2-3 April 2 Please cite as: Steffen

More information

Row Tracing with Hierarchical Occlusion Maps

Row Tracing with Hierarchical Occlusion Maps Row Tracing with Hierarchical Occlusion Maps Ravi P. Kammaje, Benjamin Mora August 9, 2008 Page 2 Row Tracing with Hierarchical Occlusion Maps Outline August 9, 2008 Introduction Related Work Row Tracing

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Last Time? The Traditional Graphics Pipeline Reading for Today A Practical Model for Subsurface Light Transport, Jensen, Marschner, Levoy, & Hanrahan, SIGGRAPH 2001 Participating Media Measuring BRDFs

More information

Real-Time Rendering (Echtzeitgraphik) Dr. Michael Wimmer

Real-Time Rendering (Echtzeitgraphik) Dr. Michael Wimmer Real-Time Rendering (Echtzeitgraphik) Dr. Michael Wimmer wimmer@cg.tuwien.ac.at Visibility Overview Basics about visibility Basics about occlusion culling View-frustum culling / backface culling Occlusion

More information

Future Computer Vision Algorithms for Traffic Sign Recognition Systems

Future Computer Vision Algorithms for Traffic Sign Recognition Systems Future Computer Vision Algorithms for Traffic Sign Recognition Systems Dr. Stefan Eickeler Future of Traffic Sign Recognition Triangular Signs Complex Signs All Circular Signs Recognition of Circular Traffic

More information

UberFlow: A GPU-Based Particle Engine

UberFlow: A GPU-Based Particle Engine UberFlow: A GPU-Based Particle Engine Peter Kipfer Mark Segal Rüdiger Westermann Technische Universität München ATI Research Technische Universität München Motivation Want to create, modify and render

More information

Ray Casting on Programmable Graphics Hardware. Martin Kraus PURPL group, Purdue University

Ray Casting on Programmable Graphics Hardware. Martin Kraus PURPL group, Purdue University Ray Casting on Programmable Graphics Hardware Martin Kraus PURPL group, Purdue University Overview Parallel volume rendering with a single GPU Implementing ray casting for a GPU Basics Optimizations Published

More information

Sobel Edge Detection Algorithm

Sobel Edge Detection Algorithm Sobel Edge Detection Algorithm Samta Gupta 1, Susmita Ghosh Mazumdar 2 1 M. Tech Student, Department of Electronics & Telecom, RCET, CSVTU Bhilai, India 2 Reader, Department of Electronics & Telecom, RCET,

More information

Universiteit Leiden Computer Science

Universiteit Leiden Computer Science Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd

More information

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming Chapter IV Fragment Processing and Output Merging Fragment Processing The per-fragment attributes may include a normal vector, a set of texture coordinates, a set of color values, a depth, etc. Using these

More information

Comparison of hierarchies for occlusion culling based on occlusion queries

Comparison of hierarchies for occlusion culling based on occlusion queries Comparison of hierarchies for occlusion culling based on occlusion queries V.I. Gonakhchyan pusheax@ispras.ru Ivannikov Institute for System Programming of the RAS, Moscow, Russia Efficient interactive

More information

Edge and corner detection

Edge and corner detection Edge and corner detection Prof. Stricker Doz. G. Bleser Computer Vision: Object and People Tracking Goals Where is the information in an image? How is an object characterized? How can I find measurements

More information

Computer Graphics Fundamentals. Jon Macey

Computer Graphics Fundamentals. Jon Macey Computer Graphics Fundamentals Jon Macey jmacey@bournemouth.ac.uk http://nccastaff.bournemouth.ac.uk/jmacey/ 1 1 What is CG Fundamentals Looking at how Images (and Animations) are actually produced in

More information

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4620/8626 Computer Graphics Spring 2014 Homework Set 1 Suggested Answers

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4620/8626 Computer Graphics Spring 2014 Homework Set 1 Suggested Answers UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4620/8626 Computer Graphics Spring 2014 Homework Set 1 Suggested Answers 1. How long would it take to load an 800 by 600 frame buffer with 16 bits per pixel

More information

Experiments with Edge Detection using One-dimensional Surface Fitting

Experiments with Edge Detection using One-dimensional Surface Fitting Experiments with Edge Detection using One-dimensional Surface Fitting Gabor Terei, Jorge Luis Nunes e Silva Brito The Ohio State University, Department of Geodetic Science and Surveying 1958 Neil Avenue,

More information

Announcements. Midterms graded back at the end of class Help session on Assignment 3 for last ~20 minutes of class. Computer Graphics

Announcements. Midterms graded back at the end of class Help session on Assignment 3 for last ~20 minutes of class. Computer Graphics Announcements Midterms graded back at the end of class Help session on Assignment 3 for last ~20 minutes of class 1 Scan Conversion Overview of Rendering Scan Conversion Drawing Lines Drawing Polygons

More information

Rendering Subdivision Surfaces Efficiently on the GPU

Rendering Subdivision Surfaces Efficiently on the GPU Rendering Subdivision Surfaces Efficiently on the GPU Gy. Antal, L. Szirmay-Kalos and L. A. Jeni Department of Algorithms and their Applications, Faculty of Informatics, Eötvös Loránd Science University,

More information

Fragment-Parallel Composite and Filter. Anjul Patney, Stanley Tzeng, and John D. Owens University of California, Davis

Fragment-Parallel Composite and Filter. Anjul Patney, Stanley Tzeng, and John D. Owens University of California, Davis Fragment-Parallel Composite and Filter Anjul Patney, Stanley Tzeng, and John D. Owens University of California, Davis Parallelism in Interactive Graphics Well-expressed in hardware as well as APIs Consistently

More information

Cross-Hardware GPGPU implementation of Acceleration Structures for Ray Tracing using OpenCL

Cross-Hardware GPGPU implementation of Acceleration Structures for Ray Tracing using OpenCL The Open University of Israel Department of Mathematics and Computer Science Cross-Hardware GPGPU implementation of Acceleration Structures for Ray Tracing using OpenCL Advanced Project in Computer Science

More information

An Extension to Hough Transform Based on Gradient Orientation

An Extension to Hough Transform Based on Gradient Orientation An Extension to Hough Transform Based on Gradient Orientation Tomislav Petković and Sven Lončarić University of Zagreb Faculty of Electrical and Computer Engineering Unska 3, HR-10000 Zagreb, Croatia Email:

More information

Efficient Scan-Window Based Object Detection using GPGPU

Efficient Scan-Window Based Object Detection using GPGPU Efficient Scan-Window Based Object Detection using GPGPU Li Zhang and Ramakant Nevatia University of Southern California Institute of Robotics and Intelligent Systems {li.zhang nevatia}@usc.edu Abstract

More information

Chapter 12: Indexing and Hashing. Basic Concepts

Chapter 12: Indexing and Hashing. Basic Concepts Chapter 12: Indexing and Hashing! Basic Concepts! Ordered Indices! B+-Tree Index Files! B-Tree Index Files! Static Hashing! Dynamic Hashing! Comparison of Ordered Indexing and Hashing! Index Definition

More information

Fall CSCI 420: Computer Graphics. 7.1 Rasterization. Hao Li.

Fall CSCI 420: Computer Graphics. 7.1 Rasterization. Hao Li. Fall 2015 CSCI 420: Computer Graphics 7.1 Rasterization Hao Li http://cs420.hao-li.com 1 Rendering Pipeline 2 Outline Scan Conversion for Lines Scan Conversion for Polygons Antialiasing 3 Rasterization

More information

This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you

This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you will see our underlying solution is based on two-dimensional

More information

(Refer Slide Time: 00:02:00)

(Refer Slide Time: 00:02:00) Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts

More information

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y. COMP 4801 Final Year Project Ray Tracing for Computer Graphics Final Project Report FYP 15014 by Runjing Liu Advised by Dr. L.Y. Wei 1 Abstract The goal of this project was to use ray tracing in a rendering

More information

NVIDIA Case Studies:

NVIDIA Case Studies: NVIDIA Case Studies: OptiX & Image Space Photon Mapping David Luebke NVIDIA Research Beyond Programmable Shading 0 How Far Beyond? The continuum Beyond Programmable Shading Just programmable shading: DX,

More information

Chapter 3 Image Registration. Chapter 3 Image Registration

Chapter 3 Image Registration. Chapter 3 Image Registration Chapter 3 Image Registration Distributed Algorithms for Introduction (1) Definition: Image Registration Input: 2 images of the same scene but taken from different perspectives Goal: Identify transformation

More information

Local Features: Detection, Description & Matching

Local Features: Detection, Description & Matching Local Features: Detection, Description & Matching Lecture 08 Computer Vision Material Citations Dr George Stockman Professor Emeritus, Michigan State University Dr David Lowe Professor, University of British

More information

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11 Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION

More information

Chapter 12: Indexing and Hashing

Chapter 12: Indexing and Hashing Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B+-Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

Screen Space Ambient Occlusion TSBK03: Advanced Game Programming

Screen Space Ambient Occlusion TSBK03: Advanced Game Programming Screen Space Ambient Occlusion TSBK03: Advanced Game Programming August Nam-Ki Ek, Oscar Johnson and Ramin Assadi March 5, 2015 This project report discusses our approach of implementing Screen Space Ambient

More information

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Lecture 2: Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Visual Computing Systems Analyzing a 3D Graphics Workload Where is most of the work done? Memory Vertex

More information

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016 Ray Tracing Computer Graphics CMU 15-462/15-662, Fall 2016 Primitive-partitioning vs. space-partitioning acceleration structures Primitive partitioning (bounding volume hierarchy): partitions node s primitives

More information

REDUCING BEAMFORMING CALCULATION TIME WITH GPU ACCELERATED ALGORITHMS

REDUCING BEAMFORMING CALCULATION TIME WITH GPU ACCELERATED ALGORITHMS BeBeC-2014-08 REDUCING BEAMFORMING CALCULATION TIME WITH GPU ACCELERATED ALGORITHMS Steffen Schmidt GFaI ev Volmerstraße 3, 12489, Berlin, Germany ABSTRACT Beamforming algorithms make high demands on the

More information

Efficient Rendering of Glossy Reflection Using Graphics Hardware

Efficient Rendering of Glossy Reflection Using Graphics Hardware Efficient Rendering of Glossy Reflection Using Graphics Hardware Yoshinori Dobashi Yuki Yamada Tsuyoshi Yamamoto Hokkaido University Kita-ku Kita 14, Nishi 9, Sapporo 060-0814, Japan Phone: +81.11.706.6530,

More information

Dense matching GPU implementation

Dense matching GPU implementation Dense matching GPU implementation Author: Hailong Fu. Supervisor: Prof. Dr.-Ing. Norbert Haala, Dipl. -Ing. Mathias Rothermel. Universität Stuttgart 1. Introduction Correspondence problem is an important

More information

Face Detection using GPU-based Convolutional Neural Networks

Face Detection using GPU-based Convolutional Neural Networks Face Detection using GPU-based Convolutional Neural Networks Fabian Nasse 1, Christian Thurau 2 and Gernot A. Fink 1 1 TU Dortmund University, Department of Computer Science, Dortmund, Germany 2 Fraunhofer

More information

Chapter 7 - Light, Materials, Appearance

Chapter 7 - Light, Materials, Appearance Chapter 7 - Light, Materials, Appearance Types of light in nature and in CG Shadows Using lights in CG Illumination models Textures and maps Procedural surface descriptions Literature: E. Angel/D. Shreiner,

More information

Effects needed for Realism. Ray Tracing. Ray Tracing: History. Outline. Foundations of Computer Graphics (Spring 2012)

Effects needed for Realism. Ray Tracing. Ray Tracing: History. Outline. Foundations of Computer Graphics (Spring 2012) Foundations of omputer Graphics (Spring 202) S 84, Lecture 5: Ray Tracing http://inst.eecs.berkeley.edu/~cs84 Effects needed for Realism (Soft) Shadows Reflections (Mirrors and Glossy) Transparency (Water,

More information

Real-Time Ray Tracing Using Nvidia Optix Holger Ludvigsen & Anne C. Elster 2010

Real-Time Ray Tracing Using Nvidia Optix Holger Ludvigsen & Anne C. Elster 2010 1 Real-Time Ray Tracing Using Nvidia Optix Holger Ludvigsen & Anne C. Elster 2010 Presentation by Henrik H. Knutsen for TDT24, fall 2012 Om du ønsker, kan du sette inn navn, tittel på foredraget, o.l.

More information

Graduate Examination. Department of Computer Science The University of Arizona Spring March 5, Instructions

Graduate Examination. Department of Computer Science The University of Arizona Spring March 5, Instructions Graduate Examination Department of Computer Science The University of Arizona Spring 2004 March 5, 2004 Instructions This examination consists of ten problems. The questions are in three areas: 1. Theory:

More information

Performance Analysis and Culling Algorithms

Performance Analysis and Culling Algorithms Performance Analysis and Culling Algorithms Michael Doggett Department of Computer Science Lund University 2009 Tomas Akenine-Möller and Michael Doggett 1 Assignment 2 Sign up for Pluto labs on the web

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Final Projects Proposals due Thursday 4/8 Proposed project summary At least 3 related papers (read & summarized) Description of series of test cases Timeline & initial task assignment The Traditional Graphics

More information

A Bandwidth Effective Rendering Scheme for 3D Texture-based Volume Visualization on GPU

A Bandwidth Effective Rendering Scheme for 3D Texture-based Volume Visualization on GPU for 3D Texture-based Volume Visualization on GPU Won-Jong Lee, Tack-Don Han Media System Laboratory (http://msl.yonsei.ac.k) Dept. of Computer Science, Yonsei University, Seoul, Korea Contents Background

More information

GPU-BASED RAY TRACING ALGORITHM USING UNIFORM GRID STRUCTURE

GPU-BASED RAY TRACING ALGORITHM USING UNIFORM GRID STRUCTURE GPU-BASED RAY TRACING ALGORITHM USING UNIFORM GRID STRUCTURE Reza Fuad R 1) Mochamad Hariadi 2) Telematics Laboratory, Dept. Electrical Eng., Faculty of Industrial Technology Institut Teknologi Sepuluh

More information

Pipeline Operations. CS 4620 Lecture 14

Pipeline Operations. CS 4620 Lecture 14 Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives

More information

Interpolation using scanline algorithm

Interpolation using scanline algorithm Interpolation using scanline algorithm Idea: Exploit knowledge about already computed color values. Traverse projected triangle top-down using scanline. Compute start and end color value of each pixel

More information

CSCI 420 Computer Graphics Lecture 14. Rasterization. Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California

CSCI 420 Computer Graphics Lecture 14. Rasterization. Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California CSCI 420 Computer Graphics Lecture 14 Rasterization Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California 1 Rasterization (scan conversion) Final step in pipeline:

More information