cardstream
FAQ

Pertanyaan yang sering diajukan

Pertanyaan yang paling sering muncul: menginstal dan menghapusnya, berapa biayanya, apa yang keluar dari komputermu, dan apa saja yang bisa dikenalinya. Pembahasan yang lebih panjang ada di dokumentasi.

Instal & hapus

Menginstal, memperbarui, menghapus

Skrip instalasi hanya menyentuh tepat dua tempat di komputermu, dan keduanya bebas kamu hapus.

Apa saja yang kubutuhkan untuk menjalankannya?

Komputer dengan Python 3.11 atau lebih baru, dan kurang lebih itu saja. macOS arm64, Linux amd64, dan Windows amd64 semuanya tercakup oleh rilis pure-Python yang sama, tanpa perlu GPU. Binary ffmpeg sistem hanya dibutuhkan untuk sumber tarik dan listen (RTSP, RTMP, SRT). Webcam, file, atau antarmuka browser tidak membutuhkannya.

Di mana skrip instalasi menaruh semuanya?

Di dua tempat. ~/.cardstream adalah direktori instalasinya: sebuah virtualenv di venv/ dan bobot model di models/. Kedua perintahnya, cardstream-web dan cardstream-client, adalah shim kecil yang ditulis ke ~/.local/bin. Shim itu menjalankan binary di dalam venv dengan path model yang sudah terisi, jadi flag apa pun yang kamu berikan tetap menang. Kedua lokasi berpindah mengikuti CARDSTREAM_HOME dan INSTALL_DIR. Tidak ada hal lain di komputer yang disentuh. Skrip ini khususnya tidak pernah mengubah profil shell-mu: kalau ~/.local/bin belum ada di PATH, ia mencetak catatan dan menyerahkan perubahannya kepadamu.

Bagaimana cara memperbarui ke versi baru?

Jalankan lagi perintah satu baris yang sama. Ia memasang rilis terkini ke virtualenv yang sudah ada dan menulis ulang shim-nya. Bobot yang sudah ada di ~/.cardstream/models dibiarkan apa adanya, karena hanya diunduh kalau belum ada. Jadi pembaruan hanyalah unduhan kecil, bukan seperempat gigabita lagi. Untuk memasang rilis tertentu alih-alih yang terbaru, setel CARDSTREAM_VERSION.

# perintah satu baris yang sama; /install.sh dialihkan ke skrip di main
$ curl -fsSL https://cardstream.ai/install.sh | sh
$ curl -fsSL https://cardstream.ai/install.sh | CARDSTREAM_VERSION=v0.5.0 sh
$ cardstream-web --version

Bagaimana cara menghapusnya?

Dua perintah. Yang pertama menghapus virtualenv dan bobot model, yang kedua menghapus kedua shim. Tidak ada lagi yang perlu dibersihkan: tidak ada daemon, tidak ada item login, tidak ada paket sistem.

$ rm -rf ~/.cardstream # venv/ + models/
$ rm -f ~/.local/bin/cardstream-web ~/.local/bin/cardstream-client

Kalau kamu menginstal dengan CARDSTREAM_HOME atau INSTALL_DIR yang disetel, hapus path itu sebagai gantinya, dan pakai sudo kalau shim-nya kamu arahkan ke direktori sistem. Apa pun yang kamu tambahkan sendiri tetap menjadi urusanmu untuk dibatalkan: baris PATH di profil shell, ekspor XIMILAR_API_KEY, dan folder mana pun yang kamu berikan ke --store-images. Aplikasi ini tidak menulis apa-apa lagi di direktori home-mu. Pastikan sudah terhapus dengan command -v cardstream-web di shell baru. Shell yang lama masih menyimpan hasil pencariannya di cache sampai kamu menjalankan hash -r.

Kunci & biaya

Berapa biayanya dan apa yang dibutuhkan

Tanpa platform di tengah: perangkatmu, kuncimu, dan sebuah mesin yang tugasnya memanggil keluar sejarang mungkin.

Apakah aku butuh kunci API Ximilar?

Untuk jalur identifikasi bawaan, ya, dan itu satu-satunya kredensial yang dibutuhkan seluruh sistem. Dapatkan di ximilar.com lalu ekspor sebagai XIMILAR_API_KEY sebelum memulai. Kalau kamu menghubungkan pengenalmu sendiri, yang kamu butuhkan hanyalah apa yang diminta endpoint itu, tanpa apa pun dari Ximilar.

$ export XIMILAR_API_KEY=your-key

Berapa harga cardstream sendiri?

Gratis. Tidak ada langganan, tidak ada lisensi per pengguna, dan tidak ada biaya platform. Hanya satu paket Python berlisensi permisif yang kamu jalankan di perangkatmu sendiri, dengan bobot deteksi yang diterbitkan di bawah Apache-2.0 bersama tiap rilis. Yang kamu bayar adalah panggilan identifikasi ke endpoint mana pun yang kamu hubungkan, dan menekan angka itu adalah seluruh tujuan mesin lokalnya: kira-kira satu panggilan untuk tiap kartu berbeda yang kamu tunjukkan, sekitar seratus dalam satu jam, padahal pipeline naif per frame pada 15 fps akan menembakkan 54.000. Menyimpan live ke akun Ximilar-mu menambah satu kali tagihan pembukaan sesi per live; melanjutkannya setelah restart tidak dikenai biaya.

Bisakah aku memakai modelku sendiri, atau sistem identifikasiku sendiri?

