Identifikasi kartu terbaik untuk live streaming. Dibuat untuk break, buka pack, dan jualan live.
cardstream menonton break, sesi buka pack, atau live-mu dan mengidentifikasi setiap kartu koleksi begitu masuk ke frame: nama, set, dan tingkat keyakinan, saat itu juga. Analisis siaran jualan live-mu dengan sistem pelacak kartu. Untuk streamer yang ingin tahu lebih banyak.
Dari Pokémon sampai Magic: The Gathering
Ganti kategori untuk tiap live dan seluruh mesinnya ikut menyesuaikan: deteksi, gerbang, dan panggilan identifikasi semuanya mengarah ke endpoint yang tepat. Setiap hasil cocok datang lengkap dengan nama, set, kode set, nomor kartu, seri, dan tahun.
Game kartu koleksi (TCG)
collectibles/v2/tcg_id Kartu single TCG modern maupun vintage, langsung dari siaran. Endpoint ini membaca ilustrasi, bingkai, dan teks kartu, jadi kartu dikenali dari gambar yang sama dengan yang dilihat penontonmu. Tidak perlu mencari-cari simbol set atau memicingkan mata membaca nomor kartu.
- 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
Kartu olahraga sport_id
Rookie, parallel, insert, dan auto dari semua cabang olahraga besar: bisbol, basket, American football, sepak bola, hoki, dan lainnya. Kartu yang tepat, set yang tepat, tahun yang tepat.
Slab hasil grading slab_id
Membaca label pada case kartu hasil grading. Kartu di dalam slab PSA, BGS, atau CGC dikenali tanpa perlu membongkar slabnya.
Komik comics_id
Sampul dikenali dengan cara yang sama seperti kartu: judul, nomor edisi, dan tahun, dari satu frame yang sudah diam.
Pasang layanan pengenal komersial, atau buatanmu sendiri
Semua yang menentukan perlu atau tidaknya memanggil terjadi sebelum identifikasi itu sendiri: deteksi, gerbang gerakan, dan gerbang kartu-yang-sama semuanya berjalan lokal dan tidak bergantung pada penyedia mana pun. Panggilannya sendiri hanyalah satu langkah yang bisa ditukar: Ximilar sebagai bawaan, layanan identifikasi kartu komersial, atau model yang kamu latih sendiri dan jalankan di perangkatmu sendiri.
Antarmukanya kecil saja: potongan gambar kartu masuk, hasil cocok keluar. Implementasikan IdentifyTarget, dan setiap gerbang, pembatas, dan ambang batas di depannya tetap bekerja persis seperti sebelumnya. Tetap satu potongan gambar per kartu berbeda, siapa pun yang menjawabnya.
# pengenalmu sendiri, mesin yang sama class HouseIdentifier(IdentifyTarget): def identify(self, crop_bgr): return my_service.match(crop_bgr) # tetap satu potongan gambar per kartu berbeda $ cardstream-web --detector rfdetr
Satu panggilan per kartu, bukan per frame
Intinya: analisis siaran cukup memakai panggilan yang memang memberi tahu sesuatu yang baru. Alternatif open source untuk SaaS pengenalan kartu yang tertutup: tanpa platform di tengah, tanpa lisensi per pengguna. Perangkatmu, kunci API-mu, dan sebuah state machine yang hanya memanggil keluar ketika kartu di frame benar-benar baru.
Pipeline naif yang memproses tiap frame pada 15 fps menembakkan 54.000 identifikasi per jam. cardstream menembakkan satu untuk tiap kartu berbeda yang kamu tunjukkan: sekitar seratus dalam jam yang sama.
Jam yang sama, video yang sama, kartu yang sama: 54.000 panggilan berbanding kira-kira 100. Gerbang gerakan dan gerbang identitas berjalan lokal di perangkatmu sendiri. Panggilan baru keluar ketika kartu yang benar-benar baru sudah diam di frame.
Tanpa langganan SaaS, tanpa harga per pengguna, tanpa lock-in. Host sendiri seluruh sistemnya beserta identifikasinya, atau hubungkan ke API Ximilar.
Semua yang dibutuhkan sebuah live kartu
Rekan siaran yang tidak pernah melewatkan satu kartu pun: untuk penjual live di platform seperti Whatnot dan Fanatics Live, box break, siaran toko kartu, dan pendataan koleksi. Di mana pun ada kamera dan kartu.
Dikenali begitu masuk ke frame
Tanpa tombol pindai. Tanpa menunggu. Cukup tunjukkan kartunya: nama, set, dan tingkat keyakinan muncul dalam kira-kira setengah detik, langsung di siaran.
Satu panggilan per kartu
Gerbang gerakan dan gerbang identitas berbasis embedding berjalan lokal di CPU-mu sendiri. Kartu dipegang diam: nol panggilan ulang. Kartu diganti: tepat satu panggilan baru.
Sumber siaran apa pun
Webcam, file video, RTSP, RTMP, dan SRT, baik ditarik maupun dikirim langsung dari OBS dengan --listen. Feed JPEG lewat WebSocket untuk perangkat rakitan sendiri.
Backend identifikasi apa pun
Ximilar collectibles/v2 sebagai bawaan. Atau arahkan mesin yang sama ke layanan pengenal kartu komersial, atau ke model yang kamu latih dan jalankan sendiri.
Bawa modelmu sendiri
Bobot model pencari kartu berasal dari kami: model segmentasi RF-DETR hasil finetune, berlisensi Apache-2.0, diunduh oleh installer. Detektor kotak pembatas (RF-DETR, RT-DETRv2) juga didukung kalau kamu lebih suka membawa hasil ekspormu sendiri.
Open source, di-host sendiri
Satu paket Python dengan lisensi permisif. Baca, fork, jalankan di perangkatmu sendiri. Kuncimu, datamu, infrastrukturmu.
Cukup pintar untuk tahu kapan tidak perlu memanggil API
Sebuah state machine berdiri di antara siaranmu dan API. Setiap frame melewati DecisionCore, satu state machine yang berjalan lokal, dan tiga gerbang lokal memutuskan kapan satu-satunya langkah API itu memang diperlukan.
Deteksi
lokal · tanpa APIMenemukan segi empat kartu dan meluruskannya menjadi potongan gambar yang bersih. Frekuensinya dibatasi dalam tiga tingkat oleh gerbang gerakan lokal: bergerak, diam dengan kartu, kosong.
Gerbang gerakan
lokal · tanpa APISelisih rata-rata antar-frame yang murah dihitung. Baru setelah adegan diam selama N frame, kartunya layak diperiksa lebih dekat. Masih bergerak? Tunggu.
Gerbang identitas
lokal · tanpa APIPerbandingan embedding menjawab satu pertanyaan: apakah ini kartu yang sama dengan sebelumnya? Kartu yang sama → hasil dari cache ditampilkan lagi.
Identifikasi
ximilar · 1 panggilanHanya kartu yang benar-benar baru dan sudah diam yang memicu identifikasi Ximilar: asinkron, dengan debounce, di luar loop frame. Hasilnya langsung dikirim balik.
Kamu streamer perorangan?
Satu orang, satu kamera, satu malam panjang penuh break: kamu seharusnya tidak butuh tim engineer hanya untuk tahu kartu apa yang ada di layar. Hubungkan siaran yang sudah kamu jalankan dan biarkan cardstream menganalisisnya saat itu juga, entah kamu berjualan di marketplace atau langsung dari kanalmu sendiri.
- Whatnot
- Fanatics Live
- eBay Live
- TikTok Shop
- Twitch
- YouTube Live
- situsmu sendiri
Tanpa akses ke akun, tanpa kunci API marketplace, tanpa bot di chat-mu, dan tanpa afiliasi dengan platform mana pun di atas. cardstream membaca video-mu, tidak lebih.
Kamu sudah siaran dari OBS
Tambahkan satu output lagi di samping output yang mengisi live-mu. Pembelimu melihat persis apa yang mereka lihat sebelumnya. Salinan dari feed yang sama masuk ke cardstream, dan setiap kartu yang mendarat di meja dikenali sambil lewat. Listener di bawah ini membutuhkan binary ffmpeg sistem. Atau lewati saja output kedua itu dan biarkan cardstream membaca kamera virtual OBS sebagai webcam biasa.
$ cardstream-web --listen \ --source rtmp://0.0.0.0:1935/live # arahkan target kedua OBS ke sini
Atau kamera yang sudah ada di meja
Kamera dari atas, capture card, ponsel sebagai webcam: apa pun yang kamu pakai untuk buka pack dan menunjukkan kartu. Analisis berjalan di komputer di sebelah kamera, jadi secara bawaan tidak ada yang keluar dari ruangan selain satu potongan gambar per kartu.
$ cardstream-web --source 0 # webcam · antarmuka browser di localhost
Atau apa pun yang punya URL
Encoder, switcher, restreamer, studio kedua di seberang kota. Tarikan RTSP, RTMP, dan SRT, plus feed JPEG lewat WebSocket kalau perangkatmu rakitan sendiri.
$ cardstream-web \
--source rtsp://studio/stream1 Overlay live
Nama, set, dan tingkat keyakinan muncul begitu kartu diam: siap dibacakan, atau digabungkan kembali ke adeganmu.
Setiap kartu, tercatat
Riwayat berjalan dari semua yang kamu tunjukkan: thumbnail tiap kartu dan berapa lama kartu itu tampil di siaran. Simpan ke akun Ximilar-mu dan tinjau live-nya esok pagi: apa yang terjual, berapa nilainya.
Pas untuk satu orang
Tanpa biaya platform, tanpa lisensi per pengguna. Live tiga jam hanya segelintir panggilan identifikasi, bukan satu per frame.
Langkah demi langkah: hubungkan live Whatnot atau Fanatics Live →
Live-mu, tersimpan dan siap ditinjau
cardstream berjalan di komputermu dan secara bawaan tidak menyimpan apa pun. Tambahkan satu flag, dan setiap kartu yang kamu tunjukkan juga tersimpan ke sebuah sesi di akun Ximilar-mu, lengkap dengan harganya, lamanya tampil di layar, dan potongan gambar yang dipakai untuk mengidentifikasinya. Buka aplikasi Ximilar setelah live selesai dan lihat berapa nilainya.
$ cardstream-web --price-stats \ --ximilar-stream NEW # mencetak id sesi, menyimpan selama live berjalan
Live-mu dalam angka
Produk yang ditunjukkan, panggilan API berbayar, nilai pasar, dan rata-rata waktu tampil di layar untuk setiap sesi, berdampingan dengan produk paling bernilai dan set yang paling sering muncul.
Setiap kartu, dengan gambarnya
Tiap baris menyimpan kartu, set, nomor, harga, dan potongan gambar yang dipakai untuk mengidentifikasinya. Cari di daftar berdasarkan produk atau set, dan saring sesimu berdasarkan status, platform, dan tanggal.
Jadikan catatanmu sendiri
Tandai yang terjual, tambahkan catatan, perbaiki hasil cocok yang keliru atau harganya, hapus yang salah deteksi. Beri nama sesinya dan lampirkan metadatamu sendiri: nomor lot, biaya, pembeli.
Lanjutkan dari titik terakhir
Harus restart di tengah live? Berikan id sesi sebagai pengganti NEW dan live berlanjut di sesi yang sama, bahkan setelah sesinya ditutup. --ximilar-workspace menyimpannya ke workspace tim.
Nonaktif secara bawaan: tanpa --ximilar-stream, panggilan identifikasi adalah satu-satunya hal yang keluar dari komputermu. Penyimpanan memerlukan layanan Cardstream di akun Ximilar-mu. Yang ditagih hanya saat memulai sesi, dan dengan --no-ximilar-stream-images yang disimpan cukup teksnya saja.
Dari nol sampai identifikasi live dalam 3 langkah
Instal
Sebuah virtualenv, wheel rilis (checksum-nya diverifikasi), bobot model, dan kedua perintah di PATH-mu. Pakai skripnya, instal wheel yang sama dari PyPI dengan pip (bobotnya diunduh terpisah), atau clone reponya dan build sendiri. Docker dan Windows ada di halaman unduh.
$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh # cara instalasi lain → cardstream.ai/download
$ pip install 'cardstream[client,onnx]' # atau: uv tool install 'cardstream[client,onnx]' # wheel ini tidak berisi bobot: ekstrak dua tarball dari cardstream.ai/models # lalu arahkan flag-nya ke sana: $ 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
Hubungkan sistem identifikasi
Ximilar collectibles/v2 sebagai bawaan: kunci dari ximilar.com adalah satu-satunya kredensial yang dibutuhkan seluruh sistem. Atau arahkan langkah yang sama ke pengenalmu sendiri.
$ export XIMILAR_API_KEY=your-key
Arahkan kamera ke kartu
Buka antarmuka browser dengan webcam-mu, atau beri ia siaran live-mu: tarik lewat RTSP, atau biarkan OBS mengirim RTMP langsung ke sana. Break satu set semalaman? Isi lebih dulu dan endpoint berhenti menebak: Pokémon berbahasa Inggris dari CRI berarti tiga hal lebih sedikit yang bisa keliru. Setel --alphabet setiap kali kamu menyetel --game, karena mengisi game lebih dulu mematikan deteksi sistem tulisan milik endpoint. Tambahkan --price-stats dan setiap hasil cocok juga membawa harga pasar dalam USD: median, rentang, dan penjualan terakhir, di kartu dan di riwayat. Tambahkan --ximilar-stream NEW untuk menyimpan live-mu ke akun Ximilar dan meninjaunya nanti.
$ cardstream-web # → http://127.0.0.1:8001 — angkat sebuah kartu # kartu Pokémon berbahasa Inggris, satu set (CRI - Chaos Rising), dengan harga pasar USD: $ cardstream-web --game Pokemon --set-code CRI --alphabet latin --price-stats
Open source. Di-host sendiri. Siaranmu, perangkatmu.
Tanpa platform di tengah, tanpa lisensi per pengguna: hubungkan API Ximilar atau sistem identifikasimu sendiri, dan cardstream memanggilnya satu kali per kartu berbeda, bukan satu kali per frame. Entah kamu melakukan break di Whatnot, mengadakan live ala Fanatics Live, atau menyiarkan jualan live dengan caramu sendiri, jalankan cardstream malam ini di perangkat yang sudah kamu punya.