50 webcams USB em um único computador. Isso é realmente possível?

15

Teoricamente, uma webcam USB HD trabalhando a 15 FPS consome uma largura de banda próxima de 18 MB / s - 1280 (largura) x 960 (altura) x 3 (canais RGB) x 15 (FPS) - sem compactação. Um controlador USB 2.0 tem uma taxa de transferência efetiva de 35 MB / s , sendo capaz de lidar com 2 câmeras (o que confirmei na prática). Um controlador USB 3.0 possui uma velocidade máxima de transmissão teórica de 625MB / s, capaz de lidar com 34 câmeras (625/18 = 34,72), por conveniência, vamos supor que ele possa lidar com um máximo de 8 câmeras (ainda não confirmadas). Usando as duas premissas, é possível estimar que a placa mãe P8B75-V pode lidar com pelo menos 50 webcams simultâneas:

  • 3 slots PCIe (um PCIe x4 e dois PCIe x1, excluindo o PCIe x16 na placa de vídeo): Converta-os em USB 3.0 usando um adaptador + HUBS USB 3.0 , resultando em 24 webcams
  • 2 controladores USB 3.0 (ouvir e frontal): HUBS USB 3.0 para obter 16 webcams
  • 3 slots PCI : converta cada um em USB 2.0 usando um adaptador , resultando em 6 webcams
  • 2 controladores USB 2.0 : 4 webcams

Então, minha pergunta é:

Essa configuração é realmente possível? Alguém tentou sobrecarregar o sistema com tantas webcams USB?

Problemas:

  • É possível que o processador fique sobrecarregado. O uso da captura de imagem não compactada pode resolver isso.
  • A SO pode ter muitos problemas ao lidar com tantos dispositivos.

Comentários:

  • O barramento da CPU para dispositivos externos - Quick Path Interconnect (QPI) para Intel e Hyper-transport para AMD - não parece ser um problema, já que 50 MB / s * 18 MB / s = 900 MB / s. Isso está muito longe da taxa de dados de barramento de 25,6 GB / s para QPI e 51,2 GB / s para Hyper-transport .
  • Estou implementando o software deste aplicativo usando o OpenCV que envolve a captura no DirectShow .

EDIT 12/11/12:

Então, eu fiz alguns testes e há alguns pontos a esclarecer.

O streaming de imagens em HD a 30 FPS representa uma largura de banda de 106 MB / s (53 MB / s a ​​15 FPS), minha matemática estava completamente errada. Isso significa que as webcams HD que trabalham com USB 2.0 precisam compactar o arquivo para não consumir toda a largura de banda. Portanto, mesmo se eu fosse capaz de conectar 50 webcams em um único PC, provavelmente a CPU teria muitos problemas para descomprimir essa quantidade de dados em tempo real.

O verdadeiro problema surge quando vemos a especificação USB 3.0 :

Especificação USB 3.0

Como podemos ver na imagem, o USB 2.0 HUB é completamente separado do USB 3.0 HUB (SuperSpeed), o que significa que os dispositivos USB 2.0 não podem usar a largura de banda SuperSpeed . Essa é uma grande desvantagem ao supor que eu poderia usar mais dispositivos USB 2.0 com um controlador USB 3.0.

Como essa especificação é meio antiga (cerca de 2 anos), alguém pode confirmar se há alguma nova implementação da especificação USB 3.0 que compartilhe a largura de banda SuperSpeed ​​entre dispositivos USB 2.0?

Ian Medeiros
fonte
4
Para que você precisa de 50 webcams?
Dennis
1
Como as webcams são alimentadas? Por sua própria fonte de alimentação ou extraem energia do barramento USB?
Hennes
2
A resposta: Não é prático. Mas soando incrivelmente incrível.
Nerdwaller
5
Consegui 17 câmeras para trabalhar em um projeto Opencv 2 (wrapper python). Consegui que a detecção de camshift hsv e a detecção de objetos flann funcionassem decentemente simultaneamente, mas nada se aproximando em tempo real e não pude exibir os resultados.
Snesticle
1
Peço desculpas, respondi que era "prático" (o título). Ser prático ou não, não está relacionado à possibilidade / impossibilidade. No entanto, para retirá-lo, você provavelmente precisará alimentar a câmera de outra coisa e ter apenas os dados alimentados no computador (por computador, quero dizer hubs USB3.0).
Nerdwaller 1/11

Respostas:

6

Nunca haverá uma mudança no design de um dispositivo USB-2-Hub adicional dentro do USB-3, porque é a única maneira de fornecer compatibilidade descendente razoável. Se você quiser usar o USB-3 Speed, precisará usar as Webcams USB-3.

Deixe-me dar um exemplo para mais explicações. Digamos:

Ok, construímos uma ferrovia de alta velocidade. Como a ferrovia é de alta velocidade, podemos colocar mais trens lentos nela do que em nossa ferrovia lenta. Viva!

Tecnicamente, é o mesmo para USB. Só porque você pode dirigir mais rápido na ferrovia não significa que há mais espaço (largura de banda) para trens lentos (USB2). Os trens lentos andam devagar na via rápida, impossibilitando que os trens rápidos (USB3) usem a ferrovia a toda velocidade. Para lidar com isso, alguns engenheiros decidiram não substituir a linha férrea lenta pela mais rápida, mas construí-la ao lado dela. Com essa configuração, é possível que os trens rápidos conduzam alta velocidade na ferrovia rápida e os lentos na lenta. O mesmo para compatibilidade com versões anteriores de USB3.

