cardstream
Recursos

Análise de cartas para streamers. Rápida e precisa.

O cardstream é uma máquina de estados em volta de um endpoint de identificação de cartas. Tudo o que vem abaixo ou melhora a identificação, ou garante que ela só aconteça quando realmente vale a pena pagar por ela.

Reconhecimento

Identificação de cartas em tempo real, de qualquer transmissão

Quatro endpoints de identificação atrás de um único interruptor: jogos de cartas colecionáveis, cartas esportivas, slabs graduados e quadrinhos.

A correspondência inteira, em um só objeto

Nome, nome completo, coleção, código da coleção, número da carta, série, ano e subcategoria chegam como um único objeto por carta identificada, prontos para ler em voz alta, registrar ou mandar para as suas próprias ferramentas.

Confiança em que dá para se apoiar

Cada correspondência traz a distância bruta e um nível Alto / Médio / Baixo (cortes em 0.30 e 0.40). Defina um limiar de resultado e as cartas abaixo dele nunca chegam ao overlay.

Correspondências alternativas

Cada resultado vem com até quatro outras cartas que poderiam ser aquela. Se a primeira opção estiver errada, a certa costuma estar nessa lista curta.

Pré-ajustes que estreitam a busca

Informe o jogo, o código da coleção ou o sistema de escrita e o endpoint para de adivinhar. Os valores são validados localmente: um erro de digitação falha na sua máquina em vez de devolver em silêncio a impressão errada.

Categoria por show

Uma flag, ou o painel de configurações no meio da live: tcg, sport, slab ou comics. Ao trocar, qualquer pré-ajuste que a nova categoria não conheça é descartado, em vez de mandar para ela um valor que não consegue usar.

Frente, verso e rotação

Os atributos já conhecidos vão junto com o recorte, e o endpoint pula os classificadores de que não precisa: menos coisas para errar e respostas mais rápidas.

O motor de decisão

Análise rápida de lives com IA

Uma máquina de estados, compartilhada pelas duas formas de implantação. Tudo aqui roda na sua própria CPU, antes de qualquer coisa sair da máquina.

Filtro de movimento

Uma diferença média entre quadros diz se a cena já se acomodou. Nada do que vem depois dispara enquanto a carta ainda está se movendo pelo enquadramento.

Filtro de identidade

Cada carta no enquadramento é comparada com a anterior por um modelo de IA, via embedding. Ele responde a uma única pergunta: mesma carta ou carta nova?

Detecção em três níveis

A detecção roda com frequência enquanto algo se move, raramente sobre uma carta parada e quase nunca sobre uma mesa vazia. Os níveis são configuração de cada lado, não código.

Cooldown, sem repetição, esquecimento programado

Uma carta que não teve correspondência não é tentada de novo em loop; uma carta que continua no enquadramento não é identificada outra vez; uma carta que ficou fora por tempo suficiente é analisada do zero quando volta.

Guarda de chamadas e watchdog

Uma única identificação em andamento por vez, com intervalo mínimo e um tempo limite que destrava o pipeline se o endpoint travar. Uma chamada lenta nunca segura a transmissão.

Resultados na hora

Os modelos de IA por trás do cardstream rodam no seu próprio computador. O sistema é muito rápido e você não precisa de nenhuma GPU.

Entradas

Fontes e tipos de vídeo aceitos

As fontes são plugáveis; a análise é idêntica, seja qual for a que você escolher.

Câmeras e arquivos

Um índice de webcam, um arquivo de vídeo, uma imagem parada ou a webcam do navegador quando você usa a interface web. Ótimo para testar a montagem antes do show.

Pull: RTSP, RTMP, SRT

Aponte para uma câmera IP, um encoder ou um restreamer e ele puxa o sinal, reconectando com backoff limitado quando o feed cai.

Push: direto do OBS

Rode em modo de escuta e deixe o OBS enviar RTMP ou SRT para ele: uma saída a mais, ao lado da que alimenta o seu marketplace.

Feeds JPEG por WebSocket

