• Nenhum resultado encontrado

Controle de um robô colaborativo por reconhecimento de fala

N/A
N/A
Protected

Academic year: 2022

Share "Controle de um robô colaborativo por reconhecimento de fala"

Copied!
102
0
0

Texto

(1)

AUTOMAÇÃO

CLAUDIO PATROCINIO JUNIOR

CONTROLE DE UM ROBÔ COLABORATIVO POR RECONHECIMENTO DE FALA

Serra 2022

(2)

CONTROLE DE UM ROBÔ COLABORATIVO POR RECONHECIMENTO DE FALA

Dissertação apresentada ao Programa de Pós- graduação em Engenharia de Controle e Automação do Instituto Federal do Espírito Santo como requisito parcial para a obtenção do título de Mestre em Engenharia de Controle e Automação.

Orientador: Prof. Dr. Flávio Garcia Pereira Coorientador: Prof. Dr. Cassius Zanetti Resende

Serra 2022

(3)

Bibliotecária Rogeria Gomes Belchior - CRB6/ES 417

P314c

2022 Patrocinio Junior, Claudio

Controle de um robô colaborativo por reconhecimento de fala / Claudio Patrocino Junior. - 2022.

100 f.; il.; 30 cm

Orientador: Prof. Dr. Flávio Garcia Pereira.

Coorientador: Prof. Dr. Cassius Zanetti Resende.

Dissertação (mestrado) - Instituto Federal do Espírito Santo, Programa de Pós-graduação em Engenharia de Controle de Automação, 2022.

1. Robôs. 2. Reconhecimento automático da voz. 3. Inteligência artificial. 4. Interação homem-máquina. 5. Sistemas de

reconhecimento de padrões. I. Pereira, Flávio Garcia. II. Resende, Cassius Zanetti. III. Instituto Federal do Espírito Santo. IV. Título.

CDD 629.892

(4)

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO

CLAUDIO PATROCINIO JUNIOR

“CONTROLE DE UM ROBÔ COLABORATIVO POR RECONHECIMENTO DE FALA”

Dissertação apresentada ao Programa de Pós- graduação em Engenharia de Controle e Automação do Instituto Federal do Espírito Santo como requisito parcial para a obtenção do título de Mestre em Engenharia de Controle e Automação.

Aprovado em 06 de outubro de 2022

COMISSÃO EXAMINADORA

________________________________________________

Prof. Dr. Flávio Garcia Pereira Instituto Federal do Espírito Santo

Orientador

________________________________________________

Prof. Dr. Cassius Zanetti Resende Instituto Federal do Espírito Santo

Coorientador

________________________________________________

Prof. Dr. Daniel Cruz Cavalieri Instituto Federal do Espírito Santo

Examinador Interno da Banca

________________________________________________

Profa. Dra. Mariana Rampinelli Fernandes Instituto Federal do Espírito Santo

Examinadora Externa da Banca

(5)

CONTRATOS

Emitido em 13/10/2022

FOLHA DE APROVAÇÃO-TCC Nº 21/2022 - SER-CGEN (11.02.32.01.08.02) NÃO PROTOCOLADO)

