Dokumentation
Alt kører på din egen computer: Installer det, giv det et kamera, og bestem, hvornår det må sende et kald. Ordnet efter, hvad du gerne vil gøre.
Fra ingenting til et kort på skærmen
Én kommando installerer klienten, modelvægtene og de to shims. Den eneste adgangsoplysning i hele systemet er din Ximilar-nøgle.
Installationsscriptet
Opretter et venv i ~/.cardstream, kontrollerer releasens wheel mod dens kontrolsummer, henter modelvægtene og lægger begge kommandoer på din PATH. De andre metoder (wheel, Docker, kildekode) står på downloadsiden.
$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh Alle installationsmetoder → Manuel installation
Et checkout og pip virker også. Extras er uafhængige af hinanden: [client] er brugerfladen og kilderne, [onnx] eller [torch] leverer backends til detektoren og embeddingmodellen.
$ git clone https://github.com/Ximilar-com/cardstream && cd cardstream $ pip install -e '.[client,onnx]'
Din Ximilar-nøgle
Identifikationen drives af Ximilar collectibles/v2. XIMILAR_API_KEY er den eneste miljøvariabel, der overhovedet bliver læst. Alt andet er et flag.
$ export XIMILAR_API_KEY=your-key
Første kørsel
Åbner brugerfladen i browseren med dit webcam. Hold et kort op: Overlayet viser, hvordan tilstandsmaskinen tænker, og derefter matchet, når det lander.
$ cardstream-web # → http://127.0.0.1:8001
Tjek, hvad du har
Begge kommandoer udskriver deres version og afslutter. Der skal ingen modelfiler til, så det virker, i samme øjeblik installationen er færdig.
$ cardstream-web --version
cardstream 0.5.0 Headless, til faste setups
Den samme pipeline uden browser: Resultaterne udskrives i terminalen. Samme flag som cardstream-web, én proces ved siden af kameraet.
$ cardstream-client --source 0 Giv det dit show
Kilderne kan udskiftes, og analysen er den samme, uanset hvilken du vælger. Alt er et flag, og indstillingsdialogen justerer de vigtige live.
Webcams og filer
Browserens webcam er standard for cardstream-web. Et indeks, en videofil eller et stillbillede virker alle steder. Godt til at teste før showet.
$ cardstream-web # browserens webcam $ cardstream-client --source clip.mp4
Hent en stream
Peg det mod et IP-kamera, en encoder eller en restreamer: rtsp://, rtmp://, srt:// og ws://-feeds med JPEG, med genopkobling og begrænset backoff.
$ cardstream-web --source rtsp://cam/stream1 Lad OBS sende
Kør det som lytter, og tilføj ét ekstra RTMP- eller SRT-output i OBS. Kræver systemets ffmpeg-program (brew install ffmpeg).
$ cardstream-web --source rtmp://0.0.0.0:1935/live --listen Forhåndsvalg indsnævrer søgningen
Spil, sætkode og skriftsystem valideres lokalt, før de sendes. Angiv altid --alphabet, når du angiver --game: Et forhåndsvalgt spil forhindrer endpointet i selv at genkende alfabetet.
$ cardstream-web --game "Pokémon" --alphabet japanese --set-code M4
Indstillingsdialogen
Kategori, spil, sætkode, alfabet og tærskler kan justeres fra browseren midt i streamen, uden genstart, og felterne har samme validering som processen.
Tre opløsninger at skrue på
Hvad kameraet optager, hvad der sendes, og hvad der analyseres, er tre forskellige tal. Analysen kører i lille format, og udsnittet til identifikation skæres ud af det fulde billede.
$ cardstream-web --camera-width 3840 --width 1280 Gem showet, og gennemgå det senere
Slået fra som standard. Ét flag gemmer den historik, siden opbygger (hvert kort, du har vist, med sit udsnit), i en session på din egen Ximilar-konto, så showet stadig er der morgenen efter.
Historikken med miniaturer
Brugerfladen i browseren viser hvert kort, du har vist, med det nyeste øverst: en miniature af det udsnit, der blev identificeret, prisen med --price-stats, og hvor længe kortet blev på streamen. Den liste ligger på din egen computer.
Gem et show
--ximilar-stream NEW starter en session og udskriver dens id. Derfra gemmes hver række i historikken, mens showet kører: Uploads samles i baggrunden, forsøges igen ved netværksfejl og holder aldrig showet tilbage. Ved en normal afslutning uploades resten, og sessionen lukkes.
$ cardstream-web --game "Pokémon" --alphabet latin \ --price-stats --ximilar-stream NEWAlt om at gemme et show →
Hvad der uploades
Rækkerne som tekst (kort, sæt, pris, tid på streamen, de betalte kald bag dem) og det udsnit, hver række blev identificeret ud fra, på højst 1024 px: det billede, identifikationskaldet allerede har modtaget. Med --no-ximilar-stream-images gemmes der kun tekst. Din Ximilar-konto skal have tjenesten Cardstream.
$ cardstream-web --ximilar-stream NEW --no-ximilar-stream-images Gennemgå det i Ximilar-appen
Hver session lander i Cardstream-sektionen i Ximilar-appen: hvad du viste og hvornår, showets værdi, de mest værdifulde produkter og de hyppigste sæt, og hvert kort med sit udsnit. Marker, hvad der blev solgt, ret et forkert match, og tilføj noter.
Åbn Ximilar-appen →Fortsæt efter en genstart
Angiv sessionens id i stedet for NEW, og showet fortsætter i samme session. Selv hvis en normal afslutning har lukket den, åbnes den bare igen. Kun starten af en session bliver faktureret, så det koster ingenting at fortsætte.
$ cardstream-web --ximilar-stream <session-id>
Team-workspaces
En session gemmes i standard-workspacet for din API-nøgle. Vælg et andet med --ximilar-workspace, og angiv samme id, når du fortsætter en session, der er gemt der.
$ cardstream-web --ximilar-stream NEW \ --ximilar-workspace <workspace-id>
Ét identifikationskald pr. nyt kort
Lokale signaler (bevægelse, detektion, identitetsfilteret) afgør, hvornår et identifikationskald faktisk er berettiget. Her er de knapper, du kan skrue på for at holde det ærligt.
Tærskler
En resultattærskel holder svage match væk fra overlayet. Lighedstærsklen afgør, om det er samme kort eller et nyt. Forget-after rydder hukommelsen, når et kort har været væk længe nok.
$ cardstream-web --result-threshold 0.35 Den anbefalede kørsel
RF-DETR-segmentering med et identitetsfilter på ONNX-embeddings: standardindstillingerne, som de leveres. En cardstream-web uden flag kører præcis dette, når vægtene er på plads. Skriver du det ud, er det den samme pipeline.
$ cardstream-web \ --segmentor-model model/segmentation/onnx/model.onnx \ --embed-model model/similarity/onnx/model.onnx
Hold det på localhost
Den lokale app har ingen adgangskontrol og ligger inde med din API-nøgle. --host er som standard 127.0.0.1. Lad den blive der, og åbn aldrig porten mod et lokalnetværk.
“Model not found” ved opstart
Modelvægtene hentes separat og er ikke en del af repoet. Installationsscriptet og Docker-imaget henter dem. Et rent checkout skal have dem lagt i model/segmentation/ og model/similarity/, og det klarer scripts/build-from-source.sh --models for dig.
Angiv det spil, du viser
I et show med ét spil behøver endpointet ikke gætte spillet ved hvert kald. Angiv det, og søgningen indsnævres til det spil: hurtigere svar, færre forkerte udgaver. Angiv --alphabet sammen med det, for et forhåndsvalgt spil forhindrer endpointet i selv at genkende skriftsystemet.
$ cardstream-web --game "Pokémon" --alphabet japanese
ffmpeg, når du får brug for det
--listen og --ffmpeg kalder systemets ffmpeg-program. Almindelige pulls virker med en ren pip-installation. Opsætningen, hvor OBS sender, gør ikke.
Ud over standardindstillingerne
Skift modellerne ud, eller læs koden: Hele pipelinen er én installerbar pakke.
Brug dine egne vægte
Detektionen og identitetsfilteret vælger backend selv: Modelfamilien bestemmer klassen, filendelsen bestemmer runtime. RF-DETR eller RT-DETRv2, .onnx eller en transformers-mappe.
Modelbackends →Modelkataloget
Alle de vægte, cardstream kan indlæse, trænet af Ximilar og udgivet under Apache-2.0 sammen med releaserne: hvad hver model gør, hvor hurtigt den kører, og hvilken licens den har.
Modelkatalog →Kort fortalt
Hvad det koster, hvad der forlader computeren, hvilke kort det kan genkende, og de to kommandoer, der fjerner det igen.
Læs FAQ →README og issues
README-filen dækker alle flag, og issues er stedet for fejl og spørgsmål.
Læs README →Releases og artefakter
Wheels, kontrolsummer og installationsscriptet, én samling pr. release, plus Docker og build fra kildekode.
Til downloadsiden →