Home
Overview
FAQ
Components
Roadmap
Community
Resources
Contact Us

Lipi Core Toolkit 1.0

Links

Quick Links

 


Highlights

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.

Architecture

Supported Platforms

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

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

  • 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

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

Preprocessing

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.

Recognizers

Shape Recognizers
LipiTK Shape Recognition Modules Algorithm used
PCA recognition module Principal Component Analysis (subspace classification)
DTW recognition module Dynamic Time Warping
Word Recognizers
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 )

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

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

First version of Lipi core toolkit.

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 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”).

Backward Compatibility

First version of Lipi core toolkit.

Documents

LipiTk package contains the following documents

  • User Manual
  • Reference Manual

Contributors

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