cardstream
اوپن سورس Ximilar پر مبنی بیٹا ورژن

لائیو اسٹریمز کے لیے کارڈ کی بہترین پہچان۔ باکس بریک، پیک کھولنے اور لائیو شوز کے لیے بنی۔

cardstream آپ کے باکس بریک، پیک کھولنے یا شو پر نظر رکھتا ہے اور ہر ٹریڈنگ کارڈ کو فریم میں آتے ہی پہچان لیتا ہے: نام، سیٹ اور اعتماد کا اسکور، سب لائیو۔ کارڈ ٹریکنگ سسٹم کے ساتھ اپنی لائیو شاپنگ اسٹریمز کا تجزیہ کریں۔ ان اسٹریمرز کے لیے جو مزید جاننا چاہیں۔

یہ کیا پہچانتا ہے

Pokémon سے Magic: The Gathering تک

ہر شو کے لیے کیٹیگری بدلیں تو پورا انجن ساتھ ہی بدل جاتا ہے: ڈیٹیکشن، فلٹرز اور پہچان کی کال، سب کا رخ درست اینڈ پوائنٹ کی طرف ہو جاتا ہے۔ ہر میچ کے ساتھ نام، سیٹ، سیٹ کوڈ، کارڈ نمبر، سیریز اور سال آتے ہیں۔

🃏

ٹریڈنگ کارڈ گیمز

collectibles/v2/tcg_id
Ximilar تیار

نئے اور ونٹیج TCG سنگل کارڈز، سیدھے اسٹریم سے۔ اینڈ پوائنٹ آرٹ ورک، بارڈر اور تحریر تینوں پڑھتا ہے، اس لیے کارڈ اسی تصویر سے پہچانا جاتا ہے جو آپ کے ناظرین دیکھ رہے ہیں۔ نہ سیٹ کا نشان ڈھونڈنا پڑتا ہے، نہ آنکھیں سکیڑ کر کارڈ نمبر پڑھنا۔

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

اسپورٹس کارڈز sport_id

ہر بڑے کھیل کے روکی، پیرالل، انسرٹ اور آٹوگراف کارڈز: بیس بال، باسکٹ بال، امریکن فٹ بال، فٹ بال، آئس ہاکی اور دیگر۔ بالکل وہی کارڈ، وہی سیٹ، وہی سال۔

جلد آ رہا ہے
🧊

گریڈڈ سلیبز slab_id

گریڈڈ کیس کا لیبل پڑھتا ہے: PSA, BGS یا CGC سلیب کے اندر موجود کارڈ، کیس توڑے بغیر پہچانا جاتا ہے۔

جلد آ رہا ہے
📚

کامکس comics_id

سرورق بھی کارڈز ہی کی طرح پہچانے جاتے ہیں: عنوان، شمارہ اور سال، صرف ایک ٹھہرے ہوئے فریم سے۔

جلد آ رہا ہے
کسی ایک پرووائیڈر کی پابندی نہیں

کسی کمپنی کا پہچان کا سسٹم لگائیں، یا اپنا

کال کرنی ہے یا نہیں، یہ سارا فیصلہ پہچان سے پہلے ہی ہو جاتا ہے: ڈیٹیکشن، حرکت کا فلٹر اور وہی کارڈ والا فلٹر سب لوکل ہیں اور کسی پرووائیڈر پر منحصر نہیں۔ کال خود ایک ایسا مرحلہ ہے جو بدلا جا سکتا ہے: طے شدہ طور پر Ximilar، یا کسی کمپنی کی اپنی کارڈ پہچان سروس، یا وہ ماڈل جو آپ نے خود ٹرین کیا ہو اور اپنے ہارڈ ویئر پر ہوسٹ کیا ہو۔

یہ ایک چھوٹا سا انٹرفیس ہے: کارڈ کا کراپ اندر جاتا ہے، میچ باہر آتا ہے۔ IdentifyTarget امپلیمنٹ کریں تو اس کے آگے لگا ہر فلٹر، رفتار کی ہر پابندی اور ہر حد پہلے کی طرح کام کرتی رہتی ہے۔ جواب کوئی بھی دے، ہر الگ کارڈ پر اب بھی ایک ہی کراپ۔

# آپ کا اپنا پہچان کا سسٹم، وہی انجن
class HouseIdentifier(IdentifyTarget):
    def identify(self, crop_bgr):
        return my_service.match(crop_bgr)

# دونوں صورتوں میں ہر الگ کارڈ پر ایک کراپ
$ cardstream-web --detector rfdetr
cardstream.ai کیوں؟

