cardstream
Funktionen

Kartenanalyse für Streamer. Schnell und genau.

cardstream ist ein Zustandsautomat rund um einen Endpunkt zur Kartenidentifikation. Alles hier unten macht entweder die Identifikation besser oder sorgt dafür, dass sie nur dann passiert, wenn sie ihr Geld wirklich wert ist.

Erkennung

Kartenerkennung in Echtzeit aus jedem Stream

Vier Identifikations-Endpunkte hinter einem Schalter: Sammelkartenspiele, Sportkarten, gegradete Karten im Slab und Comics.

Der ganze Treffer in einem Objekt

Name, vollständiger Name, Set, Set-Code, Kartennummer, Serie, Jahr und Unterkategorie kommen als ein Objekt pro erkannter Karte an: zum Vorlesen, Protokollieren oder Weiterreichen an deine eigenen Tools.

Konfidenz, mit der du arbeiten kannst

Jeder Treffer trägt die rohe Distanz und eine Stufe High / Medium / Low (Grenzen bei 0.30 und 0.40). Setz einen Ergebnis-Schwellenwert, und Karten darunter erreichen das Overlay nie.

Alternative Treffer

Jedes Ergebnis bringt bis zu vier weitere Karten mit, die es hätten sein können. Ist der beste Treffer falsch, steht der richtige meist in dieser kurzen Liste.

Vorgaben, die die Suche eingrenzen

Nenne Spiel, Set-Code oder Schriftsystem, und der Endpunkt muss sie nicht mehr raten. Die Werte werden lokal geprüft: Ein Tippfehler scheitert auf deinem Rechner, statt stillschweigend die falsche Version zu liefern.

Kategorie pro Show

Ein Flag, oder mitten im Stream der Einstellungsdialog: tcg, sport, slab oder comics. Beim Wechsel fällt jede Vorgabe weg, die die neue Kategorie nicht kennt, statt ihr einen Wert zu schicken, mit dem sie nichts anfangen kann.

Vorderseite, Rückseite und Drehung

Bekannte Attribute gehen mit dem Ausschnitt hinaus, sodass der Endpunkt Klassifikatoren überspringt, die er nicht braucht: weniger, was schiefgehen kann, und schnellere Antworten.

Die Entscheidungs-Engine

Schnelle Livestream-Analyse mit KI

Ein Zustandsautomat, den sich beide Betriebsarten teilen. Alles hier läuft auf deiner eigenen CPU, bevor irgendetwas den Rechner verlässt.

Bewegungsfilter

Eine mittlere Frame-Differenz sagt, ob die Szene zur Ruhe gekommen ist. Solange sich die Karte noch durchs Bild bewegt, wird dahinter nichts ausgelöst.

Identitätsfilter

Jede Karte im Bild wird von einem KI-Modell per Embedding mit der vorigen verglichen. Es beantwortet eine einzige Frage: dieselbe Karte oder eine neue?

Dreistufige Drosselung der Detektion

Die Detektion läuft oft, solange sich etwas bewegt, selten bei einer ruhigen Karte und kaum noch auf einer leeren Matte. Die Stufen sind Konfiguration je Betriebsart, kein Code.

Cooldown, keine Wiederholung, Vergessen

Eine Karte ohne Treffer wird nicht in Dauerschleife neu versucht; eine Karte, die im Bild bleibt, wird nicht noch einmal identifiziert; eine Karte, die lange genug weg war, wird neu analysiert, wenn sie zurückkommt.

Aufrufsperre und Watchdog

Immer nur eine Identifikation gleichzeitig unterwegs, mit einem Mindestabstand und einem Timeout, das die Pipeline wieder löst, wenn der Endpunkt hängt. Ein langsamer Aufruf bremst den Stream nie aus.

Superschnelle Ergebnisse

Die KI-Modelle hinter cardstream laufen auf deinem eigenen Computer. Das System ist sehr schnell, und eine GPU brauchst du nicht.

Eingänge

Unterstützte Videoquellen und Formate

Die Quellen sind austauschbar; die Analyse ist dieselbe, egal welche du nimmst.

Kameras und Dateien

Ein Webcam-Index, eine Videodatei, ein Standbild oder die Webcam im Browser, wenn du die Browser-Oberfläche nutzt. Gut, um ein Setup vor der Show zu testen.

Pull: RTSP, RTMP, SRT

Richte es auf eine IP-Kamera, einen Encoder oder einen Restreamer, und es holt sich den Stream. Fällt das Signal aus, verbindet es sich mit gedeckeltem Backoff neu.

Push: OBS direkt hinein

Starte es als Listener und lass OBS per RTMP oder SRT dorthin senden: eine zusätzliche Ausgabe neben der, die deinen Marktplatz speist.

WebSocket-JPEG-Feeds

Für Eigenbau-Setups: Jeder Prozess, der JPEG-Frames über einen Socket schicken kann, ist eine gültige Quelle.

Drei Stellschrauben für die Auflösung

