Hand Movement Recognition By: Tokman Niv Levenbroun Guy Instructor: Todtfeld Ari.

Slides:



Advertisements
Similar presentations
Video Object Tracking and Replacement for Post TV Production LYU0303 Final Year Project Spring 2004.
Advertisements

QR Code Recognition Based On Image Processing
Department of Electrical and Computer Engineering He Zhou Hui Zheng William Mai Xiang Guo Advisor: Professor Patrick Kelly ASLLENGE Midway Design review.
The Bioloid Robot Project Presenters: Michael Gouzenfeld Alexey Serafimov Supervisor: Ido Cohen Winter Department of Electrical Engineering.
Analysis of Tactile Map Reading Visual Team Peter Maricle, Raihan Masud, Kristy Thomas, Kyle Vessey and Fan Wang.
Happy Home Helper Jeremy Searle Apr 28, 2004 A Learning Home Automation System.
Object Inter-Camera Tracking with non- overlapping views: A new dynamic approach Trevor Montcalm Bubaker Boufama.
 INTRODUCTION  STEPS OF GESTURE RECOGNITION  TRACKING TECHNOLOGIES  SPEECH WITH GESTURE  APPLICATIONS.
Virtual Dart: An Augmented Reality Game on Mobile Device Supervisor: Professor Michael R. Lyu Prepared by: Lai Chung Sum Siu Ho Tung.
Motion Tracking. Image Processing and Computer Vision: 82 Introduction Finding how objects have moved in an image sequence Movement in space Movement.
Motion Detection And Analysis Michael Knowles Tuesday 13 th January 2004.
Video Object Tracking and Replacement for Post TV Production LYU0303 Final Year Project Spring 2004.
Tracking Migratory Birds Around Large Structures Presented by: Arik Brooks and Nicholas Patrick Advisors: Dr. Huggins, Dr. Schertz, and Dr. Stewart Senior.
Summary of ARM Research: Results, Issues, Future Work Kate Tsui UMass Lowell January 8, 2006 Kate Tsui UMass Lowell January 8, 2006.
Object Detection and Tracking Mike Knowles 11 th January 2005
CSSE463: Image Recognition Day 30 Due Friday – Project plan Due Friday – Project plan Evidence that you’ve tried something and what specifically you hope.
Fig. 2 – Test results Personal Memory Assistant Facial Recognition System The facial identification system is divided into the following two components:
Recording a Game of Go: Hidden Markov Model Improves Weak Classifier Steven Scher
Face Processing System Presented by: Harvest Jang Group meeting Fall 2002.
Real-Time Face Detection and Tracking Using Multiple Cameras RIT Computer Engineering Senior Design Project John RuppertJustin HnatowJared Holsopple This.
ICBV Course Final Project Arik Krol Aviad Pinkovezky.
Tal Mor  Create an automatic system that given an image of a room and a color, will color the room walls  Maintaining the original texture.
Knowledge Systems Lab JN 8/24/2015 A Method for Temporal Hand Gesture Recognition Joshua R. New Knowledge Systems Laboratory Jacksonville State University.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
OCR GCSE ICT DATA CAPTURE METHODS. LESSON OVERVIEW In this lesson you will learn about the various methods of capturing data.
Feature and object tracking algorithms for video tracking Student: Oren Shevach Instructor: Arie nakhmani.
Knowledge Systems Lab JN 9/10/2002 Computer Vision: Gesture Recognition from Images Joshua R. New Knowledge Systems Laboratory Jacksonville State University.
Speech Recognition ECE5526 Wilson Burgos. Outline Introduction Objective Existing Solutions Implementation Test and Result Conclusion.
Dan Rosenbaum Nir Muchtar Yoav Yosipovich Faculty member : Prof. Daniel LehmannIndustry Representative : Music Genome.
Digital Image Processing CCS331 Relationships of Pixel 1.
What’s in a sum? Simon Dawes CMHAS. Should you stack frames using Mean, Median or Sum?
Tracking CSE 6367 – Computer Vision Vassilis Athitsos University of Texas at Arlington.
MULTIMEDIA INPUT / OUTPUT TECHNOLOGIES
KAMI KITT ASSISTIVE TECHNOLOGY Chapter 7 Human/ Assistive Technology Interface.
Eurecom, 6 Feb 2007http://biobimo.eurecom.fr Project BioBiMo 1.
The Implementation of a Glove-Based User Interface Chris Carey.
Robust Real Time Face Detection
By: David Gelbendorf, Hila Ben-Moshe Supervisor : Alon Zvirin
Team Members Ming-Chun Chang Lungisa Matshoba Steven Preston Supervisors Dr James Gain Dr Patrick Marais.
Motion Detection and Processing Performance Analysis Thomas Eggers, Mark Rosenberg Department of Electrical and Systems Engineering Abstract Histograms.
Knowledge Systems Lab JN 1/15/2016 Facilitating User Interaction with Complex Systems via Hand Gesture Recognition MCIS Department Knowledge Systems Laboratory.
Lecture 9 Feature Extraction and Motion Estimation Slides by: Michael Black Clark F. Olson Jean Ponce.
Augmented Reality and 3D modelling Done by Stafford Joemat Supervised by Mr James Connan.
Intelligent Robotics Today: Vision & Time & Space Complexity.
Chapter 2 HAEDWAER.
Essential components of the implementation are:  Formation of the network and weight initialization routine  Pixel analysis of images for symbol detection.
What you need: In order to use these programs you need a program that sends out OSC messages in TUIO format. There are a few options in programs that.
Introduction To Computational and Biological Vision Max Binshtok Ohad Greenshpan March 2006 Shot Detection in video.
AUTOMATIC NUMBER PLATE RECOGNITION SYSTEM
Detection, Tracking and Recognition in Video Sequences Supervised By: Dr. Ofer Hadar Mr. Uri Perets Project By: Sonia KanOra Gendler Ben-Gurion University.
Reference: What is it? A multimedia python library – Window Management – Graphics geometric shapes bitmaps (sprites) – Input Mouse Keyboard.
Over the recent years, computer vision has started to play a significant role in the Human Computer Interaction (HCI). With efficient object tracking.
By: Suvigya Tripathi (09BEC094) Ankit V. Gupta (09BEC106) Guided By: Prof. Bhupendra Fataniya Dept. of Electronics and Communication Engineering, Nirma.
Vision-based Android Application for GPS Assistance in Tunnels
Hand Gestures Based Applications
Operating Systems (CS 340 D)
CS201 Lecture 02 Computer Vision: Image Formation and Basic Techniques
Introduction of Real-Time Image Processing
Senior Capstone Project Gaze Tracking System
Application Solution: 3D Inspection Automation with SA
Tremor Detection Using Motion Filtering and SVM Bilge Soran, Jenq-Neng Hwang, Linda Shapiro, ICPR, /16/2018.
Find It VR Project (234329) Students: Yosef Albo, Bar Albo
Higher School of Economics , Moscow, 2016
The Implementation of a Glove-Based User Interface
眼動儀與互動介面設計 廖文宏 6/26/2009.
CSSE463: Image Recognition Day 30
CSSE463: Image Recognition Day 30
CSSE463: Image Recognition Day 30
Higher School of Economics , Moscow, 2016
Jetson-Enabled Autonomous Vehicle
Presentation transcript:

