Den beste kortgjenkjenningen for direktesendinger. Laget for breaks, pakkeåpninger og liveshow.
cardstream følger med på breaket, pakkeåpningen eller showet ditt og identifiserer hvert samlekort i samme øyeblikk det kommer i bildet: navn, sett og konfidens, direkte. Analyser livesalget ditt med et system som holder oversikt over kortene. For strømmere som vil vite mer.
Fra Pokémon til Magic: The Gathering
Bytt kategori for hvert show, så følger hele motoren med: deteksjon, filtrering og identifiseringskallet peker alle mot riktig endepunkt. Hvert treff kommer tilbake med navn, sett, settkode, kortnummer, serie og år.
Samlekortspill
collectibles/v2/tcg_id Moderne og vintage TCG-singles, rett fra strømmen. Endepunktet leser illustrasjonen, rammen og teksten, så kortet identifiseres fra det samme bildet seerne dine ser på. Du slipper å lete etter settsymbolet eller myse etter kortnummeret.
- 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
Sportskort sport_id
Rookies, parallels, inserts og autografer fra alle de store idrettene: baseball, basketball, amerikansk fotball, fotball, ishockey og mer. Nøyaktig riktig kort, riktig sett og riktig år.
Graderte kort i slab slab_id
Leser etiketten på en gradert slab og identifiserer kortet inni en slab fra PSA, BGS eller CGC uten at du må åpne den.
Tegneserier comics_id
Forsider identifiseres på samme måte som kort: tittel, nummer og år, fra ett enkelt bilde der bladet ligger i ro.
Koble til en proprietær gjenkjenner, eller din egen
Alt som avgjør om det skal sendes et kall, skjer før selve identifiseringen: deteksjonen, bevegelsesfilteret og samme-kort-filteret kjører lokalt og fungerer med hvilken som helst leverandør. Selve kallet er ett utskiftbart trinn: Ximilar rett ut av esken, en proprietær tjeneste for kortidentifisering eller en modell du har trent selv og kjører på egen maskinvare.
Det er ett lite grensesnitt: et utsnitt av kortet går inn, et treff kommer ut. Implementer IdentifyTarget, så fungerer hvert filter, hver struping og hver terskel foran det akkurat som før. Det er fortsatt ett utsnitt per unikt kort, uansett hvem som svarer.
# din egen gjenkjenner, samme motor class HouseIdentifier(IdentifyTarget): def identify(self, crop_bgr): return my_service.match(crop_bgr) # ett utsnitt per unikt kort, uansett $ cardstream-web --detector rfdetr
Ett kall per kort, ikke per bilde
Poenget er å begrense analysen av strømmen til de kallene som faktisk forteller deg noe nytt. Alternativet med åpen kildekode til lukkede SaaS-tjenester for kortgjenkjenning: ingen plattform i midten og ingen lisens per bruker, bare din maskinvare, din API-nøkkel og en tilstandsmaskin som bare sender et kall når kortet i bildet er virkelig nytt.
En naiv pipeline som tar bilde for bilde i 15 fps, sender 54 000 identifiseringer i timen. cardstream sender én per unikt kort du viser: rundt hundre i den samme timen.
Samme time, samme video, samme kort: 54 000 kall mot omtrent 100. Bevegelses- og identitetsfiltrene kjører lokalt på din egen maskinvare, og et kall går bare ut når et virkelig nytt kort ligger i ro i bildet.
Ikke noe SaaS-abonnement, ingen pris per bruker, ingen innlåsing. Driv hele løsningen selv, identifiseringen inkludert, eller koble til Ximilars API.
Alt et strømmet kortshow trenger
En medprogramleder som aldri går glipp av et kort: for livesalg på plattformer som Whatnot og Fanatics Live, box breaks, strømmer fra kortbutikker og katalogisering av samlinger. Overalt der et kamera er rettet mot et kort.
Gjenkjent i det øyeblikket det kommer i bildet
Ingen skanneknapp. Ingen venting. Bare vis frem kortet: navn, sett og konfidens er klare på omtrent et halvt sekund, direkte på strømmen.
Ett kall per kort
Et bevegelsesfilter og et identitetsfilter basert på embeddings kjører lokalt på din egen CPU. Hold kortet i ro: null gjentatte kall. Bytt kort: nøyaktig ett nytt kall.
Hvilken som helst videokilde
Webkamera, videofiler, RTSP, RTMP og SRT, hentet inn eller sendt rett fra OBS med --listen. WebSocket-strømmer med JPEG for egne oppsett.
Hvilken som helst identifiseringstjeneste
Ximilar collectibles/v2 rett ut av esken, eller la den samme motoren bruke en proprietær kortgjenkjenner eller en du har trent og kjører selv.
Bruk dine egne modeller
Modellvektene til lokaliseringen er våre: en finjustert segmenteringsmodell av typen RF-DETR, under Apache-2.0, som installasjonsprogrammet laster ned. Boksdetektorer (RF-DETR, RT-DETRv2) støttes også hvis du heller vil bruke din egen eksport.
Åpen kildekode, på egen maskin
Én Python-pakke med en tillatende lisens. Les koden, lag en fork og kjør den på din egen maskinvare. Din nøkkel, dine data, din infrastruktur.
Smart nok til å vite når API-et ikke skal kalles
Mellom strømmen din og API-et står en tilstandsmaskin. Hvert bilde går gjennom DecisionCore, én tilstandsmaskin som kjører lokalt, og tre lokale filtre avgjør når det ene API-trinnet faktisk er nødvendig.
Deteksjon
lokalt · uten API-kallFinn kortets firkant, og rett den opp til et rent utsnitt. Det lokale bevegelsesfilteret struper deteksjonen i tre nivåer: bevegelse, kort i ro, tomt bilde.
Bevegelsesfilter
lokalt · uten API-kallEn billig gjennomsnittlig forskjell mellom bilder. Først når scenen har vært i ro i N bilder, er kortet verdt en nærmere titt. Beveger det seg fortsatt? Vent.
Identitetsfilter
lokalt · uten API-kallEn sammenligning av embeddings svarer på ett spørsmål: er dette det samme kortet som sist? Samme kort → det lagrede resultatet sendes ut på nytt.
Identifisering
ximilar · 1 kallBare et kort som er virkelig nytt og ligger i ro, utløser en identifisering hos Ximilar: asynkront, med debounce og utenfor bildeløkken. Resultatet sendes tilbake direkte.
Strømmer du på egen hånd?
Én person, ett kamera og en lang kveld med breaks: du skal ikke trenge et helt utviklerteam for å vite hvilket kort som er på skjermen. Koble til strømmen du allerede kjører, og la cardstream analysere den direkte, enten du selger på en markedsplass eller rett fra din egen kanal.
- Whatnot
- Fanatics Live
- eBay Live
- TikTok Shop
- Twitch
- YouTube Live
- ditt eget nettsted
Ingen tilgang til kontoen din, ingen API-nøkler til markedsplassen, ingen bot i chatten og ingen tilknytning til noen av disse plattformene. cardstream leser videoen din, ingenting annet.
Du strømmer allerede fra OBS
Legg til én utgang til ved siden av den som sender showet ditt. Kjøperne ser nøyaktig det samme som før: en kopi av det samme signalet havner i cardstream, og hvert kort som legges på bordet, blir identifisert underveis. Lytteren nedenfor trenger systemets ffmpeg-program. Du kan også droppe den ekstra utgangen helt og la cardstream lese det virtuelle kameraet i OBS som et vanlig webkamera.
$ cardstream-web --listen \ --source rtmp://0.0.0.0:1935/live # pek det andre målet i OBS hit
Eller kameraet som allerede står ved bordet
Et kamera ovenfra, et opptakskort, mobilen som webkamera: det du åpner pakker og viser frem kort under. Analysen kjører på maskinen ved siden av kameraet, så som standard forlater ingenting annet enn ett utsnitt per kort rommet.
$ cardstream-web --source 0 # webkamera · brukergrensesnitt i nettleseren på localhost
Eller alt som har en URL
Kodere, videomiksere, restreaming-tjenester, et annet studio på den andre siden av byen. cardstream henter RTSP, RTMP og SRT, og tar imot WebSocket-strømmer med JPEG når oppsettet er hjemmesnekret.
$ cardstream-web \
--source rtsp://studio/stream1 Direkte overlegg
Navn, sett og konfidens dukker opp i det øyeblikket kortet ligger i ro: klart til å leses høyt eller legges tilbake inn i scenen din.
Hvert kort blir loggført
En løpende historikk over alt du har vist: et miniatyrbilde av hvert kort og hvor lenge det var på strømmen. Lagre den på Ximilar-kontoen din, og gå gjennom showet morgenen etter: hva som ble solgt, og hva det var verdt.
Tilpasset én person
Ingen plattformavgift, ingen lisens per bruker. Et show på tre timer er en håndfull identifiseringskall, ikke ett per bilde.
Trinn for trinn: koble til et show på Whatnot eller Fanatics Live →
Showet ditt, lagret og klart til gjennomgang
cardstream kjører på maskinen din og lagrer ingenting som standard. Legg til ett flagg, så blir hvert kort du viser, også lagret i en økt på Ximilar-kontoen din, med pris, tid på skjermen og utsnittet det ble identifisert fra. Åpne Ximilar-appen etter showet, og se hva det var verdt.
$ cardstream-web --price-stats \ --ximilar-stream NEW # skriver ut økt-ID-en og lagrer mens showet pågår
Showet i tall
Viste produkter, betalte API-kall, markedsverdi og gjennomsnittlig tid på skjermen for hver økt, med de mest verdifulle produktene og de hyppigste settene ved siden av.
Hvert kort, med bilde
Hver rad tar vare på kortet, settet, nummeret, prisen og utsnittet det ble identifisert fra. Søk i listen etter produkt eller sett, og filtrer øktene dine etter status, plattform og dato.
Gjør det til ditt eget arkiv
Merk det som ble solgt, legg til et notat, rett et feil treff eller prisen, slett et falskt treff. Gi økten et navn, og legg ved dine egne metadata: et varenummer, kostnader, kjøpere.
Fortsett der du slapp
Startet du på nytt midt i showet? Oppgi økt-ID-en i stedet for NEW, så fortsetter showet i den samme økten, selv om den var avsluttet. Med --ximilar-workspace lagres den i et felles arbeidsområde for teamet.
Av som standard: uten --ximilar-stream er identifiseringskallet det eneste som forlater maskinen din. Lagring krever Cards Cloud-tjenesten på Ximilar-kontoen din. Bare oppstart av en økt faktureres, og med --no-ximilar-stream-images lagres bare tekst.
Fra null til direkte identifisering på 3 trinn
Installer den
Et virtuelt miljø, wheel-filen fra utgivelsen (kontrollert mot sjekksummer), modellvektene og begge kommandoene på PATH. Bruk skriptet, installer den samme wheel-filen fra PyPI med pip (modellvektene lastes ned separat), eller klon repoet og bygg selv. Docker og Windows finner du på nedlastingssiden.
$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh # andre installasjonsmåter → cardstream.ai/download
$ pip install 'cardstream[client,onnx]' # eller: uv tool install 'cardstream[client,onnx]' # wheel-filen har ingen modellvekter: pakk ut de to tarballene fra cardstream.ai/models # og pek flaggene mot dem: $ 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
Koble til et identifiseringssystem
Ximilar collectibles/v2 rett ut av esken: en nøkkel fra ximilar.com er den eneste påloggingsinformasjonen hele systemet trenger. Eller la det samme trinnet bruke din egen gjenkjenner.
$ export XIMILAR_API_KEY=your-key
Rett et kamera mot et kort
Åpne brukergrensesnittet i nettleseren med webkameraet ditt, eller send inn showet: hent det med RTSP, eller la OBS sende RTMP rett inn. Åpner du ett og samme sett hele kvelden? Fyll det ut på forhånd, så slutter endepunktet å gjette: engelske Pokémon-kort fra CRI gir tre færre ting som kan gå galt. Sett alltid --alphabet når du setter --game, for når spillet er fylt ut på forhånd, slår endepunktet av sin egen gjenkjenning av skriftsystem. Legg til --price-stats, så får hvert treff også markedspriser i USD: median, spenn og siste salg, på kortet og i historikken. Legg til --ximilar-stream NEW for å lagre showet på Ximilar-kontoen din og gå gjennom det etterpå.
$ cardstream-web # → http://127.0.0.1:8001 — hold opp et kort # engelske Pokémon-kort, ett sett (CRI - Chaos Rising), med markedspriser i USD: $ cardstream-web --game Pokemon --set-code CRI --alphabet latin --price-stats
Åpen kildekode. På din egen maskin. Din strøm, ditt oppsett.
Ingen plattform i midten, ingen lisens per bruker: koble til Ximilars API eller ditt eget identifiseringssystem, så kaller cardstream det én gang per unikt kort i stedet for én gang per bilde. Enten du kjører breaks på Whatnot, holder et show i Fanatics Live-stil eller strømmer fra ditt eget oppsett for livesalg, kan du kjøre cardstream allerede i kveld på maskinvaren du har.