cardstream
Dokumentasi

Dokumentasi

Semuanya berjalan pada mesin anda: pasang, halakan kamera kepadanya, dan tala bila ia dibenarkan membuat panggilan. Dikumpulkan mengikut apa yang anda cuba lakukan.

Pasang dan jalankan

Daripada tiada apa-apa kepada kad di skrin

Satu arahan memasang klien, pemberat model dan shim. Satu-satunya kelayakan dalam seluruh sistem ialah kunci Ximilar anda.

Skrip pemasangan

Mencipta venv dalam ~/.cardstream, mengesahkan wheel keluaran berdasarkan checksumnya, memuat turun pemberat model dan meletakkan kedua-dua arahan dalam PATH anda. Cara lain (wheel, Docker, kod sumber) ada di halaman muat turun.

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

Pemasangan manual

Checkout repositori dan pip juga boleh digunakan. Tambahan adalah bebas antara satu sama lain: [client] ialah UI dan sumber video, manakala [onnx] atau [torch] menyediakan backend pengesan dan embedder.

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

Kunci Ximilar anda

Pengecaman dikuasakan oleh Ximilar collectibles/v2. XIMILAR_API_KEY ialah satu-satunya pemboleh ubah persekitaran yang dibaca; selebihnya ialah bendera.

$ export XIMILAR_API_KEY=your-key

Larian pertama

Membuka UI pelayar pada kamera web anda. Tunjukkan sekeping kad; overlay memaparkan mesin keadaan sedang berfikir dan padanan sebaik sahaja ia tiba.

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

Semak apa yang anda ada

Kedua-dua arahan mencetak versinya dan keluar. Tiada fail model diperlukan, jadi ia berfungsi sebaik sahaja pemasangan selesai.

$ cardstream-web --version
cardstream 0.5.2

Tanpa antara muka, untuk set-up khas

Saluran pemprosesan yang sama tanpa pelayar: hasil dicetak ke terminal. Bendera yang sama seperti cardstream-web, satu proses di sebelah kamera.

$ cardstream-client --source 0
Gunakan

Suapkan sesi live anda

Sumber video boleh ditukar ganti dan analisisnya sama, tidak kira yang mana anda pilih. Semuanya ialah bendera; dialog tetapan boleh menala semula yang penting secara langsung.

Kamera web dan fail

Kamera web pelayar ialah lalai untuk cardstream-web; indeks kamera, fail video atau imej pegun berfungsi di mana-mana. Sesuai untuk menguji sebelum sesi live.

$ cardstream-web # kamera web pelayar
$ cardstream-client --source clip.mp4

Tarik strim

Halakan ke kamera IP, pengekod atau perkhidmatan strim semula: suapan rtsp://, rtmp://, srt:// dan JPEG melalui ws://, dengan sambungan semula yang selang cubaannya bertambah hingga had tertentu.

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

Biarkan OBS menolak

Jalankan sebagai pendengar dan tambah satu output RTMP atau SRT tambahan dalam OBS. Memerlukan binari ffmpeg sistem (brew install ffmpeg).

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

Praisi menyempitkan carian

Permainan, kod set dan sistem tulisan disahkan secara setempat sebelum dihantar. Sentiasa berikan --alphabet apabila anda memberikan --game, kerana praisi permainan menghalang endpoint daripada mengesan abjad itu sendiri.

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

Dialog tetapan

Kategori, permainan, kod set, abjad dan ambang boleh ditala semula dari pelayar di tengah strim, tanpa mula semula, dan kawalannya membuat pengesahan yang sama seperti proses itu.

Tiga tetapan resolusi

Apa yang dirakam kamera, apa yang dihantar dan apa yang dianalisis ialah tiga nombor berasingan. Analisis berjalan pada saiz kecil; keratan pengecaman dipotong semula daripada bingkai penuh.

$ cardstream-web --camera-width 3840 --width 1280
Semak sesi live

Simpan sesi live, semak kemudian

Dimatikan secara lalai. Satu bendera menyimpan sejarah yang dibina oleh halaman itu (setiap kad yang anda tunjukkan, bersama keratannya) ke satu sesi dalam akaun Ximilar anda sendiri, jadi sesi live itu masih ada keesokan paginya.

Sejarah, dengan gambar kecil

UI pelayar menyenaraikan setiap kad yang anda tunjukkan, yang terbaharu di atas: gambar kecil keratan yang dicam, harganya dengan --price-stats, dan berapa lama ia berada dalam strim. Senarai itu disimpan pada mesin anda.

Simpan sesi live

--ximilar-stream NEW memulakan satu sesi dan mencetak ID-nya. Sejak itu setiap baris sejarah disimpan sepanjang sesi live berjalan: muat naik dibuat secara berkelompok di latar belakang, dicuba semula apabila berlaku ralat rangkaian dan tidak pernah melambatkan sesi live. Keluar dengan betul akan memuat naik baki dan menutup sesi itu.

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

