Home › Fóruns › Fórum Rastreamento de Objetos com Python e OpenCV › intalção do OpenCV 3.4.4.19
Marcado: Rastreamento de um objeto 1
- Este tópico contém 24 respostas, 3 vozes e foi atualizado pela última vez 11 meses, 1 semana atrás por Dalton Vargas.
- AutorPosts
- 2 de agosto de 2021 às 13:42 #29949
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
- Este tópico foi modificado 3 anos, 5 meses atrás por Breno Valadares.
2 de agosto de 2021 às 16:24 #29952Olá 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).
- Esta resposta foi modificada 3 anos, 5 meses atrás por Dalton Vargas.
2 de agosto de 2021 às 18:20 #29962Continuo 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’3 de agosto de 2021 às 13:37 #29963instalei a versão ‘4.5.3’ e funcionou, obrigado.
3 de agosto de 2021 às 19:12 #29967Legal! Que bom que deu certo!
4 de fevereiro de 2024 às 11:21 #43752Olá 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)4 de fevereiro de 2024 às 11:24 #43753Professor só fazendo uma correção, o problema mencionado acima é referente a aula Rastreamento de um objeto 2, obrigado
5 de fevereiro de 2024 às 11:01 #43759Olá 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.
5 de fevereiro de 2024 às 11:50 #43760Olá 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
MILProcess 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:
breaktimer = cv2.getTickCount()
ok, bbox = tracker.update(frame)
print(ok, bbox)5 de fevereiro de 2024 às 12:15 #43761Professor, pra melhor visualização, segue o pint., obrigado
6 de fevereiro de 2024 às 08:12 #43769entendi 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.
6 de fevereiro de 2024 às 18:14 #43773Professor, 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
7 de fevereiro de 2024 às 08:46 #43774Certo 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
- Select a ROI and then press SPACE or ENTER button!
- Esta resposta foi modificada 11 meses, 2 semanas atrás por Dalton Vargas.
7 de fevereiro de 2024 às 11:56 #43778Professor, 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.
7 de fevereiro de 2024 às 12:38 #43779Acho 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.
- AutorPosts
- Você deve fazer login para responder a este tópico.