Category Archives: Algorithm

Texture Synthesis

What in this post is actually part of my computational photography homework, because I’m recently preparing for interviews, so for reviewing it, I re-implemented this method. WHAT IS IT Texture synthesis is another very interesting application of image processing. What it does is, given a texture sample, generate new texture that is similar with the […]

Also posted in OpenCV, Vision | Tagged , | 2 Responses

Morlet Wavelet

This is a simple Morlet Wavelet (Gabor wavelet) generator, which can be used for edge detecting. CODE % 2d morlet kernel generator % input: % hori: horizontal grid point amount % vert: vertical grid point amount % theta: theta % sigma: controls the size of the kernel % npeaks: number of significant peaks appearing in the […]

Also posted in Vision | Tagged , , | Leave a comment

Sparse Coding

INTRODUCTION Sparse coding is one of the very famous unsupervised methods in this decade, it is a dictionary learning process, which target is to find a dictionary that we can use a linear combination of vectors in this dictionary to represent any training input vector. For better capture structures and patterns inherent in the input vectors, […]

Also posted in Machine Learning | Tagged , , , , | 8 Responses

Restricted Boltzmann Machine

WHAT IS RBM Restricted Boltzmann Machine is one of the special cases of Boltzmann Machine, which restricted all visible-visible connections and hidden-hidden connections, which makes for each hidden unit, it connects to all visible units, and for each visible unit, it connects to all hidden units. Following is a figure which shows the model of RBM.

Also posted in Machine Learning | Tagged , , , | 6 Responses

Coarse-to-fine Optical Flow (Lucas & Kanade)

OPTICAL FLOW We are always interested in finding the movement of objects from videos, optical flow is one of the most famous methods to do this. Optical flow has lots of uses, such as tracking object, camera correction, mosaics and so on. All optical flow methods are based on the following assumptions: Color constancy (brightness […]

Also posted in OpenCV | Tagged , , , | 21 Responses

Clustering by fast search and find of density peaks

This post is about a new cluster algorithm published by Alex Rodriguez and Alessandro Laio in the latest Science magazine. The method is short and efficient, I implemented it using about only 100 lines of cpp code. BASIC METHOD There are two leading criteria in this method: Local Density and Minimum Distance with higher density.  Rho above is the […]

Also posted in Machine Learning | Tagged , | 64 Responses

Denoising Autoencoder

I chose “Dropped out auto-encoder” as my final project topic in the last semester deep learning course, it was simply dropping out units in regular sparse auto-encoder, and furthermore, in stacked sparse auto-encoder, both in visible layer and hidden layer. It does not work well on auto-encoders, except can be used in fine-tune process of stacked sparse […]

Also posted in Machine Learning, OpenCV | Tagged , , , , , | 1 Response

Convolutional Neural Networks II

Since the last CNN post, I was working on a new version of CNN, which support multi-layers Conv and Pooling process, I’d like to share some experience here. VECTOR VS HASH TABLE You can see in the last post, I used vector of Mat in convolution steps, it works well when we only have one […]

Also posted in Machine Learning, OpenCV | Tagged , , , | 63 Responses

Convolutional Neural Networks

WHAT IS CNN A Convolutional Neural Network (CNN) is comprised of one or more convolutional layers, pooling layers and then followed by one or more fully connected layers as in a standard neural network. The architecture of a CNN is designed to take advantage of the 2D structure of an input image (or other 2D input […]

Also posted in Machine Learning, OpenCV | Tagged , , , , | 41 Responses

A Fake Convolutional Neural Network

This is the early version of my CNN, at that time, I incorrectly thought that I can just use some randomly chosen Gabor filters to do the convolution, so I wrote this.  Actually, the test result is not bad for simple datasets such as MNIST, I think it’s just a fake CNN, but a nice […]

Also posted in Machine Learning | Tagged , | 4 Responses