A python imlementation of the $P Point-Cloud Recognizer
Project description
dollarpy is a python implementation of the $P Point-Cloud Recognizer.
From the website:
The $P Point-Cloud Recognizer is a 2-D gesture recognizer designed for rapid prototyping of gesture-based user interfaces. In machine learning terms, $P is an instance-based nearest-neighbor classifier with a Euclidean scoring function, i.e., a geometric template matcher.
$P is the latest in the dollar family of recognizers that includes $1 for unistrokes and $N for multistrokes. Although about half of $P’s code is from $1, unlike both $1 and $N, $P does not represent gestures as ordered series of points (i.e., strokes), but as unordered point-clouds. By representing gestures as point-clouds, $P can handle both unistrokes and multistrokes equivalently and without the combinatoric overhead of $N. When comparing two point-clouds, $P solves the classic assignment problem between two bipartite graphs using an approximation of the Hungarian algorithm.
Vatavu, R. D., Anthony, L., & Wobbrock, J. O., “Gestures as Point Clouds: A $P Recognizer for User Interface Prototypes”, in: Proceedings of the 14th ACM International Conference on Multimodal Interaction (ICMI), Santa Monica, LA, USA, 2012, pp. 273-280.
Installation
dollarpy can be installed using pip:
pip install dollarpy
Usage
dollarpy is used in 3 steps:
from dollarpy import Recognizer, Template, Point
# Define 'Template' gestures, each consisting of a name and a list of 'Point' elements.
# These 'Point' elements have 'x' and 'y' coordinates and optionally the stroke index a point belongs to.
tmpl_1 = Template('X', [
Point(0, 0, 1),
Point(1, 1, 1),
Point(0, 1, 2),
Point(1, 0, 2)])
tmpl_2 = Template('line', [
Point(0, 0),
Point(1, 0)])
# Create a 'Recognizer' object and pass the created 'Template' objects as a list.
recognizer = Recognizer([tmpl_1, tmpl_2])
# Call 'recognize(...)' to match a list of 'Point' elements to the previously defined templates.
result = recognizer.recognize([
Point( 31, 141, 1),
Point(109, 222, 1),
Point( 22, 219, 2),
Point(113, 146, 2)])
print(result) # Output: ('X', 0.733770116545184)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dollarpy-0.1.1.tar.gz
.
File metadata
- Download URL: dollarpy-0.1.1.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0df2333279f17bbb579f8c25bfd0105074fc3003a58881953576708513e0ca6 |
|
MD5 | fc88d1a392076f533a930d456c0ba0da |
|
BLAKE2b-256 | 9f58a0f8aea15c3d6aa277de148c5b67f5dbbbf77886148b2421c5e519ed4ad3 |
File details
Details for the file dollarpy-0.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: dollarpy-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04332cf136d85a3e484fb9e137bb83cfee80966bfd63d4a8f71b4468f2a88cca |
|
MD5 | f53b546f72b12b82271eb5be555441ba |
|
BLAKE2b-256 | 5b8d2762164f51a524c35ce648493c1216e43669214ab529c66855ed097a8dc1 |