cardstream
FAQ

Domande frequenti

Le domande che saltano fuori più spesso: come installarlo e rimuoverlo, quanto costa, che cosa esce dal tuo computer e che cosa sa riconoscere. Tutto ciò che richiede più spazio è nella documentazione.

Installare e rimuovere

Installare, aggiornare, disinstallare

Lo script di installazione tocca esattamente due posti sul tuo computer, e puoi cancellarli entrambi quando vuoi.

Che cosa mi serve per farlo girare?

Un computer con Python 3.11 o successivo, e poco altro. macOS arm64, Linux amd64 e Windows amd64 sono tutti coperti dalla stessa release in puro Python, senza bisogno di GPU. Il binario ffmpeg di sistema serve solo per le sorgenti in pull e in ascolto (RTSP, RTMP, SRT): una webcam, un file o l’interfaccia nel browser ne fanno a meno.

Dove mette le cose lo script di installazione?

In due posti. ~/.cardstream è la radice dell’installazione: un virtualenv in venv/ e i pesi dei modelli in models/. I due comandi, cardstream-web e cardstream-client, sono piccoli shim scritti in ~/.local/bin; lanciano i binari del venv con i percorsi dei modelli già compilati, e qualsiasi flag passi tu ha la precedenza. Entrambe le posizioni si spostano con CARDSTREAM_HOME e INSTALL_DIR. Sul computer non viene toccato nient’altro. In particolare lo script non modifica mai il profilo della tua shell: se ~/.local/bin non è nel tuo PATH, stampa un avviso e lascia a te la modifica.

Come aggiorno a una nuova versione?

Rilancia lo stesso comando. Installa la release corrente nel virtualenv esistente e riscrive gli shim. I pesi già presenti in ~/.cardstream/models non vengono toccati (si scaricano solo se mancano), quindi un aggiornamento è un download piccolo, non un altro quarto di gigabyte. Per passare a una release precisa invece dell’ultima, imposta CARDSTREAM_VERSION.

# lo stesso comando; /install.sh reindirizza allo script sul ramo main
$ curl -fsSL https://cardstream.ai/install.sh | sh
$ curl -fsSL https://cardstream.ai/install.sh | CARDSTREAM_VERSION=v0.5.0 sh
$ cardstream-web --version

Come lo disinstallo?

Con due comandi. Il primo rimuove il virtualenv e i pesi dei modelli, il secondo rimuove i due shim. Non c’è altro da ripulire: nessun demone, nessun elemento di login, nessun pacchetto di sistema.

$ rm -rf ~/.cardstream # venv/ + models/
$ rm -f ~/.local/bin/cardstream-web ~/.local/bin/cardstream-client

Se hai installato con CARDSTREAM_HOME o INSTALL_DIR impostati, rimuovi invece quei percorsi, usando sudo se avevi puntato gli shim su una directory di sistema. Quello che hai aggiunto a mano resta da annullare a te: una riga PATH nel profilo della shell, l’export di XIMILAR_API_KEY e qualsiasi cartella tu abbia passato a --store-images. L’app non scrive nient’altro nella tua home. Controlla che sia sparito con command -v cardstream-web in una shell nuova: quella vecchia tiene in cache la ricerca finché non esegui hash -r.

Chiavi e costi

Quanto costa e che cosa serve

Nessuna piattaforma nel mezzo: il tuo hardware, la tua chiave e un motore il cui lavoro è chiamare il meno possibile.

Mi serve una chiave API Ximilar?

Per l’identificazione predefinita sì, ed è l’unica credenziale che serve a tutto il sistema. Richiedine una su ximilar.com ed esportala come XIMILAR_API_KEY prima di partire. Se invece colleghi il tuo riconoscitore, ti serve quello che richiede quell’endpoint e nulla da Ximilar.

$ export XIMILAR_API_KEY=your-key

Quanto costa cardstream in sé?

Niente. Non c’è abbonamento, né licenza per postazione, né commissione di piattaforma: un solo pacchetto Python con licenza permissiva che fai girare sul tuo hardware, con i pesi di rilevamento pubblicati sotto Apache-2.0 insieme alle release. Quello che paghi sono le chiamate di identificazione all’endpoint che colleghi, e tenere basso quel numero è l’intero scopo del motore locale: circa una chiamata per ogni carta distinta che mostri, un centinaio in un’ora in cui una pipeline ingenua, fotogramma per fotogramma a 15 fps, ne lancerebbe 54.000. Salvare uno show nel tuo account Ximilar aggiunge un avvio di sessione a pagamento per show; riprenderlo dopo un riavvio è gratis.

Posso usare i miei modelli o il mio sistema di identificazione?

Entrambe le cose. Il localizzatore delle carte e il filtro di identità passano da backend intercambiabili: l’export RF-DETR .onnx incluso, uno RT-DETRv2, oppure una directory transformers o un id dell’hub mentre stai ancora iterando su un fine-tuning. Il passaggio di identificazione che viene dopo è solo un endpoint, quindi puntarlo sul tuo riconoscitore lascia intatti tutti i filtri, i limiti e i cooldown che ha davanti. Vedi i backend dei modelli e il catalogo dei modelli.

