|







| |
Lipi Core Toolkit 1.0
Links
LipiTk 1.0 uses open standards such as UNIPEN for the representation of digital ink and its annotation, facilitating
the creation of shareable linguistic resources within the community. There is no annotation tool shipped along with
LipiTk in version 1.0. The first version of the toolkit provides robust implementations of tools, algorithms, scripts
and sample code necessary to support the entire process starting from the collection of handwritten data, to the
deployment and integration of a robust engine, for a particular set of shapes or characters.

LipiTk 1.0 can be installed on
any of the following mentioned platforms:
- Windows XP Professional
- Windows 2000 Professional
edition
- Red hat Enterprise Linux
Edition 3.0
- GNU Linux 2.6.9.22
- GNU Linux (Ubuntu) 2.6.14.6
Disk Requirements
LipiTk 1.1 packages for Windows and Linux, both are of size 1.5MB, and
require 6MB of space after extraction.
Building the package requires 40MB of free space.
Software Requirements
Windows
Linux
Main shape and word recognition interface for client applications. Given the
project and profile name, Lipi engine performs following actions
- Load the DLL of the shape recognizer specified in profile config file.
- Create and return the instance of shape recognizer.
Using the instance returned by Lipi engine, applications can interact with
the recognizer for training and testing of the algorithm.
Generic data structure library defines the classes used to store the digital
ink.
| LipiTK common class |
Description |
| Trace |
Class containing contiguous series of coordinates from a pen down event to the next immediate pen up event |
| TraceGroup |
Contains set of traces that have similar characteristics. |
| TraceFormat |
Holds information about the type and number of channel data available at each pen point |
| ScreenContext |
Holds the co-ordinates of the writing area provided |
The generic preprocessing module provides implementations of commonly used
shape/character preprocessing operations. Lipitk provides following
preprocessing operations
| LipiTK proprocessing operations |
Description |
| Moving-average smoothing |
Smoothing the stroke by averaging (x,y) values
within a local window. |
| Size normalization |
Normalizing the size of the incoming trace group to a default value. the
normalized is configurable. |
|
Dehooking |
Removal of hook artifacts at the ends of strokes resulting from slippage
and/or pen-tip-switch latency. |
|
Equi-distant resampling |
Resampling to obtain equi-spaced points along the stroke trajectory |
All of the operations have configuration options that can be varied using
corresponding properties captured in a configuration file.
| LipiTK Shape Recognition Modules |
Algorithm used |
|
PCA recognition module |
Principal Component Analysis (subspace
classification) |
|
DTW recognition module |
Dynamic Time Warping |
| LipiTK Word Recognition Modules |
Algorithm used |
|
Boxed-field recognition module |
Boxed-field recognition (can be configured to call PCA, DTW or any
custom shape recognition module ) |
The utility classes include various infrastructure classes which provide
simple utility functions to other modules.These include
- Classes to read/write UNIPEN ink files.
- Classes to read the key-value pairs defined in Lipitk config files.
- Tokenizer class to split a string on the delimiter passed.
- Class to provide logging facility.
| LipiTK Scripts |
Description |
|
listfiles.pl |
Generates a file containing a list of
filenames from a regular expression mapfile, for the purposes of
training/testing a shape recognizer. |
|
package.pl |
Perl-based package maker |
|
genmake.pl |
Creates the default makefile under running directory |
|
benchmark.pl |
This script performs training, testing and evaluation of a shape
recognizer. It is useful when these actions need to be performed
repeatedly in the course of experimenting with shape recognition
algorithms or tuning parameters. |
|
eval.pl |
Perl based tool for algorithm evaluation |
| Implementation Language |
Tools required to build/use |
Modules |
| C++ |
Windows : Visual Studio Linux : gcc |
- Lipi Engine
- Generic Data Structure Library
- Preprocessing
- Recognizers
- Utility Classes
|
|
Perl |
Perl |
|
First version of Lipi core toolkit.
On Windows platforms, if the STL’s string data type is used in a client
application and passed by reference to a DLL function, the application
crashes when the string variable goes out of scope. This is the known
defect in Microsoft’s STL library.
For details see:
http://support.microsoft.com/default.aspx?scid=kb;en-us;813810
Workaround
For the detailed list of issues and fixes refer :
-
The file path specified in list files for training or testing, can not contain spaces.
The executable runshaperec reports an error, and training or testing fails.
Workaround
Do not use directory or files names with spaces in them, or (for Windows platforms) use
the DOS path instead (e.g. for C:\program files, use “C:\progra~1”).
First version of Lipi core toolkit.
LipiTk package contains the following documents
- User Manual
- Reference Manual
| LipiTK Team members |
Role/Modules |
| Sriganesh Madhvanath, HPL |
- Project Lead,
- Use cases and
High-level Architecture
|
|
K. Thanigai Murugan, HPL/GDIC |
- Technical Lead, Architecture
- Release management
- Lipi Engine
- Training and Testing tools
- Sample application
|
|
Deepu Vijayasenan, HPL |
- Technical Lead, Architecture
- Release management
- Custom shape recognition module
- PCA shape recognition
- Preproccesing
- Utility classes
- Boxed-field recognition module
- Generic Word Recognizer
|
|
A. Bharath |
|
|
Sridhar Muralikrishna, HPL |
|
|
Mandalapu Dinesh, HPL |
|
|
Rajesh Pandry, HPL/GDIC |
- Scripts
- Build framework
- Packaging framework
- Makefiles
|
|
Moteth Vijaya Kumar, HPL/GDIC |
- Model data viewer
- Error handling
- DLL/SO support
|
|