Hand Movement Recognition By: Tokman Niv Levenbroun Guy Instructor: Todtfeld Ari

Goals and objectives Project goal was to create a system that analyses colored glove movements and translate them into speech. Project goal was to create a system that analyses colored glove movements and translate them into speech. This project is based on the work done by Alex Gluzman And Lior Neuman At spring 2004, who created a system that detects the position of the colored glove. This project is based on the work done by Alex Gluzman And Lior Neuman At spring 2004, who created a system that detects the position of the colored glove.

System overview The system is composed of the following units: The system is composed of the following units: Color video camera Color video camera Colored glove Colored glove Double talk Double talk PC+Rio frame grabber PC+Rio frame grabber

System overview – basic operation The camera shoots the glove. The camera shoots the glove. The data if grabbed by the rio FrameGrabber and placed in memory. The data if grabbed by the rio FrameGrabber and placed in memory. Rio routines inform the program that there is a new frame waiting, by calling OnDraw(). Rio routines inform the program that there is a new frame waiting, by calling OnDraw(). The image is processed. The image is processed. The result is transferred to the DoubleTalk device via the computers COM port. The result is transferred to the DoubleTalk device via the computers COM port.

System’s user interface

Movement recognition flow Movement is derived from a series of still frames, for each we have colors centroids locations and the recognized position Movement is derived from a series of still frames, for each we have colors centroids locations and the recognized position For each frame, we compare the color’s location to the previous frame and extract the direction each color has moved. These directions are the 8 prime direction, no movement or missing color. For each frame, we compare the color’s location to the previous frame and extract the direction each color has moved. These directions are the 8 prime direction, no movement or missing color. The list of direction, with the positions compose a movement The list of direction, with the positions compose a movement

Yes No Extracting color locations (x, y, Color) Yes Update: Sum of X values Sum of Y values Number of pixels with that color. For every scanned pixel Mark pixel as black For each color Number of pixels < threshold ? Color match one of the preset colors (in HSV values)? Mark color as missing

Example Example Result : LEFT Result : LEFT Calculating directions Each color CM is compared to the CM in the previous frame. Each color CM is compared to the CM in the previous frame. Δx and Δy are calculated. Δx and Δy are calculated. Conclude the direction. Conclude the direction. Δx = -10

Recognition flow Yes New frame is ready in Rio memory buffer Process frame for color’s centroids location Identify hand position Calculate color direction in reference to previous frame 30 frames without movement? Identify movement Start Below is a regular main loop iteration: Below is a regular main loop iteration:

