Perlego is a playing card recognition system which allows secure real-time broadcast of poker tournaments.
It is a product of Press Association Sport (the sport information arm of the Press Association).
The basic idea behind Perlego (the use of infra-red barcodes to identify playing cards) had been conceived by Press Association Sports and they had reached the proof of concept stage.
The project had two parts. Firstly the development of a demonstrator to get feedback from potential customers and evaluate the technology options and risks. Secondly, to develop the finished product to production quality.
Our role was to project manage, architect, design and code the system with the help of a small team of Press Association developers
Perlego is a patented system which uses 'invisible' infra-red 2D barcodes and 'machine vision' techniques to detect the cards in play in a card game.
The main application is in tournament broadcasts, of which Poker is by far the most popular.
Prior to Perlego broacast graphics (i.e. the hands shown on the TV screen as the game is broadcast) were prepared by hand in a post production step after recording and prior to broadcast.
This was expensive and prevented the real time broadcast of tournaments
Perlego has revolutionised this, allowing immediate broadcast with minimal intervention by operators.
It also allows play to take place on an unmodified table and places far few constraints on where the players place their cards.
Perlego is technologically complex. It was developed with c++ and c# and uses Windows Presentation Framework for the controlling console and in-house graphics display and Tog 3D broadcast graphics system for broadcast display.
We found that standard image recognition libraries were unable to recognise the face of the card with adaquate accuracy and speed (often on a complex background) and so we had to develop our own machine vision algorithms to do so.
The card face recognition was developed in C++ using DirectShow and the OpenCV machine vision library and interfaced to higher levels of the system which were written in c#.