pattern recognition with n-tuple systems simon lucas computer science dept essex university
TRANSCRIPT
Pattern Recognitionwith
N-Tuple SystemsSimon Lucas
Computer Science Dept
Essex University
Overview
• Standard Binary n-tuple
• Dealing with grey-levels– Continuous n-tuple– Bit-plane decomposition
• Dealing with sequences– Scanning N-Tuple
• Future Directions
N-Tuple Systems
• Bledsoe + Browning (late fifties)• Sample a pattern at m sets of n-points per set• Use each sample set to represent a memory
address• Have an n-tuple “bank” for each pattern class• Simple training:
– Note address occurrences for each class
What to store
• Various options– 1-bit: address occurred or not– Freq – weighted: count number of occurs– Prob. – use count to estimate probability
• 1-bit version saturates
• Usually better to use probabilistic version (ML estimate)
N-Tuple Architecture
Standard N-Tuple Features
• Superfast training– As fast as you can read the data in!
• Superfast recognition (ditto)
• Simple
• Applicable to binary images
Grey-level
Threshold?
Niblack?
Beavis?
Continuous N-Tuple
• Samples grey-level image directly• Pre-compiles samples into LUTs• Fills LUT entries with ABS distance to closest
sampled point• Recognition speed not compromised• BUT: slower to train• Memory problems…• Not probabilistic
– Sensitive to spurious training data!
Continuous N-Tuple Results
Bit-Plane Decomposition
• Alternative to continuous n-tuple
• Uses a combination of binary n-tuple classifiers
• One for each bit-plane (so 8 for 256-grey level)
• Good results reported
• Speed sacrifice
Scanning N-Tuple Classifier(SNT)
• Introduced in 1995 (Lucas, Lucas + Amiri)
• Since investigated by other research groups (IBM, Kaist, Kent, Athens)
• In a recent study was one of the best classifiers on UNIPEN dataset
• Simple modification of n-gram model• An n-gram with gaps!!!
Scanning N-Tuple
0 2 3 2
•Chain code image
•Scan sampler along chain code
•Estimate weights of address occurrences
•Classify by summing weights for each class
•Softmax function -> posterior probability
•Train
•DEMO!
Recent Work
• Extensive evaluation (IBM)• Directional + bit-plane decomposition
(Kent) (smaller tables)• Mixture models for table compression
(IBM, KAIST)• Clustering (Athens)• Discriminative Training (Essex)
– Better accuracy (why????)
Terminology
• m – frequency count
• l – log likelihood weights
• a – class activation vector
• y – output vector (posterior prob.)
• t – target vector
Likelihood Score for Class k given Sequence s
Softmax Function
• Interpret as posterior probability y_k
Maximum Likelihood Est.
Discriminative Training
• Maximise probability of correct classification
• Minimise cross-entropy
Cross Entropy Error Term
Weight Update RuleIf k = true class
Apply weight updates
Cross-Entropy v. ML
Design Process
MNIST Results
Future Work
• Improve accuracy further– Mixture Models– Training data deformation models
• Better understanding of discrim v. ML
• Sparse (e.g. trie) SNT
• Optimal (all) threshold version for colour / grey-level images
Why Mixture?To tell A from B !!!A
010111000101001
010110100010101
0101010001011
10100101010101
010101010001011
01010101001010101
B
1111011101111101
00010001000001000
00001000100010001
11110111111011111
….
Why Opti-Thresh?
Global Mean Threshold
Optimally Thresholded Image
Conclusions
• N-Tuple classifiers – fantastic speed
• High degree of design skill needed to make them work well
• Compete with much more complex systems
• Interesting future work to be done!
Further Reading
• Continuous n-tuple– Simon M. Lucas , Face recognition with the continuous n-tuple
classifier, Proceedings of the British Machine Vision Conference (1997) , pages: 222 -- 231 [pdf]
• Scanning n-tuple– Simon M. Lucas and A. Amiri,, Statistical syntactic Methods for high
performance OCR, IEE Proceedings on Vision, Image and Signal Processing (1996) , v. 143, pages: 23 -- 30 [pdf]
– Simon M. Lucas , Discriminative Training of the Scanning N-Tuple Classifier, International Workshop on Artificial Neural Networks (2003) , pages: 222 -- 229 [pdf] (draft)
• Plus many more references in those papers• Search Google for n-tuple and also for scanning n-
tuple