Was die Kamera aufnimmt, was gesendet wird und was analysiert wird, sind drei getrennte Zahlen. Analysiert wird in kleiner Auflösung, das kostet wenig; der Ausschnitt, der zur Identifikation hinausgeht, wird aus dem vollen Frame neu geschnitten.

Die Frames bleiben bei dir

Im clientseitigen Modus verlässt nichts den Rechner außer einem JPEG-Ausschnitt pro neuer Karte, nicht der Stream, nicht die Frames drumherum. Die Show in deinem Ximilar-Konto zu speichern ist ein Flag, das du selbst setzt.

Modelle

Unsere Gewichte oder deine

Werte Livestreams mit unserem vorbereiteten CPU-Modell aus. Du brauchst mehr Genauigkeit oder extremes Tempo? Trainiere dein eigenes und lass es auf GPUs laufen!

RF-DETR-Segmentierung

Der Standard-Locator: ein feinabgestimmter .onnx-Export zur Instanzsegmentierung über onnxruntime, ganz ohne torch. Die Maske liefert die vier Ecken der Karte, also wird der Ausschnitt, für den du bezahlst, entzerrt und knapp an der Kartenkante geschnitten.

Detektion mit RF-DETR / RT-DETRv2

Bounding Boxes als optionale Alternative: ONNX fürs Tempo, oder ein transformers-Verzeichnis beziehungsweise eine Hub-ID, solange du noch an einem Finetuning arbeitest.

Gewichte inklusive

Der RF-DETR-Locator und das Embedding-Modell sind von Ximilar trainiert und unter Apache-2.0 veröffentlicht. Der Installer lädt sie, zwischen dir und einer laufenden Pipeline steht also kein Trainingsschritt.

Embedder-Backends

Embedding-Modelle in Torch, ONNX oder LiteRT/TFLite für den Identitätsfilter: Nimm die Laufzeit, die du schon auf dem Rechner hast.

Schwere Importe erst bei Bedarf

Torch ist keine Abhängigkeit des Kerns. Installiere nur die Extras, die deine Backends brauchen, und alles andere läuft trotzdem.

Jeder Identifikationsdienst

Der Identifikationsaufruf ist ein austauschbarer Schritt. Richte ihn auf Ximilar, auf ein proprietäres Erkennungssystem oder auf ein Modell, das du selbst hostest.

Im Betrieb

Ein Prozess, direkt neben der Kamera

Detektion und Filter laufen auf deinem Rechner, aus einem einzigen installierbaren Paket, und der eine Identifikationsaufruf geht von dort direkt an die API.

Zwei Einstiegspunkte, eine Pipeline

Ein Headless-Befehl für feste Setups und Skripte, und eine lokale Browser-Oberfläche, wenn du ihm bei der Arbeit zusehen willst. Beide nehmen dieselben Flags und bauen dieselbe Pipeline.

Ein Schlüssel, lokal gehalten

Dein Ximilar-Schlüssel, auf deinem eigenen Rechner aus der Umgebung gelesen. Kein Konto, das du hier anlegen müsstest, keine Zwischenschicht, der du vertrauen müsstest, nichts, was laufen muss, außer dem Prozess selbst.

Nichts blockiert die Schleife

JPEG-Dekodierung, Detektion, HTTP und Schreibzugriffe auf die Festplatte laufen alle außerhalb des Event-Loops. Ein langsamer Frame wird verworfen, statt sich in einer immer längeren Warteschlange anzustellen.

Einstellungsdialog im laufenden Betrieb

Schwellenwerte, Kategorie, Spiel, Set-Code und Schriftsystem lassen sich mitten im Stream im Browser nachstellen. Jedes Feld wird aus einer einzigen Deskriptorliste erzeugt, Oberfläche und Prüfung können also nicht auseinanderlaufen.

Ein Overlay, gemacht für Streams

Status-Badge, Bounding Box und ein Verlauf aller Karten, die du gezeigt hast (ein Vorschaubild von jeder und die Zeit, die sie im Bild war), den ein Flag in deinem Ximilar-Konto speichert. Dazu ein Debug-Panel, wenn du den Filtern beim Überlegen zusehen willst.

Offline-Testsuite

Die gesamte Suite läuft ohne Netzwerk und ohne Modelldatei, mit Attrappen für die ONNX-Sessions und die Detektoren. Forke es, und du merkst trotzdem, ob du etwas kaputt gemacht hast.

Open Source. Selbst gehostet. Dein Stream, dein Stack.

Keine Plattform dazwischen, keine Lizenz pro Nutzer: Verbinde die Ximilar-API oder dein eigenes Identifikationssystem, und cardstream ruft es einmal pro neuer Karte auf statt einmal pro Frame. Ob du auf Whatnot Breaks machst, eine Show im Stil von Fanatics Live fährst oder dein eigenes Live-Commerce-Setup streamst: Starte cardstream heute Abend auf der Hardware, die du schon hast.