Home
Overview
FAQ
Components
Roadmap
Community
Resources
Contact Us

Lipi Core Toolkit 1.1

 

    Quick Links

 

 

Overview

The Core Toolkit provides a set of components which can be used for the construction, evaluation and packaging of handwritten shape recognizers for isolated shapes such as handwritten gestures and characters.

New in this release

  • A number of bugs have been fixed and minor enhancements have been made in this release.
  • The class "ShapeRecognizer" has been renamed as "ShapeRecMethod" to remove ambiguity 
  • Support for "dynamic" projects with variable number of shapes has been added. This is used by LipiIDE 1.0.
  • The standalone Data Collection Tool has been moved out of the Core Toolkit into its own release as part of Tools.

Architecture

Supported Platforms

LipiTk 1.1 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

System Requirements

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

Components

Lipi Engine

Main shape and word recognition interface for client applications. Given the project and profile name, Lipi engine performs following actions:

  • Loads the DLL of the shape recognizer specified in profile config file.
  • Creates and returns 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

Generic data structure library defines the classes used to store the digital ink.

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

Preprocessing

The generic preprocessing module provides implementations of commonly used shape/character preprocessing operations. Lipitk provides following preprocessing operations. All of the operations have configuration options that can be varied using corresponding properties captured in a configuration file.

Operation 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.

Recognition Methods

Shape Recognition Methods
Method Description
PCA recognition module Principal Component Analysis (subspace classification)
DTW recognition module Dynamic Time Warping
Word Recognition Methods
Method Description
Boxed-field recognition module Boxed-field recognition (can be configured to call PCA, DTW or any custom shape recognition module )

Utility Classes

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.

Scripts

Script 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 Perl-based package maker
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  

Implementation Details

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
  • Scripts

Enhancements & Bugs Fixed

Bug Description User Impact
The number of classes in any project need not be fixed In Version 1.0, the number of class in a project was fixed and it was specified in "project.cfg" as a key value pair

NumShapes=10 < for numerals >

Version 1.1, gives user the freedom to keep the number of classes a variable. This can be done by specifying dynamic for NumShapes.

NumShapes=dynamic

Code Enhancements

Recognizers
  • Euclidean pre-filter added to the DTW classifier.
  • The Boxfield recognizer enhanced to give a 'blank space' output when there is no ink in a logical segment.
PreProcessing
  • Multiple normalization functions merged into one. The functionality of -normalizeSize<1-5> merged into one function normalizeSize
  • Relative confidence normalization schemes added for PCA and DTW modules, hence the confidence will be in range 0-1

Pre-built recognizers : numerals

  • Added shape ID to Unicode mapping for numerals project.

Scripts

  • The functionality of build.pl merged into package.pl. All the hard coded variables defined in build.pl have been moved to a config file release.cfg

Known Issues

  • 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 runshaperec.exe 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”).

Backward Compatibility

Lipi core-toolkit version 1.1 is not backward compatible with version 1.0 released earlier.

Documents

Previous Releases

Contributors

LipiTK Team members Role/Modules
Sriganesh Madhvanath, HPL
  • Project Lead,
  • Use cases and High-level Architecture
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
  • Utility classes
Sridhar Muralikrishna, HPL
  • DTW Shape Recognition
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
 

Home | Overview | FAQ | Components | Roadmap | Community | Resources | Contact Us

 Copyright © 2002-2006 Hewlett-Packard Company.
.
For problems or questions regarding this Web site contact liptk-dev AT hp DOTcom.
Last updated: 12/07/07.