-
Notifications
You must be signed in to change notification settings - Fork 2
Non negative Matrix Factorization
Non-negative Matrix factorization is a concept where a matrix V
(where V[i][j] > 0) is factorized to W
and H
where V = W*H + N
where N
is noise. All the elements in W and H are greater than 0. With better factorization, N
is close to zero-matrix. W
is a feature matrix and H
is a coefficient matrix.
For this project, V
is a collection of images. We arrange them in (512*512, N)
matrix. They are divided into blocks of smaller dimensions and NMF is applied to these matrices. The regions of interest are taken from these feature matrices. We then merge the high overlapping regions in k-nearest neighbors. After the merge, we are regions of interest for images of original dimensions which is the desired output.
We have extensively used thunder package in doing most of our NMF implementation. The images are loaded using thunder.images.fromtif()
method which loads image dataset in parallel threads. It handles the data in numpy arrays. NMF and other filterings on arrays are internally done using scipy libraries.