In funzione

Hardware, dirette e sicurezza

Gira accanto al tuo show, sul computer da cui trasmetti già.

Mi serve una GPU?

No. I pesi inclusi sono export ONNX dimensionati per la CPU, e tutto ciò che fa il motore locale (il filtro di movimento, la frequenza del rilevamento, l’embedding che risponde a “stessa carta o carta nuova?”) gira sul processore che hai già. Una GPU è un’opzione per i tuoi pesi più accurati, mai un requisito per le impostazioni predefinite.

Funziona con Whatnot o Fanatics Live?

Sì, ma non collegandosi al marketplace: sfrutta il video che stai già producendo. La fotocamera virtuale di OBS, una seconda uscita RTMP o SRT accanto a quella che alimenta la piattaforma, un flusso RTSP prelevato da un encoder, o semplicemente una videocamera tutta sua puntata sullo stesso tappetino. La guida alla vendita in diretta percorre tutti e quattro i metodi dall’inizio alla fine.

Che cosa esce davvero dal mio computer?

In modalità client, un ritaglio JPEG per carta distinta: non la diretta, non i fotogrammi intorno, non il resto del tappetino. Ogni decisione sul se inviare qualcosa viene presa prima in locale, quindi un’ora di video in cui mostri cento carte sono cento piccole richieste. L’unica eccezione la attivi tu: con --ximilar-stream anche lo storico dello show (una riga di testo per carta più il ritaglio da cui è stata identificata) viene salvato in una sessione del tuo account Ximilar. È disattivato di default, e con --no-ximilar-stream-images si salva solo il testo.

Posso rivedere uno show a posteriori?

Sì, se lo salvi. Parti con --ximilar-stream NEW e ogni carta elencata nello storico, con il suo prezzo, il tempo in diretta e il ritaglio da cui è stata identificata, finisce in una sessione del tuo account Ximilar mentre lo show va avanti. Dopo, apri la sezione Cardstream dell’app Ximilar: il valore dello show, i prodotti di maggior valore e i set più frequenti, ogni carta con la sua immagine; lì segni cosa hai venduto e correggi una corrispondenza sbagliata. Hai riavviato a metà show? Passa l’id della sessione al posto di NEW e lo show riprende, anche se la sessione era stata chiusa. Per salvare in un workspace di team serve --ximilar-workspace. Tutti i dettagli.

$ cardstream-web --price-stats --ximilar-stream NEW

Posso metterlo in rete locale per aprire l’interfaccia da un altro computer?

No, non farlo. L’interfaccia web non ha autenticazione e custodisce la tua chiave API, quindi il suo posto è 127.0.0.1 e nessun altro. Al suo interno il container ascolta su 0.0.0.0, ed è per questo che il docker run documentato pubblica la porta solo su 127.0.0.1. Se ti serve davvero da un altro computer, mettigli davanti un tuo tunnel autenticato invece di aprire la porta.

$ docker run --rm -e XIMILAR_API_KEY -p 127.0.0.1:8001:8001 \
    -v cardstream-models:/models cardstream
Identificazione

Che cosa riconosce, e quanto ne è sicuro

Ogni corrispondenza arriva con la sua distanza, il suo livello e le carte che avrebbe potuto essere al suo posto.

Quali carte sa identificare?

Quattro categorie, un solo selettore. Giochi di carte collezionabili: Pokémon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana e una ventina di altri, carte singole moderne e vintage lette direttamente dalla diretta. Carte sportive di tutti i principali sport, fino alla parallel e all’anno. Carte gradate, lette dall’etichetta senza aprire il case. E fumetti, per titolo, numero e anno. Un flag sceglie la categoria, oppure la cambi dalla finestra delle impostazioni a diretta in corso. Vedi l’elenco completo.

Che cosa succede quando sbaglia carta?

Te ne accorgi prima. Ogni corrispondenza porta con sé la distanza grezza e un livello Alta / Media / Bassa (le soglie sono a 0.30 e 0.40), più un massimo di quattro carte alternative, e quella giusta di solito è in quel breve elenco. Imposta una soglia di risultato e tutto ciò che resta sotto non arriva mai all’overlay. Se un intero show riguarda un solo gioco o un solo set, le preimpostazioni restringono la ricerca prima ancora che cominci: indicagli il gioco, il codice di set o il sistema di scrittura e l’endpoint smette di tirare a indovinare.

Open source. Self-hosted. La tua live, il tuo stack.

Nessuna piattaforma nel mezzo, nessuna licenza per postazione: collega l’API di Ximilar o il tuo sistema di identificazione, e cardstream lo chiama una volta per carta distinta invece che una volta per fotogramma. Che tu faccia break su Whatnot, conduca uno show in stile Fanatics Live o trasmetta con il tuo setup di live commerce, fai girare cardstream stasera stessa sull’hardware che hai già.