cardstream
Sumber terbuka Dikuasakan oleh Ximilar Versi beta

Pengecaman kad terbaik untuk strim langsung. Dibina untuk break, buka pek dan sesi live.

cardstream memerhati break, sesi buka pek atau sesi live anda dan mengecam setiap kad dagangan sebaik sahaja ia masuk ke dalam bingkai: nama, set dan tahap keyakinan, secara langsung. Analisis strim jualan live anda dengan sistem penjejakan kad. Untuk streamer yang mahu tahu lebih banyak.

Apa yang dicam

Daripada Pokémon hingga Magic: The Gathering

Tukar kategori bagi setiap sesi live dan seluruh enjin akan mengikutinya: pengesanan, penapis dan panggilan pengecaman semuanya menghala ke endpoint yang betul. Setiap padanan dikembalikan dengan nama, set, kod set, nombor kad, siri dan tahun.

🃏

Permainan kad dagangan

collectibles/v2/tcg_id
Ximilar Sedia

Single TCG moden dan vintaj, terus daripada strim. Endpoint ini membaca ilustrasi, bingkai dan teks pada kad, jadi kad dicam daripada gambar yang sama yang sedang ditonton oleh penonton anda. Tidak perlu mencari simbol set atau mengecilkan mata untuk membaca nombor kad.

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

Kad sukan sport_id

Kad rookie, parallel, insert dan autograf daripada setiap sukan utama, termasuk besbol, bola keranjang, bola sepak Amerika, bola sepak, hoki dan banyak lagi. Kad yang tepat, set yang tepat, tahun yang tepat.

Akan datang
🧊

Slab bergred slab_id

Membaca label pada bekas kad bergred dan mengecam kad di dalam slab PSA, BGS atau CGC tanpa perlu membukanya.

Akan datang
📚

Komik comics_id

Kulit komik dicam dengan cara yang sama seperti kad: judul, nombor keluaran dan tahun, daripada satu bingkai yang sudah pegun.

Akan datang
Tidak terikat pada satu pembekal

Sambungkan pengecam proprietari, atau pengecam anda sendiri

Semua yang menentukan sama ada panggilan perlu dibuat berlaku sebelum pengecaman itu sendiri: pengesanan, penapis gerakan dan penapis kad yang sama semuanya berjalan secara setempat dan tidak bergantung pada mana-mana pembekal. Panggilan itu sendiri hanyalah satu langkah yang boleh ditukar ganti: Ximilar secara lalai, perkhidmatan pengecaman kad proprietari, atau model yang anda latih sendiri dan hoskan pada perkakasan anda sendiri.

Ia hanyalah satu antara muka kecil: keratan kad masuk, padanan keluar. Laksanakan IdentifyTarget dan setiap penapis, pendikit dan ambang di hadapannya terus berfungsi sama seperti sebelumnya. Tetap satu keratan bagi setiap kad yang berbeza, tidak kira siapa yang menjawabnya.

# pengecam anda sendiri, enjin yang sama
class HouseIdentifier(IdentifyTarget):
    def identify(self, crop_bgr):
        return my_service.match(crop_bgr)

# satu keratan bagi setiap kad yang berbeza, dengan apa cara sekalipun
$ cardstream-web --detector rfdetr
Kenapa cardstream.ai?

Satu panggilan bagi setiap kad, bukan bagi setiap bingkai

Tujuannya adalah untuk mengehadkan analisis strim kepada panggilan yang benar-benar memberitahu anda sesuatu yang baharu. Alternatif sumber terbuka kepada SaaS pengecaman kad tertutup: tiada platform di tengah, tiada lesen bagi setiap pengguna. Perkakasan anda, kunci API anda, dan sebuah mesin keadaan yang hanya membuat panggilan apabila kad dalam bingkai itu benar-benar baharu.

54,000 → ~100
panggilan API sejam

Saluran pemprosesan naif yang memproses setiap bingkai pada 15 fps membuat 54,000 pengecaman sejam. cardstream membuat satu bagi setiap kad berbeza yang anda tunjukkan, iaitu kira-kira seratus dalam tempoh sejam yang sama.

