Dokumentasi
Semuanya berjalan di komputermu: instal, arahkan kamera ke sana, dan atur kapan ia boleh memanggil keluar. Dikelompokkan berdasarkan apa yang ingin kamu lakukan.
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 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 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 NEWMenyimpan 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>
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.
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 →