Skip to main content

A python imlementation of the $P Point-Cloud Recognizer

Project description

dollarpy is a python implementation of the $P Point-Cloud Recognizer.

License

Python Compatibility PyPI Version Format

Build Status Coverage Status

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dollarpy-0.1.1.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

dollarpy-0.1.1-py2.py3-none-any.whl (3.7 kB view details)

Uploaded Python 2 Python 3

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

Hashes for dollarpy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f0df2333279f17bbb579f8c25bfd0105074fc3003a58881953576708513e0ca6
MD5 fc88d1a392076f533a930d456c0ba0da
BLAKE2b-256 9f58a0f8aea15c3d6aa277de148c5b67f5dbbbf77886148b2421c5e519ed4ad3

See more details on using hashes here.

File details

Details for the file dollarpy-0.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for dollarpy-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 04332cf136d85a3e484fb9e137bb83cfee80966bfd63d4a8f71b4468f2a88cca
MD5 f53b546f72b12b82271eb5be555441ba
BLAKE2b-256 5b8d2762164f51a524c35ce648493c1216e43669214ab529c66855ed097a8dc1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page