PROCESS SO FAR¶ ↑
2015¶ ↑
-
20 June - Nick suggested computer vision schedule
-
21-25 June - Attempt to install ROS Indigo on SnowLeopard (which corrupted 32-bit OS set by MacBook EFI)
-
27 June - Realised that need to reinstall SnowLeopard
-
6 July - Reinstalled Rails/GitHub sys (after rEFIt Ubuntu/OSX)
-
7-11 July - Help Iain move out from Kinrara
-
14 Aug - Sent email to John saying “no” to 80th party
-
30 Sept - Download Computer vison models book
-
14 Oct - Download Steffen Nissen's MSc thesis, FANN
-
Winter - Study Bayesian stats
2016¶ ↑
-
23 April - Not attend John's 80th party
-
3 June - Not attend batch 20yr reunion at CTCRM
-
June - Finish reading BarronMalik paper
-
June - Finish LSD-SLAM paper
-
16 June - Install and run lsd_slam_viewer
-
18 Nov - Study OpenGL (having corrupted my Ubuntu partition in upgrade to 16.04-Xenial Xerus)
OPENGL¶ ↑
OpenGL Shading Language¶ ↑
Control of graphics pipeline without ARB assembly language or hardware-specific langs
OPENCV¶ ↑
-
Alternative to Matlab
www.learnopencv.com/opencv-c-vs-python-vs-matlab-for-computer-vision/
Python¶ ↑
(25/1/17)
github.com/opencv/opencv/tree/2.4/modules/python/src2
Check version:
$ python >>> import cv2 >>> cv2.__version__ '3.1.0-dev' $ env PYTHONPATH=/opt/ros/kinetic/lib/python2.7/dist-packages
EIGENFACES¶ ↑
“Eigenfaces is the name given to a set of eigenvectors when they are used in the computer vision problem of human face recognition”
Vector¶ ↑
A list of data items like a 1-D array
Arrays¶ ↑
“We can think of a vector as a list that has one dimension. It is a row of data. An array is a list that is arranged in multiple dimensions. A two-dimensional array is a vector of vectors that are all of the same length.”
Practical implementation¶ ↑
www.youtube.com/watch?v=SaEmG4wcFfg
-
Prepare set of training images in single matrix T, where each col is an image (a vector)
-
Avg image calculated and subtracted from each original image
-
Calc eigenvectors and eigenvalues of covariance matrix, S
Eigenvectors of covariance matrix are called eigenfaces
They are directions in which images diff from mean
-
Create threshold E on total variance
k is smallest number satisfying:
n(lambda-1 + lambda-2 + … + lambda-k) / variance > E
If working with 100 x 100 image then obtain 10,000 eigenvectors
but most faces can be ID'd using projection on 100-150 eigenfaces (so reduce computation)