ہر کارڈ پر ایک کال، ہر فریم پر نہیں

مقصد یہ ہے کہ اسٹریم کے تجزیے میں صرف وہی کالز ہوں جو واقعی کوئی نئی بات بتائیں۔ کارڈ پہچان کی بند SaaS سروسز کا اوپن سورس متبادل: بیچ میں کوئی پلیٹ فارم نہیں، فی صارف لائسنس نہیں۔ آپ کا ہارڈ ویئر، آپ کی API کلید، اور ایک اسٹیٹ مشین جو صرف تب کال کرتی ہے جب فریم میں آیا کارڈ واقعی نیا ہو۔

54,000 ← ~100
فی گھنٹہ API کالز

ہر فریم پر کال کرنے والی سیدھی سادی پائپ لائن 15 fps پر ایک گھنٹے میں 54,000 بار پہچان مانگتی ہے۔ cardstream آپ کے دکھائے ہوئے ہر الگ کارڈ پر ایک ہی کال کرتا ہے، یعنی اسی گھنٹے میں تقریباً سو۔

540×
پہچان کی کالز میں کمی

وہی گھنٹہ، وہی ویڈیو، وہی کارڈز: 54,000 کالز کے مقابلے میں تقریباً 100۔ حرکت اور شناخت کے فلٹرز آپ کے اپنے ہارڈ ویئر پر لوکل چلتے ہیں، اور کال صرف تب جاتی ہے جب کوئی واقعی نیا کارڈ فریم میں ٹھہر جائے۔

$0
پلیٹ فارم فیس

نہ SaaS سبسکرپشن، نہ فی صارف قیمت، نہ کسی ایک کمپنی کی پابندی۔ پہچان سمیت پورا اسٹیک خود ہوسٹ کریں، یا Ximilar API سے جوڑ لیں۔

فیچرز

وہ سب کچھ جو کارڈز کے اسٹریمنگ شو کو چاہیے

ایسا شریک میزبان جس سے کوئی کارڈ نہیں چھوٹتا: Whatnot اور Fanatics Live جیسے پلیٹ فارمز پر لائیو کامرس میں بیچنے والوں، باکس بریکس، کارڈ شاپ کی اسٹریمز اور کلیکشن کی فہرست بنانے کے لیے۔ جہاں بھی کیمرے کے سامنے کارڈ آئے۔

⚡

فریم میں آتے ہی پہچان

نہ اسکین کا بٹن، نہ انتظار۔ بس کارڈ دکھائیں: کارڈ سامنے آنے سے نام، سیٹ اور اعتماد کا اسکور آنے تک تقریباً آدھا سیکنڈ لگتا ہے، وہ بھی اسٹریم پر لائیو۔

🎯

ہر کارڈ پر ایک کال

حرکت کا فلٹر اور ایمبیڈنگ پر مبنی شناخت کا فلٹر آپ کے اپنے CPU پر لوکل چلتے ہیں۔ کارڈ کو ساکن پکڑے رکھیں: کوئی دہرائی ہوئی کال نہیں۔ کارڈ بدلیں: ٹھیک ایک نئی کال۔

📡

کوئی بھی اسٹریم سورس

ویب کیم، ویڈیو فائلز، اور RTSP, RTMP یا SRT اسٹریمز: یہ انہیں خود کھینچ لیتا ہے، یا --listen کے ساتھ OBS انہیں سیدھا اس میں بھیج دیتا ہے۔ اپنے بنائے ہوئے سیٹ اپ کے لیے WebSocket JPEG فیڈز۔

🔌

پہچان کا کوئی بھی بیک اینڈ

طے شدہ طور پر Ximilar collectibles/v2، یا اسی انجن کو کسی کمپنی کے اپنے پہچان کے سسٹم کی طرف موڑ دیں، یا اس سسٹم کی طرف جو آپ نے خود ٹرین اور ہوسٹ کیا ہو۔

🧠

اپنے ماڈلز لائیں

لوکیٹر کے ویٹس ہمارے ہیں: فائن ٹیون کیا ہوا RF-DETR سیگمنٹیشن ماڈل، Apache-2.0 لائسنس کے تحت، جسے انسٹالر خود لے آتا ہے۔ باؤنڈنگ باکس والے ڈیٹیکٹرز (RF-DETR, RT-DETRv2) بھی چلتے ہیں، اگر آپ اپنا ایکسپورٹ لانا چاہیں۔

🔓

اوپن سورس، سیلف ہوسٹڈ

