cardstream
Belgeler

Dokümantasyon

Her şey senin makinende çalışır: kur, kamerayı çevir ve ne zaman çağrı yapabileceğini ayarla. Yapmaya çalıştığın işe göre gruplandı.

Kur ve çalıştır

Sıfırdan ekrandaki karta

Tek komut istemciyi, model ağırlıklarını ve sarmalayıcı komutları kurar. Bütün sistemdeki tek kimlik bilgisi Ximilar anahtarındır.

Kurulum betiği

~/.cardstream içinde bir venv oluşturur, sürüm wheel’ini sağlama toplamlarıyla doğrular, model ağırlıklarını indirir ve iki komutu PATH’ine ekler. Diğer yollar (wheel, Docker, kaynak kod) indirme sayfasında.

$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh
Bütün kurulum yolları →

Elle kurulum

Deponun bir kopyası ve pip de iş görür. Ek paketler birbirinden bağımsızdır: [client] arayüz ve kaynaklardır, [onnx] ya da [torch] dedektör ve embedding arka uçlarını sağlar.

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

Ximilar anahtarın

Tanıma, Ximilar collectibles/v2 üzerinden çalışır. Okunan tek ortam değişkeni XIMILAR_API_KEY’dir; geri kalan her şey bir bayraktır.

$ export XIMILAR_API_KEY=your-key

İlk çalıştırma

Tarayıcı arayüzünü web kameranla açar. Bir kart göster; overlay, durum makinesinin düşünüşünü ve geldiği anda eşleşmeyi gösterir.

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

Elindekini doğrula

İki komut da sürümünü yazdırıp çıkar; model dosyası gerekmez, yani kurulum biter bitmez çalışır.

$ cardstream-web --version
cardstream 0.5.0

Arayüzsüz, düzenekler için

Aynı işlem hattı, tarayıcı olmadan: sonuçlar terminale yazılır. cardstream-web ile aynı bayraklar, kameranın yanında tek bir süreç.

$ cardstream-client --source 0
Kullan

Yayınını ver

Kaynaklar değiştirilebilir, hangisini seçersen seç analiz aynıdır. Her şey bir bayraktır; önemlilerini ayarlar penceresi canlıyken yeniden ayarlar.

Web kameraları ve dosyalar

cardstream-web için varsayılan, tarayıcının web kamerasıdır; bir kamera indeksi, bir video dosyası ya da tek bir görsel her yerde çalışır. Yayından önce denemek için uygundur.

$ cardstream-web # tarayıcının web kamerası
$ cardstream-client --source clip.mp4

Bir yayını çek

Bir IP kameraya, bir encoder’a ya da bir yeniden yayın servisine yönlendir: rtsp://, rtmp://, srt:// ve ws:// JPEG akışları; bağlantı koparsa üst sınırı olan, giderek uzayan aralıklarla yeniden bağlanır.

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

OBS göndersin

Dinleyici olarak çalıştır ve OBS’e fazladan bir RTMP ya da SRT çıkışı ekle. Sistemdeki ffmpeg ikili dosyası gerekir (brew install ffmpeg).

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

Ön bilgiler aramayı daraltır

Oyun, set kodu ve yazı sistemi gönderilmeden önce yerel olarak doğrulanır. --game verdiğinde her zaman --alphabet de ver; oyunu ön bilgi olarak girmek, uç noktanın alfabeyi kendisinin algılamasını durdurur.

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

Ayarlar penceresi

Kategori, oyun, set kodu, alfabe ve eşikler yayın sırasında tarayıcıdan yeniden ayarlanabilir: yeniden başlatmak gerekmez, denetimler de süreçle aynı doğrulamayı taşır.

Üç çözünürlük ayarı

Kameranın yakaladığı, gönderilen ve analiz edilen çözünürlükler ayrı sayılardır. Analiz küçük görüntüde çalışır; tanıma kırpması ise tam kareden yeniden kesilir.

$ cardstream-web --camera-width 3840 --width 1280
Yayını incele

Yayını kaydet, sonra incele

Varsayılan olarak kapalıdır. Tek bir bayrak, sayfanın oluşturduğu geçmişi (gösterdiğin her kartı, kırpmasıyla birlikte) kendi Ximilar hesabındaki bir oturuma kaydeder; yayın ertesi sabah hâlâ oradadır.

Küçük resimli geçmiş

Tarayıcı arayüzü gösterdiğin her kartı, en yenisi üstte olacak şekilde listeler: tanınan kırpmanın küçük resmi, --price-stats ile fiyatı ve yayında ne kadar kaldığı. Bu liste senin makinende durur.

Bir yayını kaydet

--ximilar-stream NEW bir oturum başlatır ve kimliğini yazdırır. O andan sonra geçmişin her satırı yayın sürerken kaydedilir; yüklemeler arka planda toplu yapılır, ağ hatalarında yeniden denenir ve yayını asla bekletmez. Temiz bir çıkış kalanları yükler ve oturumu kapatır.

