Nejlepší rozpoznávání karet pro živé streamy. Pro breaky, otevírání boosterů i živý prodej.
cardstream sleduje váš break, otevírání boosterů nebo prodejní vysílání, pozná každou sběratelskou kartu, jakmile se objeví v záběru, a živě ukáže její název, edici a jistotu. Analyzujte své prodejní streamy pomocí sledování karet. Pro streamery, kteří chtějí vědět víc.
Od Pokémonů po Magic: The Gathering
Pro každé vysílání přepnete kategorii a celý engine se přizpůsobí: detekce, filtry i identifikační volání míří na správný endpoint. Každá shoda přijde s názvem, edicí, kódem edice, číslem karty, sérií a rokem.
Sběratelské karetní hry
collectibles/v2/tcg_id Moderní i vintage kusové karty z TCG, rovnou ze streamu. Endpoint čte ilustraci, rámeček i text, takže kartu pozná ze stejného obrazu, na jaký se dívají vaši diváci. Žádné hledání symbolu edice, žádné mžourání na sběratelské číslo.
- Pokémon
- Magic: The Gathering
- Yu-Gi-Oh!
- One Piece
- Lorcana
- Digimon
- Dragon Ball Super
- Flesh and Blood
- Star Wars Unlimited
- Star Wars Destiny
- MetaZoo
- Riftbound
- Weiss Schwarz
- Union Arena
- Force of Will
- Grand Archive
- Vanguard
- Marvel Champions
- Sorcery
- Final Fantasy
- Gundam
- Duel Masters
- Naruto Mythos
- Hololive
- Garbage Pail Kids
Sportovní karty sport_id
Rookie karty, paralely, inserty i autogramy ze všech hlavních sportů, od baseballu, basketbalu a amerického fotbalu po fotbal, hokej a další. Přesně ta karta, přesně ta edice, přesně ten rok.
Gradované karty slab_id
Přečte štítek na pouzdře gradované karty a pozná kartu uvnitř pouzdra PSA, BGS nebo CGC, aniž byste ho museli otevírat.
Komiksy comics_id
Obálky pozná stejně jako karty: název, číslo sešitu a rok z jediného ustáleného snímku.
Připojte proprietární rozpoznávací systém, nebo vlastní
Všechno, co rozhoduje o tom, zda volat, se děje ještě před samotnou identifikací: detekce, filtr pohybu i filtr identity běží lokálně a na poskytovateli nezávisí. Samotné volání je jeden vyměnitelný krok: Ximilar hned po instalaci, proprietární služba pro identifikaci karet, nebo model, který jste si sami natrénovali a provozujete na vlastním hardwaru.
Jde o jedno malé rozhraní: dovnitř jde výřez karty, ven shoda. Implementujte IdentifyTarget a každý filtr, omezení i práh před ním funguje dál přesně jako dřív. Pořád jeden výřez na každou novou kartu, ať odpovídá kdokoli.
# vlastní rozpoznávací systém, stejný engine class HouseIdentifier(IdentifyTarget): def identify(self, crop_bgr): return my_service.match(crop_bgr) # v obou případech jeden výřez na každou novou kartu $ cardstream-web --detector rfdetr
Jedno volání na kartu, ne na snímek
Jde o to, aby se analýza streamu omezila na volání, která vám opravdu řeknou něco nového. Open-source alternativa k uzavřeným SaaS službám pro rozpoznávání karet: žádná platforma uprostřed, žádná licence na uživatele. Váš hardware, váš API klíč a stavový automat, který volá ven, jen když je karta v záběru opravdu nová.
Naivní zpracování každého snímku při 15 fps spustí 54 000 identifikací za hodinu. cardstream spustí jednu na každou novou kartu, kterou ukážete, tedy zhruba sto za tutéž hodinu.
Stejná hodina, stejné video, stejné karty: 54 000 volání proti zhruba 100. Filtry pohybu a identity běží lokálně na vašem hardwaru a volání odejde, jen když se v záběru ustálí opravdu nová karta.
Žádné předplatné SaaS, žádné ceny za uživatele, žádná závislost na dodavateli. Celé řešení včetně identifikace si provozujte sami, nebo se připojte k Ximilar API.
Všechno, co potřebuje vysílání s kartami
Spolumoderátor, kterému neunikne žádná karta. Pro prodejce na platformách typu Whatnot a Fanatics Live, pro box breaky, streamy kamenných obchodů s kartami i pro katalogizaci sbírky. Všude, kde se kamera potká s kartami.
Rozpoznáno, jakmile se karta objeví v záběru
Žádné tlačítko pro skenování. Žádné čekání. Prostě kartu ukažte: název, edice a jistota jsou na streamu zhruba za půl sekundy.
Jedno volání na kartu
Filtr pohybu a filtr identity založený na embeddingu běží lokálně na vašem vlastním CPU. Držíte kartu v klidu? Žádné další volání. Vyměníte kartu? Přesně jedno nové.
Jakýkoli zdroj streamu
Webkamera, videosoubory, RTSP, RTMP i SRT, ať už je stahuje sám, nebo mu je OBS posílá přímo přes --listen. Pro vlastní sestavy navíc JPEG přes WebSocket.
Jakýkoli identifikační backend
Ximilar collectibles/v2 hned po instalaci. Nebo stejný engine nasměrujte na proprietární rozpoznávací systém či na model, který jste si natrénovali a sami provozujete.
Vlastní modely
Váhy lokátoru jsou naše: doladěný segmentační model RF-DETR pod licencí Apache-2.0, který stáhne instalační skript. Podporované jsou i detektory ohraničujících obdélníků (RF-DETR, RT-DETRv2), pokud chcete použít vlastní export.
Open source, na vlastním hardwaru
Jeden balíček pro Python s volnou licencí. Čtěte ho, forkujte, spouštějte na vlastním hardwaru. Váš klíč, vaše data, vaše infrastruktura.
Dost chytrý na to, aby věděl, kdy API nevolat
Mezi vaším streamem a API stojí stavový automat. Každý snímek prochází přes DecisionCore, jediný stavový automat běžící lokálně, a tři lokální filtry rozhodují, kdy je jediný krok s voláním API opravdu namístě.
Detekce
lokálně · bez APINajde čtyřúhelník karty a vyřízne z něj čistý, narovnaný výřez. Lokální filtr pohybu ji omezuje ve třech úrovních: pohyb, klid s kartou, prázdná scéna.
Filtr pohybu
lokálně · bez APILevný průměrný rozdíl snímků. Karta stojí za bližší pohled, až když se scéna na N snímků ustálí. Pořád se hýbe? Čeká se.
Filtr identity
lokálně · bez APIPorovnání embeddingů odpoví na jedinou otázku: je to stejná karta jako předtím? Stejná karta → znovu se odešle výsledek z mezipaměti.
Identifikace
ximilar · 1 voláníIdentifikaci u Ximilaru spustí jen opravdu nová, ustálená karta. Asynchronně, s debouncingem, mimo smyčku snímků. Výsledek se živě vrátí zpět.
Streamujete sami?
Jeden člověk, jedna kamera, jedna dlouhá noc breaků. Abyste věděli, jaká karta je zrovna v obraze, nemělo by být potřeba celé vývojářské oddělení. Připojte stream, který už stejně vysíláte, a nechte ho cardstream živě analyzovat, ať prodáváte přes platformu, nebo přímo na vlastním kanálu.
- Whatnot
- Fanatics Live
- eBay Live
- TikTok Shop
- Twitch
- YouTube Live
- váš vlastní web
Žádný přístup k účtu, žádné API klíče od platforem, žádný bot v chatu a s žádnou z těchto platforem nejsme nijak spojeni. cardstream čte vaše video, nic jiného.
Už streamujete z OBS
Vedle výstupu, který posílá vaše vysílání, přidejte ještě jeden. Kupující uvidí přesně totéž co dřív a kopie stejného obrazu míří do cardstreamu, který pozná každou kartu, jež se objeví na stole. Níže uvedený příjem potřebuje systémový ffmpeg. Druhý výstup ale můžete úplně vynechat a nechat cardstream číst virtuální kameru OBS jako běžnou webkameru.
$ cardstream-web --listen \ --source rtmp://0.0.0.0:1935/live # sem nasměrujte druhý cíl v OBS
Nebo kamera, která už na stole je
Kamera nad stolem, capture karta, mobil jako webkamera: cokoli, pod čím otevíráte a odkrýváte karty. Analýza běží na počítači vedle kamery, takže ve výchozím stavu místnost neopustí nic kromě jednoho výřezu na kartu.
$ cardstream-web --source 0 # webkamera · rozhraní v prohlížeči na localhostu
Nebo cokoli, co má URL
Enkodéry, střižny, restreamovací služby, druhé studio na druhém konci města. Stahování přes RTSP, RTMP a SRT a navíc JPEG přes WebSocket, pokud máte sestavu vlastní výroby.
$ cardstream-web \
--source rtsp://studio/stream1 Živý overlay
Název, edice a jistota se objeví, jakmile se karta ustálí. Můžete je hned přečíst nahlas, nebo je vložit zpět do své scény.
Každá karta zapsaná
Průběžná historie všeho, co jste ukázali: náhled každé karty a jak dlouho byla na streamu. Uložte ji do svého účtu Ximilar a druhý den ráno si vysílání projděte: co se prodalo a jakou to mělo hodnotu.
Na míru jednomu člověku
Žádný poplatek platformě, žádná licence na uživatele. Tříhodinové vysílání znamená pár identifikačních volání, ne jedno za každý snímek.
Krok za krokem: připojte vysílání z Whatnotu nebo Fanatics Live →
Vaše vysílání, uložené a připravené k procházení
cardstream běží na vašem počítači a ve výchozím stavu si nic neukládá. Stačí přidat jeden přepínač a každá karta, kterou ukážete, se uloží také do relace ve vašem účtu Ximilar, i s cenou, časem v záběru a výřezem, podle kterého byla rozpoznána. Po vysílání otevřete aplikaci Ximilar a uvidíte, jakou mělo hodnotu.
$ cardstream-web --price-stats \ --ximilar-stream NEW # vypíše ID relace a ukládá průběžně během vysílání
Vysílání v číslech
Ukázané produkty, placená volání API, tržní hodnota a průměrný čas v záběru pro každou relaci a vedle toho nejcennější produkty a nejčastější edice.
Každá karta i s obrázkem
Každý řádek obsahuje kartu, edici, číslo, cenu a výřez, podle kterého byla rozpoznána. Seznam prohledáte podle produktu nebo edice a relace vyfiltrujete podle stavu, platformy a data.
Udělejte si z něj vlastní záznam
Označte, co se prodalo, přidejte poznámku, opravte chybnou shodu nebo její cenu, smažte falešnou. Pojmenujte relaci a připojte vlastní metadata: číslo položky, náklady, kupující.
Navažte, kde jste skončili
Restart uprostřed vysílání? Místo NEW předejte ID relace a vysílání pokračuje ve stejné relaci, i když už byla uzavřená. S --ximilar-workspace se uloží do týmového pracovního prostoru.
Ve výchozím stavu vypnuto: bez --ximilar-stream opouští váš počítač jen identifikační volání. Ukládání vyžaduje službu Cards Cloud ve vašem účtu Ximilar. Účtuje se jen zahájení relace a --no-ximilar-stream-images omezí ukládání jen na text.
Od nuly k živému rozpoznávání ve 3 krocích
Nainstalujte ho
Virtuální prostředí, wheel z vydání (s ověřenými kontrolními součty), váhy modelů a oba příkazy v PATH. Použijte skript, nainstalujte stejný wheel z PyPI přes pip (váhy se stahují zvlášť), nebo naklonujte repozitář a sestavte si ho sami. Docker a Windows najdete na stránce Stažení.
$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh # další způsoby instalace → cardstream.ai/download
$ pip install 'cardstream[client,onnx]' # nebo: uv tool install 'cardstream[client,onnx]' # wheel neobsahuje váhy – rozbalte oba archivy z cardstream.ai/models # a nasměrujte na ně přepínače: $ cardstream-web --segmentor-model segmentation_model/onnx/model.onnx \ --embed-model similarity_model/onnx/model.onnx
$ git clone https://github.com/Ximilar-com/cardstream && cd cardstream $ ./scripts/build-from-source.sh --models $ source .venv/bin/activate
Připojte identifikační systém
Ximilar collectibles/v2 hned po instalaci: klíč z ximilar.com je jediný přístupový údaj, který celý systém potřebuje. Nebo stejný krok nasměrujte na vlastní rozpoznávací systém.
$ export XIMILAR_API_KEY=your-key
Namiřte kameru na kartu
Otevřete rozhraní v prohlížeči s webkamerou, nebo mu pošlete své vysílání: stažením přes RTSP, nebo ať mu OBS posílá RTMP přímo. Celý večer otevíráte jednu edici? Předvyplňte ji a endpoint přestane hádat: anglické karty Pokémon z edice CRI znamenají o tři věci méně, ve kterých se může splést. Kdykoli nastavíte --game, nastavte i --alphabet, protože předvyplněná hra vypne endpointu jeho vlastní rozpoznávání písma. Přidejte --price-stats a každá shoda přinese i tržní ceny v USD: medián, rozpětí a poslední prodej, na kartě i v historii. Přidejte --ximilar-stream NEW a vysílání se uloží do vašeho účtu Ximilar, abyste ho mohli projít později.
$ cardstream-web # → http://127.0.0.1:8001 – ukažte kartu # anglické karty Pokémon, jedna edice (CRI - Chaos Rising), s tržními cenami v USD: $ cardstream-web --game Pokemon --set-code CRI --alphabet latin --price-stats
Open source. Na vlastním hardwaru. Váš stream, vaše technika.
Žádná platforma uprostřed, žádná licence na uživatele: připojte Ximilar API nebo vlastní identifikační systém a cardstream ho zavolá jednou za každou novou kartu, ne za každý snímek. Ať děláte breaky na Whatnotu, vedete vysílání ve stylu Fanatics Live, nebo streamujete z vlastního prodejního řešení, spusťte cardstream ještě dnes večer na hardwaru, který už máte.