Anguli: Synthetic Fingerprint Generator
Beta Version

Database Systems Lab

Indian Institute of Science


 [About] [Download]
[Requirements]
[User Guide]
[Contact]
[Team]
[Bibliography]

  Installation

  1. Download Anguli.tgz and untar it.
  2. Install prerequisites.
  3. For Ubuntu, run "sudo configure.sh".
  4. Run Anguli to start



  User Guide

1 Graphical User Interface

Double click on Anguli executable or run ./Anguli. At start, the following 'Welcome' screen appears.

SplashScreen

When application loading is complete, the following main window appears.

Main Window


1.
Click 'Generate Fingerprints' to generate new fingerprints database.

2.
Click 'Generate Impressions' to generate impressions from the previously generated fingerprints database.

3.
Click 'About' to see the information about software.

4.
Click 'Exit' to close the application.



A] Window for generating new fingerprints

On clicking 'Generate Fingerprints', following window appears.

Fingerprint
                        Generator Window

Basic Settings

1.
Specify How many different number of fingerprints need to be generated.

2.
Specify how many different impressions of one fingerprint are needed.

3.
Specify the distribution of classes of fingerprints to be generated. Fingerprints are classified according to the Henry Classification.


Output Settings

4.
Specify the directory in which the generated fingerprints need to be stored.

5.
Specify the number from which fingerprint images should be given numbers.

6.
Specify number of fingerprints per directory.  Some file systems have limit on maximum number of files per directory and listing will be slower if directory contains to many files.

7.
Specify the type of image for storing fingerprint images.


Advanced
Settings

8.
Specify number of  threads, each will generate fingerprints individually and all will run in parallel. Advisable to keep number of threads equal to the number of cores in system.

9.
Check if information about fingerprint, like type of fingerprint, location of core and delta points etc., is needed.

10.
Specify the minimum and maximum noise level for impressions.

11.
Specify the minimum and maximum number of scratches to be added to impressions.

12.
Specify the pixels by which the impressions are to be translated.

13.
Specify the angle by which the impressions are to be rotated.


14.

Click 'Save Configuration' to save the current configuration. Saved configuration will get loaded automatically on next run.

15.
Click 'Load Configuration' to load settings from a file. Anguli saves the configuration used for generation in specified output directory, so that same configuration can be loaded if same fingerprints need to be reproduced.

16.
Click 'Load Defaults' to reset the settings. Number of threads is initialized to the number one less than the number of cores on system.

17.
Click 'Generate' to generate fingerprints as per the settings.

B]

Window for generating new impressions from previous fingerprint database

On clicking 'Generate Impressions' of main window, following window appears.

Impression Window


1.
Specify the directory where fingerprints, from which impressions are to be generated are stored. Fingerprint images should be in the specified directory or in immediate subdirectories.

2.
Specify the directory where generated impressions are to be stored.

3.
Specify how many different impressions of one fingerprint are needed.

4.
Specify number of  threads, each will generate impressions individually and all will run in parallel.

5.
Specify the minimum and maximum noise level for impressions.

6.
Specify the minimum and maximum number of scratches to be added to impressions.

7.
Specify the pixels by which the impressions are to be translated.

8.
Specify the angle by which the impressions are to be rotated.


9.

Click 'Save Configuration' to save the current configuration. Saved configuration will get loaded automatically on next run.

10.
Click 'Load Configuration' to load settings from a file. Anguli saves the configuration used for generation in specified output directory.

11.
Click 'Load Defaults' to reset the settings. Number of threads is initialized to the number one less than the number of cores on system.

12.
Click 'Generate' to generate impressions of fingerprints as per the settings.




2
Command Line

Anguli -h display all the options available with Anguli. Command line can be used as follows:

1.
For generating new fingerprints:
 ./Anguli -num <number> [Options]

2.
For generating impressions:
./Anguli -impr -indir <path_of_directory_containing_fingerprints> -ni <number> [Options]




Options

1.
  -h Displays the help.
2.
-num <number> Number of fingerprints to be generated. Used only for generating fingerprints.
3.
-npd <number> Number of fingerprints per directory. Used only for generating fingerprints. Default value is 1000.
4.
-cdist <distribution>
Fingerprint class Distribution. Class distributions are here. Default distribution is natural.
5.
-meta
Enables saving of meta information, like class of fingerprint, in text file of corresponding finger. Default is disabled.
6.
-ni <number> Number of impressions per fingerprints. Can be used for generating fingerprints and impressions. Default value is 0.
7.
-outdir <path> Path of directory for saving fingerprints and impressions. Can be used for generating fingerprints and impressions. Default path is "./Fingerprints" when generating fingerprints and "./Impressions" when "-impr" is used for generating impressions.
8.
-numT <number> Number of threads to be created for generating fingerprints and impressions. Can be used for generating fingerprints and impressions. Default value is 1.
9.
-impr Generate impressions only from original fingerprints. Should be used with '-indir' option.
10.
-indir <path> Path of directory with fingerprint images or path of directory with immediate directories containing fingerprint images. Default path is "./Fingerprints".
11.
-scratch '<num> <num>'
Minimum and maximum number of scratches to be added to impressions. Default value is 0.
12.
-noise '<num> <num>'
Minimum and maximum number of noise levels[0, 8] to be applied to impressions. Default value is 0.
13.
-trans <number>
Pixels by which fingers are to be translated to generate impressions. Fingerprints are translated in the range of [-num, +num].
14.
-rot <number>
Degree by which fingers are to be rotated to generate impressions. Fingerprints are rotated in the range of [-num, +num].
15
-cfg <path>
Use the configuration file specified by path. Settings specified by configuration files are used. If any other parameters are given along with this parameter then settings from those parameters from configuration will get overriden. Cannot be used with -impr option.


   Fingerprint Class Distribution

natural   
Generate fingerprints according to natural distribution of classes.
arch
Generate fingerprints of Arch class only.
tarch
Generate fingerprints of Tarch class only.
right
Generate fingerprints of Right Loop class only.
left
Generate fingerprints of Left Loop class only.
dloop
Generate fingerprints of Double loop class only.
whirl
Generate fingerprints of Whirl class only.



Examples

1. ./Anguli -num 10000 -ni 2 -outdir ./new_fingerprints -numT 3 -meta -npd 100

Generate 10000 fingerprints and 2 impressions per fingerprint by 3 threads. Creates 4 directories inside "new_fingerprints" viz. Fingerprints,  Impression_1,  Impression_2,    "Meta Info". Each of these new directories contains 1 to 100 numbered directories. "Fingerprints" contains the 10000 fingerprints in 100 directories, each containing 100   fingerprints. "Impression_1" and "Impression_2" together contains two impressions of each fingerprints and has same hierarchy as "Fingerprints" directory. "Meta Info"  directory contains the meta information about each fingerprints and has same hierarchy as "Fingerprints" directory.

2.
./Anguli -impr -indir ./new_fingerprints/Fingerprints -numT 3 -outdir ./new_impressions -ni 10

Generates 10 impressions of each fingerprint present in immediate subdirectories (1 to 100) of directory specified by "-indir" option. Creates 3 threads to generate impressions. "new_impressions" contains 10 directories "Impression_#", each having same hierarchy as "new_fingerprints/Fingerprints".