Recursos avançados e rastreamento
Este capítulo descreve em detalhes as funções de rastreamento automático do sistema, incluindo rastreamento de cor, rastreamento de rosto e rastreamento de QR code, além do mecanismo de bloqueio de alvo e do ajuste de parâmetros.
Visão geral dos modos de rastreamento automático
O sistema oferece três modos de rastreamento automático:
- Rastreamento de cor: rastrear objetos de uma cor especificada
- Rastreamento de rosto: rastrear rostos
- Rastreamento de QR code: rastrear QR codes
Rastreamento de cor
Seleção de cor
O sistema oferece rastreamento de várias cores:
- Vermelho
- Verde
- Azul No programa, é possível alternar a cor pelas teclas:
X: selecionar vermelhoY: selecionar verdeZ: selecionar azul
Fluxo de uso do rastreamento de cor
- Pressione
Cpara conectar o gimbal - Pressione
2para entrar no modo de rastreamento de cor - Coloque o objeto da cor desejada no centro da imagem
- Pressione
Tpara bloquear o alvo - Mova o alvo e observe o gimbal acompanhar
Exemplo simples de rastreamento de cor
Você também pode usar o programa de exemplo de rastreamento de cor simples:
python examples/04_color_track_simple.py --camera 0 --port COM3 --color redEste programa oferece a função mais básica de rastreamento de cor e é ideal para aprendizado.
Rastreamento de rosto
Princípio do rastreamento de rosto
O sistema usa o classificador em cascata Haar do OpenCV para a detecção de rostos. Depois de detectar um rosto, o sistema calcula automaticamente a posição do alvo e controla o gimbal para acompanhá-lo.
Fluxo de uso do rastreamento de rosto
- Pressione
Cpara conectar o gimbal - Pressione
1para entrar no modo de rastreamento de rosto - Coloque o rosto no centro da imagem
- Pressione
Tpara bloquear o alvo - Mova o rosto e o gimbal o seguirá automaticamente
Dicas para aumentar a taxa de sucesso da detecção de rostos
- Mantenha iluminação suficiente e evite contraluz
- Mantenha o rosto de frente para a câmera
- Mantenha uma distância adequada (recomenda-se 1-3 metros)
- Evite cenas com vários rostos ou use o mecanismo de bloqueio para fixar o alvo do rastreamento
Rastreamento de QR code
O modo de rastreamento de QR code usa o QRCodeDetector do OpenCV para reconhecer e localizar QR codes. O uso é semelhante aos dois modos de rastreamento anteriores:
- Conecte o gimbal e entre no modo de rastreamento de QR code
- Coloque o QR code no centro da imagem e pressione
Tpara bloquear - Mova o QR code e observe o gimbal acompanhar
Mecanismo de bloqueio de alvo
Função do bloqueio
O mecanismo de bloqueio de alvo é uma função essencial do sistema; seus objetivos incluem:
- Registrar a posição central e o tamanho do alvo no momento do bloqueio
- Quando há vários alvos, priorizar o mais próximo do ponto de bloqueio
- Evitar trocas frequentes de alvo e manter a estabilidade do rastreamento
Fluxo de bloqueio
- Coloque o objeto-alvo no centro da imagem
- Pressione
Tpara bloquear - Após o bloqueio bem-sucedido, o sistema priorizará o alvo mais semelhante ao do momento do bloqueio
- Pressione
Spara cancelar o bloqueio e parar o rastreamento
Lógica de seleção durante o bloqueio
Na seleção de alvo após o bloqueio, o sistema considera dois fatores:
- Distância: quão próximo o centro do alvo está do ponto de bloqueio (peso 70%)
- Tamanho: grau de semelhança do tamanho do alvo com o do momento do bloqueio (peso 30%)
- O sistema rastreia o alvo com a maior pontuação combinada
Ajuste dos parâmetros de controle do rastreamento
Em src/trackers/tracking_controller.py, há os seguintes parâmetros ajustáveis:
| Parâmetro | Valor padrão | Descrição |
|---|---|---|
| kp_pan | 0.08 | Ganho proporcional do rastreamento esquerda/direita |
| kp_tilt | 0.12 | Ganho proporcional do rastreamento cima/baixo |
| dead_zone | 30 | Zona morta (pixels); dentro dessa faixa o gimbal não se move |
| min_move_interval | 0.15 | Intervalo mínimo de movimento (segundos), limita a frequência de movimento do gimbal |
Métodos de ajuste dos parâmetros
- Rastreamento muito lento: aumente
kp_panekp_tilt - Rastreamento sensível demais, causando tremores: reduza
kp_panekp_tilt, ou aumentemin_move_interval, ou aumentedead_zone - Microajustes frequentes, causando tremores: aumente
dead_zone - Direção invertida: altere o sinal de
delta_panoudelta_tiltno métodocalculate_move
Exemplo completo de uso do rastreamento
A seguir, um exemplo completo de fluxo de uso:
- Inicie o programa:
python examples/auto_tracking_demo.py --camera 0 --port COM3 --color red- Pressione
Cpara conectar o gimbal - Pressione
2para selecionar o modo de rastreamento de cor - Coloque o objeto vermelho no centro da imagem
- Pressione
Tpara bloquear o alvo - Mova o objeto e observe o gimbal acompanhar
- Se quiser trocar para verde, pressione
Ye depois pressioneTnovamente para bloquear - Pressione
Spara parar o rastreamento eRpara centralizar - Pressione
Qpara sair
Dicas para desenvolvimento avançado
Para personalizar funções ou fazer desenvolvimento secundário, consulte:
src/sc_servo.py: comunicação de baixo nível com os servossrc/gimbal.py: controle do gimbalsrc/trackers/tracking_controller.py: controlador de rastreamentosrc/detectors/: diversos detectores de alvo