540×
kurang panggilan pengecaman

Sejam yang sama, video yang sama, kad yang sama: 54,000 panggilan berbanding kira-kira 100. Penapis gerakan dan identiti berjalan secara setempat pada perkakasan anda sendiri. Panggilan hanya dibuat apabila kad yang benar-benar baharu sudah pegun dalam bingkai.

$0
yuran platform

Tiada langganan SaaS, tiada harga bagi setiap pengguna, tiada keterikatan. Hoskan sendiri keseluruhan sistem bersama pengecamannya, atau sambungkan ke API Ximilar.

Ciri

Semua yang diperlukan oleh sesi live kad

Rakan hos yang tidak pernah terlepas satu kad pun, untuk penjual live di platform seperti Whatnot dan Fanatics Live, break kotak, strim kedai kad dan pengkatalogan koleksi. Di mana sahaja ada kamera dan kad.

⚡

Dicam sebaik sahaja masuk ke bingkai

Tiada butang imbas. Tiada menunggu. Tunjukkan sahaja kad itu: nama, set dan tahap keyakinan muncul dalam kira-kira setengah saat, secara langsung dalam strim.

🎯

Satu panggilan bagi setiap kad

Penapis gerakan dan penapis identiti berasaskan embedding berjalan secara setempat pada CPU anda sendiri. Pegang kad tanpa bergerak: sifar panggilan berulang. Tukar kad: tepat satu panggilan baharu.

📡

Apa-apa sumber strim

Kamera web, fail video, RTSP, RTMP dan SRT, sama ada ditarik atau ditolak terus dari OBS dengan --listen. Suapan JPEG melalui WebSocket untuk set-up buatan sendiri.

🔌

Apa-apa sistem pengecaman

Ximilar collectibles/v2 secara lalai, atau halakan enjin yang sama ke pengecam kad proprietari, atau pengecam yang anda latih dan hoskan sendiri.

🧠

Gunakan model anda sendiri

Pemberat pencari kad ialah milik kami: model segmentasi RF-DETR yang ditala halus, berlesen Apache-2.0 dan dimuat turun oleh pemasang. Pengesan kotak sempadan (RF-DETR, RT-DETRv2) juga disokong jika anda lebih suka menggunakan eksport anda sendiri.

🔓

Sumber terbuka, dihoskan sendiri

Satu pakej Python dengan lesen yang longgar. Baca, fork dan jalankan pada perkakasan anda sendiri. Kunci anda, data anda, infrastruktur anda.

Cara ia berfungsi

Cukup bijak untuk tahu bila tidak perlu memanggil API

Sebuah mesin keadaan berdiri di antara strim anda dan API. Setiap bingkai melalui DecisionCore, satu mesin keadaan yang berjalan secara setempat, dan tiga penapis setempat menentukan bila satu-satunya langkah API itu benar-benar wajar.

1

Pengesanan

setempat · tiada API

Mencari empat sisi kad dan meluruskan keratan yang bersih. Didikit dalam tiga peringkat oleh penapis gerakan setempat: bergerak, pegun dengan kad, kosong.

2

Penapis gerakan

setempat · tiada API

Purata beza antara bingkai, yang murah untuk dikira. Hanya apabila adegan sudah pegun selama N bingkai, kad itu berbaloi diteliti. Masih bergerak? Tunggu.

3

Penapis identiti

setempat · tiada API

Perbandingan embedding menjawab satu soalan: adakah ini kad yang sama seperti tadi? Kad yang sama → hasil dalam cache dihantar semula.

4

Pengecaman

ximilar · 1 panggilan

Hanya kad yang benar-benar baharu dan sudah pegun mencetuskan pengecaman Ximilar: secara tak segerak, tanpa cetusan berulang, di luar gelung bingkai. Hasilnya dihantar semula secara langsung.

Untuk streamer, penganjur break dan kedai kad

Anda streamer yang bergerak solo?

