Fazendo uma câmera me seguir


9

Quero gravar algumas palestras que vou dar no próximo semestre. Eu tenho uma câmera de vídeo e posso mudar de direção usando um servo de algum tipo. No entanto, não tenho idéia de como detectar onde estou. Eu carregando algum dispositivo de transmissão ficaria bem. Principalmente, a sensibilidade deve ser capaz de determinar se estou no lado esquerdo ou direito da sala, mas não preciso de muito mais do que isso.


11
A maneira mais fácil seria usar um computador e uma webcam. O computador executa o rastreamento de movimento ao longo do local em que sua cabeça e ombros controlam o servo. O algoritmo de rastreamento é tão simples quanto procurar a média da localização dos pixels com mais alterações .... Ou você não tem um computador disponível?
Chris H

@ Chris H, se você tiver informações sobre um programa funcional tão facilmente disponível, acho que seria uma resposta perfeita.
Kortuk

Bem, eu não conheço nenhum especificamente, mas considere o OpenCV. Você pode aplicar um recorte e depois uma função de rastreamento de movimento. Cortar é apenas para garantir que você não perceba outras coisas em movimento. Ele deve chegar a cerca de 100 linhas de código total. Provavelmente, é mais fácil codificá-lo você mesmo do que configurar e aprender outro programa, especialmente porque você precisa interagir com um motor posteriormente.
Chris H

Alguém poderia me dizer qual é a maneira correta de agir, se houver duas respostas igualmente válidas; eu apenas escolho um aleatoriamente para ser a resposta?
kasterma

@ kasterma: Sim, se você realmente implementasse um em vez de outro, eu escolheria isso. Você sempre pode votar nos dois.
Nick T

Respostas:


9

Você pode usar alguns LEDs infravermelhos simples, e também colocar vários receptores infravermelhos, apenas fotodiodos infravermelhos simples funcionarão, com um ângulo de visão estreito.

Se você os colocar ao redor da base da câmera e depois fizer um microcontrolador ler qual deles tem o melhor sinal, você poderá apontar a câmera para a fonte de infravermelho.

Parece complicado, mas é muito simples e não requer um computador. O hardware é fácil de fazer, embora você provavelmente encontre em ambientes ruidosos (luz brilhante) que você deseja modular o seu IR para evitar o ruído de banda larga que você recebe.


Eu tentei isso, na verdade, funciona a menos que haja janelas grandes.
Chris H

@ Chris H, uma janela grande é apenas um desafio para eu obter um emissor de IR mais brilhante. Frequentemente, a modulação pode ajudar significativamente com o problema de infravermelho da luz solar ou das luzes fluorescentes.
Kortuk

Isso parece uma solução muito boa, não sei o que você quer dizer quando sugere que eu module meu RI. Você quer dizer que eu deveria pulsar o LED IR em uma frequência conhecida e tentar detectar exatamente essa frequência com o receptor?
Kasterma

@ Kasterma, Sim, é isso que eu quero dizer. Você pressiona o LED de IR em 40KHz, por exemplo, e depois cria um filtro em 40KHz nos receptores, para ignorar o IR de banda larga que o Sol e as luzes emitem. Pode ser necessário ajustar a frequência para evitar a frequência que suas luzes fluorescentes emitem. você pode experimentá-lo sem essa modulação primeiro para ver se atende às especificações, pois é mais fácil de fazer.
Kortuk

Eu já vi isso feito com um Nintendo Wii. Muito legal. +1
tyblu

7

O que você está procurando pode estar relacionado ao "rastreamento de blob". É uma técnica comumente usada em robótica e processamento de visão.

Dependendo dos chops de programação, você pode usar o OpenCV (bibliotecas de visão computacional de código aberto) disponível em C ++ e Python. Outros idiomas podem ter bibliotecas que oferecem suporte ao rastreamento de blob. Acredito que o LabVIEW e o Matlab também tenham bibliotecas para dar suporte a isso.

