Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
1
INTRODUCTION
● About Me?
– Besjan Xhika
– My Background
● What this Presentation il About?
– Gesture Recognition Devices...
2
GESTURE RECOGNITION DEVICES
● BODY
– Kinect (Microsoft)
– Asus Xtion
– Carmine (PrimeSense)
– DS311 (SoftKinetic)
● HAND...
3
LEAP MOTION
4
LEAP MOTION
● Detects and Tracks Hands, Fingers and Finger-Like Tools
● Reports Discrete Positions, Gestures and Motion
...
5
LEAP MOTION IN A
MEDICAL APPLICATION
● InVesalius is a Medical Software Used to Reconstruct
Structures of the Human Body...
6
API OVERVIEW
The Applications can use the Leap API to Access the Data of Hands
and Fingers that the Device Captures One ...
7
def main():
# Implements callback functions to handle events dispatched by the Leap
listener = Listener()
# The Controll...
8
class Listener(Leap.Listener):
def on_init(self, controller):
# Dispatched once when the controller to which the listene...
9
def on_frame(self, controller):
# Get the most recent frame
frame = controller.frame()
if not frame.hands.empty:
# MOUSE...
10
# MOUSE CLICKS
secondHand = frame.hands[1]
if not secondHand.fingers.empty and len(secondHand.fingers) == 1:
for gestur...
11
OTHER EXAMPLE
APPLICATIONS
12
VIDEO GAMES
13
ART
14
USER INTERFACES
15
GOOGLE EARTH
16
KEYBOARD
17
Q & A
18
THANK YOU
● Blog
– bxhika.wordpress.com
● Twitter
– @BesjanXhika
● E-Mail
– xhikab@gmail.com
Próximo SlideShare
Cargando en…5
×

de

Gesture recognition Slide 1 Gesture recognition Slide 2 Gesture recognition Slide 3 Gesture recognition Slide 4 Gesture recognition Slide 5 Gesture recognition Slide 6 Gesture recognition Slide 7 Gesture recognition Slide 8 Gesture recognition Slide 9 Gesture recognition Slide 10 Gesture recognition Slide 11 Gesture recognition Slide 12 Gesture recognition Slide 13 Gesture recognition Slide 14 Gesture recognition Slide 15 Gesture recognition Slide 16 Gesture recognition Slide 17 Gesture recognition Slide 18
Próximo SlideShare
Gesture recognition techniques
Siguiente
Descargar para leer sin conexión y ver en pantalla completa.

0 recomendaciones

Compartir

Descargar para leer sin conexión

Gesture recognition

Descargar para leer sin conexión

So, I made a Presentation for Smart Interfaces course of MSc in Computer Science at the University of Bari.
I introduce Leap Motion and talk about my few short experiments with it.

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo
  • Sé el primero en recomendar esto