Dua-duanya bisa. Pencari kartu dan gerbang identitas dipilih lewat backend: ekspor .onnx RF-DETR bawaan, ekspor RT-DETRv2, atau direktori transformers maupun id hub selagi kamu masih mengutak-atik hasil finetune. Langkah identifikasi di belakangnya hanyalah sebuah endpoint, jadi mengarahkannya ke pengenalmu sendiri tidak mengubah satu pun gerbang, pembatas, dan cooldown di depannya. Lihat backend model dan model zoo.

Menjalankannya

Perangkat, siaran, dan tetap aman

Ia berjalan di samping live-mu, di komputer yang sudah kamu pakai untuk siaran.

Apakah aku butuh GPU?

Tidak. Bobot bawaannya adalah ekspor ONNX yang ukurannya disesuaikan untuk CPU, dan semua yang dikerjakan mesin lokal berjalan di prosesor yang sudah kamu punya: gerbang gerakan, pembatas deteksi, dan embedding yang menjawab “kartu yang sama atau kartu baru?”. GPU adalah pilihan untuk bobotmu sendiri yang lebih akurat, bukan syarat untuk bawaannya.

Apakah bisa dipakai dengan Whatnot atau Fanatics Live?

Bisa, tetapi bukan dengan menyambung ke marketplace-nya. Ia menyadap video yang memang sudah kamu hasilkan: kamera virtual OBS, output RTMP atau SRT kedua di samping output yang menuju platform, tarikan RTSP dari encoder, atau cukup kameranya sendiri yang diarahkan ke alas yang sama. Panduan jualan live membahas keempat rute itu dari awal sampai akhir.

Apa sebenarnya yang keluar dari komputerku?

Dalam mode sisi klien, satu potongan gambar JPEG per kartu berbeda. Bukan siarannya, bukan frame di sekitarnya, bukan sisa alasnya. Setiap keputusan tentang perlu atau tidaknya mengirim sesuatu dibuat secara lokal lebih dulu, jadi satu jam video dengan seratus kartu yang kamu tunjukkan berarti seratus permintaan kecil. Satu-satunya pengecualian kamu sendiri yang menyalakan: dengan --ximilar-stream, riwayat live-nya juga disimpan ke sebuah sesi di akun Ximilar-mu sendiri, berupa satu baris teks per kartu ditambah potongan gambar yang dipakai untuk mengidentifikasinya. Nonaktif secara bawaan, dan dengan --no-ximilar-stream-images yang disimpan cukup teksnya saja.

Bisakah aku meninjau sebuah live setelah selesai?

Bisa, kalau kamu menyimpannya. Mulai dengan --ximilar-stream NEW dan setiap kartu yang tercantum di riwayat masuk ke sebuah sesi di akun Ximilar-mu selama live berjalan, lengkap dengan harganya, lamanya tampil di siaran, dan potongan gambar yang dipakai untuk mengidentifikasinya. Setelah itu buka bagian Cardstream di aplikasi Ximilar: nilai live-nya, produk paling bernilai dan set teratasnya, setiap kartu dengan gambarnya. Tandai yang terjual dan perbaiki hasil cocok yang keliru. Harus restart di tengah live? Berikan id sesi sebagai pengganti NEW dan live berlanjut, bahkan kalau sesinya sudah ditutup. Menyimpan ke workspace tim memakai --ximilar-workspace. Selengkapnya.

$ cardstream-web --price-stats --ximilar-stream NEW

Bisakah kujalankan di LAN supaya komputer lain bisa membuka antarmukanya?

Jangan. Antarmuka web-nya tanpa autentikasi dan memegang kunci API-mu, jadi tempatnya hanya di 127.0.0.1, tidak di tempat lain. Container mengikat 0.0.0.0 secara internal, dan karena itulah docker run yang didokumentasikan hanya memublikasikan port ke 127.0.0.1. Kalau kamu memang perlu mengaksesnya dari komputer lain, pasang tunnel berautentikasi milikmu sendiri di depannya alih-alih membuka port-nya.

$ docker run --rm -e XIMILAR_API_KEY -p 127.0.0.1:8001:8001 \
    -v cardstream-models:/models cardstream
Identifikasi

Apa yang dikenalinya, dan seberapa yakin

Setiap hasil cocok datang dengan jaraknya, tingkatnya, dan kartu-kartu lain yang mungkin dimaksud.

Kartu apa saja yang bisa dikenali?

Empat kategori, satu sakelar. Game kartu koleksi: Pokémon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana, dan sekitar dua puluh lainnya, kartu single modern maupun vintage yang dibaca langsung dari siaran. Kartu olahraga dari semua cabang besar, sampai ke parallel dan tahunnya. Slab hasil grading, dibaca dari labelnya tanpa membongkar case-nya. Dan komik, berdasarkan judul, nomor edisi, dan tahun. Satu flag memilih kategorinya, atau dialog pengaturan menggantinya di tengah siaran. Lihat daftar lengkapnya.

Apa yang terjadi kalau ia menyebut kartu yang salah?

Kamu bisa melihatnya sebelum terjadi. Setiap hasil cocok membawa jarak mentah dan tingkat High / Medium / Low, dengan batas di 0.30 dan 0.40, ditambah hingga empat kartu alternatif yang mungkin dimaksud, dan kartu yang benar biasanya ada di daftar pendek itu. Setel ambang batas hasil, dan apa pun di bawahnya tidak akan pernah sampai ke overlay. Kalau satu live penuh hanya berisi satu game atau satu set, isian awal mempersempit pencarian sebelum dimulai: beri tahu game-nya, kode set-nya, atau sistem tulisannya, dan endpoint berhenti menebak.

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.