cardstream
Açık kaynak Ximilar altyapısıyla Beta sürüm

Canlı yayınlar için en iyi kart tanıma. Kutu açılımları, paket açılımları ve canlı satışlar için.

cardstream kutu açılımını, paket açılımını ya da satış yayınını izler ve her koleksiyon kartını kareye girdiği anda tanır: ad, set ve güven skoru, canlı olarak. Kart takip sistemiyle canlı alışveriş yayınlarını analiz et. Daha fazlasını bilmek isteyen yayıncılar için.

Neleri tanır

Pokémon’dan Magic: The Gathering’e

Kategoriyi her yayında değiştirebilirsin, bütün motor ona uyar: algılama, filtreler ve tanıma çağrısı doğru uç noktaya yönelir. Her eşleşme ad, set, set kodu, kart numarası, seri ve yıl bilgisiyle döner.

🃏

Koleksiyon kart oyunları

collectibles/v2/tcg_id
Ximilar Hazır

Yeni ve vintage TCG single kartları, doğrudan yayından. Uç nokta kartın görselini, çerçevesini ve metnini okur; kart, izleyicilerinin baktığı görüntünün aynısından tanınır. Set sembolü aramak da, kart numarasını seçmeye çalışmak da gerekmez.

  • 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
🏅

Spor kartları sport_id

Bütün büyük spor dallarında rookie, parallel, insert ve imzalı kartlar: beyzbol, basketbol, Amerikan futbolu, futbol, hokey ve daha fazlası. Tam olarak o kart, o set, o yıl.

Yakında
🧊

Derecelendirilmiş slab’ler slab_id

Derecelendirilmiş kartın kutusundaki etiketi okur: PSA, BGS ya da CGC slab’inin içindeki kart, slab kırılmadan tanınır.

Yakında
📚

Çizgi romanlar comics_id

Kapaklar da kartlar gibi tanınır: başlık, sayı ve yıl, sabitlenmiş tek bir kareden.

Yakında
Tek bir sağlayıcıya bağlı değilsin

Ticari bir tanıma servisi bağla ya da kendininkini kullan

Çağrı yapılıp yapılmayacağına karar veren her şey tanımanın kendisinden önce olur: algılama, hareket filtresi ve aynı kart filtresi yereldir ve sağlayıcıdan bağımsızdır. Çağrının kendisi değiştirilebilir tek bir adımdır: kutudan çıktığı hâliyle Ximilar, ticari bir kart tanıma servisi ya da kendi eğittiğin ve kendi donanımında barındırdığın bir model.

Küçük, tek bir arayüz: bir kart kırpması girer, bir eşleşme çıkar. IdentifyTarget arayüzünü uygula; önündeki bütün filtreler, seyreltmeler ve eşikler eskisi gibi çalışmaya devam eder. Yanıtı kim verirse versin, her farklı kart için yine tek kırpma gider.

# kendi tanıma servisin, aynı motor
class HouseIdentifier(IdentifyTarget):
    def identify(self, crop_bgr):
        return my_service.match(crop_bgr)

# her iki durumda da farklı kart başına tek kırpma
$ cardstream-web --detector rfdetr
Neden cardstream.ai?

Kare başına değil, kart başına tek çağrı

Amaç, yayın analizini sana gerçekten yeni bir şey söyleyen çağrılarla sınırlamak. Kapalı kart tanıma SaaS’larının açık kaynak alternatifi: arada platform yok, kullanıcı başı lisans yok. Donanım senin, API anahtarı senin; durum makinesi de yalnızca karedeki kart gerçekten yeniyse çağrı yapar.

54.000 → ~100
saatlik API çağrısı

Her kareyi gönderen basit bir işlem hattı 15 fps’de saatte 54.000 tanıma çağrısı yapar. cardstream ise gösterdiğin her farklı kart için bir tane yapar: aynı saatte yüz kadar.

540×
daha az tanıma çağrısı