Gesture recognition

  1. 1. 1 INTRODUCTION ● About Me? – Besjan Xhika – My Background ● What this Presentation il About? – Gesture Recognition Devices – My Experiments with Leap Motion
  2. 2. 2 GESTURE RECOGNITION DEVICES ● BODY – Kinect (Microsoft) – Asus Xtion – Carmine (PrimeSense) – DS311 (SoftKinetic) ● HANDS – Leap Motion – Creative* Interactive Gesture Camera (Intel) – Capri (Embedded Solution, PrimeSense) – DS325 (SoftKinetic) – MYO
  3. 3. 3 LEAP MOTION
  4. 4. 4 LEAP MOTION ● Detects and Tracks Hands, Fingers and Finger-Like Tools ● Reports Discrete Positions, Gestures and Motion ● The FOV is an Inverted Pyramid Centered on the Device ● The Effective Range Extends From 25 to 600 mm ● Employs a Right-Handed Cartesian Coordinate System ● Provides Updates as a Set or Frame of Data ● Leap Motion Visualizer
  5. 5. 5 LEAP MOTION IN A MEDICAL APPLICATION ● InVesalius is a Medical Software Used to Reconstruct Structures of the Human Body ● The Leap Device Simulates the Mouse ● Python was Used ● Example Integration of Leap Motion with InVesalius
  6. 6. 6 API OVERVIEW The Applications can use the Leap API to Access the Data of Hands and Fingers that the Device Captures One Frame at a Time – Leap.Controller: The interface between the Leap and the application – Leap.Listener: Used to handle events dispatched by the Leap – Leap.Frame: Contains a set of hand and finger tracking data – Leap.Hand: Contains tracking data for a detected hand – Leap.Finger: Contains tracking data for a detected finger – Leap.Vector: Represents a 3D position or directional vector – Leap.Gesture: Represents a recognized gesture.
  7. 7. 7 def main(): # Implements callback functions to handle events dispatched by the Leap listener = Listener() # The Controller class provides the main interface between the Leap and the application controller = Leap.Controller() # Allows the application to run in the background controller.set_policy_flags(Leap.Controller.POLICY_BACKGROUND_FRAMES) # Have the sample listener receive events from the controller controller.add_listener(listener) # Keep this process running until Enter is pressed sys.stdin.readline() # Remove the sample listener when done controller.remove_listener(listener) CREATING A CONTROLLER OBJECT
  8. 8. 8 class Listener(Leap.Listener): def on_init(self, controller): # Dispatched once when the controller to which the listener is registered is initialized print "Initialized" def on_connect(self, controller): # Dispatched when the controller connects to the Leap and is ready to begin sending frames of motion tracking data print "Connected" # Enable gestures controller.enable_gesture(Leap.Gesture.TYPE_CIRCLE) def on_disconnect(self, controller): # Dispatched if the controller disconnects from the Leap print "Disconnected" def on_exit(self, controller): # Dispatched to a listener when it is removed from a controller print "Exited" def on_frame(self, controller): # Dispatched when a new frame of motion tracking data is available ... SUBCLASSING THE LISTENER CLASS
  9. 9. 9 def on_frame(self, controller): # Get the most recent frame frame = controller.frame() if not frame.hands.empty: # MOUSE CURSOR firstHand = frame.hands[0] if not firstHand.fingers.empty: xPos = 5*firstHand.palm_position.x + self.screenWidth/2 yPos = 1500 - (4*firstHand.palm_position.y - 300 + self.screenHeight/2) ctypes.windll.user32.SetCursorPos(int(xPos), int(yPos)) GETTING A FRAME OF DATA (Part I)
  10. 10. 10 # MOUSE CLICKS secondHand = frame.hands[1] if not secondHand.fingers.empty and len(secondHand.fingers) == 1: for gesture in frame.gestures(): if gesture.type == Leap.Gesture.TYPE_CIRCLE: circle = Leap.CircleGesture(gesture) if circle.pointable.direction.angle_to(circle.normal) <= Leap.PI/4: clockwiseness = "clockwise" else: clockwiseness = "counterclockwise" if circle.state == Leap.Gesture.STATE_STOP: # MOUSE CLICK if clockwiseness == "clockwise": print "MOUSE CLICK" ctypes.windll.user32.mouse_event(0x0002, 0, 0, 0, 0) ctypes.windll.user32.mouse_event(0x0004, 0, 0, 0, 0) # MOUSE CLICK + HOLD else: if not self.leftclickHold: print "CLICK + HOLD" ctypes.windll.user32.mouse_event(0x0002, 0, 0, 0, 0) else: print "CLICK + RELEASE" ctypes.windll.user32.mouse_event(0x0004, 0, 0, 0, 0) self.leftclickHold = not self.leftclickHold GETTING A FRAME OF DATA (Part II)
  11. 11. 11 OTHER EXAMPLE APPLICATIONS
  12. 12. 12 VIDEO GAMES
  13. 13. 13 ART
  14. 14. 14 USER INTERFACES
  15. 15. 15 GOOGLE EARTH
  16. 16. 16 KEYBOARD
  17. 17. 17 Q & A
  18. 18. 18 THANK YOU ● Blog – bxhika.wordpress.com ● Twitter – @BesjanXhika ● E-Mail – xhikab@gmail.com

So, I made a Presentation for Smart Interfaces course of MSc in Computer Science at the University of Bari. I introduce Leap Motion and talk about my few short experiments with it.

Vistas

Total de vistas

136

En Slideshare

0

De embebidos

0

Número de embebidos

14

Acciones

Descargas

2

Compartidos

0

Comentarios

0

Me gusta

0

×