Computer Vision Learning Portfolio

This page constitutes my required external learning portfolio for CS 7495, Computer Vision, taken in Fall 2011. In it, I discuss what I have learned throughout the course, my activities and findings, how I think I did, and what impact it had on me. About me I am a coffee fanatic that is into computers, photography, computer … Read more

Mini-Review of Topaz Adjust 5

I recently picked up a copy of Topaz Adjust 5 (released November 15th 2011), and fell in love with it! Here is a simple mini-review and some first impressions of Adjust 5. Topaz Adjust is a photo-editing plug-in developed by Topaz Labs that integrates into editors (such as Photoshop) by adding auto exposure, contrast, and … Read more

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

Music Visualization with Processing

Live Spectrogram Re-Inspired by the awesome artistic works in Resonance the Film, a TED talk on generative music videos, and then remembering the good ol’ days of MilkDrop magic, I found myself captivated and wanting to learn more about music visualization and how I could create my own. Since I will be using Processing for the first time this … 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

Remapping Macbook Pro Keys for Emacs Use

Background: I recently took the $$$ plunge and got a fancy new 15″ Macbook Pro to replace my 5-year old ASUS laptop. Though I’m not too fond of Apple’s business model, I just couldn’t seem to find (hardware wise) a more quality built and ascetically pleasing laptop than a Macbook Pro. After 6 years straight of … 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