Seorang diri, satu kamera, satu malam panjang penuh dengan break. Anda tidak sepatutnya memerlukan satu pasukan jurutera untuk tahu kad apa yang ada di skrin. Sambungkan strim yang sudah anda jalankan dan biarkan cardstream menganalisisnya secara langsung, sama ada anda menjual di platform jualan atau terus melalui saluran anda sendiri.

  • Whatnot
  • Fanatics Live
  • eBay Live
  • TikTok Shop
  • Twitch
  • YouTube Live
  • laman anda sendiri

Tiada akses kepada akaun, tiada kunci API platform jualan, tiada bot dalam ruang sembang anda, dan tiada sebarang gabungan dengan mana-mana platform ini. cardstream membaca video anda, itu sahaja.

01

Anda sudah pun strim dari OBS

Tambah satu lagi output di sebelah output yang menyuap sesi live anda. Pembeli anda melihat betul-betul apa yang mereka lihat sebelum ini; salinan suapan yang sama sampai ke cardstream, dan setiap kad yang diletakkan di atas meja dicam semasa ia lalu. Pendengar di bawah memerlukan binari ffmpeg sistem. Atau langkau output kedua sepenuhnya dan biarkan cardstream membaca kamera maya OBS sebagai kamera web biasa.

$ cardstream-web --listen \
      --source rtmp://0.0.0.0:1935/live
# halakan sasaran kedua OBS ke sini
02

Atau kamera yang sudah ada di atas meja

Kamera yang merakam dari atas, kad tangkapan, telefon sebagai kamera web: apa sahaja yang anda gunakan untuk buka pek dan mendedahkan kad. Analisis berjalan pada mesin di sebelah kamera, jadi secara lalai tiada apa yang keluar dari bilik itu kecuali satu keratan bagi setiap kad.

$ cardstream-web --source 0
# kamera web · UI pelayar di localhost
03

Atau apa sahaja yang mempunyai URL

Pengekod, pensuis, perkhidmatan strim semula, studio kedua di hujung bandar. Tarikan RTSP, RTMP dan SRT, serta suapan JPEG melalui WebSocket apabila set-up anda buatan sendiri.

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

Overlay langsung

Nama, set dan tahap keyakinan muncul sebaik sahaja kad pegun, sedia untuk dibacakan atau digabungkan semula ke dalam adegan anda.

Setiap kad, direkodkan

Sejarah berterusan bagi semua yang anda tunjukkan: gambar kecil setiap kad dan berapa lama ia berada dalam strim. Simpan ke akaun Ximilar anda dan semak sesi live itu keesokan paginya: apa yang terjual dan berapa nilainya.

Sesuai untuk seorang

Tiada yuran platform, tiada lesen bagi setiap pengguna. Sesi live tiga jam hanyalah segelintir panggilan pengecaman, bukan satu bagi setiap bingkai.

Cardstream Cloud

Sesi live anda, disimpan dan sedia untuk disemak

cardstream berjalan pada mesin anda dan secara lalai tidak menyimpan apa-apa. Tambah satu bendera dan setiap kad yang anda tunjukkan turut disimpan ke satu sesi dalam akaun Ximilar anda, bersama harganya, tempoh ia di skrin dan keratan yang digunakan untuk mengecamnya. Buka aplikasi Ximilar selepas sesi live dan lihat berapa nilainya.

$ cardstream-web --price-stats \
    --ximilar-stream NEW
# mencetak ID sesi, menyimpan sepanjang sesi live berjalan
Satu sesi yang disimpan dalam aplikasi Ximilar: produk yang ditunjukkan, panggilan API berbayar, nilai pasaran, purata tempoh di skrin, produk paling bernilai dan set yang paling kerap muncul.

Sesi live dalam angka

Produk yang ditunjukkan, panggilan API berbayar, nilai pasaran dan purata tempoh di skrin bagi setiap sesi, dengan produk paling bernilai dan set yang paling kerap muncul di sebelahnya.

Setiap kad, bersama gambarnya