Apa yang dimuat naik

Baris dalam bentuk teks (kad, set, harga, tempoh dalam strim, panggilan berbayar di sebaliknya) dan keratan yang digunakan untuk mengecam setiap baris, paling besar 1024 px: gambar yang sudah pun diterima oleh panggilan pengecaman. --no-ximilar-stream-images mengehadkannya kepada teks. Akaun Ximilar anda memerlukan perkhidmatan Cards Cloud.

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

Semak dalam aplikasi Ximilar

Setiap sesi masuk ke bahagian Cards Cloud dalam aplikasi Ximilar: apa yang anda tunjukkan dan bila, nilai sesi live itu, produk paling bernilai dan set teratas, serta setiap kad bersama keratannya. Tandakan yang terjual, betulkan padanan yang salah, tambah nota.

Buka aplikasi Ximilar →

Sambung semula selepas mula semula

Berikan ID sesi menggantikan NEW dan sesi live diteruskan dalam sesi yang sama. Walaupun sesi itu telah ditutup apabila anda keluar dengan betul, ia hanya dibuka semula. Hanya permulaan sesi yang dicaj, jadi menyambung semula tidak dikenakan bayaran.

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

Ruang kerja pasukan

Sesi disimpan dalam ruang kerja lalai kunci API anda. Namakan ruang kerja lain dengan --ximilar-workspace, dan berikan ID yang sama apabila anda menyambung semula sesi yang disimpan di situ.

$ cardstream-web --ximilar-stream NEW \
    --ximilar-workspace <workspace-id>
Kendalikan dengan yakin

Satu panggilan pengecaman bagi setiap kad yang berbeza

Isyarat setempat (gerakan, pengesanan, penapis identiti) menentukan bila panggilan pengecaman benar-benar wajar. Inilah tetapan yang memastikan ia kekal jujur.

Ambang

Ambang hasil menghalang padanan yang lemah daripada muncul pada overlay; ambang persamaan menentukan kad yang sama atau kad baharu; forget-after mengosongkan ingatan setelah kad cukup lama tiada.

$ cardstream-web --result-threshold 0.35

Larian yang disyorkan

Segmentasi RF-DETR dengan penapis embedding ONNX: tetapan lalai yang disertakan. cardstream-web tanpa bendera menjalankan betul-betul ini setelah pemberat berada di tempatnya; menulisnya secara penuh menghasilkan saluran pemprosesan yang sama.

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

Kekalkan di localhost

Aplikasi setempat ini tidak memerlukan pengesahan dan menyimpan kunci API anda. --host secara lalai ialah 127.0.0.1. Biarkan begitu dan jangan sekali-kali dedahkan port itu kepada LAN.

“Model not found” semasa permulaan

Pemberat model dimuat turun secara berasingan dan bukan sebahagian daripada repositori. Skrip pemasangan dan imej Docker memuat turunnya; checkout biasa memerlukan pemberat diletakkan dalam model/segmentation/ dan model/similarity/, dan scripts/build-from-source.sh --models melakukannya untuk anda.

Nyatakan permainan yang anda tunjukkan

Sesi live untuk satu permainan tidak memerlukan endpoint meneka permainannya pada setiap panggilan. Namakan permainan itu dan carian menyempit kepadanya: jawapan lebih pantas, kurang cetakan yang salah. Berikan --alphabet bersamanya, kerana praisi permainan menghalang endpoint daripada mengesan sistem tulisan itu sendiri.

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

ffmpeg, apabila anda memerlukannya

--listen dan --ffmpeg memanggil binari ffmpeg sistem. Tarikan biasa berfungsi dengan pemasangan pip sahaja; set-up tolak dari OBS tidak.

Lebih mendalam

Di luar tetapan lalai

Tukar model atau baca kodnya: seluruh saluran pemprosesan ialah satu pakej yang boleh dipasang.

Gunakan pemberat anda sendiri

Pengesanan dan penapis identiti dihalakan mengikut backend: keluarga model memilih kelas, sambungan fail memilih masa jalan. RF-DETR atau RT-DETRv2, .onnx atau direktori transformers.

Backend model →

Zoo model

Setiap pemberat yang boleh dimuatkan oleh cardstream, dilatih oleh Ximilar dan diterbitkan di bawah Apache-2.0 bersama setiap keluaran: apa fungsi setiap satu, berapa pantas ia berjalan, dan lesennya.

Zoo model →

Jawapan ringkas

Berapa kosnya, apa yang keluar dari mesin, kad apa yang dicamnya, dan dua arahan untuk membuangnya semula.

Baca soalan lazim →

README dan isu

README merangkumi setiap bendera; isu ialah tempat untuk pepijat dan soalan.

Baca README →

Keluaran dan artifak

Wheel, checksum dan skrip pemasangan, satu set bagi setiap keluaran, serta binaan Docker dan kod sumber.

Halaman muat turun →