Para montagens caseiras: qualquer processo capaz de enviar quadros JPEG por um socket é uma fonte válida.

Três ajustes de resolução

O que a câmera captura, o que é enviado e o que é analisado são três números separados. A análise roda pequena e barata; o recorte que sai para identificação é cortado de novo a partir do quadro inteiro.

Os quadros continuam seus

No modo cliente, nada sai da máquina além de um recorte JPEG por carta distinta: nem a transmissão, nem os quadros em volta. Salvar o show na sua conta da Ximilar é uma flag que você escolhe ativar.

Modelos

Nossos pesos, ou os seus

Analise lives com o nosso modelo pronto para CPU. Precisa de mais precisão ou de velocidade extrema? Treine o seu e coloque para rodar em GPU.

Segmentação RF-DETR

O localizador padrão: uma exportação .onnx de segmentação de instâncias com fine-tuning, rodando em onnxruntime, sem precisar de torch. A máscara entrega os quatro cantos da carta, então o recorte pago sai endireitado e justo na borda da carta.

Detecção RF-DETR / RT-DETRv2

Caixas delimitadoras como alternativa opcional: ONNX para velocidade, ou um diretório de transformers / id do hub enquanto você ainda está iterando um fine-tuning.

Pesos incluídos

O localizador RF-DETR e o modelo de embedding são treinados pela Ximilar e publicados sob Apache-2.0. O instalador os baixa, então não existe nenhuma etapa de treinamento entre você e um pipeline funcionando.

Backends de embedding

Modelos de embedding em Torch, ONNX ou LiteRT/TFLite para o filtro de mesma carta: use o runtime que você já tem na máquina.

Importações pesadas só quando precisa

Torch não é dependência do núcleo. Instale só os extras que os seus backends exigem e todo o resto continua rodando.

Qualquer serviço de identificação

A chamada de identificação é uma etapa substituível. Aponte para a Ximilar, para um reconhecedor proprietário ou para um modelo hospedado por você.

No dia a dia

Um processo, ao lado da câmera

A detecção e os filtros rodam na sua máquina, a partir de um único pacote instalável, e a única chamada de identificação vai direto dali para a API.

Dois pontos de entrada, um pipeline

Um comando sem interface para montagens e scripts, e uma interface local no navegador para quando você quiser ver o sistema trabalhando. Os dois aceitam as mesmas flags e montam o mesmo pipeline.

Uma credencial, guardada localmente

A sua chave da Ximilar, lida do ambiente da sua própria máquina. Nenhuma conta para criar aqui, nenhuma camada intermediária em que confiar, nada para manter no ar além do próprio processo.

Nada bloqueia o loop

Decodificação JPEG, detecção, HTTP e escrita em disco rodam fora do event loop. Um quadro lento é descartado, não enfileirado em um atraso que só cresce.

Configurações ao vivo

Limiares, categoria, jogo, código da coleção e sistema de escrita podem ser reajustados pelo navegador no meio da live. E cada controle é gerado a partir de uma única lista de descritores, então interface e validação não têm como sair de sincronia.

Um overlay feito para lives

Indicador de estado, caixa delimitadora e um histórico de cada carta que você mostrou (uma miniatura de cada uma e o tempo que ela ficou no enquadramento), que uma flag salva na sua conta da Ximilar. E um painel de depuração para quando quiser ver os filtros pensando.

Suíte de testes offline

A suíte inteira roda sem rede e sem arquivo de modelo, com dublês no lugar das sessões ONNX e dos detectores. Faça um fork e você ainda consegue saber se quebrou alguma coisa.

Código aberto. Hospedado por você. Sua live, seu stack.

Sem plataforma no meio do caminho, sem licença por assento: conecte a API da Ximilar ou seu próprio sistema de identificação e o cardstream chama uma vez por carta distinta, não uma vez por quadro. Não importa se você faz breaks na Whatnot, comanda um show no estilo Fanatics Live ou transmite seu próprio live commerce: coloque o cardstream para rodar hoje à noite no hardware que você já tem.