intalção do OpenCV 3.4.4.19

Home Fóruns Fórum Rastreamento de Objetos com Python e OpenCV intalção do OpenCV 3.4.4.19

Visualizando 15 posts - 1 até 15 (de 24 do total)
  • Autor
    Posts
  • #29949
    Breno Valadares
    Participante
      Olá professor, não consigo instalar a versão que o senhor ensina nos videos os seguintes conflitos são apresentados:
      
      C:\Windows\System32>pip install opencv-python==3.4.4.19
      ERROR: Could not find a version that satisfies the requirement opencv-python==3.4.4.19 (from versions: 3.4.10.37, 3.4.11.39, 3.4.11.41, 3.4.11.43, 3.4.11.45, 3.4.13.47, 3.4.14.51, 3.4.14.53, 3.4.15.55, 4.3.0.38, 4.4.0.40, 4.4.0.42, 4.4.0.44, 4.4.0.46, 4.5.1.48, 4.5.2.52, 4.5.2.54, 4.5.3.56)
      ERROR: No matching distribution found for opencv-python==3.4.4.19
      
      
      import cv2
      import sys
      from random import randint
      
      (major_ver, minor_ver, subminor_ver) = (cv2.__version__).split('.')
      #print(major_ver, minor_ver, subminor_ver)
      
      tracker_types = ['BOOSTING', 'MIL', 'KCF','TLD', 'MEDIANFLOW', 'MOSSE', 'CSRT']
      tracker_type = tracker_types[6]
      print(tracker_type)
      
      if int(minor_ver) < 3:
          tracker = tracker_type
      else:
          if tracker_type == 'BOOSTING':
              tracker = cv2.TrackerBoosting_create()
          if tracker_type == 'MIL':
              tracker = cv2.TrackerMIL_create()
          if tracker_type == 'KCF':
              tracker = cv2.TrackerKCF_create()
          if tracker_type == 'TLD':
              tracker = cv2.TrackerTLD_create()
          if tracker_type == 'MEDIANFLOW':
              tracker = cv2.TrackerMedianFlow_create()
          if tracker_type == 'MOSSE':
              tracker = cv2.TrackerMOSSE_create()
          if tracker_type == 'CSRT':
              tracker = cv2.TrackerCSRT_create()
      
      print(tracker)

      [Running] set PYTHONIOENCODING=utf8 && python “c:\Users\Breno\Desktop\Code\Arquivos_Python\visao_computacional\iaexpert\Single_tracking.py”
      CSRT
      Traceback (most recent call last):
      File “c:\Users\Breno\Desktop\Code\Arquivos_Python\visao_computacional\iaexpert\Single_tracking.py”, line 28, in <module>
      tracker = cv2.TrackerCSRT_create()
      AttributeError: module ‘cv2.cv2’ has no attribute ‘TrackerCSRT_create’

      [Done] exited with code=1 in 0.19 seconds

      
      
      #29952
      Dalton Vargas
      Moderador

        Olá Breno!

        Ah sim, as vezes ocorre este erro. Você tentar com outras versões do OpenCV realizando um pequeno ajusto no código, na parte onde criamos os trackers, acessando cada um deles através do legacy. Segue abaixo:

        Ajustar disso:

        if tracker_type == 'BOOSTING':
              tracker = cv2.TrackerBoosting_create()

        Para isso:

        if tracker_type == 'BOOSTING':
              tracker = cv2.legacy.TrackerBoosting_create()

        Conforme a imagem abaixo, apenas o rastreador Goturn não está disponível no legacy, todos os demais estão. Lembrando que o GOTURN é o único rastreador baseado em aprendizado profundo incluído no OpenCV. Requer arquivos de modelo adicionais para ser executado (goturn.caffemodel e goturn.prototxt).

        legacy

        • Esta resposta foi modificada 2 anos, 10 meses atrás por Dalton Vargas.
        #29962
        Breno Valadares
        Participante

          Continuo com erro:

          import cv2
          import sys
          from random import randint
          
          (major_ver, minor_ver, subminor_ver) = (cv2.__version__).split('.')
          #print(major_ver, minor_ver, subminor_ver)
          
          tracker_types = ['BOOSTING', 'MIL', 'KCF',
                           'TLD', 'MEDIANFLOW', 'MOSSE', 'CSRT']
          tracker_type = tracker_types[1]
          
          print(cv2.__version__)
          print(tracker_type)
          
          if int(minor_ver) < 3:
              tracker = tracker_type
          else:
              if tracker_type == 'BOOSTING':
                  tracker = cv2.legacy.TrackerBoosting_create()
              if tracker_type == 'MIL':
                  tracker = cv2.legacy.TrackerMIL_create()
              if tracker_type == 'KCF':
                  tracker = cv2.legacy.TrackerKCF_create()
              if tracker_type == 'TLD':
                  tracker = cv2.legacy.TrackerTLD_create()
              if tracker_type == 'MEDIANFLOW':
                  tracker = cv2.legacy.TrackerMedianFlow_create()
              if tracker_type == 'MOSSE':
                  tracker = cv2.legacy.TrackerMOSSE_create()
              if tracker_type == 'CSRT':
                  tracker = cv2.legacy.TrackerCSRT_create()
          
          print(tracker)

          v3.4.15
          MIL
          Traceback (most recent call last):
          File “c:\Users\Breno\Desktop\Code\Arquivos_Python\visao_computacional\iaexpert\Single_tracking.py”, line 21, in <module>
          tracker = cv2.legacy.TrackerMIL_create()
          AttributeError: module ‘cv2.cv2’ has no attribute ‘legacy’

          #29963
          Breno Valadares
          Participante

            instalei a versão ‘4.5.3’ e funcionou, obrigado.

            #29967
            Dalton Vargas
            Moderador

              Legal! Que bom que deu certo!

              #43752

              Olá Professor, joia,  Probleminha por aqui, nos testes final aqui desta aula ,ele não carrega o vídeo porem não da mensagem de erro, e sim esta abaixo:

               

              C:\Users\Admin\anaconda3\envs\RASTREAMENTO_OpenCV\python.exe C:\Users\Admin\pythonProject\RASTREAMENTO_OpenCV\Single_tracking.py

              Process finished with exit code 0

               

              LEMBRANDO QUE NO INICIO DA INSTALAÇAO NÃO ACEITOU A VERSÃO MENCIONADA NA AULA, MINHA VERSÃO ATUAL É A -4.9.0

              segue meu codigo

              import cv2
              import sys
              from random import randint

              (major_ver,minor_ver,subminor_ver) = (cv2.__version__).split(‘.’)
              #print(major_ver,minor_ver,subminor_ver)

              tracker_types=[‘BOOSTING’,’MIL’,’KCF’,’TLD’,’MEDIANFLOW’,’MOSSE’,’CSRT’]
              tracker_type = tracker_types[1]
              #print(tracker_type)

              if int(minor_ver)<1:
              tracker = tracker_type
              else:
              if tracker_type == ‘BOOSTING’:
              tracker = cv2.legacy.TrackerBoosting_create()
              if tracker_type ==’MIL’:
              tracker = cv2.legacy.TrackerMIL_create()
              if tracker_type == ‘KCF’:
              tracker = cv2.legacy.TrackerKCF_create()
              if tracker_type == ‘TLD’:
              tracker = cv2.legacy.TrackerTLD_create()
              if tracker_type == ‘MEDIANFLOW’:
              tracker = cv2.legacy.TrackerMedianFlow_create()
              if tracker_type == ‘MOSSE’:
              tracker = cv2.legacy.TrackerMOSSE_create()
              if tracker_type == ‘CSRT’:
              tracker = cv2.legacy.TrackerCSRT_create()

              print(tracker)

              video = cv2.VideoCpture(‘videos/race.mp4’)
              if not video.isOpened():
              print (‘Não foi possosivel carregar o vídeo’)
              sys.exit()

              ok, frame = video.read()
              if not ok:
              print (‘Não foi possivel ler o arquivo de vídeo’)
              sys.exit()
              print (ok)

              #43753

              Professor só fazendo uma correção, o problema mencionado acima é referente a aula Rastreamento de um objeto 2, obrigado

              #43759
              Dalton Vargas
              Moderador

                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.

                #43760

                Olá Professor, muito obrigado pelo retorno.

                Concertei o ‘a’, porem sem exito, qualquer comando Executar que eu faça sempre me retorna esta mensagem abaixo:

                 

                C:\Users\Admin\anaconda3\envs\RASTREAMENTO_OpenCV\python.exe C:\Users\Admin\pythonProject\RASTREAMENTO_OpenCV\Single_tracking.py
                MIL

                Process finished with exit code 0

                 

                SEGUE MEU CODIGO

                 

                import sys
                import cv2
                from random import randint

                (major_ver,minor_ver, subminor_ver) = (cv2.__version__).split(‘.’)
                #print(major_ver,minor_ver,subminor_ver)

                tracker_types=[‘BOOSTING’, ‘MIL’, ‘KCF’, ‘TLD’, ‘MEDIANFLOW’, ‘MOSSE’, ‘CSRT’]
                tracker_type = tracker_types[1]
                print(tracker_type)

                if int(minor_ver)<3:
                tracker = tracker_type
                else:
                if tracker_type == ‘BOOSTING’:
                tracker = cv2.legacy.TrackerBoosting_create()
                if tracker_type ==’MIL’:
                tracker = cv2.legacy.TrackerMIL_create()
                if tracker_type == ‘KCF’:
                tracker = cv2.legacy.TrackerKCF_create()
                if tracker_type == ‘TLD’:
                tracker = cv2.legacy.TrackerTLD_create()
                if tracker_type == ‘MEDIANFLOW’:
                tracker = cv2.legacy.TrackerMedianFlow_create()
                if tracker_type == ‘MOSSE’:
                tracker = cv2.legacy.TrackerMOSSE_create()
                if tracker_type == ‘CSRT’:
                tracker = cv2.legacy.TrackerCSRT_create()

                print(tracker)

                video = cv2.VideoCapture(‘videos/race.mp4’)
                if not video.isOpened():
                print(‘Não foi possosivel carregar o vídeo’)
                sys.exit()

                ok, frame = video.read()
                if not ok:
                print (‘Não foi possivel ler o arquivo de vídeo’)
                sys.exit()
                print (ok)

                bbox = cv2.selectROI(frame,False)
                print(bbox)

                ok = tracker,init(frame,bbox)
                print (ok)

                colors = (randint(0,255), randint(0,255), randint(0,255))
                print (colors)

                while True:
                ok, frame = video.read()
                if not ok:
                break

                timer = cv2.getTickCount()
                ok, bbox = tracker.update(frame)
                print(ok, bbox)

                #43761

                Professor, pra melhor visualização, segue o pint., obrigado

                 

                 

                #43769
                Dalton Vargas
                Moderador

                  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.

                  #43773

                  Professor, Maravilha resolvido deu certo ok , muito obrigado.

                   

                  porem no MultiTracker ele responde os mesmo comando do Single, não abre a caixa em forma de cruzeta e nem da opção pra selecionar vários, ou seja responde os mesmo comando do anterior

                  segue o código em duas parte que o pint. não coube

                  #43774
                  Dalton Vargas
                  Moderador

                    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
                    • Esta resposta foi modificada 3 meses, 3 semanas atrás por Dalton Vargas.
                    #43778

                    Professor, obrigado pelo retorno estou muito contente e animado com os treinamento é uma nova experiência, muito obrigado pela oportunidade, vou seguir a carreira DEV, consertesa

                    Então, o código segue do mesmo jeito ACIMA, conferi esta E tudo correto, quando executo abre o vídeo, mas o bbox abre SEM a cruzeta, ou seja, abre normal como no SINGLE, ai eu seleciono um dou espaço, e ele simplesmente executa o rastreamento como no SINGLE, não permitindo selecionar outros.

                     

                    E um outro detalhe, quando o vídeo abre ele não mostra a POSIÇÃO E NEM O RGB no rodapé do vídeo, como segue a imagem o da direita é o meu e da esquerda é da aula, isso me refiro mesmo no SINGLE.

                     

                     

                     

                     

                     

                     

                     

                     

                     

                     

                     

                     

                     

                     

                     

                     

                    #43779

                     

                    Acho que o problema esta aqui , no print da aula o MultiTracker esta em execução como mostra a seta, porem não acontece o mesmo com o meu da esquerda, estou trabalhando no MultiTracker, porem na seta da direita mostra o SINGLLE, porem clico ali e nao esta a opção do MultiTracker, não consegui fazer com que ele apareça ali, por iço que minha suspeita é essa, ou seja eu executo o MultiTracker mas ele responde com o SINGLE porque esta executando ali no RUM  onde mostra a seta a direita.

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