Geralmente, a configuração será um computador processando o vídeo e localizando um blob (você) de uma cor específica. Você pode usar as informações da posição do blob no quadro da câmera para determinar para onde apontar a câmera. Se você estiver, por exemplo, dirigindo o servo na câmera com um Arduino (ou qualquer outro microcontrolador), poderá enviar comandos pela porta serial para atualizar a posição desejada da câmera. Quando o blob deixa alguma "caixa" desejada no centro do quadro.

Se desejar, você pode fazer um rastreamento mais inteligente implementando alguma combinação de controle Proporcional, Integral e Derivativo (PID, se você estiver pesquisando na Internet), para tentar manter-se centrado no quadro, mas isso pode ser mais do que você precisa para sua aplicação.

Edit: Um pouco de pesquisa produziu este resultado: Aplicativos Criativos . Esta é mais ou menos a solução que expliquei.


4
Hora de comprar algumas camisas "de cores exclusivas".
Nick T

2
Após uma análise mais aprofundada, acredito que a solução de LEDs IR e sensor da Kortuk e user1498 seria uma abordagem mais robusta. Isso é verdade devido ao ponto que Nick T menciona, o espaço de cores já está bastante cheio, portanto, escolher a si mesmo seria difícil.
Mjcarroll

isso soa como um engenheiro se afastando de um problema.
Kortuk

@ Kortuk, não necessariamente recuando. Ainda acho que minha solução pode ser a "melhor", tanto quanto um sistema totalmente independente (sem sensores externos, sem mais hardware do que explicitamente indicado na declaração do problema). Quanto à facilidade de implementação e à robustez (os algoritmos de visão são um pouco complicados), acho que sua solução seria muito melhor.
Mjcarroll

Eu sabia o que você queria dizer, acho que a solução de hardware é mais independente, mas há uma grande desvantagem para ambos.
Kortuk

3

Usar um ou mais LEDs IR pode permitir que uma câmera como um controlador wi rastreie você


2

Soa como um trabalho ideal para um Kinect e algum software de processamento - ele pode separar assuntos com as informações em 3D, possui motores de inclinação e uma saída de vídeo.


11
Eu concordo que isso pode ser o mais para a frente, mas não o mais barato
Matt Williamson

2

É por isso que os alunos de pós-graduação foram inventados. Tenho certeza de que você poderia fazer isso eletronicamente eventualmente, mas teria que haver muitas palestras antes que valha a pena fazer isso, em comparação com alguém com cérebro lidando com a câmera.


Além disso, a cerveja é mais barata que a eletricidade.
Cynic ideal

0

Eu sou a pessoa que fez essa pergunta e realmente gosto da resposta OpenCV e da resposta conduzida por RI e vou brincar com as duas. Neste ponto, ambos têm alguns problemas para mim: meu pedido de IR está atrasado e minha webcam não está disposta.

Sendo assim, meu olho se voltou para um LV-Maxsonar EZ com o qual comprei para jogar há pouco tempo. Eu realmente nunca cheguei a isso, mas agora parece que pode dar origem a uma solução decente aqui. Eu sou a única pessoa que se move na frente da sala, então não há interferência nem computador necessário.

Este dispositivo fornece medições de distância em uma direção específica. Se essa distância mudar, alguém se moverá à sua frente e a câmera deverá se mover na direção em que o sensor está apontando.



0

O rastreamento do respingo de infravermelho (e a filtragem da câmera, concordando com a insolação da sala) oferecem a você e aos alunos uma boa chance no trabalho de RAL que ajuda a colocar você e o contexto escolhido na zona zero. Dito isto, eu provavelmente teria retirado de um aplicativo de webcam em pacote bem revisado no Cnet.com (ou em outro local crítico, Amazon, Acer Support ou não) ou no Camtasia e o usaria conforme as instruções.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.