Kortanalys för streamare. Snabb och träffsäker.
cardstream är en tillståndsmaskin runt en slutpunkt för kortidentifiering. Allt nedan gör antingen identifieringen bättre eller ser till att den bara sker när den faktiskt är värd att betala för.
Kortidentifiering i realtid från vilken stream som helst
Fyra identifieringsslutpunkter bakom en och samma omkopplare: samlarkortspel, sportkort, graderade kort och serietidningar.
Hela träffen i ett enda objekt
Namn, fullständigt namn, set, setkod, kortnummer, serie, år och underkategori kommer som ett objekt per identifierat kort, klart att läsa upp, logga eller skicka vidare till dina egna verktyg.
Konfidens du kan agera på
Varje träff har med sig det råa avståndet och en nivå, High / Medium / Low (gränser vid 0.30 och 0.40). Sätt en resultattröskel så når kort under den aldrig fram till overlayen.
Alternativa träffar
Varje resultat kommer med upp till fyra andra kort som det hade kunnat vara. Om toppträffen är fel finns den rätta oftast i den korta listan.
Förval som snävar in sökningen
Ange spelet, setkoden eller skriftsystemet så slutar slutpunkten att gissa dem. Värdena valideras lokalt: ett stavfel ger ett fel på din dator i stället för att i tysthet ge fel utgåva.
Kategori per sändning
En flagga, eller inställningsdialogen mitt i streamen: tcg, sport, slab eller comics. Vid ett byte tas de förval bort som den nya kategorin inte känner till, i stället för att den får ett värde som den inte kan använda.
Framsida, baksida och rotation
Kända attribut skickas med utsnittet så att slutpunkten hoppar över klassificerare som inte behövs: färre saker som kan bli fel, och snabbare svar.
Snabb analys av livestreamar med AI
En tillståndsmaskin, gemensam för båda driftsätten. Allt här körs på din egen CPU, innan något lämnar datorn.
Rörelsespärr
En genomsnittlig skillnad mellan bildrutor visar om scenen har blivit stilla. Ingenting längre fram i kedjan utlöses medan kortet fortfarande rör sig genom bilden.
Identitetsspärr
Varje kort i bild jämförs med det föregående av en AI-modell, med hjälp av embeddingar. Den besvarar en enda fråga: samma kort eller nytt kort?
Detektering som stryps i tre nivåer
Detekteringen körs ofta medan något rör sig, sällan på ett stilla kort och knappt alls på en tom matta. Nivåerna är konfiguration per driftsätt, inte kod.
Cooldown, inga omförsök, forget-after
Ett kort som inte gav någon träff prövas inte om i en loop, ett kort som hålls kvar i bild identifieras inte på nytt, och ett kort som har varit borta tillräckligt länge analyseras från början när det kommer tillbaka.
Anropsvakt och watchdog
En identifiering i taget, med ett minsta intervall och en timeout som får loss pipelinen om slutpunkten hänger sig. Ett långsamt anrop får aldrig streamen att stanna upp.
Blixtsnabba resultat
AI-modellerna bakom cardstream körs på din egen dator. Systemet är mycket snabbt, och du behöver ingen GPU.
Videokällor och format som stöds
Källorna är utbytbara och analysen är identisk vilken du än väljer.
Kameror och filer
Ett webbkameraindex, en videofil, en stillbild eller webbläsarens webbkamera när du kör webbgränssnittet. Bra för att testa riggen före sändningen.
Hämta: RTSP, RTMP, SRT
Rikta det mot en IP-kamera, en kodare eller en restreamingtjänst så hämtar det flödet, och återansluter med en väntetid som växer upp till ett tak när flödet bryts.
Skicka: OBS rakt in
Kör det som lyssnare och låt OBS skicka RTMP eller SRT till det: en extra utgång bredvid den som matar din marknadsplats.
JPEG-flöden över WebSocket
För hemmabyggda riggar: varje process som kan skicka JPEG-bildrutor över en socket är en giltig källa.
Tre reglage för upplösning
Vad kameran fångar, vad som skickas och vad som analyseras är tre separata tal. Analysen körs i liten skala och kostar lite; utsnittet som skickas för identifiering skärs ut på nytt ur hela bildrutan.
Bildrutorna förblir dina
I klientläget lämnar ingenting datorn utom ett JPEG-utsnitt per unikt kort: inte streamen, inte bildrutorna runt omkring. Att spara sändningen på ditt Ximilar-konto är en flagga som du själv väljer att slå på.
Våra vikter, eller dina
Analysera livestreamar med vår färdiga modell för CPU. Behöver du högre träffsäkerhet eller extrem hastighet? Träna din egen och kör den på GPU:er!
RF-DETR-segmentering
Standardlokaliseraren: en finjusterad .onnx-export för instanssegmentering som körs via onnxruntime, utan torch. Masken ger kortets fyra hörn, så utsnittet som du betalar för rätas upp och skärs tätt längs kortets kant.
Detektering med RF-DETR / RT-DETRv2
Avgränsningsrutor som valfritt alternativ: ONNX för hastighet, eller en transformers-katalog eller ett hub-id medan du fortfarande itererar på en finjustering.
Vikterna ingår
RF-DETR-lokaliseraren och embeddingmodellen är tränade av Ximilar och publicerade under Apache-2.0. Installationsskriptet hämtar dem, så det finns inget träningssteg mellan dig och en fungerande pipeline.
Backends för embeddingmodellen
Embeddingmodeller i Torch, ONNX eller LiteRT/TFLite för identitetsspärren: använd den körmiljö du redan har på datorn.
Tunga importer laddas först vid behov
Torch är inget beroende för kärnan. Installera bara de extras som dina backends behöver, så fungerar allt annat ändå.
Valfri identifieringstjänst
Identifieringsanropet är ett enda utbytbart steg. Rikta det mot Ximilar, mot en proprietär igenkänningstjänst eller mot en modell som du driftar själv.
En process, bredvid kameran
Detekteringen och spärrarna körs på din dator, från ett enda installerbart paket, och det enda identifieringsanropet går direkt därifrån till API:et.
Två ingångar, en pipeline
Ett kommando utan gränssnitt, för riggar och skript, och ett lokalt webbgränssnitt när du vill se det arbeta. Båda tar samma flaggor och bygger samma pipeline.
En inloggningsuppgift, som stannar lokalt
Din Ximilar-nyckel, läst ur miljövariablerna på din egen dator. Inget konto att skapa här, inget mellanled att lita på och ingenting att hålla igång utom själva processen.
Inget blockerar loopen
JPEG-avkodning, detektering, HTTP och diskskrivningar körs utanför händelseloopen. En långsam bildruta kastas, i stället för att köas upp till en växande fördröjning.
Inställningsdialog under sändning
Trösklar, kategori, spel, setkod och skriftsystem går att ställa om från webbläsaren mitt i streamen. Varje reglage genereras dessutom från en och samma lista med beskrivningar, så gränssnittet och valideringen kan inte glida isär.
En overlay byggd för streamar
Statusmärke, avgränsningsruta och en historik över varje kort du har visat, med en miniatyr av vart och ett och tiden det var i bild, som en flagga sparar på ditt Ximilar-konto. En felsökningspanel när du vill se hur spärrarna tänker.
Testsvit som körs offline
Hela sviten körs utan nätverk och utan modellfiler, med attrapper för ONNX-sessionerna och detektorerna. Forka repot och du kan ändå se om du har haft sönder något.
Öppen källkod. Egen drift. Din stream, din stack.
Ingen plattform i mitten och ingen licens per användare: anslut Ximilars API eller ditt eget identifieringssystem, så anropar cardstream det en gång per unikt kort i stället för en gång per bildruta. Oavsett om du kör breaks på Whatnot, sänder i Fanatics Live-stil eller streamar från din egen liveshoppinglösning kan du köra cardstream redan i kväll, på den hårdvara du redan har.