cardstream
Dokumentasjon

Dokumentasjon

Alt kjører på maskinen din: installer den, rett et kamera mot den, og bestem når den får lov til å sende et kall. Sortert etter hva du prøver å gjøre.

Installer og kjør

Fra ingenting til et kort på skjermen

Én kommando installerer klienten, modellvektene og startskriptene. Den eneste påloggingsinformasjonen i hele systemet er Ximilar-nøkkelen din.

Installasjonsskriptet

Oppretter et virtuelt miljø i ~/.cardstream, kontrollerer wheel-filen fra utgivelsen mot sjekksummene, laster ned modellvektene og legger begge kommandoene på PATH. Andre måter (wheel, Docker, kildekode) finner du på nedlastingssiden.

$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh
Alle installasjonsmåter →

Manuell installasjon

En utsjekk av repoet og pip fungerer også. Tilleggene er uavhengige av hverandre: [client] er grensesnittet og kildene, [onnx] eller [torch] gir kjøremiljøene for detektoren og embedding-modellen.

$ git clone https://github.com/Ximilar-com/cardstream && cd cardstream
$ pip install -e '.[client,onnx]'

Ximilar-nøkkelen din

Identifiseringen drives av Ximilar collectibles/v2. XIMILAR_API_KEY er den eneste miljøvariabelen som leses; alt annet er flagg.

$ export XIMILAR_API_KEY=your-key

Første kjøring

Åpner brukergrensesnittet i nettleseren med webkameraet ditt. Hold opp et kort: overlegget viser tilstandsmaskinen som tenker, og treffet når det kommer.

$ cardstream-web
# → http://127.0.0.1:8001

Sjekk hva du har

Begge kommandoene skriver ut versjonen og avslutter. Ingen modellfiler trengs, så dette fungerer så snart installasjonen er ferdig.

$ cardstream-web --version
cardstream 0.5.2

Uten grensesnitt, for faste oppsett

Den samme pipelinen uten nettleser: resultatene skrives ut i terminalen. Samme flagg som cardstream-web, én prosess ved siden av kameraet.

$ cardstream-client --source 0
Bruk den

Send inn showet ditt

Kildene er utskiftbare, og analysen er den samme uansett hvilken du velger. Alt er flagg; de viktigste kan justeres direkte i innstillingsdialogen.

Webkameraer og filer

Webkameraet i nettleseren er standard for cardstream-web; en indeks, en videofil eller et stillbilde fungerer overalt. Fint for å teste før showet.

$ cardstream-web # webkamera i nettleseren
$ cardstream-client --source clip.mp4

Hent en strøm

Pek den mot et IP-kamera, en koder eller en restreaming-tjeneste: rtsp://, rtmp://, srt:// og ws://-strømmer med JPEG, med nye tilkoblingsforsøk og begrenset backoff.

$ cardstream-web --source rtsp://cam/stream1

La OBS sende

Kjør den som lytter, og legg til én ekstra RTMP- eller SRT-utgang i OBS. Krever systemets ffmpeg-program (brew install ffmpeg).

$ cardstream-web --source rtmp://0.0.0.0:1935/live --listen

Forhåndsutfylling snevrer inn søket

Spill, settkode og skriftsystem kontrolleres lokalt før de sendes. Oppgi alltid --alphabet når du oppgir --game, for når spillet er fylt ut på forhånd, slutter endepunktet å gjenkjenne alfabetet selv.

$ cardstream-web --game "Pokémon" --alphabet japanese --set-code M4

Innstillingsdialogen

Kategori, spill, settkode, alfabet og terskler kan justeres fra nettleseren midt i strømmen, uten omstart, og kontrollene har den samme valideringen som prosessen.

Tre innstillinger for oppløsning

Det kameraet tar opp, det som sendes, og det som analyseres, er tre ulike tall. Analysen kjører i liten størrelse; utsnittet til identifisering klippes på nytt fra hele bildet.

$ cardstream-web --camera-width 3840 --width 1280
Gå gjennom showet

Lagre showet, gå gjennom det senere

Av som standard. Ett flagg lagrer historikken som siden bygger opp, hvert kort du har vist med utsnittet sitt, i en økt på din egen Ximilar-konto, så showet fortsatt er der morgenen etter.

Historikken, med miniatyrbilder

Brukergrensesnittet i nettleseren viser hvert kort du har vist, med det nyeste først: et miniatyrbilde av utsnittet som ble identifisert, prisen med --price-stats og hvor lenge kortet var på strømmen. Listen ligger på maskinen din.

Lagre et show

--ximilar-stream NEW starter en økt og skriver ut ID-en. Fra da av lagres hver rad i historikken mens showet pågår: opplastingene samles i bakgrunnen, prøves på nytt ved nettverksfeil og holder aldri showet igjen. En ryddig avslutning laster opp resten og lukker økten.

