cardstream
Dokumentasi

Dokumentasi

Semuanya berjalan di komputermu: instal, arahkan kamera ke sana, dan atur kapan ia boleh memanggil keluar. Dikelompokkan berdasarkan apa yang ingin kamu lakukan.

Instal dan jalankan

Dari nol sampai kartu di layar

Satu perintah menginstal klien, bobot model, dan shim-nya. Satu-satunya kredensial di seluruh sistem adalah kunci Ximilar-mu.

Skrip instalasi

Membuat venv di ~/.cardstream, memverifikasi wheel rilis dengan checksum-nya, mengunduh bobot model, dan menaruh kedua perintah di PATH-mu. Cara lain, yaitu wheel, Docker, dan kode sumber, ada di halaman unduh.

$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh
Semua cara instalasi →

Instalasi manual

Checkout dan pip juga bisa. Extras-nya independen: [client] adalah UI dan sumber, sedangkan [onnx] atau [torch] menyediakan backend detektor dan embedder.

$ git clone https://github.com/Ximilar-com/cardstream && cd cardstream
$ pip install -e '.[client,onnx]'

Kunci Ximilar-mu

Identifikasi didukung oleh Ximilar collectibles/v2. XIMILAR_API_KEY adalah satu-satunya variabel lingkungan yang dibaca. Semua yang lain berupa flag.

$ export XIMILAR_API_KEY=your-key

Menjalankan pertama kali

Membuka antarmuka browser dengan webcam-mu. Angkat sebuah kartu; overlay memperlihatkan state machine berpikir dan hasil cocoknya begitu tiba.

$ cardstream-web
# → http://127.0.0.1:8001

Periksa apa yang terpasang

Kedua perintah mencetak versinya lalu keluar. File model tidak diperlukan, jadi ini langsung bisa dipakai begitu instalasi selesai.

$ cardstream-web --version
cardstream 0.5.0

Headless, untuk perangkat rakitan

Pipeline yang sama tanpa browser: hasilnya dicetak ke terminal. Flag-nya sama dengan cardstream-web, satu proses di sebelah kamera.

$ cardstream-client --source 0
Pakai

Beri ia live-mu

Sumbernya bisa ditukar dan analisisnya sama persis, mana pun yang kamu pilih. Semuanya berupa flag; dialog pengaturan menyetel ulang yang penting saat siaran berjalan.

Webcam dan file

Webcam browser adalah bawaan untuk cardstream-web; indeks, file video, atau gambar diam bisa dipakai di mana saja. Cocok untuk menguji sebelum live.

$ cardstream-web # webcam browser
$ cardstream-client --source clip.mp4

Menarik siaran

Arahkan ke kamera IP, encoder, atau restreamer: rtsp://, rtmp://, srt://, dan feed JPEG ws://, dengan sambungan ulang ber-backoff terbatas.

$ cardstream-web --source rtsp://cam/stream1

Biarkan OBS mengirim

Jalankan sebagai listener dan tambahkan satu output RTMP atau SRT lagi di OBS. Membutuhkan binary ffmpeg sistem (brew install ffmpeg).

$ cardstream-web --source rtmp://0.0.0.0:1935/live --listen

Isian awal mempersempit pencarian

Game, kode set, dan sistem tulisan divalidasi secara lokal sebelum dikirim. Selalu berikan --alphabet ketika kamu memberikan --game, karena isian awal game membuat endpoint berhenti mendeteksi alfabetnya sendiri.

$ cardstream-web --game "Pokémon" --alphabet japanese --set-code M4

Dialog pengaturan

Kategori, game, kode set, alfabet, dan ambang batas bisa disetel ulang dari browser di tengah siaran. Tanpa restart, dan kontrolnya membawa validasi yang sama dengan prosesnya.

Tiga pengatur resolusi

Apa yang ditangkap kamera, apa yang dikirim, dan apa yang dianalisis adalah tiga angka terpisah. Analisis berjalan kecil; potongan gambar untuk identifikasi dipotong ulang dari frame penuh.

$ cardstream-web --camera-width 3840 --width 1280
Tinjau live-mu

Simpan live-nya, tinjau nanti

Nonaktif secara bawaan. Satu flag menyimpan riwayat yang disusun halaman itu, yaitu setiap kartu yang kamu tunjukkan beserta potongan gambarnya, ke sebuah sesi di akun Ximilar-mu sendiri, sehingga live-nya masih ada esok pagi.

Riwayat, dengan thumbnail

Antarmuka browser mendaftar setiap kartu yang kamu tunjukkan, yang terbaru di atas: thumbnail dari potongan gambar yang diidentifikasi, harganya dengan --price-stats, dan lamanya tampil di siaran. Daftar itu berada di komputermu.

Menyimpan live

--ximilar-stream NEW memulai sebuah sesi dan mencetak id-nya. Sejak itu setiap baris riwayat disimpan selama live berjalan: unggahan dikumpulkan di latar belakang, diulang kalau ada galat jaringan, dan tidak pernah menahan jalannya live. Keluar secara normal mengunggah sisanya dan menutup sesi.

$ cardstream-web --game "Pokémon" --alphabet latin \
    --price-stats --ximilar-stream NEW