Low frame rate Low frame rate Scanning each frame is time/CPU consuming. Scanning each frame is time/CPU consuming. Low frame rate cause movement information loss Low frame rate cause movement information loss Noise in frame sampling Noise in frame sampling Camera shakes, lighting varies Camera shakes, lighting varies Non linear hand movement Non linear hand movement Analyzing movement (directions list) Analyzing movement (directions list) Frame rate influence length of list Frame rate influence length of list List comparing is time consuming (affecting frame rate) List comparing is time consuming (affecting frame rate) Challenges of flow Hand movement desired movement

To reduce scan time, only every 4 th pixel is scanned, until a color is found. Then scan is done on every pixel until color disappears. To reduce scan time, only every 4 th pixel is scanned, until a color is found. Then scan is done on every pixel until color disappears. This allows for faster frame processing with still accurate CM calculations. This allows for faster frame processing with still accurate CM calculations. HSV transformation is done during the scan. HSV transformation is done during the scan. Pixels are transformed to HSV minimize lighting effects. Pixels are transformed to HSV minimize lighting effects. Frame processing solution

Scanning a black line takes ¼ of the time since we sample only every 4 th pixel (most lines are black). Scanning a black line takes ¼ of the time since we sample only every 4 th pixel (most lines are black). When we come across a colored pixel we scan every pixel, so we won’t miss any of them, to improve CM accuracy. When we come across a colored pixel we scan every pixel, so we won’t miss any of them, to improve CM accuracy. Sometimes we might miss the edges of the color, since we don’t start to scan at the first appearance. Sometimes we might miss the edges of the color, since we don’t start to scan at the first appearance. Frame processing solution

Noise filtering First task is to distinguish between a real glove movement and noise (camera shakes, light changes). First task is to distinguish between a real glove movement and noise (camera shakes, light changes). This is accomplished by defining a distance threshold (in pixels). This is accomplished by defining a distance threshold (in pixels). This threshold can be set automatically at run time: 120 frames are collected while glove is still, and worst deviation between any two frames is set as threshold. This threshold can be set automatically at run time: 120 frames are collected while glove is still, and worst deviation between any two frames is set as threshold. Result : LEFT Result : LEFT Δy = 3 Δx = -10 TH = 4

Whenever a new CM is calculated, we try to guess it’s position by time derivation in x and y axis. Whenever a new CM is calculated, we try to guess it’s position by time derivation in x and y axis. We than calculate the ‘real’ CM by: We than calculate the ‘real’ CM by: Non-linear movement solution

We collect the movements history until a series of 30 no-movement frames are accumulated. We collect the movements history until a series of 30 no-movement frames are accumulated. Next, same adjacent movements are collapsed into one, so in the end the history contains only changes in direction. (The Mozilla gesture recognizer uses this model) Next, same adjacent movements are collapsed into one, so in the end the history contains only changes in direction. (The Mozilla gesture recognizer uses this model) There is also a threshold for movements in the same basic direction, below which they are discarded as noise. There is also a threshold for movements in the same basic direction, below which they are discarded as noise. In order to speed up the comparison process, we convert the collapsed list into a decimal number by enumerating the direction. In order to speed up the comparison process, we convert the collapsed list into a decimal number by enumerating the direction. Movement recognition solution

Down = 1 Up = 2 Left = 3321 left Up-leftup down leftupdown First the list is collapsed First the list is collapsed The new list is translated to a decimal number according to the enumeration The new list is translated to a decimal number according to the enumeration The number is than compared against the movements in the Database. The number is than compared against the movements in the Database. Movement recognition - example

Summery We have created a system that tracks and identifies glove movements, and translate it into speech according to user defined DB. We have created a system that tracks and identifies glove movements, and translate it into speech according to user defined DB. Main features: Main features: An intuitive graphical user interface that allows easy configuration and operation. An intuitive graphical user interface that allows easy configuration and operation. Data base support to store user’s movements and positions, with the ability to modify, add and delete entries through the GUI. Data base support to store user’s movements and positions, with the ability to modify, add and delete entries through the GUI. Calibration of environment: camera’s height, noise reduction etc. Calibration of environment: camera’s height, noise reduction etc.

Additional uses – UI demo This recognition engine can be used for other uses. This recognition engine can be used for other uses. For example: turn the glove into an input device that can replace the mouse. For example: turn the glove into an input device that can replace the mouse. possible use: Catheterization Room since the room must be sterile regular IO devices can’t be used. possible use: Catheterization Room since the room must be sterile regular IO devices can’t be used.

Example of use: UI

Added values – what we learned Movement tracking in noisy environment. Movement tracking in noisy environment. Challenges of real time image processing Challenges of real time image processing MFC programming skills MFC programming skills Windows IPC (Inter Process Communication) Windows IPC (Inter Process Communication)

Ideas for future development Use USB camera, and MS speech SDK. Use USB camera, and MS speech SDK. Saving history of recognized movements for more complex sentences. Saving history of recognized movements for more complex sentences. Dynamically setting different movement threshold for each color. Dynamically setting different movement threshold for each color. During frame scanning, when encounter a color pixel jump back and rescan. During frame scanning, when encounter a color pixel jump back and rescan. Using the number of frames in a continues direction Using the number of frames in a continues direction Use neural network for better recognition. Use neural network for better recognition.