کھلے لائسنس والا ایک Python پیکج۔ پڑھیں، فورک کریں، اپنے ہارڈ ویئر پر چلائیں۔ آپ کی کلید، آپ کا ڈیٹا، آپ کا انفراسٹرکچر۔

یہ کیسے کام کرتا ہے

اتنا سمجھ دار کہ جانتا ہے API کو کب کال نہیں کرنی

آپ کی اسٹریم اور API کے درمیان ایک اسٹیٹ مشین کھڑی ہے۔ ہر فریم DecisionCore سے گزرتا ہے، جو لوکل چلنے والی ایک ہی اسٹیٹ مشین ہے، اور تین لوکل فلٹرز طے کرتے ہیں کہ API والا واحد مرحلہ کب واقعی ضروری ہے۔

1

ڈیٹیکشن

لوکل · API کال نہیں

کارڈ کے چاروں کونے ڈھونڈتا ہے اور اسے سیدھا کر کے صاف کراپ نکالتا ہے۔ حرکت کا لوکل فلٹر اس کی رفتار تین درجوں میں محدود رکھتا ہے: حرکت میں، کارڈ ساکن، خالی۔

2

حرکت کا فلٹر

لوکل · API کال نہیں

فریمز کے اوسط فرق کا سستا سا حساب۔ منظر N فریمز تک ٹھہرا رہے، تبھی کارڈ کو غور سے دیکھنا بنتا ہے۔ ابھی ہل رہا ہے؟ انتظار۔

3

شناخت کا فلٹر

لوکل · API کال نہیں

ایمبیڈنگ کا موازنہ ایک ہی سوال کا جواب دیتا ہے: کیا یہ وہی پہلے والا کارڈ ہے؟ وہی کارڈ ← کیش میں رکھا نتیجہ دوبارہ بھیج دیا جاتا ہے۔

4

پہچان

ximilar · 1 کال

صرف واقعی نیا اور ٹھہرا ہوا کارڈ ہی Ximilar سے پہچان کرواتا ہے: async، ڈی باؤنس کے ساتھ اور فریم لوپ سے باہر۔ نتیجہ لائیو واپس آ جاتا ہے۔

اسٹریمرز، باکس بریکس اور کارڈ شاپس کے لیے

اسٹریم کا سارا کام آپ ہی کے ذمے ہے؟

ایک شخص، ایک کیمرا، باکس بریکس کی ایک لمبی رات: اسکرین پر کون سا کارڈ ہے، یہ جاننے کے لیے آپ کو انجینئرنگ ٹیم کی ضرورت نہیں ہونی چاہیے۔ جو اسٹریم آپ کے ہاں پہلے سے چل رہی ہے اسے جوڑیں اور cardstream کو اس کا لائیو تجزیہ کرنے دیں، چاہے فروخت کسی مارکیٹ پلیس پر ہو یا سیدھی آپ کے اپنے چینل سے۔

  • Whatnot
  • Fanatics Live
  • eBay Live
  • TikTok Shop
  • Twitch
  • YouTube Live
  • آپ کی اپنی سائٹ

نہ اکاؤنٹ تک رسائی، نہ مارکیٹ پلیس کی API کلیدیں، نہ آپ کی چیٹ میں کوئی بوٹ، اور ان میں سے کسی پلیٹ فارم سے کوئی تعلق بھی نہیں۔ cardstream صرف آپ کی ویڈیو پڑھتا ہے، اور کچھ نہیں۔

01

آپ کی اسٹریم پہلے سے OBS سے جاتی ہے

جو آؤٹ پٹ آپ کے شو کو جا رہا ہے اس کے ساتھ ایک اور آؤٹ پٹ لگا دیں۔ آپ کے خریدار بالکل وہی دیکھتے ہیں جو پہلے دیکھتے تھے؛ اسی فیڈ کی ایک کاپی cardstream میں آتی ہے، اور میز پر آنے والا ہر کارڈ گزرتے گزرتے پہچان لیا جاتا ہے۔ نیچے والے لسنر کو سسٹم کی ffmpeg بائنری چاہیے؛ یا دوسرا آؤٹ پٹ رہنے ہی دیں اور cardstream کو OBS کا ورچوئل کیمرا ایک عام ویب کیم کی طرح پڑھنے دیں۔

$ cardstream-web --listen \
      --source rtmp://0.0.0.0:1935/live
# یہاں OBS کا دوسرا ٹارگٹ لگائیں
02

یا وہ کیمرا جو پہلے سے میز پر لگا ہے

