Forum Replies Created

Viewing 15 posts - 31 through 45 (of 114 total)
  • Author
    Posts
  • in reply to: Como Colocar Entradas de VIDEOS EXTERNOS #43878
    Dalton Vargas
    Moderator

      Olá Abraão,

      Sugiro combinar os algoritmos de rastreamento de objetos com estes de detecção de movimentos. Sobre emitir um som ao detectar o movimento, existem algumas bibliotecas do python para isso, como por exemplo a playsound. Segue um exemplo utilizando a playsound para reproduzir um som:

      from playsound import playsound

      playsound(‘path/to/audio/file/audio.mp3’)

      in reply to: Como Colocar Entradas de VIDEOS EXTERNOS #43869
      Dalton Vargas
      Moderator

        Certo, apenas precisa ajustar o carregamento do vídeo:

        * ao invés de passar como parâmetro para a função cv2.VideoCapture a variável VIDEO_SOURCE (caminho até um vídeo):

        VIDEO_SOURCE = “videos/Cars.mp4”
        cap = cv2.VideoCapture(VIDEO_SOURCE)
        hasFrame, frame = captura.read()

        * você passa a ID da câmera:
        cap = cv2.VideoCapture(0)
        hasFrame, frame = captura.read()

        Se você tiver mais de uma webcam conectada, pode ser necessário testar qual é a sua webcam identificada pelo número zero e alterar o valor sequencialmente para encontrar a webcam que se deseja utilizar na captura. Com uma única webcam, o valor zero irá funcionar.

        Caso você necessite conectar a uma câmera IP, ai você passa o URL de streaming como parâmetro. Normalmente, o protocolo RTSP ou HTTP é usado pela câmera para transmitir vídeo. Por exemplo:
        cap = cv2.VideoCapture(‘rtsp://192.168.1.1/1’)

        A maioria das câmeras IP possui um nome de usuário e senha para acessar o vídeo. Nesse caso, as credenciais devem ser fornecidas no URL de streaming da seguinte forma:
        cap = cv2.VideoCapture(‘rtsp://username:password@192.168.1.1/1’)
        Também seguem alguns artigos que podem lhe ajudar:

        in reply to: intalção do OpenCV 3.4.4.19 #43863
        Dalton Vargas
        Moderator

          Olá Abraão,

          Conforme a mensagem de erro, você escreveu waitkey errado (k = cv2.waiteKey(1) & 0XFF AttributeError: module ‘cv2’ has no attribute ‘waiteKey’). Ajustanto isso deve funcionar.

          in reply to: intalção do OpenCV 3.4.4.19 #43851
          Dalton Vargas
          Moderator

            Que bom que deu certo Abraão, sigo a disposição!

            Boa aula!

             

            Att

            Dalton

            in reply to: intalção do OpenCV 3.4.4.19 #43842
            Dalton Vargas
            Moderator

              Perfeito Abraão, que bom que deu certo a execução do multitracker.

              Em relação às informações do rodapé, é importante notar que nas aulas do professor Jones os scripts do curso estão sendo executados em uma máquina MAC (Apple), especificamente quando o script é executado no PyCharm. Isso se deve a uma funcionalidade específica do PyCharm em dispositivos dessa marca.

              Sobre o erro que você mencionou, de acordo com a mensagem de erro é no momento que está instanciando o multitracker. Já tentou usar o legacy (adicionando ‘legacy’ entre cv2. e a instanciação do tracker)?

              Segue um exemplo de como ficaria o script competo usando o legacy:

               

              in reply to: intalção do OpenCV 3.4.4.19 #43774
              Dalton Vargas
              Moderator

                Certo Abraão,

                pelo que analisei e testei, seu script está perfeito.

                Seguem algumas sugestões:

                • se não está nem abrindo a janela para você selecionar os objetos, verifique se o path para ao vídeo está correto;
                • verifique no seu prompt as mensagens que a função selectROI retorna e tente seguir conforme as instruções de retorno:
                  • Select a ROI and then press SPACE or ENTER button!
                    Cancel the selection process by pressing c button!
                    Press Q to quit and start tracking
                    Press any other key to select the next object
                in reply to: intalção do OpenCV 3.4.4.19 #43769
                Dalton Vargas
                Moderator

                  entendi Abraão, o erro está na identação do seu script. Você deixou todas as funções dentro da condição que verifica se o tracker selecionado é o CSRT, o que significa que essas funções só serão ativadas se esse tracker for escolhido.

                  Segue o print de como deve ficar pra você ter uma base. Alem disso sugiro revisar/acompanhar as aulas para entender detalhadamente a implementação, onde cada linha de código é explicada em detalhes.

                  in reply to: intalção do OpenCV 3.4.4.19 #43759
                  Dalton Vargas
                  Moderator

                    Olá Abraão,

                    Após realizar testes com o seu script, observei um pequeno erro de digitação na função cv2.VideoCapture, onde está faltando a letra ‘a’ na palavra ‘Capture’:

                    video = cv2.VideoC**a**pture(‘Videos/race.mp4’) # não esqueça de remover os asteriscos

                    Fora esse detalhe, o restante do código funcionou sem problemas.

                    in reply to: Agenda #43758
                    Dalton Vargas
                    Moderator

                      Olá Alessandro,

                      No módulo carrega_agenda.py temos a comparação se a hora dos eventos do dia registrados na agenda.xlsx é maior ou igual a hora atual:

                      hora = datetime.datetime.time(hora_completa).hour

                      if data_atual == data:
                              if hora >= hora_atual: # Se a hora do evento agendado for maior ou igual a hora atual. Se não a hora do evento já passou
                                  descricao.append(row[‘descricao’]), responsavel.append(row[‘responsavel’]), hora_agenda.append(row[‘hora’])

                      Note que não estamos comparando minutos ou segundos, somente a hora. Para comparar também os minutos, você deve ajustar esta condição no script acima para trazer também os minutos e comparar com o minuto atual. Segue um exemplo de como ficaria:

                      for index, row in agenda.iterrows():
                          data = datetime.datetime.date(row[‘data’])
                          #print(data)
                          hora_completa = datetime.datetime.strptime(str(row[‘hora’]), ‘%H:%M:%S’)
                          #print(hora_completa)
                          hora = hora_completa.hour
                          #print(hora)
                          minuto = hora_completa.minute

                          if data_atual == data:
                              if hora > hora_atual or (hora == hora_atual and minuto >= minuto_atual): # Se a hora e o minuto do evento agendado forem maiores ou iguais a hora e minuto atual. Se não a hora do evento já passou
                                  descricao.append(row[‘descricao’]), responsavel.append(row[‘responsavel’]), hora_agenda.append(row[‘hora’])

                       

                      in reply to: Os algoritmos não detectam corretamente #43542
                      Dalton Vargas
                      Moderator

                        Olá Mateus,

                         

                        Consegui identificar o problema.

                        É na condição onde você está comparando a versão do OpenCV para instanciar o rastreador, é necessário comparar a variável major_ver e minor_ver na condição conforme segue abaixo:

                        #Ajustar disso

                        if int(minor_ver) < 3 :
                        tracker = tracker_type

                        # Para isso

                        if int(major_ver) == 3 and int(minor_ver) < 3:
                        tracker = cv2.Tracker_create(tracker_type.upper())

                        in reply to: funcao speak #43360
                        Dalton Vargas
                        Moderator

                          Olá Tiago,

                          Este erro indica que o programa não consegue encontrar o arquivo compartilhado libespeak.so.1. Este é um problema comum quando há uma dependência ausente ou mal configurada. Para corrigir isso, você pode seguir a etapa abaixo:

                          • Instale o pacote espeak:
                            • No Ubuntu ou Debian, você pode instalar usando o seguinte comando: sudo apt-get install espeak
                            • No Linux ou Manjaro, você pode instalar o eSpeak usando um gerenciador de pacotes como pamac: pamac install espeak-ng
                          • Se você estiver usando uma distribuição Linux diferente, pode ser necessário consultar seu gerenciador de pacotes ou repositório de pacotes para instalar o eSpeak.
                          • Para Windows, pyttsx3 usa SAPI5 por padrão. Certifique-se de ter vozes SAPI5 instaladas e configuradas corretamente em seu sistema Windows.

                          Se você estiver usando um sistema operacional diferente, consulte a documentação do seu gerenciador de pacotes para instalar o pacote espeak.

                          in reply to: plt.figure(figsize=(18,7)) sns.countplot(df[‘classID’]); #43201
                          Dalton Vargas
                          Moderator

                            Olá Edson,

                            Seguem algumas sugestões de ajuste:

                            • você pode contar as frequências das categorias na coluna ‘classID’ antes de criar o gráfico usando o método .value_counts() do pandas e, em seguida, passar os resultados para sns.countplot():

                            # Conte as frequências das categorias na coluna ‘classID’
                            class_counts = df[‘classID’].value_counts() 

                            # Crie o gráfico de contagem
                            plt.figure(figsize=(18, 7))
                            sns.barplot(x=class_counts.index, y=class_counts.values)
                            plt.xticks(rotation=90) # Rotação dos rótulos no eixo x, se necessário
                            plt.xlabel(‘Classe’)
                            plt.ylabel(‘Contagem’)
                            plt.title(‘Contagem de Classes’)
                            plt.show()

                            in reply to: Erro na execução do Notebook Classificações de Sons Ambientais #43194
                            Dalton Vargas
                            Moderator

                              Flávio,

                              Você acabou postando duas vezes a mesma pergunta. Vou replicar a resposta abaixo:

                              Olá Flávio,

                              Seguem algumas sugestões de ajuste:

                              você pode contar as frequências das categorias na coluna ‘classID’ antes de criar o gráfico usando o método .value_counts() do pandas e, em seguida, passar os resultados para sns.countplot():# Conte as frequências das categorias na coluna ‘classID’
                              class_counts = df[‘classID’].value_counts() 

                              # Crie o gráfico de contagem
                              plt.figure(figsize=(18, 7))
                              sns.barplot(x=class_counts.index, y=class_counts.values)
                              plt.xticks(rotation=90) # Rotação dos rótulos no eixo x, se necessário
                              plt.xlabel(‘Classe’)
                              plt.ylabel(‘Contagem’)
                              plt.title(‘Contagem de Classes’)
                              plt.show()

                              in reply to: Erro na execução do Notebook Classificações de Sons Ambientais #43193
                              Dalton Vargas
                              Moderator

                                Olá Flávio,

                                Seguem algumas sugestões de ajuste:

                                • você pode contar as frequências das categorias na coluna ‘classID’ antes de criar o gráfico usando o método .value_counts() do pandas e, em seguida, passar os resultados para sns.countplot():
                                  • # Conte as frequências das categorias na coluna ‘classID’
                                    class_counts = df[‘classID’].value_counts()

                                    # Crie o gráfico de contagem
                                    plt.figure(figsize=(18, 7))
                                    sns.barplot(x=class_counts.index, y=class_counts.values)
                                    plt.xticks(rotation=90) # Rotação dos rótulos no eixo x, se necessário
                                    plt.xlabel(‘Classe’)
                                    plt.ylabel(‘Contagem’)
                                    plt.title(‘Contagem de Classes’)
                                    plt.show()

                                in reply to: Referenciar o curso #42981
                                Dalton Vargas
                                Moderator

                                  Legal Rodrigo, parabéns por mais esta conquista!

                                Viewing 15 posts - 31 through 45 (of 114 total)