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.
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 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.
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.
Çizgi romanlar comics_id
Kapaklar da kartlar gibi tanınır: başlık, sayı ve yıl, sabitlenmiş tek bir kareden.
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
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.
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.
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.
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.
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.
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.
Algıla
yerel · çağrı yokKartı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ş.
Hareket filtresi
yerel · çağrı yokUcuz bir ortalama kare farkı. Kart ancak sahne N kare boyunca sabit kaldığında yakından bakmaya değer. Hâlâ hareket mi var? Bekle.
Kimlik filtresi
yerel · çağrı yokBir embedding karşılaştırması tek bir soruyu yanıtlar: bu, öncekiyle aynı kart mı? Aynı kart → önbellekteki sonuç yeniden gönderilir.
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.
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.
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
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ü
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.
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
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.
Sıfırdan canlı tanımaya 3 adımda
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
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
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.