اوپر لگا کیمرا، کیپچر کارڈ، ویب کیم بنا ہوا فون: جس کے نیچے بھی پیک کھلتے اور کارڈ دکھائے جاتے ہوں۔ تجزیہ کیمرے کے ساتھ والی مشین پر چلتا ہے، اس لیے طے شدہ طور پر ہر کارڈ کے ایک کراپ کے سوا کچھ بھی کمرے سے باہر نہیں جاتا۔

$ cardstream-web --source 0
# ویب کیم · localhost پر براؤزر UI
03

یا کوئی بھی چیز جس کا URL ہو

انکوڈرز، سوئچرز، ری اسٹریمرز، شہر کے دوسرے سرے پر دوسرا اسٹوڈیو۔ RTSP, RTMP اور SRT سے اسٹریم کھینچنا، اور اگر سیٹ اپ آپ نے خود بنایا ہو تو WebSocket JPEG فیڈز بھی۔

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

لائیو اوورلے

کارڈ ٹھہرتے ہی نام، سیٹ اور اعتماد کا اسکور سامنے آ جاتے ہیں: بلند آواز میں پڑھنے کے لیے تیار، یا واپس اپنے سین میں شامل کرنے کے لیے۔

ہر کارڈ کا ریکارڈ

جو کچھ آپ نے دکھایا اس کی چلتی ہوئی ہسٹری: ہر کارڈ کا تھمب نیل اور یہ کہ وہ اسٹریم پر کتنی دیر رہا۔ اسے اپنے Ximilar اکاؤنٹ میں محفوظ کریں اور اگلی صبح شو کا جائزہ لیں: کیا بکا، اس کی مالیت کیا تھی۔

ایک شخص کے حساب سے

نہ پلیٹ فارم فیس، نہ فی صارف لائسنس۔ تین گھنٹے کے شو میں پہچان کی گنی چنی کالز ہوتی ہیں، ہر فریم پر ایک نہیں۔

Cardstream Cloud

آپ کا شو، محفوظ اور جائزے کے لیے تیار

cardstream آپ کی مشین پر چلتا ہے اور طے شدہ طور پر کچھ بھی محفوظ نہیں رکھتا۔ ایک فلیگ لگائیں تو آپ کا دکھایا ہوا ہر کارڈ آپ کے Ximilar اکاؤنٹ کے ایک سیشن میں بھی محفوظ ہو جاتا ہے: اپنی قیمت، اسکرین پر گزرے وقت اور اس کراپ سمیت جس سے وہ پہچانا گیا۔ شو کے بعد Ximilar ایپ کھولیں اور دیکھیں کہ شو کی مالیت کیا رہی۔

$ cardstream-web --price-stats \
    --ximilar-stream NEW
# سیشن id دکھاتا ہے اور شو کے ساتھ ساتھ محفوظ کرتا جاتا ہے
Ximilar ایپ میں ایک محفوظ سیشن: دکھائے گئے پروڈکٹس، بامعاوضہ API کالز، مارکیٹ ویلیو، اسکرین پر اوسط وقت، سب سے قیمتی پروڈکٹس اور سب سے زیادہ آنے والے سیٹس۔

شو، اعداد میں

ہر سیشن کے لیے دکھائے گئے پروڈکٹس، بامعاوضہ API کالز، مارکیٹ ویلیو اور اسکرین پر اوسط وقت، اور ساتھ ہی سب سے قیمتی پروڈکٹس اور سب سے زیادہ آنے والے سیٹس۔

ہر کارڈ، اپنی تصویر کے ساتھ

ہر قطار میں کارڈ، سیٹ، نمبر، قیمت اور وہ کراپ رہتا ہے جس سے کارڈ پہچانا گیا۔ فہرست میں پروڈکٹ یا سیٹ کے نام سے تلاش کریں، اور اپنے سیشنز کو اسٹیٹس، پلیٹ فارم اور تاریخ کے حساب سے چھانٹیں۔

اسے اپنا ریکارڈ بنائیں

جو بک گیا اس پر نشان لگائیں، نوٹ لکھیں، غلط میچ یا اس کی قیمت درست کریں، اور جو میچ سرے سے غلط ہو اسے مٹا دیں۔ سیشن کو نام دیں اور اپنا میٹا ڈیٹا ساتھ لگائیں: لاٹ نمبر، اخراجات، خریدار۔

جہاں چھوڑا تھا وہیں سے جاری رکھیں

