Home › Fóruns › Fórum Reconhecimento de Gestos e Ações com Python e OpenCV › Erro ao detectar mãos para cima
Marcado: Deteção de polichinelos 9
- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 3 anos, 11 meses atrás por Dalton Vargas.
- AutorPosts
- 17 de novembro de 2020 às 18:02 #22192
Ao rodar o código aparece o erro exibido mais a frente.
Não consegui encontrar um link para visualizar os códigos no Google colab, fiz tudo a mão. Caso esse link esteja disponível por favor me envie para que possa comparar com as linhas que escrevi.
Imaginei que o erro estaria no módulo e tentei modifica-lo sem sucesso alterando os parâmetros do punho direito que estão faltando e em desacordo com o padrão.
O erro :
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-16-a4bde24a5d56> in <module> 67 68 # BRAÇOS ---> 69 if extrator_CORPO.verificar_bracos_ABAIXO(pontos[0:8]) == True: # [0:8] é a parte superior superior do corpo 70 # 25% do movimento concluido 71 valida_bracos_abaixo = 0.25 ~\Desktop\VISÃO COMPUTACIONAL\Reconhecimento de Gestos e Ações com Python e OpenCV\modulos\extrator_CORPO.py in verificar_bracos_ABAIXO(pontos) 83 # PUNHO DIREITO 84 if indx == 4: ---> 85 punhoDireito_V = p[1] 86 87 # OMBRO ESQUERDO TypeError: 'NoneType' object is not subscriptable
17 de novembro de 2020 às 18:03 #22193Tudo funciona perfeitamente, apenas quando chega no frame onde a pessoa levanta os pulsos que trava com o erro acima.
Pode me ajudar?
17 de novembro de 2020 às 20:12 #22194Olá LpCoutinho!
Este erro ocorre quando tentamos comparar um valor com nenhum valor (None).
Para corrigir, ao invés de adicionar None na lista de pontos quando o ponto chave detectado não corresponde ao valor mínimo de confiança, pode substituir por (0,0) , ou seja, passamos o valor da posição do ponto sendo em 0 (zero) na horizontal e 0(zero) na vertical.
Segue abaixo o ajuste:
Na linha onde adicionamos os pontos chave a lista de pontos, na condição else mudar para:
else: pontos.append((0, 0)) '''Depois de ajustado, fica assim:'''
Fatos interessantes
None não é o mesmo que False.
None não é 0(zero).
None não está vazio string.
Comparando None com qualquer coisa sempre retornará False, exceto quando comparamos None a ele mesmo.
Ah, também segue o link de acesso ao Colab: https://colab.research.google.com/drive/1Zsi5-8TQsNjm5hKAWBFyabTZ8yWYkCrS#scrollTo=SLAptHZtSeYA
Espero ter ajudado, permaneço a disposição!
- Esta resposta foi modificada 3 anos, 11 meses atrás por Dalton Vargas.
- Esta resposta foi modificada 3 anos, 11 meses atrás por Dalton Vargas.
- AutorPosts
- Você deve fazer login para responder a este tópico.