$ cardstream-web --game "Pokémon" --alphabet latin \
    --price-stats --ximilar-stream NEW
Yayın kaydetme, bütün ayrıntılarıyla →

Neler yüklenir

Metin olarak satırlar (kart, set, fiyat, yayında kalma süresi, arkasındaki ücretli çağrılar) ve her satırın tanındığı, en fazla 1024 px’lik kırpma: tanıma çağrısının zaten aldığı görsel. --no-ximilar-stream-images kaydı metinle sınırlar. Ximilar hesabında Cardstream hizmeti gerekir.

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

Ximilar uygulamasında incele

Her oturum, Ximilar uygulamasının Cardstream bölümüne düşer: neyi ne zaman gösterdiğin, yayının değeri, en değerli ürünleri ve öne çıkan setleri, kırpmasıyla birlikte her kart. Satılanı işaretle, yanlış bir eşleşmeyi düzelt, not ekle.

Ximilar uygulamasını aç →

Yeniden başlattıktan sonra devam et

NEW yerine oturum kimliğini ver; yayın aynı oturumda sürer. Temiz bir çıkış oturumu kapatmış olsa bile oturum yeniden açılır. Yalnızca oturum başlatmak ücretlendirilir, yani devam etmek bedavadır.

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

Ekip çalışma alanları

Oturum, API anahtarının varsayılan çalışma alanına kaydedilir. Başka birini --ximilar-workspace ile belirt; orada kaydedilmiş bir oturuma devam ederken de aynı kimliği ver.

$ cardstream-web --ximilar-stream NEW \
    --ximilar-workspace <workspace-id>
Güvenle işlet

Her farklı kart için tek tanıma çağrısı

Bir tanıma çağrısının gerçekten gerekip gerekmediğine yerel sinyaller karar verir: hareket, algılama, kimlik filtresi. Onu dürüst tutan ayarlar bunlar.

Eşikler

Sonuç eşiği zayıf eşleşmeleri overlay’den uzak tutar; benzerlik eşiği aynı kart mı yeni kart mı, ona karar verir; forget-after ise kart yeterince uzun süre ortada yoksa belleği temizler.

$ cardstream-web --result-threshold 0.35

Önerilen çalıştırma

ONNX embedding filtresiyle RF-DETR segmentasyonu: paketle gelen varsayılanlar. Ağırlıklar yerindeyse yalın bir cardstream-web tam olarak bunu çalıştırır; açıkça yazmak aynı işlem hattını verir.

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

localhost’ta tut

Yerel uygulamada kimlik doğrulama yoktur ve API anahtarını barındırır. --host varsayılan olarak 127.0.0.1’dir; orada bırak ve portu asla yerel ağa açma.

Başlangıçta “Model not found”

Model ağırlıkları ayrı indirilir, deponun parçası değildir. Kurulum betiği ve Docker imajı onları indirir; deponun yalın bir kopyasında model/segmentation/ ve model/similarity/ içine bırakılmaları gerekir. scripts/build-from-source.sh --models bunu senin yerine yapar.

Gösterdiğin oyunu belirt

Tek oyunluk bir yayında uç noktanın her çağrıda oyunu tahmin etmesine gerek yok. Adını ver, arama o oyuna daralsın: daha hızlı yanıtlar, daha az yanlış baskı. Yanında --alphabet de ver, çünkü oyunu ön bilgi olarak girmek uç noktanın yazı sistemini kendisinin algılamasını durdurur.

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

Gerektiğinde ffmpeg

--listen ve --ffmpeg, sistemdeki ffmpeg ikili dosyasını çağırır. Yalın çekmeler pip’ten ibaret bir kurulumla da çalışır; OBS’ten gönderme düzeni ise çalışmaz.

Derine in

Varsayılanların ötesi

Modelleri değiştir ya da kodu oku: bütün işlem hattı kurulabilir tek bir pakettir.

Kendi ağırlıklarını getir

Algılama ve kimlik filtresi arka uca göre yönlendirilir: model ailesi sınıfı, dosya uzantısı çalışma zamanını seçer. RF-DETR ya da RT-DETRv2, .onnx ya da bir transformers dizini.

Model arka uçları →

Model kataloğu

cardstream’in yükleyebildiği, Ximilar’ın eğittiği ve sürümlerle birlikte Apache-2.0 lisansıyla yayımlanan bütün ağırlıklar: her biri ne yapar, hangi hızda çalışır ve lisansı nedir.

Model kataloğu →

Kısa yanıtlar

Maliyeti ne, makineden ne çıkar, hangi kartları tanır ve onu yeniden kaldıran iki komut.

SSS’yi oku →

README ve sorun kayıtları

README bütün bayrakları kapsar; hatalar ve sorular için doğru yer sorun kayıtlarıdır.

README’yi oku →

Sürümler ve dosyalar

Wheel’ler, sağlama toplamları ve kurulum betiği, her sürüm için bir takım; ayrıca Docker ve kaynak koddan derleme.

İndirme sayfası →