ArticlePDF Available

Abstract and Figures

Resumen—Se usa una cámara de profundidad de bajo costo para detectar, de manera robusta, manos y dedos. Nuestro método propuesto está basado en filtros de profundidad y análisis de contorno adaptivo. La mayor parte del enfoque propuesto se programó en CUDA. Seleccionamos CUDA para poder conseguir una aplicación de visión computacional en tiempo real. En las pruebas realizadas conseguimos un 95,17 % de efectividad con un 3,2 % de falsos positivos. Index Terms—detección, manos, dedos, profundidad, Kinect. I. INTRODUCC ON Sistemas de visión computacional puede ser utilizados para crear interfaces convincentes para computadoras. Esto se debe a que es más natural y divertido controlar una computadora usando el movimiento del cuerpo o gestos de manos y dedos. Estas formas de interfaz también se han visto beneficiadas de los precios bajos que encontramos en varios de los com-ponentes que se usan para desarrollar sistemas de visión computacional. Incluso son lo suficientemente baratos para reemplazar interfaces como botones y palancas. Muchas interfaces han sido desarrolladas para habilitar interacciones naturales con manos y dedos. La mayoría de estos sistemas de visión computacional usan cámaras RGB tradicionales o infrarrojas [12], [7], [9], [4]. Estos métodos encuentran problemas cuando: Las manos y el fondo contienen colores similares Cambios de iluminación Reflejos Sombras La geometría del fondo cambia
Content may be subject to copyright.
M´
etodo Robusto para Detectar Dedos Usando
Profundidad
Isaac Juan Rudom´ın Goldberg
ITESM CEM
Atizapan de Zaragoza, Mexico
rudomin.isaac@gmail.com
Jorge Adolfo Ram´ırez Uresti
ITESM CEM
Atizapan de Zaragoza, Mexico
juresti@gmail.com
Christian Jes ´us Arzate Cruz
ITESM CEM
Atizapan de Zaragoza, Mexico
arzate.christian@gmail.com
Resumen—Se usa una c ´
amara de profundidad de bajo costo
para detectar, de manera robusta, manos y dedos. Nuestro
m´
etodo propuesto est´
a basado en filtros de profundidad y an´
alisis
de contorno adaptivo. La mayor parte del enfoque propuesto se
program´
o en CUDA. Seleccionamos CUDA para poder conseguir
una aplicaci´
on de visi´
on computacional en tiempo real. En las
pruebas realizadas conseguimos un 95,17 % de efectividad con
un 3,2 % de falsos positivos.
Index Terms—detecci´
on, manos, dedos, profundidad, Kinect.
I. INTRODU CCI ´
ON
Sistemas de visi ´on computacional puede ser utilizados para
crear interfaces convincentes para computadoras. Esto se debe
a que es m ´as natural y divertido controlar una computadora
usando el movimiento del cuerpo o gestos de manos y dedos.
Estas formas de interfaz tamben se han visto beneficiadas
de los precios bajos que encontramos en varios de los com-
ponentes que se usan para desarrollar sistemas de visi´on
computacional. Incluso son lo suficientemente baratos para
reemplazar interfaces como botones y palancas.
Muchas interfaces han sido desarrolladas para habilitar
interacciones naturales con manos y dedos. La mayor´ıa de
estos sistemas de visi´on computacional usan c´amaras RGB
tradicionales o infrarrojas [12], [7], [9], [4]. Estos m´etodos
encuentran problemas cuando:
Las manos y el fondo contienen colores similares
Cambios de iluminaci ´on
Reflejos
Sombras
La geometr´ıa del fondo cambia
El objetivo del m´etodo presentado en este escrito es:
desarrollar un sistema de visi ´on computacional en tiempo
real que detecte manos y dedos de forma robusta, utilizando
una c´amara de profundidad. Escogimos este tipo de c´amaras
porque simplifican todo el sistema de detecci ´on. En mayor
parte porque no les afecta los cambios de iluminaci ´on, proveen
informaci´on geom´etrica directamente, y la tecnolog´ıa actual
las hace asequibles y precisas.
Parte importante de nuestro sistema es su estructura. Se
implement´o una plataforma que puede ser utilizada para desa-
rrollar distintos tipos de aplicaciones. Adem´as, la mayor´ıa del
los algoritmos fueron programados en CUDA para conseguir
que nuestro sistema funcione en tiempo real.
Este art´ıculo contin ´ua con la siguiente estructura. En la
siguiente secci´on se describe el hardware que utilizamos y
su posici´on con respecto al usuario. En la secci ´on III, se hace
un an´alisis sobre las metodolog´ıas encontradas en el estado del
arte para detectar manos y dedos. La secci´on IV explica los
pasos del proceso que sigue nuestro sistema. Los resultados
son presentados en la secci´on V y las conclusiones y trabajo
a futuro aparecen en la secci´on VI.
II. HAR DWARE Y DESC RIPC I ´
ON D E LA ES CEN A
Nuestro sistema consiste de una c´amara de profundidad
de bajo costo (Microsoft Kinect Sensor) el cual provee un
mapa de profundidad a una resoluci ´on de 640x480 pixeles a
30 Hz. Objetos entre 0.3 y 3.5 m pueden ser vistos por este
sensor. Para mantener nuestro sistema lo as general posible
optamos por situar la c´amara frente al usuario, de forma que
podamos verlo de la cintura a la cabeza. Tambi´en se considera
que cuando el usuario desea interactuar con el sistema, este
alza sus brazos y muestra sus palmas y dedos como se puede
observar en la Figura 3(a).
III. ESTADO DE L ARTE
En la literatura se pueden encontrar distintas formas de
detectar manos y dedos. Por ejemplo, podemos ver en [6],
[1], [12], [8] que realizan un an´alisis de contorno, otros
etodos usan algoritmos de reconocimiento de objetos [13],
emparejamiento de modelos [4], [10] o c ´alculos morfol´ogicos
[2] para conseguir su objetivo. Cada m ´etodo tiene ventajas,
desventajas y limitaciones. Ahora analizaremos estos distintos.
III-A. An´
alisis de Contorno
III-A1. curvatura-k: Thiago R. Trigo y Sergio Roberto
M. Pellegrino en [12] utilizan el algoritmo curvatura-k para
detectar dedos. El primer paso de este m´etodo es segmentar
las manos y extraer su contorno. Despu´es, para cada uno de
los puntos de los contornos encontrados se corre el algoritmo
curvatura-k. El algoritmo curvatura-k encuentra el ´angulo entre
dos vectores (αyβ) y toma como entradas; la lista ordenada
de puntos que pertenecen al contorno de las manos, y las
constantes kyw. La salida de este algoritmo s´ımplemente
te dice si el punto en cuesti´on es parte o no de la curvatura
especificada por las constantes kyw. La constante ksirve para
formar los ´angulos α(P(ik)) y β(P(i+k)), como se puede
Figura 1. Algoritmo curvatura-k
observar en la Figura 1. La constante wes un umbral medido
en radianes. En la aplicaci´on de este art´ıculo los valores de k
ywson 20 y0,95993 radianes, respectivamente. El valor de k
se encontr´o por prueba y error, y el ´angulo wal, manualmente,
medir los valores de curvatura-k en dedos.
Este m´etodo es preciso y r ´apido pero tiene un gran pro-
blema, la definici ´on de las constantes kyw. En especial,
encontrar el valor de la constante kes m´as complicado porque
el rango de profundidad (distancia entre la c´amara y el usuario)
donde un valor espec´ıfico de kfunciona es muy corto.
III-A2. Aproximaci´
on de contorno Pol´
ıgonos: En [6] pro-
ponen aproximar con pol´ıgonos el contorno de las manos,
hasta el punto en el que cada dedo se representa con dos
vectores. Despu´es a este nuevo contorno aproximado se aplica
el algoritmo ConvexHull. Los vertices de los pol´ıgonos que
se ecuentran sobre el contorno encontrado por el algoritmo
ConvexHull son considerados como dedos.
El problema que presenta este algoritmo es similar al
anterior, se tiene que calibrar para cada aplicaci ´on en especial.
Esto se deba a que la aproximaci´on con pol´ıgonos debe de
ser ajustada dependiando de la distancia entre la c ´amara y el
usuario. Se realizaron pruebas y no se consigui ´o obtener un
nivel de aproximaci´on que funcionara para el rango de visi´on
de nuestro sensor de profundidad.
III-B. Algoritmos de Reconocimiento de Objetos
Estos m´etodos usan algoritmos supervisados de aprendizaje,
por lo tanto, se necesita entrenar el sistema antes de poder
usarlo. Adaboost [3], es el algoritmo m´as popular para esta
tarea porque es r´apido y preciso. Esto se debe a que usa
clasificadores d´ebiles para determinar si una imagen contiene o
no el objeto de inter´es. Aunque este m´etodo es preciso, es muy
dif´ıcil conseguir una buena base de datos de clasificaci´on por
todo el trabajo que se requiere y algunos problemas a los que
puede ser susceptible, como el sobre-entrenamiento. Tampoco
es tan r´apido como al algoritmo curvatura-k.
III-C. Emparejamiento de Modelos
La idea b ´asica del emparejamiento de modelos es crear el
modelo de un objeto de inter´es, en este caso manos y dedos,
y luego buscar en la imagen que se quiera objetos que se
emparejen con el modelo. El modelo puede ser creado usando
Figura 2. Diagrama de Flujo del Algoritmo de Detecci´on de Dedos
emparejamiento de bordes, emparejamiento en escala de grises
o emparejamiento de gradiente. Para atacar el problema de la
rotaci´on y variaci ´on de escala, este m´etodo necesita buscar
usando diferentes modelos. Para un rango espec´ıfico es preciso
pero el buscar en una imagen el modelo sin importar la
escala o rotaci ´on, reduce sustancialmente el desempno de este
algoritmo.
III-D. C´
alculos Morfol´
ogicos
La premisa de este etodo es que los dedos son largos y del-
gados en comparaci´on con la mano. Por lo tanto, desaparecen
cuando un operador de erosi´on es aplicado a una imagen que
contenga una mano. El operador de abrir puede ser utilizado
para detectar dedos al escoger una ventana apropiada y luego
detectando la resta con la imagen original. El resultado de
la resta son blobs de dedos. Como sucede con los m´etodos
previamente analizados, este algoritmo necesita ser ajustado
para que funcione en una aplicaci ´on en espec´ıfico.
IV. NUE STRO SIST EMA
La Figura 2 muestra los pasos que nuestro m´etodo sigue,
tambi´en podemos observar la imagen resultante de cada paso.
(a) Izquierda: Mapa de Profundidad Original. Centro: Segmentaci´on por Profundidad. Derecha: Pre-procesamiento
(b) Izquierda: Extracci´on de Contornos. Centro: curvatura-k. Derecha: Centroides de las Manos y Detecci´on de Dedos
Figura 3. Resultados de Cada Uno de los Pasos de Nuestro Algoritmo
En las siguientes sub-secciones se explicar´a cada paso en
detalle:
1. Segmentaci´
on por Profundidad: Asumiendo que el ob-
jeto m´as cercano a la amara es el objeto de inter ´es,
manos, usamos un filtro de profundidad. Este filtro
elimina de la escena todos los pixeles que est´an fuera del
rango Rango(P C l), d´onde P C es el valor, en cm, del
ıxel m´as cercano a la c´amara. De manera experimental
se encontr ´o el valor ´optimo de lque funciona en el rango
de nuestra c´amara de profundidad. Este valor ´optimo
encontrado fue de 35cm y en la Figura 3(a) podemos
ver la imagen que obtenemos al aplicar este paso.
2. Pre-procesamiento: Primero, un filtro Guassiano es usa-
do para reducir el ruido de la c´amara y asegurarnos
de que pixeles aislados no formen parte de nuestro
objeto de inter´es. Luego un filtro de cerrado morfol´ogico
es aplicado para llenar huecos y suavizar los orillas
externas (Figura 3(a)).
3. Extracci´
on de Contornos: Los contornos son extra´ıdos
usando la implementaci ´on de OpenCV de Approximate
Freeman Chains [11] (Figura 3(a)). Para los pasos
siguientes solamente vamos a tomar en cuenta aquellos
contornos que sean m´as grandes que un umbral dado.
Este umbral se encuentra de forma experimental y
funciona en el rango de 0.3 a 3.5 m.
4. Estimaci´
on de Centroides: Para distintas aplicaciones
es ´util conocer el centroide de las manos (Figura 3(b))
para seguir su posici ´on. Para obtener su centroide, es
acil el calcular los momentos Hu [5] para cada uno de
los contornos con las siguientes f ´ormulas:
A=m0,0
xc=m1,0
A=m1,0
m0,0
yc=m0,1
A=m0,1
m0,0
d´onde (xc, yc)es el centro de gravedad del objeto
5. Algoritmo curvatura-k: Por su velocidad y precisi´on es
que seleccionamos este algoritmo para detectar dedos.
Su ´unica desventaja es encontrar el valor adecuado de
la constante k. Para resolver este problema se defini ´o una
constante kgeneral que funciona en el rango de 0,3a
3,5mque nuestro sensor de profundidad maneja. Usando
nuestro valor kgeneral (15) conseguimos entre 10 y 20
puntos de inter ´es por dedo. Podemos ver el resultado en
la Figura 3(b).
6. Clusterizado: Para conseguir la posici ´on 3D de cada
dedo es necesario clusterizar los puntos obtenidos
en el paso anterior. Para conseguir nuestro objetivo
y mantener la velocidad del algoritmo de detecci´on
de dedos, se implement´o una versi´on modificada de
vecinos cercanos para realizar esta tarea. La idea b´asica
de este m ´etodo es usar el algoritmo de vecinos cercanos
para centrar los centros que el algoritmo AS compute,
este proceso se repite hasta que todos los puntos est´en
clasificados o se llegue a un m´aximo de iteraciones. En
las siguientes ıneas se muestra el pseudoodigo de este
algoritmo:
// Repetir hasta que se llega al umbral
while continuar
// Computar el algoritmo de vecinos cercanos
CentrosInfo = vecCer(centros, inf, umbralK)
// Computar el algoritmo AS
[centrosNuevos] = as(centrosInfo, umbralAS)
// Revisar si se tiene nuevos centros
if centrosNuevos == centros
continuar = 0
break
end
end
V. RE SULTAD OS
Se le pidi´o a 4 personas que probaran nuestro sistema y
conseguimos un 95,17 % de efectividad con un 3,2 % de falsos
positivos en 200 cuadros que fueron analizados. Es dif´ıcil
comparar directamente el desempno de nuestro m´etodo con
otros porque no hay un est´andar para evaluar este tipo de
aplicaciones. Pero podemos concluir que:
Es m´as robusto que m´etodos que usan c´amaras RGB
Es m´as robusto que m´etodos que necesitan calibrarse para
cada aplicaci´on
VI. CON CLU SIONE S Y TRABAJO A FU TURO
Nuestro objetivo se cumpli ´o. Este art´ıculo presenta un
sistema de detecci ´on de manos y dedos que usa mapas de
profundidad y an´alisis de contorno adaptivo. Nuestra t´ecnica
puede detectar manos y dedos en todo el rango en el que
nuestro sensor funciona. Fue implementado en CUDA la
mayor parte de los algoritmos, con lo que conseguimos una
aplicaci´on de visi´on computacional en tiempo real. Tampoco
es afectado por cambios de iluminaci´on, reflejos o sombras.
Como trabajo a futuro desarrollaremos aplicaciones que hagan
uso del sistema propuesto en este art´ıculo. Principalmente nos
interesa trabajar en interfaces naturales que detecten gestos de
manos y dedos en 3D.
REF ERE NCIAS
[1] Jun Rekimoto Adiyan Mujibiya, Takashi Miyaki. Anywhere touchty-
ping: Text input on arbitrary surface using depth sensing. UIST ’10
Adjunct proceedings of the 23nd annual ACM symposium on User
interface software and technology, 2010.
[2] Thien Cong Pham Dung Duc Nguyen and Jae Wook Jeon. Fingertip de-
tection with morphology and geometric calculation. The 2009 IEEE/RSJ
International Conference on Intelligent Robots and Systems, 2009.
[3] Yoav Freund and Robert E. Schapire. A decision-theoretic generalization
of on-line learning and an application to boosting. Journal of Computer
and System Sciences, 1997.
[4] Y. Kobayashi H. Tobita H. Koike, Y. Sato and M. Kobayash. Visual
tracking of bare fngers for interactive surface. ACM Symposium on
User interface Software and Technology (UIST ’04), 2004.
[5] M. K. Hu. Visual pattern recognition by moment invariants. IRE Trans.
Inform. Theory, 1962.
[6] M.J. Thali S. Ross L.C. Ebert, G. Hatch. Invisible touch—control of a
dicom viewer with finger gestures using the kinect depth camera. Journal
of Forensic Radiology and Imaging, Volume 1, Issue 1, 2013.
[7] Byungsung Lee and Junchul Chun. Manipulation of virtual objects in
marker-less ar system by fingertip tracking and hand gesture recognition.
ICIS ’09, 2009.
[8] Byungsung Lee and Junchul Chun. Manipulation of virtual objects in
marker-less ar system by fingertip tracking and hand gesture recognition.
ICIS ’09 Proceedings of the 2nd International Conference on Interaction
Sciences: Information Technology, Culture and Human, 2009.
[9] Taehee Lee and T. Hollerer. Handy ar: Markerless inspection of
augmented reality objects using fingertip tracking. Wearable Computers,
2007 11th IEEE International Symposium on, 2007.
[10] Koike. H Oka. K, Sato. Y. “real-time tracking of multiple fingertips and
gesture recognition for augmented desk interface system. Proceedings of
the Fifth IEEE International Conference on Automatic Face and Gesture
Recognition, 2002.
[11] Naotoshi Seo. Tutorial: Opencv haartraining (rapid object detection
with a cascade of boosted classifiers based on haar-like features).
http://note.sonots.com/SciSoftware/haartraining.html, 2008.
[12] Thiago R. Trigo and Sergio Roberto M. Pellegrino. An analysis of
features for hand-gesture classification. 17th International Conference
on Systems, Signals and Image Processing, 2010.
[13] Liu Yun and Zhang Peng. An automatic hand gesture recognition system
based on viola-jones method and svms. 2009 Second International
Workshop on Computer Science and Engineering, 2009.
... Otros autores (Rudomin et al, 2014y Ryan, 2012 realizan una búsqueda del contorno de la mano basado en sus características morfológicas y, posteriormente, realizan un análisis mediante el algoritmo de curvatura-k, para encontrar los dedos de la mano. Sin embargo, el Kinect, basado en sus principios de funcionamiento, resulta impreciso pues los haces de luz que utiliza tienden a perderse o verse afectados por distintas condiciones físicas del ambiente en que opera, generando lecturas erróneas. ...
Article
Full-text available
En este artículo se presenta la investigación realizada referente al impacto que tiene la publicidad en la mente del consumidor, al igual que el auge que tiene el mobile marketing en el mercado. Se enfatiza en la importancia de crear en la mente del consumidor una imagen adecuada del producto, esto con la finalidad de lograr que se interesen por el producto. Se muestra la idea de creación de una agencia publicitaria, la cual tiene una ventaja sobre la competencia, debido a que cuenta con innovación que relaciona el mobile marketing con la integración de hologramas, lo que permitirá que el cliente visualice con atención el producto. Cabe resaltar que se desglosa la idea del negocio a través de dicha investigación resulta factible y viable.
Conference Paper
Full-text available
We propose a fast and robust method for tracking a user's hand and multiple fingertips; we then demonstrate gesture recognition based on measured fingertip trajectories for augmented desk interface systems. Our tracking method is capable of tracking multiple fingertips in a reliable manner even in a complex background under a dynamically changing lighting condition without any markers. First, based on its geometrical features, the location of each fingertip is located in each input infrared image frame. Then, correspondences of detected fingertips between successive image frames are determined based on a prediction technique. Our gesture recognition system is particularly advantageous for human-computer interaction (HCI) in that users can achieve interactions based on symbolic gestures at the same time that they perform direct manipulation with their own hands and fingers. The effectiveness of our proposed method has been successfully demonstrated via a number of experiments.
Conference Paper
Full-text available
We present markerless camera tracking and user interface methodology for readily inspecting augmented reality (AR) objects in wearable computing applications. Instead of a marker, we use the human hand as a distinctive pattern that almost all wearable computer users have readily available. We present a robust real-time algorithm that recognizes fingertips to reconstruct the six-degree-of-freedom camera pose relative to the user's outstretched hand. A hand pose model is constructed in a one-time calibration step by measuring the fingertip positions in presence of ground-truth scale information. Through frame-by-frame reconstruction of the camera pose relative to the hand, we can stabilize 3D graphics annotations on top of the hand, allowing the user to inspect such virtual objects conveniently from different viewing angles in AR. We evaluate our approach with regard to speed and accuracy, and compare it to state-of-the-art marker-based AR systems. We demonstrate the robustness and usefulness of our approach in an example AR application for selecting and inspecting world-stabilized virtual objects.
Article
In this paper, touch typing enabled virtual keyboard system using depth sensing on arbitrary surface is proposed. Keystroke event detection is conducted using 3-dimensional hand appearance database matching combined with fingertip's surface touch sensing. Our prototype system acquired hand posture depth map by implementing phase shift algorithm for Digital Light Processor (DLP) fringe projection on arbitrary flat surface. The system robustly detects hand postures on the sensible surface with no requirement of hand position alignment on virtual keyboard frame. The keystroke feedback is the physical touch to the surface, thus no specific hardware must be worn. The system works real-time in average of 20 frames per second.
Article
In this paper we present an automatic hand gesture recognition system operating on video stream. The system consists of two modules: hand gesture detection module and hand gesture recognition module. The detection module could accurately locate the hand regions with a blue rectangle; this is mainly based on Viola-Jones method, which is currently considered the fastest and most accurate learning-based method for object detection. In the recognition module, the Hu invariant moments feature vectors of the detected hand gesture are extracted and a Support Vector Machines (SVMs) classifier is trained for final recognition, due to its high generalization performance without the need to add a priori knowledge. The performance of the proposed system is tested through a series of experiments and a simple Human-Computer Interaction application based on hand gesture recognition method is finally developed.
Article
the human-computer interaction, also known as HCI, depends mostly on physical devices. The goal of this work is the evaluation and analysis of methods which allows the user to interact to machines using a hand gesture based natural language. Here we present some approaches which are used in HCI systems based on hand gesture and a new proposal that uses geometric shape descriptors for hand gesture classification. The results analysis shows that this new proposal beats some limitations of other known HCI methods.
Article
In the first part of the paper we consider the problem of dynamically apportioning resources among a set of options in a worst-case on-line framework. The model we study can be interpreted as a broad, abstract extension of the well-studied on-line prediction model to a general decision-theoretic setting. We show that the multiplicative weight-update Littlestone-Warmuth rule can be adapted to this model, yielding bounds that are slightly weaker in some cases, but applicable to a considerably more general class of learning problems. We show how the resulting learning algorithm can be applied to a variety of problems, including gambling, multiple-outcome prediction, repeated games, and prediction of points in n. In the second part of the paper we apply the multiplicative weight-update technique to derive a new boosting algorithm. This boosting algorithm does not require any prior knowledge about the performance of the weak learning algorithm. We also study generalizations of the new boosting algorithm to the problem of learning functions whose range, rather than being binary, is an arbitrary finite set or a bounded segment of the real line.
Conference Paper
In this paper, we present a vision-based approach to control the augmented reality (AR) objects robustly in a marker-less AR system. It is known that one of the promising ways to develop a marker-less AR system is using human's body such as hand or face for replacing fiducial markers. This paper presents a real-time method to manipulate the AR objects dynamically in a developed 3D hand coordinate system. To build the marker-less system, we utilize YCbCr skin-color model for hand shape detection and curvature-based fingertip detection from an input video images. Using the detected fingertips the camera pose are estimated to register virtual objects on the hand coordinate system. In order to control the movements of the virtual objects rendered on the marker-less AR system dynamically, a vision-based hand control interface, which exploits optical flow for the movement of the objects and pattern recognition for the hand command initiation, is developed. From the experiments we can prove that the proposed hand mouse can manipulate the objects in a feasible fashion.
Conference Paper
We present a method to detect human fingertips from images captured by a stereo camera. The system makes use of the disparity information from a stereo camera to find candidates, and defines an evaluation process to detect two hands. The finger detector then processes each hand image to extract finger images. Finally, we perform geometric calculations on the results to relocate the positions of the fingertips. The proposed method is not complex; however, it shows exciting results in terms of run time and detection rates. The extraction result can be used in hand configuration modeling for gesture recognition in HCI systems.