Menyimpan live, selengkapnya →

Apa yang diunggah

Baris-barisnya sebagai teks, yaitu kartu, set, harga, lamanya tampil di siaran, dan panggilan berbayar di baliknya, serta potongan gambar yang dipakai untuk mengidentifikasi tiap baris, paling besar 1024 px: gambar yang memang sudah diterima panggilan identifikasi. Dengan --no-ximilar-stream-images yang disimpan cukup teksnya saja. Akun Ximilar-mu memerlukan layanan Cardstream.

$ cardstream-web --ximilar-stream NEW --no-ximilar-stream-images

Tinjau di aplikasi Ximilar

Setiap sesi masuk ke bagian Cardstream di aplikasi Ximilar: apa yang kamu tunjukkan dan kapan, nilai live-nya, produk paling bernilai dan set teratasnya, serta tiap kartu dengan potongan gambarnya. Tandai yang terjual, perbaiki hasil cocok yang keliru, tambahkan catatan.

Buka aplikasi Ximilar →

Lanjutkan setelah restart

Berikan id sesi sebagai pengganti NEW dan live berlanjut di sesi yang sama. Bahkan kalau sesinya sudah ditutup oleh keluar yang normal, ia dibuka kembali begitu saja. Yang ditagih hanya saat memulai sesi, jadi melanjutkan tidak dikenai biaya.

$ cardstream-web --ximilar-stream <session-id>

Workspace tim

Sesi disimpan di workspace bawaan kunci API-mu. Sebutkan workspace lain dengan --ximilar-workspace, dan berikan id yang sama ketika melanjutkan sesi yang disimpan di sana.

$ cardstream-web --ximilar-stream NEW \
    --ximilar-workspace <workspace-id>
Jalankan dengan tenang

Satu panggilan identifikasi per kartu berbeda

Sinyal lokal, yaitu gerakan, deteksi, dan gerbang identitas, memutuskan kapan panggilan identifikasi memang diperlukan. Inilah pengatur-pengatur yang menjaganya tetap jujur.

Ambang batas

Ambang batas hasil menjauhkan hasil cocok yang lemah dari overlay; ambang batas kemiripan memutuskan kartu yang sama atau kartu baru; forget-after mengosongkan ingatan setelah sebuah kartu cukup lama pergi.

$ cardstream-web --result-threshold 0.35

Cara menjalankan yang disarankan

Segmentasi RF-DETR dengan gerbang embedding ONNX, yaitu bawaan yang disertakan. cardstream-web tanpa argumen menjalankan persis ini begitu bobotnya terpasang; menuliskannya lengkap menghasilkan pipeline yang sama.

$ cardstream-web \
    --segmentor-model model/segmentation/onnx/model.onnx \
    --embed-model model/similarity/onnx/model.onnx

Tetap di localhost

Aplikasi lokalnya tanpa autentikasi dan memegang kunci API-mu. --host secara bawaan bernilai 127.0.0.1. Biarkan begitu dan jangan pernah membuka port-nya ke LAN.

“Model not found” saat startup

Bobot model diunduh terpisah dan bukan bagian dari repo. Skrip instalasi dan image Docker mengunduhnya; checkout polos memerlukan bobot itu ditaruh di model/segmentation/ dan model/similarity/. scripts/build-from-source.sh --models melakukannya untukmu.

Tentukan game yang kamu tunjukkan

Live dengan satu game tidak perlu membuat endpoint menebak game-nya di setiap panggilan. Sebutkan game-nya dan pencarian menyempit ke game itu: jawaban lebih cepat, lebih sedikit cetakan yang salah. Berikan --alphabet bersamanya, karena isian awal game membuat endpoint berhenti mendeteksi sistem tulisannya sendiri.

$ cardstream-web --game "Pokémon" --alphabet japanese

ffmpeg, kalau kamu membutuhkannya

--listen dan --ffmpeg memanggil binary ffmpeg sistem. Tarikan biasa bisa berjalan dengan instalasi pip saja; pengaturan kirim-dari-OBS tidak.

Lebih dalam

Melampaui pengaturan bawaan

Tukar modelnya atau baca kodenya: seluruh pipeline adalah satu paket yang bisa diinstal.

Bawa bobotmu sendiri

Deteksi dan gerbang identitas dipilih lewat backend: keluarga modelnya menentukan kelas, ekstensi filenya menentukan runtime. RF-DETR atau RT-DETRv2, .onnx atau direktori transformers.

Backend model →

Model zoo

Setiap bobot yang bisa dimuat cardstream, dilatih oleh Ximilar dan diterbitkan di bawah Apache-2.0 bersama rilisnya: apa fungsi masing-masing, seberapa cepat jalannya, dan lisensinya.

Model zoo →

Jawaban singkat

Berapa biayanya, apa yang keluar dari komputer, kartu apa saja yang dikenalinya, dan dua perintah yang menghapusnya kembali.

Baca FAQ →

README dan issue

README membahas setiap flag; issue adalah tempat untuk bug dan pertanyaan.

Baca README →

Rilis dan artefak

Wheel, checksum, dan skrip instalasi, satu set untuk tiap rilis, ditambah build Docker dan build dari kode sumber.

Halaman unduh →