Como Colocar Entradas de VIDEOS EXTERNOS

Home Fóruns Fórum Detecção de Movimentos com Python e OpenCV Como Colocar Entradas de VIDEOS EXTERNOS

Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #43864

    Professor, como eu coloco uma entrada de vídeo externo, EX:  Eu transmito as imagens do drone em tempo real pra o VLC, no caso como eu colocaria essa entrada no algoritmo em vês do vídeo ?  ou como colocar qualquer outra fonte de vídeo exerna ?

    #43869
    Dalton Vargas
    Moderador

      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:

      • Esta resposta foi modificada 9 meses, 3 semanas atrás por Dalton Vargas.
      #43876

      Maravilha Professor, deu certo ok.

      Uma dica Professor, trabalho com drone qual desses projeto mais indicado pra usar as imagens do drone por ex. pra acompanhar um intruso pelo fato de algum momento o drone ter que se movimentar ou seja o vídeo estará em movimento em algum momento, no caso pra rastrear o individuo qual dos projetos aqui na plataforma é mais indicado ?

      #43877

      Esqueci de mencionar na pergunta acima vamos lá, COMO É POSSIVEL COM ESSE PROJETO ACIONAR UMA ALARME NO PC MESMO, como implementar essa função ou entrada ex. para que quando detectar o movimento tocar um som qualquer ?

      #43878
      Dalton Vargas
      Moderador

        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’)

        • Esta resposta foi modificada 9 meses, 3 semanas atrás por Dalton Vargas.
        #43881

        Então Professor, eu inseri o áudio, porem quando executo ele toca o áudio e não abre por explo a câmera, qualquer parte que coloco a linha do código sempre ele toca o áudio e não abre a câmera

         

        segue o parte do codigo, “Detecção de movimentos 2″em negrito o codigo do audio.

         

        for cnt in contours:
        area = cv2.contourArea(cnt)
        if area >= minArea:
        x, y, w, h = cv2.boundingRect(cnt)
        cv2.rectangle(frame, (10,30), (300,55), (255, 0, 0), -1)
        cv2.putText(frame, ‘Movimento detectado!’, (10,50), FONT, 0.8, TEXT_COLOR, 2, cv2.LINE_AA)

        cv2.drawContours(frame, cnt, -1, TRACKER_COLOR, 3)
        cv2.drawContours(frame, cnt, -1, (255,255,255), 1)
        cv2.rectangle(frame, (x, y), (x+w, y+h), TRACKER_COLOR, 3)
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255,255,255), 1)

        playsound(“Adam_03.mp3”)

        # Sobreposições transparentes
        # https://www.pyimagesearch.com/2016/03/07/transparent-overlays-with-opencv/
        #for alpha in np.arange(0.8, 1.1, 0.9)[::-1]:
        # frame_copy = frame.copy()
        # output = frame.copy()
        # cv2.drawContours(frame_copy, [cnt], -1, TRACKER_COLOR, -1)
        # frame = cv2.addWeighted(frame_copy, alpha, output, 1 – alpha, 0, output)

        result = cv2.bitwise_and(frame, frame, mask=bg_mask)
        cv2.imshow(‘Frame’, frame)
        cv2.imshow(‘Mask’, result)

        if cv2.waitKey(1) & 0xFF == ord(“q”):
        break

        main()

        #43885
        Dalton Vargas
        Moderador

          Entendi,

          Considerando que o processamento da detecção ocorre a cada frame, é possível que o algoritmo de processamento de áudio possa interromper o fluxo de processamento do vídeo. Para solucionar esse problema, sugiro a implementação de variáveis de controle para alterar seu estado quando o movimento é detectado, permitindo a execução do áudio somente quando um estado específico for identificado.

          Sugiro utilizar uma variável booleana inicializada como ‘False’ e alterá-la para ‘True’ apenas quando houver detecção de movimento. Também seria útil ter uma segunda variável para registrar o tempo entre detecções consecutivas, permitindo que o valor da variável booleana seja redefinido para ‘False’ após um determinado intervalo de tempo

          #43886

          Professor poderia me dar um exemplo de como inserir e onde colocar esses código,  se me dar um exemplo do código ficara mais fácil pra mim assimilar, e acerta essa questão. tentei alguma coisa aqui mas a cabeça bugo kkk.

          #44588
          Dalton Vargas
          Moderador

            Olá Abraão,

            Peço desculpas pela demora em lhe dar o retorno.

            Adaptei o exemplo aqui do curso sobre detecção de distanciamento social.

            adicionei duas variáveis de controle:

            • THRESHOLD_COUNTER = 200, assim a cada 200 frames onde a detecção de proximidade alcançar este limiar, dispara o ‘alarme’ (sugiro usar um som com um tempo de execução bem curto, 2 seg. por exemplo, para não ‘travar’ a detecção por muito tempo);
            • counter = 0, que é o contador de frames onde houve a detecção de proximidade.

            É um exemplo bem simples para ajudar a você entender a ideia, então pode adapatar da maneira que você achar melhor. Segue abaixo:

          Visualizando 9 posts - 1 até 9 (de 9 do total)
          • Você deve fazer login para responder a este tópico.