Mose
fonte
Eu estava prestes a responder minha própria pergunta, mas sua analogia é realmente boa. Editarei minha pergunta (quando tiver tempo) para reunir todas as informações que obtive durante meus testes e pesquisas para esclarecer o assunto para futuras pesquisas. Portanto, a resposta para minha pergunta é simples: não é possível conectar 50 webcams em um único computador. Ainda não há webcams 3.0 no mercado, apenas câmeras industriais à venda (muito caras), infelizmente.
Ian Medeiros
Na verdade, uma maneira melhor de fornecer boa compatibilidade com versões anteriores é construir um hub de conversão - um microcontrolador programado para fazer a conversão de protocolo, conectado a dispositivos USB2 na parte inferior e um controlador USB3 na parte superior. Isso seria como carregar seus trens lentos para o trem rápido (como carros / recipientes são carregados em trens, balsas, aviões, etc.)
David MW Poderes
0

A analogia ferroviária é falho, embora o problema persista em muitos hubs. É possível ter 10 dispositivos USB-2 atualizados para USB-3, mas isso depende do hub. Era o mesmo para dispositivos USB-1 em hubs USB-2. A maioria dos atalhos de hubs fornece apenas um controlador que é um padrão específico, mas alguns fornecem controladores separados para cada porta, para que qualquer um possa ser qualquer padrão sem afetar os outros - estes são mais caros. Uma solução intermediária é um hub que fornece (para um produto comercial) três portas USB-3 e quatro portas USB-4. O padrão permite especificamente que os dispositivos USB-3 e USB-2 funcionem simultaneamente, com os dispositivos USB-3 tendo a vantagem da largura de banda adicional.

Eu tenho rodado duas webcams da Logitech no USB-2 por anos a uma taxa apropriada (por exemplo, pelo que me lembro de 15fps x 640x480) e usando várias CPUs baratas para processar e ethernet para agregar 6 câmeras e outros dispositivos USB. Espero que com o USB-3 eu possa usar uma série de hubs acima para conseguir isso, com duas câmeras USB-2 (ou outros dispositivos) por hub 3 + 4, supondo que eu use um controlador de hub que converta entre USB-3 e USB -2 em vez de um que apenas atua como um hub USB-2 separado para os dispositivos USB-2.

As câmeras USB3 estão disponíveis, mas são caras e desnecessárias - é apenas necessário atualizar uma câmera USB2 para USB3 para poder usá-las, mas não consigo encontrar um hub ou conversor que afirme fazer isso (havia / há dispositivos análogos para USB1 a USB2).

David MW Powers
fonte
Você já encontrou um hub ou conversor que poderia melhorar?
G491
0

Se alguns de vocês gostariam de usar 8 ou 12 webcams em uma área de trabalho, tenho certeza de que gostariam de usar essas webcams como um sistema de vigilância. Muitas, se não todas as soluções discutidas aqui, eu já tentei, ou seja, usando o USB 2.0 vice 1.1, usando o hub da porta USB, usando o PCI USB ... acredite, você só pode carregar uma área de trabalho (não tenho um i7 sistema) até 4 webcams, mesmo assim você teria que passar por tentativa e erro com as portas.

SOLUÇÃO? Usei 3 desktops, o bastante barato hoje em dia (você não precisa de monitor / mouse / teclados), exceto ao carregar o sistema, e você pode acessar remotamente as 4 webcams cada (estou usando 3 desktops para um total de 12 webcams) . Eu os monitoro remotamente em um computador com monitores externos.

SOFTWARE: Eu recomendo o IP CAMERA VIEWER (gratuito) ou o PRO, se quiser, e o TEAMVIEWER - Grátis para uso pessoal, mas você deve pagar pelo uso comercial. AMBOS ESTES PROGRAMAS SÃO IMPRESSIONANTES. Economize tempo pesquisando .. Esses programas são maduros e são mostrados no design.

O QUE É PRÓXIMO? Mesmo se a velocidade da Internet for lenta, as câmeras e os monitores serão perdoadores. VANTAGEM DE USAR 3 DESKTOPS? Você pode chegar mais perto de onde precisa que suas câmeras estejam em 3 locais diferentes, como todo mundo sabe, você só pode ter até 5 metros com seu cabo USB e, se tiver sorte como eu até 8, com um HUB alimentado por USB.

CÂMARAS DE CCTV IP - que poderiam usar CABOS MUITO MUITO LONGOS podem ser usadas com ADAPTADORES BNC para USB COM CARTÃO GRÁFICO INTEGRADO. Encomendei 4, 8 e 16 câmeras de CFTV para 1 USB, ainda não há aqui. Eu vou deixar você saber quando eles chegarem ...

Fui forçado a usar webcams como o roteador de provedores de serviços da Internet onde estou, não permite ou não pode acessar o encaminhamento de portas ... portanto, não há ENDEREÇO ​​IP para mim.

BOA SORTE CARAS / GALS ...

Antonio M Alonzo Sr.
fonte
Na verdade, eu tinha 8 câmeras e um Kinect na mesma caixa de torre suja, mas, na prática, use apenas 4 câmeras (mais o Kinect) de cada vez para gravação contínua - todas elas podem ser usadas para instantâneos. Isso não é para vigilância, mas para gravação do AudioVisual Corpus e pesquisa inteligente de salas / robôs.
David MW Powers