Aynı saat, aynı video, aynı kartlar: 54.000 çağrıya karşı yaklaşık 100. Hareket ve kimlik filtreleri yerel olarak, kendi donanımında çalışır; çağrı ancak gerçekten yeni bir kart karede sabitlendiğinde gider.

0 $
platform ücreti

SaaS aboneliği yok, kullanıcı başı fiyat yok, tek sağlayıcıya bağımlılık yok. Bütün yapıyı tanımayla birlikte kendin barındır ya da Ximilar API’ye bağlan.

Özellikler

Bir kart yayınının ihtiyaç duyduğu her şey

Hiçbir kartı kaçırmayan bir yayın ortağı: Whatnot ve Fanatics Live tarzı platformlardaki canlı ticaret satıcıları, kutu açılımları, kart dükkânı yayınları ve koleksiyon kataloglama için. Kameranın karta baktığı her yerde.

⚡

Kareye girdiği anda tanınır

Tarama düğmesi yok. Beklemek yok. Kartı göstermen yeter: ad, set ve güven skoru yaklaşık yarım saniyede, yayında canlı olarak belirir.

🎯

Kart başına tek çağrı

Hareket filtresi ve embedding tabanlı kimlik filtresi yerel olarak, kendi işlemcinde çalışır. Kartı sabit tut: tekrar çağrı yok. Kartı değiştir: tam olarak bir yeni çağrı.

📡

Her yayın kaynağı

Web kamerası, video dosyaları, RTSP, RTMP ve SRT: çekilerek ya da --listen ile doğrudan OBS’ten gönderilerek. Özel düzenekler için WebSocket JPEG akışları.

🔌

Her tanıma arka ucu

Kutudan çıktığı hâliyle Ximilar collectibles/v2. İstersen aynı motoru ticari bir kart tanıma servisine ya da kendi eğitip barındırdığın bir modele yönlendir.

🧠

Kendi modellerini getir

Konumlayıcı ağırlıkları bizden: ince ayarlı bir RF-DETR segmentasyon modeli, Apache-2.0 lisanslı, kurulum betiği indirir. Kendi dışa aktarımını getirmek istersen sınırlayıcı kutu dedektörleri de (RF-DETR, RT-DETRv2) destekleniyor.

🔓

Açık kaynak, kendi makinende

Serbest lisanslı tek bir Python paketi. Oku, çatalla, kendi donanımında çalıştır. Anahtar da, veri de, altyapı da senin.

Nasıl çalışır

API’yi ne zaman çağırmaması gerektiğini bilecek kadar akıllı

Yayınınla API arasında bir durum makinesi durur. Her kare, yerel olarak çalışan tek bir durum makinesinden, DecisionCore içinden geçer; tek API adımının gerçekten gerekip gerekmediğine üç yerel filtre karar verir.

1

Algıla

yerel · çağrı yok

Kartın dörtgenini bulur ve eğikliği düzeltilmiş temiz bir kırpma çıkarır. Yerel hareket filtresi bunu üç kademede seyreltir: hareket var, kart sabit, masa boş.

2

Hareket filtresi

yerel · çağrı yok

Ucuz bir ortalama kare farkı. Kart ancak sahne N kare boyunca sabit kaldığında yakından bakmaya değer. Hâlâ hareket mi var? Bekle.

3

Kimlik filtresi

yerel · çağrı yok

Bir embedding karşılaştırması tek bir soruyu yanıtlar: bu, öncekiyle aynı kart mı? Aynı kart → önbellekteki sonuç yeniden gönderilir.

4

Tanı

ximilar · 1 çağrı

Ximilar tanımasını yalnızca gerçekten yeni ve sabitlenmiş bir kart tetikler: eşzamansız, art arda tetiklemeler bastırılmış, kare döngüsünün dışında. Sonuç canlı olarak geri gönderilir.

Yayıncılar, kutu açanlar ve dükkânlar için

Tek başına mı yayın yapıyorsun?

