ArrayFire is now Open Source

The ArrayFire GPGPU Computing Library has just been released as open source software! As a former employee of ArrayFire (AccelerEyes), I am especially excited about this decision! 🙂 It’s so cool to see the this library continue to grow; this is only the beginning of the potential for ArrayFire! I can’t wait to start contributing … Read more

SC12 ArrayFire Demos

I got the privilege of developing some of the Super Computing 2012 (SC12) booth demos for AccelerEyes, to showcase ArrayFire. Above is an ArrayFire demo running at SC12 on an nVidia GPU. This demo (source code HERE) uses OpenCV to capture webcam video and processes the stream in several different ways, in real-time. From top-left to bottom-right: Sobel filter, ArrayFire logo, Motion (frame differencing), Source image, Histogram … Read more

Local Contrast Enhancement with ArrayFire + OpenCV

About one year ago, I wrote about a simple example of Image Processing with LibJacket + OpenCV… and the trend continues today. In this post, I demonstrate how ArrayFire (an improved version of LibJacket) can easily interop with OpenCV, through a simple example of unsharp maksing (local contrast enhancement).   Program Flow: Capture steaming webcam … Read more

ArrayFire GTC 2012 Presentations

I got another incredible opportunity to give two introductory talks at Nvidia’s 2012 GPU Technology Conference about AccelerEyes‘s two software products: Jacket(MATLAB) and ArrayFire(C++) ! Jacket for Multidimensional Scaling in Genomics –  Video  |  Slides ArrayFire Graphics: A Tutorial –  Video  |  Slides   Enjoy!

GPU TV-L1 Optical Flow with ArrayFire

Update 1: LibJacket has been renamed to  ArrayFire. Update 2: Huang Chao-Hui was nice enough to port the LibJacket code mentioned here to ArrayFire – see his work here. As one of my Computer Vision class projects, I decided to implement optical flow, because I wanted to learn more about optical flow, and also I wanted to code it … Read more

GPU Convolutions: OpenCV GPU and LibJacket – Part 2

This is a response to my earlier post comparing OpenCV’s gpu::convolve() and LibJacket’s jkt::conv2() convolution functions, at various image and kernel sizes. That post generated a lot of traffic, most notably from the OpenCV developer community. Taking note of this, it seems that the folks at Willow Garage have re-vamped their GPU convolutions and posted … Read more

OpenCV vs. LibJacket: GPU Sobel Filtering

Update: LibJacket has been renamed to  ArrayFire. In response to a comment on a previous post about integrating LibJacket into an OpenCV project, below is just a simple FYI performance comparison of OpenCV‘s GPU Sobel filter versus LibJacket‘s conv2 convolution filter (with a sobel kernel)… This is an evolutionary post, so be sure to scroll all the way … Read more

Image processing with LibJacket + OpenCV

Update: one year later: ArrayFire+OpenCV The OpenCV library is the de-facto standard for doing computer vision and image processing research projects. OpenCV includes several hundreds of computer vision algorithms, aimed for use in real-time vision applications. LibJacket is a matrix library built on CUDA. LibJacket offers hundreds of general matrix and image processing functions, all running … Read more

GPU Connected Component Labeling

Connected Component Labeling (CCL): “is used in computer vision to detect connected regions in binary digital images”, and sometimes referred to as blob coloring. Motivation: To keep AccelerEyes’ ever expanding GPU library growing, over a few weeks of this summer I took on the project of writing a CUDA version of connected component labeling to be used in … Read more