$ cardstream-web --game "Pokémon" --alphabet latin \
    --price-stats --ximilar-stream NEW
Alt om å lagre et show →

Hva som lastes opp

Radene som tekst (kort, sett, pris, tid på strømmen, de betalte kallene bak) og utsnittet hver rad ble identifisert fra, på maks 1024 px: det samme bildet som identifiseringskallet allerede fikk. Med --no-ximilar-stream-images lagres bare tekst. Ximilar-kontoen din trenger Cards Cloud-tjenesten.

$ cardstream-web --ximilar-stream NEW --no-ximilar-stream-images

Gå gjennom det i Ximilar-appen

Hver økt havner i Cards Cloud-delen av Ximilar-appen: hva du viste og når, verdien av showet, de mest verdifulle produktene og de vanligste settene, og hvert kort med utsnittet sitt. Merk det som ble solgt, rett et feil treff, legg til notater.

Åpne Ximilar-appen →

Fortsett etter en omstart

Oppgi økt-ID-en i stedet for NEW, så fortsetter showet i den samme økten. Selv om en ryddig avslutning lukket den, åpnes den bare igjen. Bare oppstart av en økt faktureres, så det koster ingenting å fortsette.

$ cardstream-web --ximilar-stream <session-id>

Felles arbeidsområder for team

En økt lagres i standardarbeidsområdet til API-nøkkelen din. Angi et annet med --ximilar-workspace, og oppgi den samme ID-en når du fortsetter en økt som er lagret der.

$ cardstream-web --ximilar-stream NEW \
    --ximilar-workspace <workspace-id>
Kjør den trygt

Ett identifiseringskall per unikt kort

Lokale signaler (bevegelse, deteksjon, identitetsfilteret) avgjør når et identifiseringskall faktisk er nødvendig. Dette er innstillingene som holder det slik.

Terskler

En terskel for resultatene holder svake treff unna overlegget; likhetsterskelen avgjør om det er samme kort eller et nytt; forget-after tømmer minnet når et kort har vært borte lenge nok.

$ cardstream-web --result-threshold 0.35

Anbefalt oppsett

RF-DETR-segmentering med et identitetsfilter basert på ONNX-embeddings: standardinnstillingene som følger med. En cardstream-web uten flagg kjører akkurat dette når modellvektene er på plass; å skrive det ut gir den samme pipelinen.

$ cardstream-web \
    --segmentor-model model/segmentation/onnx/model.onnx \
    --embed-model model/similarity/onnx/model.onnx

Hold den på localhost

Den lokale appen har ingen autentisering og holder på API-nøkkelen din. --host er 127.0.0.1 som standard: la det være slik, og eksponer aldri porten for et lokalnett.

«Model not found» ved oppstart

Modellvektene lastes ned separat og er ikke en del av repoet. Installasjonsskriptet og Docker-imaget henter dem; en ren utsjekk trenger dem lagt i model/segmentation/ og model/similarity/, og scripts/build-from-source.sh --models gjør det for deg.

Oppgi spillet du viser

Et show med ett spill trenger ikke at endepunktet gjetter spillet ved hvert kall. Oppgi det, så snevres søket inn til det spillet: raskere svar, færre feil utgaver. Oppgi --alphabet sammen med det, for når spillet er fylt ut på forhånd, slutter endepunktet å gjenkjenne skriftsystemet selv.

$ cardstream-web --game "Pokémon" --alphabet japanese

ffmpeg, når du trenger det

--listen og --ffmpeg kaller systemets ffmpeg-program. Vanlig henting fungerer med en ren pip-installasjon; oppsettet der OBS sender inn, gjør det ikke.

Gå dypere

Utover standardinnstillingene

Bytt modeller eller les koden: hele pipelinen er én installerbar pakke.

Bruk dine egne modellvekter

Deteksjonen og identitetsfilteret rutes etter kjøremiljø: modellfamilien velger klassen, filendelsen velger kjøremiljøet. RF-DETR eller RT-DETRv2, .onnx eller en transformers-mappe.

Kjøremiljøer for modeller →

Modellsamlingen

Alle modellvektene cardstream kan laste, trent av Ximilar og publisert under Apache-2.0 sammen med utgivelsene: hva hver av dem gjør, hvor raskt den kjører, og hvilken lisens den har.

Modellsamlingen →

Korte svar

Hva det koster, hva som forlater maskinen, hvilke kort den kjenner igjen, og de to kommandoene som fjerner den igjen.

Les vanlige spørsmål →

README og issues

README-en dekker hvert flagg; issues er stedet for feil og spørsmål.

Les README-en →

Utgivelser og filer

Wheel-filer, sjekksummer og installasjonsskriptet, ett sett per utgivelse, pluss Docker og bygging fra kildekode.

Nedlastingssiden →