(Nº do Protocolo:

(Assinado digitalmente em 17/10/2022 11:18 ) CASSIUS ZANETTI RESENDE

PROFESSOR DO ENSINO BASICO TECNICO E TECNOLOGICO SER-CGEN (11.02.32.01.08.02)

Matrícula: 1435386

(Assinado digitalmente em 13/10/2022 15:17 ) DANIEL CRUZ CAVALIERI

PROFESSOR DO ENSINO BASICO TECNICO E TECNOLOGICO SER-CGEN (11.02.32.01.08.02)

Matrícula: 1986870

(Assinado digitalmente em 13/10/2022 14:33 ) FLAVIO GARCIA PEREIRA

PROFESSOR DO ENSINO BASICO TECNICO E TECNOLOGICO SER-CGEN (11.02.32.01.08.02)

Matrícula: 1813013

(Assinado digitalmente em 13/10/2022 17:21 ) MARIANA RAMPINELLI FERNANDES

PROFESSOR DO ENSINO BASICO TECNICO E TECNOLOGICO VIT-CCTE (11.02.35.01.09.02.19)

Matrícula: 2071531

Para verificar a autenticidade deste documento entre em https://sipac.ifes.edu.br/documentos/ informando seu número: 21, ano: 2022, tipo: FOLHA DE APROVAÇÃO-TCC, data de emissão: 13/10/2022 e o código de

verificação: 1c4ceee519

(6)

Primeiramente a Deus, por ser a base de todas as minhas conquistas.

À minha família, por me motivar em todos os momentos.

A todos os professores que compartilharam seus conhecimentos, em especial, meus orientadores Prof. Dr. Flávio Garcia Pereira e Prof. Dr. Cassius Zanetti Resende.

Ao IFES – Campus Serra por disponibilizar a estrutura necessária para realização do meu trabalho.

Por fim, a todos que, diretamente ou indiretamente, fizeram parte dessa conquista

(7)

“O temor do Senhor é o princípio da sabedoria.”

Provérbios 9:10

(8)

Com a expansão da Indústria 4.0, a inovação industrial tem demandado sistemas de produção mais autônomos, adaptativos e flexíveis. Neste cenário, a utilização de robôs colaborativos vem proporcionando diversos benefícios. Robôs colaborativos, ou Cobots, são projetados para realizar tarefas em colaboração com humanos.

Porém, apesar das vantagens, projetar uma interação homem-robô eficaz, mesmo em ambientes colaborativos, não é uma tarefa trivial. Uma forma de minimizar esses desafios é a implementação de um recurso que permita a interação entre humanos e Cobots através do reconhecimento de fala. Dentro deste contexto, pergunta-se, é possível o desenvolvimento de uma alternativa de controle de um Cobot utilizando um sistema de reconhecimento de fala desenvolvido através de conceitos de inteligência artificial? Assim, o objetivo principal deste trabalho é desenvolver uma alternativa de controle de um Cobot utilizando um sistema de reconhecimento de fala. Para o desenvolvimento do sistema de reconhecimento de fala foram utilizadas técnicas de aprendizado profundo: CNN e LSTM. Já o desenvolvimento da programação dos movimentos do Cobot, foram adaptadas funções de uma biblioteca já existente. Também foi desenvolvida uma interface gráfica para configurar e auxiliar na execução do controle do Cobot. Durante os testes, foi possível observar que, tanto no ambiente de simulação quanto no ambiente real, o Cobot executou as ações de movimento corretamente conforme os comandos definidos, tornando a programação mais intuitiva e dinâmica ao mesmo tempo que acrescenta um elemento com consciência humana num ambiente colaborativo.

Palavras-chave: Robôs Colaborativos, Reconhecimento de Fala, Aprendizado Profundo.

(9)

With the expansion of Industry 4.0, industrial innovation has demanded more autonomous, adaptive and flexible production systems. In this scenario, the use of collaborative robots has provided several benefits. Collaborative robots, or Cobots, are designed to perform tasks in collaboration with humans. However, despite the advantages, designing an effective human-robot interaction, even in collaborative environments, is not a trivial task. One way to minimize these challenges is to implement a feature that allows interaction between humans and Cobots through speech recognition. Within this context, the question is, is it possible to develop an alternative to control a Cobot using a speech recognition system developed through artificial intelligence concepts? Thus, the main objective of this work is to develop an alternative to control a Cobot using a speech recognition system. For the development of the speech recognition system, deep learning techniques were used:

CNN and LSTM. As for the development of programming the Cobot movements, functions from an existing library were adapted. A graphical interface was also developed to configure and assist in the execution of the Cobot control. During the tests, it was possible to observe that, both in the simulation environment and in the real environment, the Cobot performed the movement actions correctly according to the defined commands, making programming more intuitive and dynamic while adding an element with human consciousness to a collaborative environment.

Keywords: Collaborative Robots, Speech Recognition, Deep Learning.

(10)

Figura 01 Forma de onda da fala de uma expressão "I like digital signal

processing". ... 20

Figura 02 Versão ampliada de /i/ na palavra “like” ... 20

Figura 03 Versão ampliada de /s/ na palavra “processing” ... 21

Figura 04 Etapas de um típico sistema de reconhecimento de fala ... 23

Figura 05 Rede Neural Convolucional para processamento de imagem ... 25

Figura 06 Rede Neural Convolucional para dados de uma dimensão ... 26

Figura 07 Estrutura de uma LSTM ... 27

Figura 08 Conceito inicial de um Cobot ... 28

Figura 09 Sensores de força e torque na estrutura e juntas ... 29

Figura 10 Tipos de colaboração com robôs industriais ... 29

Figura 11 Esquemático do sistema proposto ... 31

Figura 12 Cobot UR3e ... 32

Figura 13 Porta Ethernet do Cobot UR3e ... 33

Figura 14 Garra Co-act EGP-C ... 33

Figura 15 Série temporal do comando “one” ... 36

Figura 16 Espectrograma do comando “one” ... 37

Figura 17 Estrutura CNN(1D). ... 38

Figura 18 Estrutura LSTM ... 39

Figura 19 Estrutura CNN(1D) + LSTM ... 40

Figura 20 Estrutura multi-scale CNN(1D)+LSTM ... 41

Figura 21 Estrutura CNN(2D) ... 42

Figura 22 Estrutura CNN(2D)+LSTM ... 43

Figura 23 Perda de entropia cruzada CNN 1D para 80%/20%. ... 44

Figura 24 Perda de entropia cruzada CNN 1D para cross validation ... 45

Figura 25 Matriz de confusão CNN 1D para 80%/20%. ... 45

Figura 26 Matriz de confusão CNN 1D para cross validation ... 46

Figura 27 Perda de entropia cruzada LSTM para 80%/20%. ... 47

Figura 28 Perda de entropia cruzada LSTM para cross validation ... 47

Figura 29 Matriz de confusão LSTM para 80%/20%. ... 48

(11)

Figura 32 Perda de entropia cruzada CNN 1D + LSTM para cross validation 50

Figura 33 Matriz de confusão CNN 1D + LSTM para 80%/20%. ... 50

Figura 34 Matriz de confusão CNN 1D + LSTM para cross validation ... 51

Figura 35 Perda de entropia cruzada multi-scale CNN 1D+LSTM para 80%/20% ... 52

Figura 36 Perda de entropia cruzada multi-scale CNN 1D+LSTM para cross validation...52

Figura 37 Matriz de confusão multi-scale CNN 1D+ LSTM para 80%/20%. ... 53

Figura 38 Matriz de confusão multi-scale CNN 1D+ LSTM para cross validation ...53

Figura 39 Perda de entropia cruzada CNN 2D para 80%/20%. ... 54

Figura 40 Perda de entropia cruzada CNN 2D para cross validation ... 55

Figura 41 Matriz de confusão CNN 2D para 80%/20%. ... 55

Figura 42 Matriz de confusão CNN 2D para cross validation ... 56

Figura 43 Perda de entropia cruzada CNN 2D + LSTM para 80%/20%. ... 57

Figura 44 Perda de entropia cruzada CNN 2D + LSTM para cross validation 57 Figura 45 Matriz de confusão CNN 2D + LSTM para 80%/20%. ... 58

Figura 46 Matriz de confusão CNN 2D + LSTM para cross validation. ... 58

Figura 47 Interface gráfica PolyScope ... 62

Figura 48 Interface gráfica desenvolvida ... 65

Figura 49 Posição inicial do teste em ambiente de simulação. ... 68

Figura 50 Comando one / Posição 01 ... 68

Figura 51 Comando two / Posição 02 ... 69

Figura 52 Comando “down ... 70

Figura 53 Comando “up”. ... 71

Figura 54 Comando “backward”. ... 71

Figura 55 Comando “forward”. ... 72

Figura 56 Comando “left”... 72

Figura 57 Comando “right”. ... 73

Figura 58 Montagem inicial do primeiro teste em ambiente real ... 74

Figura 59 Sequência de comandos para execução do primeiro teste em ambiente real ... 75

Figura 60 Execução do primeiro teste em ambiente real ... 76

Figura 61 Montagem inicial do segundo teste em ambiente real ... 77

(12)

Figura 63 Uma etapa da sequência durante a execução do segundo teste em ambiente real ... 79

(13)

Quadro 01 Quantidade de arquivos de áudio por palavra e ruído ... 35

Quadro 02 Comparação da acurácia, precisão, recall e fscore dos modelos treinados utilizando separação de dados 80%/20% ... 60

Quadro 03 Comparação da acurácia, precisão, recall e fscore dos modelos treinados utilizando separação de dados cross validation ... 60

Quadro 04 Tempo médio de processamento do reconhecimento. ... 61

Quadro 05 Algoritmo do sistema de reconhecimento de fala ... 61

Quadro 06 Ações do Cobot conforme os comandos ... 64

Quadro 07 Configuração da interface gráfica ... 65

Quadro 08 Posição inicial do Cobot e posições finais esperadas para os comandos one e two ... 67

Quadro 09 Posições finais esperadas para os comandos de movimentação dos eixos...69

Quadro 10 Posições iniciais do Cobot e objetos do primeiro teste. ... 74

Quadro 11 Posições iniciais do Cobot e recipientes do segundo teste. ... 77

(14)

API - Application Programming Interface CNC - Controle Numérico Computadorizado HRI - Human Robot Interaction

IFR - International Federation of Robotics IP - Internet Protocol

LSTM - Long short-term memory PLC - Programmable Logic Controller RNN - Recurrent Neural Network

(15)

1 INTRODUÇÃO ... 14

1.1 TRABALHOS CORRELATOS ... 16

1.2 OBJETIVOS ... 17

2 FUNDAMENTAÇÃO TEÓRICA ... 19

2.1 RECONHECIMENTO DE FALA ... 19

2.1.1 Sinal da fala ... 19

2.1.2 Abordagem para um sistema de reconhecimento de fala ... 21

2.2 APRENDIZADO PROFUNDO ... 23

2.2.1 CNN ... 24

2.2.2 LSTM ... 26

2.3 ROBÓTICA COLABORATIVA ... 27

3 DESENVOLVIMENTO DO SISTEMA DE RECONHECIMENTO DE FALA ... 31

3.1 SISTEMA DE CONTROLE PROPOSTO ... 31

3.2 CARACTERÍSTICAS DO SISTEMA DE RECONHECIMENTO DE FALA ... 34

3.3 BASE DE DADOS... 34

3.4 TREINAMENTO DOS MODELOS ... 36

3.5 ESCOLHA DO MELHOR MODELO... 59

3.6 ALGORITMO DO SISTEMA DE RECONHECIMENTO DE FALA ... 61

4 INTEGRAÇÃO DO SISTEMA DE RECONHECIMENTO DE FALA COM A PROGRAMAÇÃO DO UR3e ... 62

5 TESTES ... 67

5.1 TESTE EM UM AMBIENTE DE SIMULAÇÃO ... 67

5.2 TESTE EM AMBIENTE REAL ... 73

6 CONCLUSÃO ... 80

REFERÊNCIAS ... 81

APÊNDICE A – SUMÁRIOS DOS MODELOS ... 87

APÊNDICE B – BIBLIOTECA CONFIG_UR3.PY ... 91

APÊNDICE C – FUNÇÃO MOVE ... 95

(16)

1 INTRODUÇÃO

Com a expansão da Indústria 4.0, a inovação industrial tem demandado sistemas de produção mais autônomos, adaptativos e flexíveis. Neste cenário, a combinação entre robôs e trabalhadores é estudada como uma solução para proporcionar sistemas de produção flexíveis em ambientes industriais (RODRÍGUEZ-GUERRA et al, 2021).

Nos últimos anos a Interação Homem-Robô (HRI – do inglês Human Robot Interaction) vem emergindo como um novo campo de pesquisa (LOSEY et al, 2018).

A HRI pode ser definida como “um campo de estudo dedicado a compreender, projetar e avaliar sistemas robóticos para uso por ou com humanos” (GOODRICH e SCHULTZ, 2007). Logo, os sistemas acoplados com a tecnologia HRI permitem o planejamento e a execução de tarefas de alto nível de forma mais flexível para os operadores em comparação com os sistemas que utilizam robôs industriais pré- programados (LOSEY et al, 2018). Além disso, a combinação de habilidades e inteligência humanas e robóticas pode possibilitar melhores condições de trabalho ergonomicamente (WANG et al., 2019). Assim, HRI é um tema que tem atraído mais atenção nos últimos anos por parte da comunidade científica, que tem reunido diversos exemplos e abordagens de classificações sobre as diferentes formas que consideram que esta interação deve acontecer em ambientes industriais.

Durante o Século XX, a evolução dos robôs pode ser dividida em três gerações. Na primeira geração (1957-1967), os robôs eram basicamente máquinas programáveis que não eram capazes de controlar a modalidade de execução de tarefas e, além disso, não tinham comunicação com meio externo. Sua estrutura era composta por peças de baixa tecnologia e sua aplicação se limitava a executar tarefas consideradas triviais em indústrias automotivas e manufatura. Já na segunda geração (1968-1977), os robôs já eram capazes de auto adaptação de forma limitada e podiam reconhecer o ambiente externo. A estrutura era composta por servo-controladores e PLC que permitiam programar e realizar tarefas mais complexas. Contudo, o nível de versatilidade não era muito alto, pois cada robô possuía um software próprio, que era dedicado a uma tarefa específica. Assim,

(17)

nessa geração, os robôs acabaram sendo dispositivos específicos de aplicativos, consequentemente, era difícil empregar o mesmo robô para tarefas diferentes, pois isso exigiria uma modificação substancial do controlador e uma reprogramação completa do software operacional. Os robôs industriais da terceira geração (1978- 1999) foram caracterizados por um grau maior de interação com o operador e o ambiente por meio de interfaces. Eles também possuíam alguns recursos de autoprogramação que possibilitou a adaptação a diferentes tarefas mais complexas (GASPARETTO e SCALERA, 2019).

O final da terceira geração da robótica industrial coincide com o final do Século XX.

A partir do ano 2000 e até os dias atuais, os robôs industriais são considerados pertencentes à quarta geração e possuem recursos inteligentes considerados de alto nível como realizar cálculos avançados, aprendizado profundo e comportamento colaborativo (GASPARETTO e SCALERA, 2019).

A quantidade de robôs industriais em funcionamento em todo mundo aumentou constantemente na última década, atingindo uma quantidade superior a 4 milhões em 2018 (IFR, 2020a). Além disso, houve uma diversificação para outros setores da indústria além da manufatura (IFR, 2018b). Essas mudanças têm contribuído para o desenvolvimento de novas tecnologias robóticas, uma vez que as interações homem-robô têm exigido formas mais fáceis e intuitivas de operar e programar (IFR, 2020b). Neste cenário, a utilização de robôs colaborativos vem proporcionando diversos benefícios (VILLANI et al, 2018).

Robôs colaborativos, ou Cobots, são projetados para realizar tarefas em colaboração com humanos. Eles são equipados com uma variedade de recursos técnicos que protegem contra danos quando um trabalhador entrar em contato direto, seja deliberadamente ou por acidente (IFR, 2020a). Porém, apesar das vantagens, projetar uma interação homem-robô eficaz, mesmo em ambientes colaborativos, não é uma tarefa trivial (EL ZAATARI et al, 2019). Isso se deve ao fato de a programação colaborativa possuir dois elementos distintos que são difícies de implementar: (1) um elemento intuitivo para garantir que as operações de um Cobot possam ser compostas ou alteradas dinamicamente por um operador, e (2) um elemento com consciência humana para apoiar os Cobots na produção de

(18)

comportamentos flexíveis e adaptativos dependentes de parceitos humanos (EL ZAATARI, 2019). Uma forma de minimizar esses desafios é a implementação de um recurso que permita a interação entre humanos e Cobots através do reconhecimento de fala (SAKSAMUDRE et al, 2015).

Dentro deste contexto, pergunta-se, é possível o desenvolvimento de uma alternativa de controle de um robô colaborativo utilizando um sistema de reconhecimento de fala desenvolvido através de conceitos de inteligência artificial?

1.1 TRABALHOS CORRELATOS

Bingol e Aydogmus (2020) propuseram um controle interativo de um robô industrial utilizando um software de reconhecimento de fala no idioma turco. Para o desenvolvimento do reconhecimento de fala, os autores propuseram uma rede neural profunda composta por 4 camadas convolucionais. A rede proposta foi comparada com outras 3 redes de camada única (CNN, LSTM e CNN+LSTM) e obteve o melhor resultado alcançando uma taxa de precisão de 90,37% no reconhecimeto das palavras. O controle interativo consistiu na utilização dos textos convertidos do reconhecimento de fala para selecionar um processo a ser aplicado e, posteriormente, através de reconhecimento de imagem, definir os dados de posição para o robô. Durante os testes práticos, os autores obtiveram resultados satisfatórios já que o robô se aproximou do objeto de referência com margem de erro inferior a 1 mm.

Maurtua et al (2017) propuseram uma interação multimodal entre humanos e robôs com o objetivo de aumentar a confiabilidade no trabalho colaborativo em ambientes industriais. A interação proposta consistiu na combinação entre reconhecimento de fala e gestos corporais com o objetivo de tratar informações que podem ser contraditórios ou complementares. Para o reconhecimento de fala, foram utilizados 3 componentes: Google API para transformação da fala em texto, Freeling para análise de morfossintaxe e um interpretador semântico. Foram realizadas medições do tempo necessário para transformar um comando de fala em uma solicitação compreensível pelo robô. Os resultados mostraram uma variação do tempo devido à diferente complexidade e duração da fala proferida pelo operador. Além disso, entre os componentes do sistema de reconhecimento de fala, a transformação da fala em

(19)

texto pelo Google API foi o processo mais demorado variando entre 1.8 e 2.7 segundos. Durante os testes finais da interação proposta, os autores observaram que a combinação do reconhecimento de fala com reconhecimento de gestos corporais possibilitou a correção da interpretação de comandos ambíguos do operador.

Liu et al (2018) propuseram uma arquitetura multimodal baseada em aprendizado profundo para aplicação em interações homem-robô. A arquitetura proposta consiste em 3 modelos unimodais: comando de fala, movimentos das mãos e gestos corporais. Inicialmente, os modelos foram treinados isoladamente para extração de recursos e, posteriormente, foram combinados para o compartilhamento de informações. Para o desenvolvimento do reconhecimento de fala, os autores utilizaram uma rede CNN adaptada. O conjunto de dados Speech Commands fornecido pelo Google foi escolhido para realizar o treinamento da rede. Foram escolhidas 5 palavras do conjunto de dados para realizar interação homem-robô:

left, right, on, off, up e down. Assim, o total de arquivos de áudio das palavras selecionadas foi de 14.178. Os resultados dos experimentos mostraram que a arquitetura multimodal proposta superou os 3 modelos unimodais separadamente.

Particularmente para o reconhecimento de fala, a arquitetura multimodal aumentou significativamente a precisão de 71% para 93,83%.

1.2 OBJETIVOS

Este trabalho tem como objetivo principal o desenvolvimento de uma alternativa de controle de um robô colaborativo utilizando um sistema de reconhecimento de fala desenvolvido através de conceitos de inteligência artificial.

Para alcançar o objetivo geral previamente descrito foram definidos os seguintes objetivos específicos:

- Desenvolver o sistema de reconhecimento de fala utilizando técnicas de CNN e LSTM.

- Integrar o sistema de reconhecimento de fala com a programação do robô colaborativo.

(20)

- Desenvolver uma interface gráfica para configuração do sistema integrado.

- Realizar testes em software de simulação.

- Realizar testes em ambiente real.

(21)

2 FUNDAMENTAÇÃO TEÓRICA

Neste capítulo, serão apresentadas as fundamentações teóricas sobre reconhecimento de fala, aprendizado profundo e robótica colaborativa.

2.1 RECONHECIMENTO DE FALA

O reconhecimento de fala por máquina tem sido objeto de pesquisa por mais de quatro décadas (KUMAR et al, 2012). A ideia de desenvolver um sistema de reconhecimento de fala é motivada pela facilidade que os humanos interagirem com um computador, robô ou qualquer máquina através de comandos verbais ao invés de instruções complexas (EL ZAATARI et al. 2019).

2.1.1 Sinal da fala

A fala pode ser definida como o som produzido pelo trato vocal humano para fins de comunicação (CHAKI, 2020). Os sons da fala podem ser classificados de três formas: sonoros (tais como /a/ e /i/), surdos (como /sh) e explosivos (como /p/, /t/ e /k/) (ALENCAR, 2007).

Para ilustrar um exemplo de como é construído um sinal da fala, a Figura 01 mostra a forma de onda da fala da expressão "I like digital signal processing". A duração total da fala é de três segundos. Versões ampliadas de /i/ na palavra “like” e do segmento /s/ na palavra “processing” são demonstradas nas Figuras 02 e 03, respectivamente. É possível observar na Figura 02 uma forma de onda de baixa frequência e quase periódica que varia lentamente. Enquanto na Figura 03, é uma forma de onda fricativa não sonora de alta frequência em /s/ (MITRA, 2011).

(22)

Figura 01 - Forma de onda da fala de uma expressão "I like digital signal processing".

Fonte: MITRA (2011).

Figura 02 - Versão ampliada de /i/ na palavra “like”.

Fonte: MITRA (2011).

(23)

Figura 03 – Versão ampliada de /s/ na palavra “processing”.

Fonte: MITRA (2011).

Embora o sinal da fala seja um sinal contínuo e não estacionário, ele pode ser considerado estacionário em curtos segmentos de tempo (cerca de 20 ms). Nestes segmentos, as características principais do sinal da fala variam em pequenas quantidades e podem ser determinadas por diferentes métodos (BUZA et al, 2006).

2.1.2 Abordagem para um sistema de reconhecimento de fala

O aspecto fundamental de um sistema de reconhecimento de fala é a tradução do som em texto e comandos, é o processo pelo qual o computador mapeia um sinal de fala acústica para alguma forma de significado abstrato da fala (SAKSAMUDRE et al, 2015).

Uma tarefa importante ao desenvolver um sistema de reconhecimento de fala é definir previamente, conforme a aplicação, qual tipo ele será. Segundo Anusuya e Katti (2009), os sistemas de reconhecimento de fala podem ser divididos em quatro categorias conforme a o tipo de entrada de áudio: palavras isoladas, palavras conectadas, fala contínua e fala espontânea (ANUSUYA e KATTI, 2009).

- Palavras isoladas: este tipo de sistema geralmente requer que cada palavra tenha um intervalo (ausência de um sinal de áudio) em ambos os lados da janela de amostra, ou seja, esses sistemas possuem dois estados “ouvir/não ouvir” que exigem que o usuário espere entre as declarações (ANUSUYA e KATTI, 2009).

(24)

- Palavras conectadas: este tipo é semelhante ao de palavras isoladas mas permite que palavras diferentes sejam pronunciadas juntas com um intervalo mínimo entre elas (ANUSUYA e KATTI, 2009).

- Fala contínua: este tipo permite que os usuários falem quase naturalmente enquanto o sistema realiza o reconhecimento. Por isso, esse sistema é mais complexo e demanda maior capacidade computacional, uma vez que é necessário a utilização de métodos especiais (ANUSUYA e KATTI, 2009).

- Fala espontânea: este tipo é capaz de lidar, além da fala natural, com uma variedade de recursos de fala, como palavras sendo executadas juntas, expressões naturais e até gaguejos leves (ANUSUYA e KATTI, 2009).

A Figura 04 mostra as etapas básicas de um processo de um sistema de reconhecimento de fala. O sistema é composto basicamente por duas etapas principais: front-end e back-end (GOMÉZ, 2011). O front-end representa a etapa de captação e pré-processamento do sinal da fala (OLIVEIRA, 2012). Logo que o sinal de fala é obtido por um microfone, ele é digitalizado e, como foi revisado anteriormente, dividido em um conjunto de segmentos curtos para análise de suas características. Essas características podem ser classificadas em duas categorias principais: temporais e espectrais (DAS et al, 2020). As características temporais são extraídas do sinal em sua forma bruta, ou seja, no domínio do tempo. Já as características espectrais são extraídas a partir do espectrograma obtido através da aplicação da transformada de Fourier de curta duração (RABINER e SCHAFER, 2007). Logo após, uma filtragem é aplicada para extração dos parâmetros relevantes para o reconhecimento (CARDOSO, 2015). Já o back-end é responsável por utilizar os parâmetros extraídos para encontrar uma palavra (GOMÉZ, 2011) ou uma sequência de palavras (CARDOSO, 2015).

(25)

Figura 04 – Etapas de um típico sistema de reconhecimento de fala.

Fonte: adaptado de GOMÉZ (2011).

Historicamente, vários métodos de extração de parâmetros foram estudados com o objetivo de aprimorar o reconhecimento de fala (SAKSAMUDRE et al, 2015). Porém, atualmente, as técnicas de aprendizado profundo vêm se destacando nessa área (NASSIF et al, 2019).

2.2 APRENDIZADO PROFUNDO

Aprendizado profundo é um subcampo do aprendizado de máquina (BROWNLEE, 2017). Esse algoritmo é capaz de aprender com os dados (GOODFELLOW et al, 2016) através da identificação de padrões recorrentes (KELLEHER, 2019). Do ponto de vista da engenharia, esses algoritmos permitem lidar com tarefas que são muito difíceis de resolver com programas convencionais e projetados por seres humanos (GOODFELLOW et al, 2016).

O aprendizado de máquina envolve um processo de duas etapas: treinamento e inferência. Durante o treinamento, um algoritmo de aprendizado de máquina processa um conjunto de dados e escolhe a função que melhor corresponde aos padrões nos dados. A função codificada é conhecida como modelo, e a análise dos dados para extrair a função costuma ser chamada de treinamento do modelo (KELLEHER, 2019). O segundo estágio do aprendizado de máquina é a inferência.

É quando o modelo é aplicado a novos exemplos para os quais os valores de saída corretos não são conhecidos e, portanto, o modelo deve gerar estimativas desse valor (KELLEHER, 2019).

No aprendizado de máquina tradicional, o processamento prévio geralmente requer uma grande quantidade de esforço humano (KELLEHER, 2019). Já o aprendizado

(26)

profundo possui uma abordagem diferente (KELLEHER, 2019). Esse método usa várias camadas de processamento para descobrir automaticamente padrões e estruturas em conjuntos de dados muito grandes sem a necessidade de um processamento prévio (RUSK, 2016). Atualmente, existem diversos modelos de arquiteturas que são utilizadas em aprendizado profundo (NASSIF et al, 2019). Para este trabalho, serão abordadas duas arquiteturas populares no reconhecimento de fala: CNN e a LSTM (NASSIF et al, 2019).

2.2.1 CNN

As redes CNN (convolutional neural network) são um tipo de rede neural que utilizam o princípio de convolução em pelo menos em uma de suas camadas (GOODFELLOW et al, 2016). Matematicamente, a convolução é uma operação linear entre dois sinais ou um sinal e um sistema. No caso de uma rede neural, a convolução é uma operação que filtra os dados de entrada para indicar locais de similaridade entre o filtro e os dados de entrada (MOZAFFARI e TAY, 2020). Essas redes podem ser aplicadas em muitos tipos de dados, com diferentes números de dimensões (GOODFELLOW et al, 2016). Para aplicações em reconhecimento de fala, as redes CNN podem ser utilizadas tanto para dados de uma dimensão (série temporal) quanto para dados de duas dimensões (imagens espectrais).

A Figura 05 mostra um exemplo de arquitetura e funcionamento de uma rede convolutiva constituída de uma camada de entrada, quatro camadas ocultas e uma camada de saída.

Essa rede é projetada para dados em duas dimensões. A camada de entrada é constituída de 28x28 nós sensoriais. Após essa camada, o processamento se alterna entre convoluções e subamostragens. A primeira camada oculta realiza convolução. Consiste em quatro mapas de características, com cada mapa consistindo em 24x24 neurônios. A cada neurônio é atribuído um campo receptivo de tamanho 5x5. A segunda camada oculta realiza subamostragem e calcula a média local. Consiste também de quatro mapas de características, mas cada mapa é constituído agora de 12x12 neurônios. A terceira camada oculta realiza uma segunda convolução. Consiste em 12 mapas de características, com cada mapa consistindo em 8x8 neurônios.

Cada neurônio nesta camada oculta pode ter conexões sinápticas com vários mapas de características da camada oculta antecedente. A quarta camada

(27)

oculta realiza uma segunda subamostragem e o cálculo da média local.

Consiste em 12 mapas de características, mas cada mapa consiste em 4x4 neurônios. A camada de saída realiza o estágio final do processo. Consiste em 26 neurônios, sendo que a cada neurônio é atribuído um caractere de 26 caracteres possíveis. Como anteriormente, a cada neurônio é atribuído um campo receptivo de tamanho 4x4. Com as camadas de processamento se alterando entre convolução e subamostragem, é observado um efeito

“bipiramidal”. Isto é, em cada camada convolutiva ou de subamostragem, o número de mapas de características é aumentado, enquanto a resolução espacial é reduzida quando comparada com a camada antecedente (HAYKIN, 2001, p. 273).

Figura 05 – Rede Neural Convolucional para processamento de imagem.

Fonte: HAYKIN (2001).

No caso de uma dimensão, como é mostrado na Figura 06, cada valor ou conjunto de valores de um vetor de entrada é multiplicado por pesos que geram um resultado em vetor de saída (TATAN, 2019).

(28)

Figura 06 – Rede Neural Convolucional para dados de uma dimensão.

Fonte: TATAN (2019).

2.2.2 LSTM

A rede neural LSTM (long short term memory) é uma variação da rede RNN (recurrent neural network). As redes RNN são a principal ferramenta para lidar com dados sequenciais, que envolvem entradas ou saídas de comprimento variável. Isso se deve ao compartilhamento de parâmetros que torna possível estender e aplicar o modelo a exemplos de comprimentos diferentes (GOODFELLOW et al, 2016).

Apesar dessas características, em alguns casos, especialmente quando os intervalos de tempo mínimos entre as entradas e os sinais correspondentes de aprendizado são longos, os algoritmos de uma simples RNN não funcionam bem (HOCHREITER e SCHMIDHUBER, 1997). Para resolver esse problema, Hochreiter e Schmidhuber (1997) propuseram uma nova estrutura de RNN chamada de LSTM que é capaz de aprender dependências de longo prazo. Para ser capaz disso, a LSTM usa uma série de gates que controlam como as informações em uma sequência de dados entram, são armazenadas e saem da rede. Como pode ser observado na Figura 07, a linha laranja na parte superior é chamada de célula de memória e representa a ideia chave de uma LSTM pois ela armazena o estado da célula C (a memória de longo prazo) (MATSUMOTO et al, 2019). A linha na parte inferior representa a memória de curto prazo e contém a entrada Xt e a saída no instante anterior ht-1. Entre essas linhas, estão localizados os gates: Forget gate, Input gate e Output gate (MATSUMOTO et al, 2019). O Forget gate é responsável

(29)

por decidir quais informações serão descartadas do estado da célula. Já o Input gate é responsável por decidir e colocar informações novas de curto prazo no estado da célula. Por fim, no Output gate, ocorre o cálculo da saída da rede. Para isso, o estado da célula passa por uma função de ativação e, posteriormente, é utilizada a memória de curto prazo para decidir quais informações dessa saída são relevantes nesse instante (MATSUMOTO et al, 2019). Para realizar essas operações de decisão, cada gate possui uma camada de rede neural sigmóide que gera valores entre zero e um, representando o quanto de cada componente deve passar (OLAH, 2015).

Figura 07 – Estrutura de uma LSTM.

Fonte: adaptado de MATSUMOTO et al (2019).

2.3 ROBÓTICA COLABORATIVA

O conceito de robótica colaborativa surgiu em 1999 através de um estudo da interação de um robô com um trabalhador humano lidando com uma carga compartilhada (PESHKIN e COLGATE, 1999). Atualmente, os robôs colaborativos podem ser definidos como robôs projetados para operar ao lado de um trabalhador humano em ambientes industriais sem a necessidade de uma proteção convencional (BOGUE, 2016).

(30)

Inicialmente, como pode ser observado na Figura 08, o conceito principal de um Cobot era interagir com as pessoas através da criação de superfícies virtuais definidas por software que restringiam e guiavam os movimentos de uma carga compartilhada (PESHKIN e COLGATE, 1999). Quando a carga é empurrada contra uma superfície virtual, o movimento da carga é condicionado a seguir essa superfície, como se entrasse contato com um trilho-guia sem atrito. Quando a carga se afasta dessa superfície, o movimento torna-se livre (PESHKIN e COLGATE, 1999). Robôs convencionais também poderiam, a princípio, ser inseridos em um ambiente com superfícies virtuais, porém, isso demandaria que seus motores das juntas fossem capazes de resistir às forças de empuxo da pessoa e às forças inerciais de entrada nessas superfícies, o que não ocorre sempre para esses robôs.

Os Cobots, em comparação, possuem juntas que permitem restrições mecânicas que são ajustadas automaticamente por um controle computadorizados (PESHKIN e COLGATE, 1999).

Figura 08 – Conceito inicial de um Cobot.

Fonte: adaptado de PESHKIN E COLGATE (1999).

Atualmente, os Cobots possuem em sua estrutura, como mostrado na Figura 09, sensores de força e torque que são capazes de detectar impactos sensíveis durante a execução de uma tarefa. Além disso, eles podem ser equipados com sistemas de visão e sensores de proximidade que podem evitar uma eventual colisão (VITALLI, 2017).

(31)

Figura 09 – Sensores de força e torque na estrutura e juntas.

Fonte: ROBOTIQ (2018).

Um aspecto importante para consolidar o conceito de Cobot é a classificação da colaboração entre um humano e um robô. É possível classificar essa colaboração de diferentes maneiras que podem ser definidas como cenários de colaboração (IFR, 2018a). Para o entendimento do desenvolvimento deste trabalho, será destacada a classificação adotada pela IFR (International Federation of Robotics). A Figura 10 demonstra essa classificação em que a colaboração pode ser dividida em níveis.

Figura 10 – Tipos de colaboração com robôs industriais.

Fonte: adaptado de IFR (2018a).

(32)

- Primeiro nível – Célula: nesse caso não se caracteriza uma colaboração já que o robô é operado em uma gaiola de segurança tradicional (BAUER et al, 2016).

- Segundo nível – Coexistência: robôs e humanos trabalham lado a lado sem uma gaiola de segurança, mas não compartilham um espaço de trabalho (BAUER et al, 2016).

- Terceiro nível – Sequencial ou sincronizado: robôs e humanos são ativos na área de trabalho mas os movimentos são sequenciais (BAUER et al, 2016).

- Quarto nível – Cooperação: robôs e humanos trabalham na mesma área ao mesmo tempo, ou seja, ambos em movimento executando tarefas (BAUER et al, 2016).

- Quinto nível – Colaboração responsiva: os robôs respondem em tempo real ao movimento do humano (BAUER et al, 2016).

Em relação às aplicações nas tarefas industriais, é possível destacar algumas como:

processo pick&place, aparafusamento, soldagem, usinagem CNC, montagem, pintura e inspeção de qualidade. Devido a essa variedade de aplicações e suas características de funcionamento, os Cobots são responsáveis pelo aumento de produtividade e qualidade de trabalho e estão sendo utilizados em diferentes indústrias: automotiva, eletrônica, metalmecânica, educação, medicinal etc. Existem expectativas que o mercado global de Cobots possa atingir um total de 11,5 bilhões de dólares até 2025 (VITALLI, 2017), o que motiva vários estudos nessa área com o objetivo de criar possibilidades de colaboração entre humano e Cobot (EL ZAATARI, 2019).

(33)

3 DESENVOLVIMENTO DO SISTEMA DE RECONHECIMENTO DE FALA

3.1 SISTEMA DE CONTROLE PROPOSTO

Como mencionado anteriormente, este trabalho propõe o desenvolvimento de um controle de um Cobot utilizando um sistema de reconhecimento de fala desenvolvido através de conceitos de inteligência artificial. A Figura 11 demonstra o esquemático desse sistema de controle proposto.

Figura 11 – Esquemático do sistema proposto.

Fonte: autoria própria.

A primeira parte do sistema consiste na captação do áudio do comando do operador.

Ao iniciar o sistema, o operador aciona um botão e o microfone é aberto em um intervalo de um segundo. O áudio captado nesses intervalos de tempo é

(34)

armazenado em um arquivo de formato WAVE com frequência de 16 kHz. O arquivo de áudio armazenado é enviado para a segunda parte do sistema que consiste no reconhecimento do comando falado e a integração com a programação do Cobot, ou seja, conforme o comando reconhecido no áudio, a programação do Cobot irá indicar uma ação correspondente. Na terceira parte o robô executa a ação.

O Cobot utilizado no desenvolvimento será o modelo UR3e fabricado pela Universal Robots. As etapas de captação e processamento do áudio e da integração com a programação do Cobot serão realizadas com auxílio de um computador.

A Figura 12 demonstra o Cobot UR3e. Segundo a Universal Robots:

O UR3e é um robô industrial colaborativo ultraleve e compacto, ideal aplicações de mesa. O seu tamanho reduzido torna-o ideal para ser utilizado diretamente dentro de máquinas ou em outros espaços de trabalhos reduzidos. Este Cobot pesa apenas 11 kg, mas tem uma carga útil de 3 kg. A sua rotação de 360° graus em todas as juntas de rotação e rotação infinita na junta final, o que torna bem adequado para aplicações leves (UNIVERSAL ROBOTS, 2022, p.1).

Figura 12 – Cobot UR3e.

Fonte: UNIVERSAL ROBOTS (2009).

É importante destacar também que é possível fazer uma conexão entre o Cobot UR3e com qualquer computador através de uma porta ethernet localizada em sua unidade de controle, como pode ser observado na Figura 13 (APICELLA, 2018). Isso

(35)

permite um controle do Cobot por acesso remoto, ou seja, sem a necessidade de utilização direta do pendant o que possibilita o desenvolvimento do sistema proposto por este trabalho.

Figura 13 – Porta ethernet Cobot UR3e.

Fonte: APICELLA (2018).

Para o desenvolvimento deste trabalho, o Cobot UR3e foi equipado com uma garra colaboradora modelo Co-act EGP-C da fabricante Schunk conforme é mostrado na Figura 14. Segundo a fabricante, essa garra é projetada exclusivamente para agarrar e segurar temporariamente peças de trabalho ou objetos (SCHUNK, 2021).

Seu funcionamento é baseado em acionamento elétrico através de uma comunicação digital I/O com o painel de controle do Cobot.

Figura 14 – Garra Co-act EGP-C.

Fonte: SCHUNK (2021).

(36)

O sistema de controle proposto será desenvolvido em linguagem de programação Python, que possui a capacidade de fácil integração com outros sistemas de forma eficiente (PYTHON SOFTWARE FOUNDATION, 2022). Além disso, essa linguagem se tornou a mais utilizada para pesquisas e aplicações de ciência de dados (RASCHKA e MIRJALILI, 2019).

3.2 CARACTERÍSTICAS DO SISTEMA DE RECONHECIMENTO DE FALA

Como foi revisado anteriormente, as pesquisas que utilizaram o reconhecimento de fala aplicado na interação homem-robô podem ser divididas em dois grupos: as que utilizaram um recurso pronto já existente (API’s do Google, Microsoft e etc.); e as que desenvolveram o próprio recurso. Este trabalho propôs desenvolver um recurso próprio utilizando técnicas de aprendizado profundo CNN e LSTM. A motivação para a escolha dessa estratégia é a vantagem de o sistema desenvolvido ser independente de um recurso privativo.

Antes de desenvolver um sistema de reconhecimento de fala, é necessário definir qual tipo ele será conforme o formato de entrada de áudio. Foi definida a escolha de um sistema de reconhecimento de fala de palavras isoladas, ou seja, cada palavra pronunciada pelo operador ou usuário será considerada um comando de movimento para o Cobot.

3.3 BASE DE DADOS

A implementação das técnicas CNN e LSTM demanda de uma ampla base de dados para executar o treinamento da rede. Assim, foi escolhida a base de dados speech_comands fornecido pela equipe de pesquisa em inteligência artificial de aprendizagem profunda Google Brain. Ela é constituída em 105.829 arquivos de áudio divididos em 35 palavras isoladas (WARDEN, 2018). Cada palavra é armazenada no intervalo de um segundo em um arquivo no formato WAVE. Das 35 palavras, foram escolhidas 10 para o desenvolvimento do sistema de reconhecimento de fala para controle dos movimentos do Cobot. Além das palavras escolhidas, também foi criado um banco de dados para ruído que deverá ser reconhecido quando o operador não estiver pronunciando um comando. Assim, no

(37)

total, foram utilizados 35.340 arquivos de áudio. O Quadro 01 mostra a quantidade de arquivos para cada palavra e o ruído.

Quadro 01 – Quantidade de arquivos de áudio por palavra e ruído.

Palavra Quantidade de arquivos

One 3.890

Two 3.880

Backward 1.664

Forward 1.557

Up 3.723

Down 3.917

Left 3.801

Right 3.778

On 3.845

Off 3.745

Ruído 1.540

Fonte: autoria própria.

Os arquivos, inicialmente, foram separados manualmente entre 90% para o desenvolvimento dos modelos e 10% para teste. No desenvolvimento, foram utilizadas duas formas diferentes de separação dos dados. A primeira foi 80% para treinamento e 20% para validação. Já a segunda, foi utilizando a técnica de cross validation com o número de folds igual a 10. A técnica de cross validation fornece um modelo com menos viés em comparação com outras técnicas. Nessa técnica, o número de folds (k) determina em quantas partes o conjunto de dados será dividido,

(38)

assim, cada parte tem chance de aparecer no conjunto de treinamento k-1 vezes, permitindo que o modelo aprenda melhor a distribuição de dados subjacente (MANNA, 2020).

3.4 TREINAMENTO DOS MODELOS

A metodologia para chegar ao melhor modelo foi combinar as técnicas CNN e LSTM, assim, foram testadas as seguintes combinações de modelos: CNN(1D), LSTM, CNN(1D)+LSTM, multi-scale CNN(1D)+LSTM, CNN(2D), CNN(2D)+LSTM.

As técnicas CNN, LSTM e CNN+LSTM têm sido frequentemente utilizadas para processamento do sinal da fala (BINGOL e AYDOGMUS, 2020) e obtendo excelentes resultados (ZHAO et al, 2019). Já a técnica multi-scale tem sido utilizada como uma solução para combinar parâmetros locais e globais para melhorar a classificação (JIN et al, 2020).

Para os modelos de treinamento com convolução em uma dimensão (1D), foram utilizados os dados de áudio em sua forma natural. Os dados foram transformados em vetor através da utilização da função load da biblioteca módulo librosa (MCFEE et al, 2015), que carrega um arquivo áudio em uma série temporal. A Figura 15 mostra um exemplo de uma série temporal de um arquivo de áudio do comando one.

Figura 15 – Série temporal do comando one.

Fonte: autoria própria.

(39)

Já para os modelos de treinamento com convolução em duas dimensões (2D), foi utilizado o método de transformada de Fourier de curta duração para o pré- processamento nos dados. Para isso, o sinal foi dividido em janelas de tempo e aplicada a transformada de Fourier preservando informações de tempo e retornando um tensor 2D (CONVERTER FORMAS DE ONDA EM ESPECTROGRAMAS, 2022).

A Figura 16 mostra um exemplo de um espectrograma de um arquivo de áudio do comando one.

Figura 16 – Espectrograma do comando one.

Fonte: autoria própria.

As Figuras 17, 18, 19, 20, 21 e 22 mostram as estruturas dos modelos das combinações CNN(1D), LSTM, CNN(1D)+LSTM, multi-scale CNN(1D)+LSTM, CNN(2D), CNN(2D)+LSTM respectivamente. Os sumários dos respectivos modelos estão demonstrados no Apêndice A.

Alguns parâmetros de treinamento foram fixados para todos os modelos, são eles:

número de épocas: 100, batch size = 32, loss = categorical_crossentropy, optimizer

= adam, patience = 10 e min_delta = 0.0001. Além desses parâmetros, foi utilizada a condição de early_stopping para todos os treinamentos.

(40)

Figura 17 – Estrutura CNN(1D).

Fonte: autoria própria.

(41)

Figura 18 – Estrutura LSTM.

Fonte: autoria própria.

(42)

Figura 19 – Estrutura CNN(1D) + LSTM.

Fonte: autoria própria.

(43)

Figura 20 – Estrutura multi-scale CNN(1D)+LSTM.

Fonte: autoria própria.

(44)

Figura 21 – Estrutura CNN(2D).

Fonte: autoria própria.

(45)

Figura 22 – Estrutura CNN(2D)+LSTM.

Fonte: autoria própria.

(46)

Com relação ao modelo CNN 1D, as Figuras 23 e 24 mostram, respectivamente, a evolução da perda durante o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar, nos dois casos, que tanto a curva de treino quanto a curva de validação diminuíram até um ponto de estabilidade com um intervalo mínimo entre os valores finais de perda. As Figuras 25 e 26 mostram, respectivamente, as matrizes de confusão para o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar nos dois casos que os valores da diagonal são maiores e estão representados com cores mais claras, ou seja, o modelo funcionou corretamente na predição das classes.

Figura 23 – Perda de entropia cruzada CNN 1D para 80%/20%.

Fonte: autoria própria.

(47)

Figura 24 – Perda de entropia cruzada CNN 1D para cross validation.

Fonte: autoria própria.

Figura 25 – Matriz de confusão CNN 1D para 80%/20%.

Fonte: autoria própria.

(48)

Figura 26 – Matriz de confusão CNN 1D para cross validation.

Fonte: autoria própria.

Com relação ao modelo LSTM, as Figuras 27 e 28 mostram, respectivamente, a evolução da perda durante o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. No caso da divisão 80%/20%, foi possível observar que ambas as curvas, treino e validação, apresentaram um comportamento instável com grandes variações. Já no caso da aplicação da técnica de cross validation, foi observado que em alguns folds, as acurácias de validação assumiram valores classificados como “NaN”, prejudicando a plotagem do gráfico com todos os treinamentos de cada fold. As Figuras 29 e 30 mostram, respectivamente, as matrizes de confusão para o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar que, no caso 80%/20%, apenas duas classes (one e left) atingiram valores aceitáveis de predição. Já para cross validation, devido aos problemas no treinamento citado anteriormente, o modelo não foi capaz de fazer a predição das classes corretamente.

(49)

Figura 27 – Perda de entropia cruzada LSTM para 80%/20%.

Fonte: autoria própria.

Figura 28 – Perda de entropia cruzada LSTM para cross validation.

Fonte: autoria própria.

(50)

Figura 29 – Matriz de confusão LSTM para 80%/20%.

Fonte: autoria própria.

Figura 30 – Matriz de confusão LSTM para cross validation.

Fonte: autoria própria.

(51)

Com relação ao modelo CNN 1D + LSTM, as Figuras 31 e 32 mostram, respectivamente, a evolução da perda durante o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar nos dois casos que a perda diminuiu conforme as épocas, porém, apesar dos valores de treino e validação estarem da mesma forma, as curvas se distanciam a partir de um certo momento caracterizando um início de um comportamento de overfitting (BROWNLEE, 2018). As Figuras 33 e 34 mostram, respectivamente, as matrizes de confusão para o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar nos dois casos que os valores da diagonal são maiores e estão representados com cores mais claras, ou seja, o modelo funcionou corretamente na predição.

Figura 31 – Perda de entropia cruzada CNN 1D + LSTM para 80%/20%.

Fonte: autoria própria.

(52)

Figura 32 – Perda de entropia cruzada CNN 1D + LSTM para cross validation.

Fonte: autoria própria.

Figura 33 – Matriz de confusão CNN 1D + LSTM para 80%/20%.

Fonte: autoria própria.

(53)

Figura 34 – Matriz de confusão CNN 1D + LSTM para cross validation.

Fonte: autoria própria.

Com relação ao modelo multi-scale CNN 1D + LSTM, as Figuras 35 e 36 mostram, respectivamente, a evolução da perda durante o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar nos dois casos que a perda diminuiu conforme as épocas, porém, as curvas de validação apresentaram um comportamento mais instável. Foi possível observar também que na divisão de dados 80%/20% e na maioria dos folds no cross validation, a quantidade de épocas não foi suficiente para alcançar uma estabilidade no treinamento. As Figuras 37 e 38 mostram, respectivamente, as matrizes de confusão para o treinamento com divisão de dados 80%/20% e cross validation. possível observar nos dois casos que os valores da diagonal são maiores e estão representados com cores mais claras, ou seja, o modelo funcionou corretamente na predição.

(54)

Figura 35 – Perda de entropia cruzada multi-scale CNN 1D+LSTM para 80%/20%.

Fonte: autoria própria.

Figura 36 – Perda de entropia cruzada multi-scale CNN 1D+LSTM para cross validation.

Fonte: autoria própria.

(55)

Figura 37 – Matriz de confusão multi-scale CNN 1D+LSTM para 80%/20%.

Fonte: autoria própria.

Figura 38 – Matriz de confusão multi-scale CNN 1D+LSTM para cross validation.

Fonte: autoria própria.

(56)

Com relação ao modelo CNN 2D as Figuras 39 e 40 mostram, respectivamente, a evolução da perda durante o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar nos dois casos que a perda diminuiu conforme as épocas, porém, apesar dos valores de treino e validação estarem da mesma forma, as curvas se distanciam a partir de um certo momento caracterizando um início de um comportamento de overfitting (BROWNLEE, 2018). As Figuras 41 e 42 mostram, respectivamente, as matrizes de confusão para o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar nos dois casos que os valores da diagonal são maiores e estão representados com cores mais claras, ou seja, o modelo funcionou corretamente na predição.

Figura 39 – Perda de entropia cruzada CNN 2D para 80%/20%.

Fonte: autoria própria.

(57)

Figura 40 – Perda de entropia cruzada CNN 2D para cross validation.

Fonte: autoria própria.

Figura 41 – Matriz de confusão CNN 2D para 80%/20%.

Fonte: autoria própria.

(58)

Figura 42 – Matriz de confusão CNN 2D para cross validation.

Fonte: autoria própria.

Com relação ao modelo CNN 2D + LSTM as Figuras 43 e 44 mostram, respectivamente, a evolução da perda durante o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar nos dois casos que a perda diminuiu conforme as épocas, porém, apesar dos valores de treino e validação estarem da mesma forma, as curvas se distanciam a partir de um certo momento caracterizando um início de um comportamento de overfitting (BROWNLEE, 2018). Foi possível observar também que na utilização do cross validation, as curvas de validação apresentaram um comportamento mais instável, além disso, houve uma grande diferença de valores de perda entre os treinamentos dos folds. As Figuras 45 e 46 mostram, respectivamente, as matrizes de confusão para o treinamento utilizando a divisão de dados 80%/20% e a técnica cross validation. Foi possível observar nos dois casos que os valores da diagonal são maiores e estão representados com cores mais claras, ou seja, o modelo funcionou corretamente na predição.

(59)

Figura 43 – Perda de entropia cruzada CNN 2D + LSTM para 80%/20%.

Fonte: autoria própria.

Figura 44 – Perda de entropia cruzada CNN 2D + LSTM cross validation.

Fonte: autoria própria.

(60)

Figura 45 – Matriz de confusão CNN 2D + LSTM para 80%/20%.

Fonte: autoria própria.

Figura 46 – Matriz de confusão CNN 2D + LSTM para cross validation.

Fonte: autoria própria.

(61)

3.5 ESCOLHA DO MELHOR MODELO

Para a escolha do melhor modelo para o sistema de reconhecimento de fala, foram analisadas, inicialmente, as métricas de acurácia, precisão, recall e f1score utilizando de teste. Os Quadros 02 e 03 mostram a comparação dessas métricas para os modelos treinados utilizando separação de dados 80%/20% e cross validation respectivamente. Foi possível observar que, de modo geral, os treinamentos utilizando a separação de dados 80%/20% obtiveram melhores resultados com destaque para o modelo CNN 1D que alcançou taxas de 91% nas métricas avaliadas.

Foi analisado também, conforme o Quadro 04, o tempo médio de processamento para o reconhecimento das onze classes. Para essa análise, foi utilizado um notebook Dell modelo Inspiron 5420 com processador Intel core I5, memória RAM de 6GB, placa de vídeo NVIDIA GeForce GT 630M e microfone embutido. Foi possível observar que o modelo CNN 1D treinado utilizando separação de dados 80%/20% alcançou o menor tempo médio para processar os reconhecimentos.

Em comparação com resultados obtidos pelos autores citados nos trabalhos correlatos, o modelo CNN 1D treinado utilizando separação de dados 80%/20%

alcançou resultados satisfatórios uma vez que a acurácia, 91%, ficou bem próxima das acurácias, 90,37% e 93,83%, obtidas pelos trabalhos de Bingol e Aydogmus (2020) e Liu et al (2018) respectivamente. Além disso, o tempo médio para processamento, 0,5 segundos, foi abaixo do tempo obtido por Maurtua et al (2017) em seu trabalho. Porém, é importante destacar que as metodologias utilizadas por esses autores são diferentes da metodologia utilizada neste trabalho. Logo, os valores de acurácia e tempo de processamento obtidos por eles são apenas uma referência para os valores obtidos neste trabalho para alcançar um bom funcionamento do sistema de controle proposto.

Assim, foi escolhido o modelo CNN 1D treinado utilizando separação de dados 80%/20% para o desenvolvimento do sistema de reconhecimento de fala para controle do Cobot.

(62)

Quadro 02 – Comparação da acurácia, precisão, recall e fscore dos modelos treinados utilizando separação de dados 80%/20%.

Modelo Acurácia Precisão Recall Fscore

CNN 1D 91% 91% 91% 91%

LSTM 46% 53% 49% 49%

CNN 1D + LSTM 85% 86% 84% 85%

Multi-scale CNN 1D + LSTM 84% 84% 84% 84%

CNN 2D 89% 90% 89% 90%

CNN 2D + LSTM 86% 85% 86% 85%

Fonte: Autoria própria

Quadro 03 – Comparação da acurácia, precisão, recall e fscore dos modelos treinados utilizando separação de dados cross validation.

Modelo Acurácia Precisão Recall Fscore

CNN 1D 90% 91% 90% 90%

LSTM 13% 11% 17% 11%

CNN 1D + LSTM 74% 76% 74% 74%

Multi-scale CNN 1D + LSTM 76% 76% 76% 76%

CNN 2D 90% 90% 89% 90%

CNN 2D + LSTM 80% 80% 79% 79%

Fonte: Autoria própria

(63)

Quadro 04– Tempo médio de processamento do reconhecimento.

Tempo médio para cada modelo (segundos) CNN

1D LSTM CNN 1D + LSTM

Multi-scale CNN

1D + LSTM CNN 2D

CNN 2D + LSTM

80%20% 0,50 1,84 0,63 3,07 0,54 0,64

Cross validation

0,53 2,04 0,81 2,62 0,62 0,74

Fonte: Autoria própria

3.6 ALGORITMO DO SISTEMA DE RECONHECIMENTO DE FALA

Após a escolha do melhor modelo para o reconhecimento dos comandos de fala, foi desenvolvido o algoritmo em linguagem Python. O Quadro 05 mostra o algoritmo desenvolvido. O arquivo best_model.hdf5 é resultante do treinamento do modelo CNN 1D utilizando separação de dados 80%/20%.

Quadro 05 – Algoritmo do sistema de reconhecimento de fala.

if tecla == ‘d’:

mydata = sd.rec(int(samplerate*duration), samplerate=samplerate, channels=2, blocking=True) sd.wait()

sf.write(filename, mydata, samplerate)

samples, sample_rate = librosa.load(filepath + ‘/’ + filename, sr = samplerate)

samples = librosa.resample(samples, sample_rate, 8000) commando = predict(samples)

def predict(audio):

loaded_model = load_model(‘best_model.hdf5’)

prob = loaded_model.predict(audio.reshape(1,8000,1)) commando = classes[np.argmax(prob[0])]

return comando

Fonte: autoria própria.

(64)

4 INTEGRAÇÃO DO SISTEMA DE RECONHECIMENTO DE FALA COM PROGRAMAÇÃO DO UR3e

O próximo passo do desenvolvimento do sistema de controle foi integrar o reconhecimento de fala com a programação do Cobot UR3e.

O Cobot UR3e pode se programado de duas formas. A primeira, como pode ser observado na Figura 47, é através da interface gráfica PolyScope (MATTEO, 2018).

Nessa interface é possível estruturar um programa utilizando funções de comando (APICELLA, 2018).

Figura 47 – Interface gráfica PolyScope.

Fonte: MATTEO (2018).

A segunda é utilizando uma linguagem específica para essa aplicação chamada URScript. Diferentemente da interface gráfica PolyScope, o URScript pode ser

(65)

escrito em arquivo texto e depois importado ou enviado a partir de um computador via rede em tempo real (MATTEO, 2018).

Matteo (2018), em seu trabalho, desenvolveu uma biblioteca em linguagem Python que, combinada com URScript, pode controlar um Cobot UR3e através de um computador. Segundo o autor, a escolha dessa linguagem foi motivada pelo fato de a Universal Robots já fornecer alguns códigos nessa linguagem. Para a aplicação deste trabalho, foram desenvolvidas quatro funções adaptadas dessa biblioteca. São elas: connectSocket, readParameter, movepos e grab. O objetivo de cada função está descrito a seguir:

- connectSocket: essa função tem como objetivo fazer a conexão com o robô. Ela recebe dois parâmetros de entrada, HOST e PORT. O parâmetro HOST representa o IP do robô. Já o parâmetro PORT representa a porta que será utilizada para comunicação.

- readParamater: essa função tem como objetivo ler quatro parâmetros, posição atual do robô, posição alvo, forças e ângulos atuais das juntas.

- movePos: essa função tem como objetivo executar um movimento desejado no robô. É importante destacar que o Cobot possui um controlador cinemático interno. Assim, para utilizar essa função, é necessário apenas informar a posição alvo desejada nos eixos X, Y e Z.

- grab: essa função tem como objetivo executar o movimento de fechamento e abertura da garra robótica.

As funções foram agrupadas em uma biblioteca denominada config_UR3.py cujo código é descrito no Apêndice B. Para aplicar essas funções no sistema de controle por reconhecimento de fala, foi desenvolvida uma quinta função chamada “move”

que recebe como entrada o comando reconhecido e, utilizando as quatro funções apresentadas anteriormente (connectSocket, readParameter, movepos e grab),

Referências

Documentos relacionados

[40] Uma hipótese implícita quando o método de captura-recaptura é usado para estimar o tamanho de uma população é a de que quando os indivíduos são marcados no processo de

c.4) Não ocorrerá o cancelamento do contrato de seguro cujo prêmio tenha sido pago a vista, mediante financiamento obtido junto a instituições financeiras, no

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Verificada a efetividade da proposta, a Comissão de Licitações declarou vencedor o licitante Francisco Souza Lima Helm, sendo o total do item 14 licitado o valor de

A meta prevista para este indicador era garantir a realização de exames complementares em dia a 100% de hipertensos e diabéticos do programa, por tanto não foi atingida,

A Lei nº 2/2007 de 15 de janeiro, na alínea c) do Artigo 10º e Artigo 15º consagram que constitui receita do Município o produto da cobrança das taxas

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Mediante o impacto do paciente com o ambiente do centro cirúrgico, a equipe de enfermagem deve estar voltada para o aspecto humano do atendimento, centrando suas