Tek kişi, tek kamera, kutu açılımlarıyla geçen uzun bir gece: ekranda hangi kartın olduğunu bilmek için bir mühendis ekibine ihtiyacın olmamalı. Zaten yaptığın yayını bağla, cardstream onu canlı analiz etsin; ister bir pazar yerinde sat, ister doğrudan kendi kanalında.

  • Whatnot
  • Fanatics Live
  • eBay Live
  • TikTok Shop
  • Twitch
  • YouTube Live
  • kendi siten

Hesap erişimi yok, pazar yeri API anahtarı yok, sohbetinde bot yok; bu platformların hiçbiriyle bir bağlantı da yok. cardstream videonu okur, başka hiçbir şeyi değil.

01

Zaten OBS’ten yayın yapıyorsun

Yayınını besleyen çıkışın yanına bir çıkış daha ekle. Alıcıların tam olarak önceden gördüklerini görür; aynı akışın bir kopyası cardstream’e ulaşır ve masaya gelen her kart geçerken tanınır. Aşağıdaki dinleyici, sistemdeki ffmpeg ikili dosyasına ihtiyaç duyar. İstersen ikinci çıkışı hiç kurma; cardstream, OBS sanal kamerasını sıradan bir web kamerası gibi okusun.

$ cardstream-web --listen \
      --source rtmp://0.0.0.0:1935/live
# OBS’in ikinci hedefini buraya yönlendir
02

Ya da zaten masada duran kamera

Tepe kamerası, yakalama kartı, web kamerası olarak telefon: paketleri altında açıp kartları gösterdiğin ne varsa. Analiz kameranın yanındaki makinede çalışır; yani varsayılan olarak odadan, kart başına tek bir kırpma dışında hiçbir şey çıkmaz.

$ cardstream-web --source 0
# web kamerası · localhost’ta tarayıcı arayüzü
03

Ya da URL’si olan herhangi bir şey

Encoder’lar, görüntü mikserleri, yeniden yayın servisleri, şehrin öbür ucundaki ikinci bir stüdyo. RTSP, RTMP ve SRT çekilir; düzeneğin el yapımıysa WebSocket JPEG akışları da var.

$ cardstream-web \
      --source rtsp://studio/stream1

Canlı overlay

Ad, set ve güven skoru kart sabitlendiği anda belirir: sesli okumaya ya da sahnene geri bindirmeye hazır.

Her kart kayıtlı

Gösterdiğin her şeyin akan bir geçmişi: her kartın küçük resmi ve yayında kaldığı süre. Ximilar hesabına kaydet, yayını ertesi sabah incele: ne satıldı, ne kadar ediyordu.

Tek kişiye göre

Platform ücreti yok, kullanıcı başı lisans yok. Üç saatlik bir yayın, kare başına bir çağrı değil, bir avuç tanıma çağrısı demek.

Cardstream Cloud

Yayının kaydedildi, incelemeye hazır

cardstream senin makinende çalışır ve varsayılan olarak hiçbir şey saklamaz. Tek bir bayrak ekle; gösterdiğin her kart fiyatı, ekranda kaldığı süre ve tanındığı kırpmayla birlikte Ximilar hesabındaki bir oturuma da kaydedilsin. Yayından sonra Ximilar uygulamasını aç ve yayının ne kadar ettiğini gör.

$ cardstream-web --price-stats \
    --ximilar-stream NEW
# oturum kimliğini yazdırır, yayın sürerken kaydeder
Ximilar uygulamasında kaydedilmiş bir oturum: gösterilen ürünler, ücretli API çağrıları, piyasa değeri, ekranda kalma süresinin ortalaması, en değerli ürünler ve en sık görülen setler.

Rakamlarla yayın

Her oturum için gösterilen ürünler, ücretli API çağrıları, piyasa değeri ve ekranda kalma süresinin ortalaması; yanında en değerli ürünler ve en sık görülen setler.

