B- Kiraya verenin hakları
1. Kira bedelini talep hakkı
Para trabalhos futuros pode-se melhorar a velocidade geral do algoritmo com a otimiza¸c˜ao das fun¸c˜oes de filtros e das fun¸c˜oes de controle da localiza¸c˜ao dos picos e vales da imagem. Al´em da possibilidade de reconhecimento de gestos mais sofisticados com a integra¸c˜ao completa de m´ultiplas m˜aos, propiciando inclusive a interpreta¸c˜ao de sinais, dire¸c˜oes e sentidos que por ventura sejam captados pela cˆamera. Isto poderia deixar o uso do robˆo m´ovel mais intuitivo e simples, podendo ser ser utilizado por qualquer usu´ario experiente ou novato, melhorando a integra¸c˜ao entre homem/m´aquina.
A utiliza¸c˜ao de uma cˆamera de alta defini¸c˜ao aliada a um sensor de profundidade infra vermelho (algo similar pode ser visto no Kinect, que pode ser utilizado no Microsoft Xbox One) pode ajudar muito no reconhecimento de articula¸c˜oes do corpo humano. O pr´oprio Kinect, figura (49), seria uma boa plataforma para aquisi¸c˜ao de imagens, uma vez que al´em do pre¸co relativamente baixo o Kinect (menos de $ 200,00 d´olares) possui:
• Cerca de 23 cm de comprimento; • Cˆamera Full HD;
• Suporta linguagens de programa¸c˜ao como C++, C#, VB.Net, Cx e JavaScript. • Sensor de profundidade infra vermelho;
• Microfone embutido;
• Processador embarcado e software;
• Detecta 48 pontos de articula¸c˜ao do nosso corpo, ou seja, possui uma precis˜ao muito boa.
Figura 49 - Kinect utilizado no Xbox One
Fonte: (MICROSOFT,2015)
A utiliza¸c˜ao conjunta das bibliotecas OpenCV e OpenNI, que possuem excelentes rotinas para utiliza¸c˜ao no campo de vis˜ao computacional. Inclusive o pr´oprio OpenNI, a qual possui fun¸c˜oes e procedimentos para serem utilizadas com o Kinect.
Aquisi¸c˜ao de novos acess´orios para o robotino, pois o mesmo oferece uma gama muito grande para ampliar ainda mais o uso e a facilidade de programa¸c˜ao do mesmo. Dentre os principais acess´orios que podem ser adquiridos, destacam-se:
• Pin¸ca El´etrica: para permitir que o Robotino possa agarrar objetos, com for¸ca m´axima de aperto de 140 N, figura (50a);
• M´odulo Forklift: para permitir que o Robotino possa levantar objetos, com ca- pacidade de i¸camento de at´e 4 Kg, figura (50b);
• Laser Scanner: para permitir que o Robotino possa fazer o mapeamento da ´area de trabalho, localiza¸c˜ao e navega¸c˜ao, assim como reconhecimento de obst´aculos. Alcance entre 20 - 5600 mm, figura (50c).
Figura 50 - Acess´orios do Robotino
REFERˆENCIAS
ARA ´UJO, S. A. de; LIBRANTZ, A. F. H. Vis˜ao e inteligˆencia computacionais aplicadas a navega¸c˜ao autˆonoma de robˆos. Exacta, Universidade Nove de Julho, v. 4, n. 2, p. 343–352, 2006. 18
BACKS, ANDR´E. Filtragem no Dom´ınio da Frequˆencia. 2010. Dispon´ıvel em: <http://www.facom.ufu.br/~backes/gsi058/Aula07-FiltragemFrequencia.pdf>. Acesso em: 24 de setembro 2015. 29
BALLARD, D. H.; BROWN, C. M. Computer Vision. [S.l.]: Prentice-Hall, Inc., 1982.
16
BASILIO, J. A. Applications of mathematics and computer engineering. American Conference on APPLIED MATHEMATICS(AMERICAN-MATH ’11), 2011. 42
BERG, M. D.; KREVELD, M. V.; OVERMARS, M.; SCHWARZKOPF, O. C. Computational geometry. [S.l.]: Springer, 2000. 32,33
BRADSKI, G.; KAEHLER, A. Learning OpenCV: Computer vision in C++ with the OpenCV library. [S.l.]: O’Reilly Media, Inc., 2012. 23,29,30, 33, 34,37
CAMPONOGARA, E. Matr´oides. 2014. Dispon´ıvel em: <http://user.das.ufsc.br/ ~camponog/Disciplinas/DAS-9003/slides_CLR/l17-matroides.pdf>. Acesso em: 25 de setembro 2015. 33
CHAZELLE, B. An optimal convex hull algorithm in any fixed dimension. Discrete & Computational Geometry, Springer, v. 10, n. 1, p. 377–409, 1993. 33
CODEPROJECT. Convex Hull. 2008. Dispon´ıvel em:
<http://www.codeproject.com/Articles/29275/Convex-Hull>. Acesso em: 23 de fevereiro 2015. 32
CROWLEY, J. L.; CHRISTENSEN, H. I.; CHEHIKIAN, A. Vision as process: basic research on computer vision systems. [S.l.]: Springer Science & Business Media, 1994. 17
DU, H.; TO, T. Hand gesture recognition using kinect. Techical Report, Boston University, 2011. 28
FACON, J. A Morfologia Matem´atica e suas Aplica¸c˜oes em Processamento de Imagens. 2011. Dispon´ıvel em:
<http://www.ppgia.pucpr.br/~facon/Books/2011WVCMinicurso2Morfo.pdf>. Acesso em: 24 de setembro 2015. 30,31
FESTO. Festo. 2014. Dispon´ıvel em: <http://www.festo-didactic.com/br-pt/ sistemas-de-ensino/robotino/?fbid=YnIucHQuNTM3LjIzLjIwLjg1OA>. Acesso em: 01 de fevereiro 2014. 17
. Festo Didactic. 2015. Dispon´ıvel em:
<http://www.festo-didactic.com/br-pt/sistemas-de-ensino/robotino/?fbid= YnIucHQuNTM3LjIzLjIwLjg1OA&page=2&offset=0&showitems=8>. Acesso em: 17 de mar¸co 2015. 69
. Robotino vista frontal. 2015. Dispon´ıvel em:
<http://sysmagazine.com/posts/113536/>. Acesso em: 21 de fevereiro 2015. 49, 50
. Roda mecanum. 2015. Dispon´ıvel em:
<http://grabcad.com/library/festo-wheel-robot-robotino>. Acesso em: 21 de fevereiro 2015. 49
FLEMING H. F´ormulas de Green. 2013. Dispon´ıvel em:
<http://www.fma.if.usp.br/~fleming/laplace/node2.html>. Acesso em: 23 de setembro 2015. 26
FRIEDEN, B. R. A new restoring algorithm for the preferential enhancement of edge gradients. In: INTERNATIONAL SOCIETY FOR OPTICS AND PHOTONICS. Image Processing. [S.l.], 1976. p. 44–48. 27
FUTURELAB. Audi Apresenta Conceito de Display Automotivo Controlado por Gestos. 2015. Dispon´ıvel em: <http://futurelab.com.br/site/futureblog/ audi-apresenta-conceito-de-display-automotivo-controlado-por-gestos/>. Acesso em: 22 de setembro 2015. 18
. Mercedes Apresenta Conceito de Controle por Gestos. 2015. Dispon´ıvel em: <http://futurelab.com.br/site/futureblog/
mercedes-benz-apresenta-conceito-de-controle-por-gestos/>. Acesso em: 22 de setembro 2015. 18
GLASNER, KARL. Mathematics. 2014. Dispon´ıvel em:
<http://math.arizona.edu/~kglasner/math456/greens.pdf>. Acesso em: 20 de fevereiro 2014. 24
GONZALEZ, R. C.; WOODS, R. E.; EDDINS, S. L. Digital image processing using MATLAB. [S.l.]: Pearson Education India, 2004. 28
HAMANN, R. Tendˆencias Tecn´ologicas para os Pr´oximos Anos. 2014. Dispon´ıvel em: <http://www.tecmundo.com.br/futuro/
52825-5-tendencias-tecnologicas-para-os-proximos-anos.htm>. Acesso em: 28 de setembro 2015. 43
HAMLYNKINECT. Hand detection algorithms. 2015. Dispon´ıvel em:
<http://hamlynkinect.wikispaces.com/Hand+Detection+Algorithms>. Acesso em: 22 de fevereiro 2015. 38
HENK, M.; RICHTER-GEBERT, J.; ZIEGLER, G. M. 16 basic properties of convex polytopes. Handbook of discrete and computational geometry, CRC Press, p. 355, 2004. 33
HOMMA, K.; TAKENAKA, E.-i. An image processing method for feature extraction of space-occupying lesions. Journal of nuclear medicine: official publication,
Society of Nuclear Medicine, v. 26, n. 12, p. 1472–1477, 1985. 33
HONDA. Honda. 2015. Dispon´ıvel em: <http:
//thecoolgadgets.com/wp-content/uploads/2011/04/honda-asimo-soccer.jpg>. Acesso em: 21 de fevereiro 2015. 17
HUANG, T.; YANG, G.; TANG, G. A fast two-dimensional median filtering algorithm. Acoustics, Speech and Signal Processing, IEEE Transactions on, IEEE, v. 27, n. 1, p. 13–18, 1979. 27
IBA, S. An architecture for gesture-based control of mobile robots. The Institute for Complex Engineered Systems Carnegie Mellon University, Carnegie Mellon University, v. 1, n. 1, p. 1–7, 1999. 18, 34
IG. Volkswagen mosrta Golf controlado por gestos. 2015. Dispon´ıvel em:
<http://carros.ig.com.br/noticias/volkswagen+mostra+golf+controlado+por+ gestos/8516.html>. Acesso em: 22 de setembro 2015. 18
IMAGESURVEY. 2010. Dispon´ıvel em:
<http://www.imagesurvey.com.br/2010/03/filtro-de-mediana/>. Acesso em: 18 de fevereiro 2014. 27
J ´ACOBO, J. E. A. Desenvolvimento de um Robˆo Autˆonomo M´ovel Vers´atil utilizando Arquitetura Subsumption. Disserta¸c˜ao (Disserta¸c˜ao de Mestrado) — Universidade Estadual de Campinas, 2001. 19
JAYANT, N. Average-and median-based smoothing techniques for improving digital speech quality in the presence of transmission errors. Communications, IEEE Transactions on, IEEE, v. 24, n. 9, p. 1043–1045, 1976. 27
KAURA, H. K. Gesture controlled robot using image processing. International Journal of Advanced Research in Artificial Intelligence, IJARAI, v. 2, n. 5, p. 69–77, 2013. 18, 35
KNUTH, D. E.; KNUTH, D. E.; KNUTH, D. E. Axioms and hulls. [S.l.]: springer-Verlag Berlin, 1992. 32, 33
KUKHAREV, G.; NOWOSIELSKI, A. Visitor identification-elaborating real time face recognition system. V´aclav Skala-UNION Agency, 2004. 42
KUKURUKU. Building a minimal Convex Hull. 2014. Dispon´ıvel em:
<http://kukuruku.co/hub/algorithms/building-a-minimal-convex-hull>. Acesso em: 23 de fevereiro 2015. 32
LINUX MAGAZINE ONLINE. Linux. 2015. Dispon´ıvel em:
<http://www.linuxnewmedia.com.br/images/uploads/news/ccv_pedestrian.png>. Acesso em: 21 de fevereiro 2015. 16
MAGAZINE, PC. Definition of YCbCr. 2016. Dispon´ıvel em:
<http://www.pcmag.com/encyclopedia/term/55147/ycbcr>. Acesso em: 30 de abril 2016. 22
MICROSOFT. Microsoft Store. 2015. Dispon´ıvel em:
<https://devices.microsoftstore.com/pt-BR/xbox-one/console.html>. Acesso em: 17 de mar¸co 2015. 69
MUIR, P. F. Modeling and control of wheeled mobile robots. Tese (Doutorado) — Citeseer, 1988.
OPENCV. OpenCV. 2014. Dispon´ıvel em: <http://opencv.org/>. Acesso em: 01 de fevereiro 2014. 38
ORLANDINI, G. Desenvolvimento de Aplicativos Baseados em T´ecnicas de Vis˜ao Computacional para Robˆo M´ovel Autˆonomo. Disserta¸c˜ao (Disserta¸c˜ao de Mestrado) — Universidade Metodista de Piracicaba, 2012. 17
OSRAM. Lˆampada Fluorecente com Reator Integrado. 2015. Dispon´ıvel em: <http://www.osram.com.br/osram_br/produtos/lampadas/
compact-fluorescent-lamps-with-integrated-control-gear/osram-duluxstar/ osram-duluxstar-stick/index.jsp>. Acesso em: 20 de setembro 2015. 44
POYNTON, C. Digital video and HD: Algorithms and Interfaces. [S.l.]: Elsevier, 2012. 22, 23
PRATT, W. K. Median filtering. in Semiannual Report, Image Processing Institute, Univ. of Southern California, p. 116–123, 1975. 27
RABINER, L.; SAMBUR, M.; SCHMIDT, C. Applications of a nonlinear smoothing algorithm to speech processing. Acoustics, Speech and Signal Processing, IEEE Transactions on, IEEE, v. 23, n. 6, p. 552–557, 1975. 27
RILEY, K. F.; HOBSON, M. P.; BENCE, S. J. Mathematical methods for physics and engineering. [S.l.]: Cambridge University Press, 2006. 43
SAPACHAN. Harth of darkness. 2015. Dispon´ıvel em: <http://sapachan. blogspot.com.br/2010/04/learning-opencv-contour-convexity-and.html>. Acesso em: 22 de fevereiro 2015. 34
SERRA, J. Image analysis and mathematical morphology. [S.l.]: Academic Press, Inc., 1983. 30, 31
SUZUKI, S. et al. Topological structural analysis of digitized binary images by border following. Computer Vision, Graphics, and Image Processing, Elsevier, v. 30, n. 1, p. 32–46, 1985. 24
SZELISKI, R. Computer vision: algorithms and applications. [S.l.]: Springer Science & Business Media, 2010. 23
TECMUNDO. Natureza da cor. 2009. Dispon´ıvel em:
<http://www.tecmundo.com.br/video/2481-o-que-e-espaco-de-cores-.htm>. Acesso em: 23 de fevereiro 2015. 23
TUKEY, J. W. Exploratory data analysis. Reading, Mass., 1977. 27
VELHO, LUIZ. Material de aula do curso de Image Processing and Computer Graphics, IMPA. 2008. Dispon´ıvel em:
<http://www.visgraf.impa.br/Courses/ipcg.html>. Acesso em: 17 de fevereiro 2014. 26
VICTORINO, A. Controle de trajet´oria e estabiliza¸c˜ao de robˆos m´oveis
n˜ao-holonˆomicos. Controle de trajet´oria e estabiliza¸c˜ao de robˆos m´oveis n˜ao-holonˆomicos, 1998. 19
WALDHERR, S. A gesture based interface for human-robot interaction. Kluwer Academic Publishers, Kluwer Academics, v. 1, n. 1, p. 1–39, 2000. 17, 34
YOUNG, T.; KELLAND, P. A Course of Lectures on Natural Philosophy and the Mechanical Arts: pt. I. Mechanics. pt. II. Hydrodynamics. pt. III. Physics. [S.l.]: Taylor and Walton, 1845. 22
Nesta sess˜ao encontram-se dispon´ıveis c´odigos-fontes de algumas fun¸c˜oes/procedi- mentos relacionados aos experimentos realizados no programa de vis˜ao computacional.
Fun¸c˜ao Respons´avel pelo C´alculo do COG
1 Po i nt C Cog ( Mat Tela , Mat Skin )
{
3 Moments moment = moments ( Skin , t r u e) ;
d o u b l e xCenter = moment . m10 / moment . m00 ;
5 d o u b l e yCenter = moment . m01 / moment . m00 ;
Po i nt c e n t e r ( (i n t) xCenter , (i n t) yCenter ) ; 7 s t r i n g s c o g = ” [ ” + t o s t r i n g ( c e n t e r . x ) + ” , ” + t o s t r i n g ( c e n t e r . y ) + ” ] ” ; 9 cv : : c i r c l e ( Tela , c e n t e r , 8 , S c a l a r ( 0 , 0 , 2 5 5 ) , CV FILLED) ; // C i r c u l o do C .O.G cv : : l i n e ( Tela , P o int ( c e n t e r . x − 1 0 , c e n t e r . y ) , Po i nt ( c e n t e r . x + 1 0 , c e n t e r . y ) , S c a l a r : : a l l ( 2 5 5 ) , 1 , 8 ) ; // Cruz H o r i z o n t a l
11 cv : : l i n e ( Tela , P o int ( c e n t e r . x , c e n t e r . y − 1 0 ) , P o int ( c e n t e r . x , c e n t e r . y +
1 0 ) , S c a l a r : : a l l ( 2 5 5 ) , 1 , 8 ) ; // Cruz V e r t i c a l
cv : : putText ( Tela , scog , Po i nt ( c e n t e r . x , c e n t e r . y ) ,
FONT HERSHEY COMPLEX SMALL, 1 , S c a l a r : : a l l ( 2 5 5 ) , 1 , 8 ) ; // Coordenada do C .O.G
13
r e t u r n c e n t e r ;
15 }
Procedimento para a Extra¸c˜ao de Features da Imagem
1 v o i d s k i n E x t r a c t (c o n s t Mat &frame , Mat &s k i n A r e a )
{
3 Mat YCbCr ;
v e c t o r <Mat> p l a n e s ;
5
cv : : medianBlur ( frame , frame , 1 7 ) ;
7 // cv : : b l u r ( frame , frame , S i z e ( 1 0 , 1 0 ) , Po i nt ( −1 , −1) , 4 ) ;
G a u s s i a n B l u r ( frame , frame , S i z e ( 2 5 , 2 5 ) , 0 , 0 , BORDER DEFAULT) ;
9
c v t C o l o r ( frame , YCbCr , CV RGB2YCrCb) ;
11 s p l i t (YCbCr , p l a n e s ) ;
13 // Uso de i t e r a t o r s : a c e s s a r o s e l e m e n t o s da m a t r i z
M a t I t e r a t o r <uchar> i t C b = p l a n e s [ 1 ] . begin <uchar >() ;
15 M a t I t e r a t o r <uchar> i t C b e n d = p l a n e s [ 1 ] . end<uchar >() ;
17 M a t I t e r a t o r <uchar> i t s k i n = s k i n A r e a . begin <uchar >() ;
19 // Espa¸co de c o r YCbCr d i s t r i b u i ¸c ˜a o
// Cor da p e l e humana : 100 <= Cb <= 1 2 7 , 138 <= Cr <= 170
21 // HSV − S c a l a r ( 0 , 0 , 3 9 ) , S c a l a r ( 3 6 0 , 4 9 , 3 6 0 )
f o r ( ; i t C b != i t C b e n d ; ++i t C r , ++it Cb , ++i t s k i n )
23 {
i f ( 1 0 0 <= ∗ i t C b && ∗ i t C b <= 127 && 138 <= ∗ i t C r && ∗ i t C r <= 1 7 0 )
25 ∗ i t s k i n = 2 5 5 ;
e l s e
27 ∗ i t s k i n = 0 ;
}
29
cv : : d i l a t e ( skinArea , skinArea , Mat ( 5 , 5 , CV 8UC1) , P o int ( −1 , −1) ) ;
31 cv : : e r o d e ( skinArea , skinArea , Mat ( 5 , 5 , CV 8UC1) , P o int ( −1 , −1) ) ;
}
Procedimento para a Amostragem de Textos na Tela
v o i d Texto ( s t r i n g& t e x t , Mat& show , i n t e s c a l a x , i n t e s c a l a y , s t r i n g& t e l a )
2 {
Po i nt textOrg ( 1 0 ∗ e s c a l a x , 30 + e s c a l a y ) ;
4 i n t f o n t F a c e = FONT HERSHEY COMPLEX SMALL;
d o u b l e f o n t S c a l e = 2 ;
6 i n t t h i c k n e s s = 1 ;
S c a l a r c o r = S c a l a r ( 0 , 2 5 5 , 0 ) ; // v e r d e
8
namedWindow ( t e l a , CV WINDOW AUTOSIZE) ;
10 putText ( show , t e x t , textOrg , f o n t F a c e , f o n t S c a l e , cor , t h i c k n e s s , 8 ) ;
imshow ( t e l a , show ) ;
12 }
Procedimento para a Amostragem das Legendas na Tela
v o i d Legendas ( Mat &l e g e n d a , s t r i n g &t e l a )
2 {
u n s i g n e d i n t c o n t r o l e = 0 ;
4 i n t f o n t F a c e = FONT HERSHEY COMPLEX SMALL;
d o u b l e f o n t S c a l e = 2 ; 6 i n t t h i c k n e s s = 1 ; S c a l a r c o r = S c a l a r ( 0 , 2 5 5 , 0 ) ; // v e r d e 8 v e c t o r <s t r i n g > t e x t o = { 10 ” 0 : Robo g i r a em c i r c u l o s . ”, ” 1 : Robo seguem em f r e n t e . ”, 12 ” 2 : Robo v i r a a d i r e i t a . ”,
” 3 : Robo v i r a a e s q u e r d a . ”,
14 ” 4 : Robo v a i para t r a z . ”,
” 5 : Robo para . ”
16 } ;
18 namedWindow ( t e l a , CV WINDOW AUTOSIZE) ;
20 f o r (u n s i g n e d i n t i = 0 ; i < t e x t o . s i z e ( ) ; i ++)
{
22 Po i nt ptex ( 1 0 , 30 + c o n t r o l e ) ;
24 putText ( l e g e n d a , t e x t o . a t ( i ) , ptex , f o n t F a c e , f o n t S c a l e , cor , t h i c k n e s s
, 8 ) ;
c o n t r o l e += 5 0 ;
26 }
28 imshow ( t e l a , l e g e n d a ) ;
B ANEXO
O DVD em anexo cont´em as seguintes informa¸c˜oes: • C´odigos fonte do software;
• Biblioteca OpenCV release 2.4.10; • API 1.1 do Robotino;
• Aplicativo Robotino SIM (programa de simula¸c˜ao virtual do Robotino); • Aplicativo Robotino VIEW (programa de controle de diagrama de blocos); • V´ıdeos dos trabalhos executados.