I. Simple CNN
II. Using pretrained models
I. Simple CNN
II. Using pretrained models
I remember back to the day when I started my PhD on iris recognition, there was only one iris recognition open source code from Libor Masek. His source code, written in Matlab, has been the baseline for generations of iris recognition coders. Recently there are a number of new open source codes come up. They are more mature and achieve close to stateoftheart accuracy. I summarise them in a list here for your reference.
Year/ Language  Approach  Performance (EER)  
ICE 2005  MBGC portal  CASIA  
Libor Masek [project]  2003
Matlab 
Hough Circle + 1D LogGabor  
OSIRIS 4.1 [project]  2013
C++ 
Least square Circle + 2D Gabor  1.09%  
VASIR 2.2 [project]  2013
C++ 
Circle + 2D Gabor  3.5%  13.9% best quality frame
30.6% all frames 

NonidealIRIS [project]  2006
Matlab 
Ellipse + 2D Gabor  
USIT
[project] 
2016
C++ 
Circle/Ellipse+
1D Log Gabor/ 2D Gabor/ DCT/ SIFT/ SURF/LBP 
0.82%  
UND
[project] 
2016
Matlab 
Circle
Crypts features 
3.58%  1.39%  
Iris segmentation only  
IrisSeg [project]  2016
Matlab 
ICB 2016  IrisSeg: A Fast and Robust Iris Segmentation Framework for NonIdeal Iris Images  
IAADseg
[project] 
2015
Matlab 
Totalvariation  ICCV 2015  An Accurate Iris Segmentation Framework under Relaxed Imaging Constraints using Total Variation Model  
IrisSeg
[project] 
2015
Python 
Geodesic Active Contours and GrabCut  PSIVT 2015  Iris Segmentation using Geodesic Active Contours and GrabCut 
Iris datasets to consider:
Dataset  Number of
subjects 
Number of
images 
Spectrum  Note  
CASIA  CASIAIrisThousand  10,000  20,000  NIR  
CASIAIrisInterval  Time lapse  
CASIAIrisLamp  
CASIAIrisTwins  100  Twin  
CASIAIrisDistance  At a distance  
CASIAIrisSyn  1000  10,000  Synthesis  
ND  NDIRIS0405  356  64,980  NIR  
NDGFI  Gender  
NDCLD15  750 males
750 females 
3000  NIR  Contact Lens  
NDCrossSensorIris2013  676  29,986 from LG4000 and 116,564 from LG2200  NIR  Cross Sensor  
NDTimeLapseIris2012  23  6797  Time lapse 2004 to 2008  
NDIrisTemplateAging20082010  11,776  Time lapse 2008 to 2010  
MBGC  NIR & NIR videos  One the move


UBIRIS  261  11,102  Visible  On the move
At a distance

There is a website selling a number of iris recognition source codes based on different methods including Neural Networks, DCT, LBP, DFT and Genetics. All codes are on Matlab. I have not bought any to try out, but from their demonstration, it looks like the codes are just for demonstration, i.e. the accuracy is not the priority. Check it out to have a clear idea: http://www.irisrecognition.it/iris.asp or http://www.advancedsourcecode.com/iris.asp.
I know there are other source codes available out there. Let me know if you know any ones that are of interest to the iris recognition community.
II. UNDERSTAND convolutional neural networks
III. TRAIN image classification CNN models
Setup Caffe for use with Matlab
Install Caffe here
To use Caffe in Matlab, other than the installation steps in the above link, you need to compile Caffe for Matlab purpose:
$make matcaffe
Classifying images in Matlab using Caffe functions
Caffe is shipped with an Matlab example for classifying images in the /caffe/matlab/demo folder.This file is called: classification_demo.m.
Run Matlab. Sometime there is a error in linking the libstdc library, hence run the following from terminal before running Matlab:
$ export LD_PRELOAD=/usr/lib/x86_64linuxgnu/libstdc++.so.6
The example can be run by two commands in Matlab:
im = imread(‘../../examples/images/cat.jpg’);
scores = classification_demo(im, 0); % Use 1 instead of 0 if you want to run on GPU
The code return scores for 1000 classes in the ImageNet dataset. You can run and debug the code to have a better insight into it.
Convolutional Neural Network (CNN) is a special type of feedforward neural network dealing with images. One fundamental advantage of CNNs is the use of shared weight in convolutional layers, which means that the same filter (weights bank) is used for each pixel in the layer; this both reduces memory footprint and improves performance.
In this post, I will show how to test, understand and train this type of network.
I. CLASSIFYING images using pretrained models
Caffe has already been packed with a number of examples, including one classification ipython notebook using CNN. This is a great example to start with. From terminal, navigate to the caffe installed path (usually in ~/caffe), run ipython notebook by typing:
$ipython notebook
This command calls ipython server to run and open up the web browser for working with ipython files. In the web browser just opened up, navigate to /caffe/examples/ and open file 00classification.ipynb. Note that a ipython file is divided into multiple blocks so that you can run through each to debug the code. Use Shift+Enter to run through current block and move to the next block when the current finishes. Other shortcut keys can be found here.