Her kart, görseliyle

Her satırda kart, set, numara, fiyat ve kartın tanındığı kırpma durur. Listede ürüne ya da sete göre ara; oturumlarını duruma, platforma ve tarihe göre filtrele.

Kendi kaydın hâline getir

Satılanı işaretle, not ekle, yanlış bir eşleşmeyi ya da fiyatını düzelt, hatalı olanı sil. Oturuma ad ver ve kendi verilerini ekle: lot numarası, maliyetler, alıcılar.

Kaldığın yerden devam et

Yayının ortasında yeniden mi başlattın? NEW yerine oturum kimliğini ver; yayın, kapatılmış olsa bile aynı oturumda sürer. --ximilar-workspace oturumu bir ekip çalışma alanına kaydeder.

Varsayılan olarak kapalıdır: --ximilar-stream olmadan makinenden çıkan tek şey tanıma çağrısıdır. Kaydetmek için Ximilar hesabında Cardstream hizmeti gerekir; yalnızca oturum başlatmak ücretlendirilir, --no-ximilar-stream-images ise kaydı metinle sınırlar.

Hızlı başlangıç

Sıfırdan canlı tanımaya 3 adımda

1

Kur

Bir sanal ortam, sağlama toplamı doğrulanmış sürüm wheel’i, model ağırlıkları ve PATH’ine eklenmiş iki komut. Betiği kullan, aynı wheel’i PyPI üzerinden pip ile kur (ağırlıklar ayrı indirilir) ya da depoyu klonlayıp kendin derle. Docker ve Windows indirme sayfasında.

$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh
# diğer kurulum yolları → cardstream.ai/download
$ pip install 'cardstream[client,onnx]'   # ya da: uv tool install 'cardstream[client,onnx]'
# wheel’de ağırlık yok: cardstream.ai/models adresindeki iki tarball’ı aç
# ve bayrakları onlara yönlendir:
$ 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
2

Bir tanıma sistemi bağla

Kutudan çıktığı hâliyle Ximilar collectibles/v2: ximilar.com’dan alacağın bir anahtar, bütün sistemin ihtiyaç duyduğu tek kimlik bilgisidir. İstersen aynı adımı kendi tanıma servisine yönlendir.

$ export XIMILAR_API_KEY=your-key
3

Kamerayı bir karta tut

Tarayıcı arayüzünü web kameranla aç ya da yayınını ver: RTSP ile çek ya da OBS, RTMP’yi doğrudan içine göndersin. Bütün gece tek bir set mi açıyorsun? Ön bilgi olarak gir, uç nokta tahmin etmeyi bıraksın: CRI setinden İngilizce Pokémon demek, yanlış gidebilecek üç şeyin eksilmesi demek. --game verdiğin her seferde --alphabet de ver; oyunu ön bilgi olarak girmek, uç noktanın kendi yazı sistemi algılamasını kapatır. --price-stats eklersen her eşleşme USD piyasa fiyatlarını da getirir: medyan, aralık ve son satış; hem kartın üzerinde hem geçmişte. Yayını Ximilar hesabına kaydedip sonradan incelemek için --ximilar-stream NEW ekle.

$ cardstream-web
# → http://127.0.0.1:8001 — bir kart göster

# İngilizce Pokémon kartları, tek set (CRI - Chaos Rising), USD piyasa fiyatlarıyla:
$ cardstream-web --game Pokemon --set-code CRI --alphabet latin --price-stats

Açık kaynak. Kendi makinende. Yayın da senin, altyapı da.

Arada platform yok, kullanıcı başı lisans yok: Ximilar API’yi ya da kendi tanıma sistemini bağla; cardstream onu her kare için değil, her farklı kart için bir kez çağırsın. İster Whatnot’ta kutu aç, ister Fanatics Live tarzı bir yayın yap, ister kendi canlı ticaret düzeninden yayınla; cardstream’i bu akşam, elindeki donanımda çalıştır.