Setiap baris menyimpan kad, set, nombor, harga dan keratan yang digunakan untuk mengecamnya. Cari dalam senarai mengikut produk atau set, dan tapis sesi anda mengikut status, platform dan tarikh.

Jadikan ia rekod anda

Tandakan yang terjual, tambah nota, betulkan padanan atau harga yang salah, padam padanan palsu. Namakan sesi itu dan lampirkan metadata anda sendiri, seperti nombor lot, kos atau pembeli.

Sambung dari tempat anda berhenti

Terpaksa mula semula di tengah sesi live? Berikan ID sesi menggantikan NEW dan sesi live diteruskan dalam sesi yang sama, walaupun sesi itu sudah ditutup. --ximilar-workspace menyimpannya ke dalam ruang kerja pasukan.

Dimatikan secara lalai: tanpa --ximilar-stream, panggilan pengecaman ialah satu-satunya perkara yang keluar dari mesin anda. Penyimpanan memerlukan perkhidmatan Cards Cloud pada akaun Ximilar anda; hanya permulaan sesi yang dicaj, dan --no-ximilar-stream-images mengehadkannya kepada teks sahaja.

Mula pantas

Daripada sifar kepada pengecaman langsung dalam 3 langkah

1

Pasang

Satu virtualenv, wheel keluaran (dengan checksum yang disahkan), pemberat model dan kedua-dua arahan dalam PATH anda. Gunakan skrip, pasang wheel yang sama dari PyPI dengan pip (pemberat dimuat turun secara berasingan), atau klon repositori dan bina sendiri. Docker dan Windows ada di halaman muat turun.

$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh
# cara pemasangan lain → cardstream.ai/download
$ pip install 'cardstream[client,onnx]'   # atau: uv tool install 'cardstream[client,onnx]'
# wheel tidak mengandungi pemberat; nyahmampat dua tarball dari cardstream.ai/models
# dan halakan bendera kepadanya:
$ 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

Sambungkan sistem pengecaman

Ximilar collectibles/v2 secara lalai: kunci dari ximilar.com ialah satu-satunya kelayakan yang diperlukan oleh seluruh sistem. Atau halakan langkah yang sama ke pengecam anda sendiri.

$ export XIMILAR_API_KEY=your-key
3

Halakan kamera ke kad

Buka UI pelayar pada kamera web anda, atau suapkan sesi live anda kepadanya: tarik RTSP, atau biarkan OBS menolak RTMP terus ke dalamnya. Break satu set sepanjang malam? Praisikan set itu dan endpoint berhenti meneka: Pokémon bahasa Inggeris daripada CRI bermaksud tiga perkara yang tidak boleh tersilap lagi. Tetapkan --alphabet setiap kali anda menetapkan --game, kerana praisi permainan mematikan pengesanan sistem tulisan oleh endpoint itu sendiri. Tambah --price-stats dan setiap padanan turut membawa harga pasaran dalam USD: median, julat dan jualan terkini, pada kad dan dalam sejarah. Tambah --ximilar-stream NEW untuk menyimpan sesi live ke akaun Ximilar anda dan menyemaknya kemudian.

$ cardstream-web
# → http://127.0.0.1:8001 — tunjukkan sekeping kad

# Kad Pokémon bahasa Inggeris, satu set (CRI - Chaos Rising), dengan harga pasaran USD:
$ cardstream-web --game Pokemon --set-code CRI --alphabet latin --price-stats

Sumber terbuka. Dihoskan sendiri. Strim anda, sistem anda.

Tiada platform di tengah, tiada lesen bagi setiap pengguna: sambungkan API Ximilar atau sistem pengecaman anda sendiri, dan cardstream memanggilnya sekali bagi setiap kad yang berbeza, bukan sekali bagi setiap bingkai. Sama ada anda buat break di Whatnot, menjalankan sesi live gaya Fanatics Live atau strim jualan live dengan sistem anda sendiri, jalankan cardstream malam ini pada perkakasan yang sudah anda miliki.