شو کے بیچ میں دوبارہ چلانا پڑا؟ NEW کی جگہ سیشن id دیں تو شو اسی سیشن میں جاری رہتا ہے، چاہے وہ بند ہو چکا ہو۔ --ximilar-workspace اسے ٹیم کے ورک اسپیس میں محفوظ کرتا ہے۔

طے شدہ طور پر بند: --ximilar-stream کے بغیر آپ کی مشین سے صرف پہچان کی کال ہی باہر جاتی ہے۔ محفوظ کرنے کے لیے آپ کے Ximilar اکاؤنٹ پر Cardstream سروس ہونی چاہیے؛ پیسے صرف سیشن شروع کرنے کے لگتے ہیں، اور --no-ximilar-stream-images کے ساتھ صرف متن جاتا ہے۔

فوری آغاز

صفر سے لائیو پہچان تک، 3 مرحلوں میں

1

انسٹال کریں

ایک virtualenv، ریلیز کا wheel (چیک سم سے تصدیق شدہ)، ماڈل ویٹس اور آپ کے PATH پر دونوں کمانڈز۔ اسکرپٹ چلائیں، یا PyPI سے وہی wheel pip کے ذریعے انسٹال کریں (ویٹس الگ سے ڈاؤن لوڈ ہوتے ہیں)، یا ریپو کلون کر کے خود بلڈ کریں۔ Docker اور Windows کے طریقے ڈاؤن لوڈ صفحے پر ہیں۔

$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh
# انسٹال کے دیگر طریقے ← cardstream.ai/download
$ pip install 'cardstream[client,onnx]'   # uv سے بھی: uv tool install 'cardstream[client,onnx]'
# اس wheel میں ویٹس نہیں ہوتے: cardstream.ai/models سے دونوں tarball کھولیں
# اور فلیگز کا رخ ان کی طرف کر دیں:
$ 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

پہچان کا سسٹم جوڑیں

طے شدہ طور پر Ximilar collectibles/v2 چلتا ہے، اور ximilar.com سے ملی ایک کلید ہی وہ واحد چیز ہے جو پورے سسٹم کو چاہیے۔ یا اسی مرحلے کو اپنے پہچان کے سسٹم کی طرف موڑ دیں۔

$ export XIMILAR_API_KEY=your-key
3

کیمرا کارڈ کی طرف کریں

اپنے ویب کیم پر براؤزر UI کھولیں، یا اسے اپنا شو دیں: یہ RTSP سے خود کھینچ لے، یا OBS کو RTMP سیدھا اس میں بھیجنے دیں۔ ساری رات ایک ہی سیٹ کا باکس بریک؟ اسے پہلے سے بتا دیں تو اینڈ پوائنٹ اندازے لگانا چھوڑ دیتا ہے: CRI سیٹ کے انگریزی Pokémon کارڈز بتانے کا مطلب ہے تین چیزیں کم جن میں غلطی ہو سکتی ہے۔ جب بھی --game لگائیں، --alphabet بھی لگائیں، کیونکہ گیم پہلے سے بتانے پر اینڈ پوائنٹ رسم الخط خود پہچاننا بند کر دیتا ہے۔ --price-stats لگائیں تو ہر میچ کے ساتھ USD میں مارکیٹ قیمتیں بھی آتی ہیں: میڈین، رینج اور تازہ ترین فروخت، کارڈ پر بھی اور ہسٹری میں بھی۔ شو کو اپنے Ximilar اکاؤنٹ میں محفوظ کرنے اور بعد میں اس کا جائزہ لینے کے لیے --ximilar-stream NEW لگائیں۔

$ cardstream-web
# → http://127.0.0.1:8001 (کارڈ کیمرے کے سامنے کریں)

# انگریزی Pokémon کارڈز، ایک سیٹ (CRI - Chaos Rising)، USD مارکیٹ قیمتوں کے ساتھ:
$ cardstream-web --game Pokemon --set-code CRI --alphabet latin --price-stats

اوپن سورس۔ سیلف ہوسٹڈ۔ آپ کی اسٹریم، آپ کا اسٹیک۔

بیچ میں کوئی پلیٹ فارم نہیں، فی صارف لائسنس نہیں: Ximilar API یا اپنا پہچان کا سسٹم جوڑیں، اور cardstream اسے ہر فریم پر نہیں، ہر الگ کارڈ پر ایک بار کال کرتا ہے۔ چاہے Whatnot پر باکس بریک ہو، Fanatics Live جیسا شو ہو یا آپ کا اپنا لائیو کامرس سیٹ اپ، cardstream آج رات ہی اسی ہارڈ ویئر پر چلائیں جو آپ کے پاس پہلے سے ہے۔