cardstream
सवाल-जवाब

अक्सर पूछे जाने वाले सवाल

वे सवाल जो सबसे ज़्यादा पूछे जाते हैं: इंस्टॉल करना और हटाना, खर्च, आपकी मशीन से बाहर क्या जाता है, और यह क्या-क्या पहचान सकता है। इससे लंबी हर बात डॉक्स हब में है।

इंस्टॉल और हटाना

इंस्टॉल, अपडेट, अनइंस्टॉल

इंस्टॉल स्क्रिप्ट आपकी मशीन पर ठीक दो जगहों को छूती है, और दोनों को आप जब चाहें मिटा सकते हैं।

इसे चलाने के लिए मुझे क्या चाहिए?

Python 3.11 या उससे नए वर्शन वाली एक मशीन, और लगभग इतना ही। macOS arm64, Linux amd64 और Windows amd64, तीनों एक ही pure-Python रिलीज़ से चलते हैं, और GPU ज़रूरी नहीं। सिस्टम की ffmpeg बाइनरी सिर्फ़ पुल और लिसन वाले सोर्स (RTSP, RTMP, SRT) के लिए चाहिए; वेबकैम, फ़ाइल या ब्राउज़र UI को इसकी ज़रूरत नहीं।

इंस्टॉल स्क्रिप्ट चीज़ें कहां रखती है?

दो जगह। ~/.cardstream इंस्टॉल का मूल फ़ोल्डर है: venv/ में एक virtualenv और models/ में मॉडल वेट्स। दोनों कमांड, cardstream-web और cardstream-client, असल में ~/.local/bin में लिखे गए छोटे-छोटे शिम हैं; वे मॉडल के पाथ पहले से भरकर venv की बाइनरी चलाते हैं, इसलिए आपका दिया कोई भी फ़्लैग पहले से भरी वैल्यू पर भारी पड़ता है। दोनों जगहें CARDSTREAM_HOME और INSTALL_DIR से बदली जा सकती हैं। मशीन पर और कुछ नहीं छुआ जाता। खास तौर पर, स्क्रिप्ट आपकी शेल प्रोफ़ाइल को कभी नहीं बदलती: ~/.local/bin आपके PATH में न हो तो वह बस एक सूचना दिखाती है और बदलाव आप पर छोड़ देती है।

नए वर्शन पर अपडेट कैसे करूं?

वही एक लाइन की कमांड दोबारा चलाएं। वह मौजूदा virtualenv में ताज़ा रिलीज़ इंस्टॉल करती है और शिम दोबारा लिख देती है। ~/.cardstream/models में पहले से पड़े वेट्स को छुआ नहीं जाता (वे तभी डाउनलोड होते हैं जब मौजूद न हों), इसलिए अपडेट एक छोटा डाउनलोड है, दोबारा चौथाई गीगाबाइट नहीं। सबसे नई रिलीज़ की जगह कोई खास रिलीज़ चाहिए तो CARDSTREAM_VERSION सेट करें।

# वही एक लाइन की कमांड; /install.sh, 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

इसे अनइंस्टॉल कैसे करूं?

दो कमांड। पहली virtualenv और मॉडल वेट्स हटाती है, दूसरी दोनों शिम। इसके अलावा साफ़ करने को कुछ नहीं है: न कोई डीमन, न लॉगिन आइटम, न सिस्टम पैकेज।

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

अगर आपने CARDSTREAM_HOME या INSTALL_DIR सेट करके इंस्टॉल किया था, तो उनकी जगह वही पाथ हटाएं, और शिम किसी सिस्टम डायरेक्टरी में रखे थे तो sudo लगाएं। जो कुछ आपने खुद हाथ से जोड़ा था, उसे हटाना भी आपके ही हाथ में है: शेल प्रोफ़ाइल में PATH की लाइन, XIMILAR_API_KEY का export, और वह फ़ोल्डर जो आपने --store-images को दिया था। ऐप आपकी होम डायरेक्टरी में और कुछ नहीं लिखता। नया शेल खोलकर command -v cardstream-web से जांच लें कि यह हट गया है; पुराना शेल hash -r चलाने तक पुराना पता याद रखता है।

कुंजी और खर्च

इसका खर्च क्या है और इसे क्या चाहिए

बीच में कोई प्लेटफ़ॉर्म नहीं: हार्डवेयर आपका, कुंजी आपकी, और एक ऐसा इंजन जिसका काम ही है कम से कम कॉल करना।

क्या मुझे Ximilar API कुंजी चाहिए?

डिफ़ॉल्ट पहचान के लिए हां, और पूरे सिस्टम को बस यही एक क्रेडेंशियल चाहिए। ximilar.com से कुंजी लें और शुरू करने से पहले उसे XIMILAR_API_KEY के रूप में export कर दें। अगर आप इसकी जगह अपनी पहचान सेवा जोड़ते हैं, तो आपको वही चाहिए जो उस एंडपॉइंट को चाहिए, Ximilar से कुछ नहीं।

$ export XIMILAR_API_KEY=your-key

cardstream का अपना खर्च क्या है?

कुछ नहीं। न सब्सक्रिप्शन, न प्रति-यूज़र लाइसेंस, न प्लेटफ़ॉर्म फ़ीस: उदार लाइसेंस वाला एक Python पैकेज जिसे आप अपने हार्डवेयर पर चलाते हैं, और डिटेक्शन के वेट्स जो रिलीज़ के साथ Apache-2.0 के तहत प्रकाशित हैं। पैसा आप उन पहचान कॉल का देते हैं जो आपके जोड़े हुए एंडपॉइंट को जाती हैं, और इस गिनती को कम रखना ही लोकल इंजन का पूरा मकसद है: आपके दिखाए हर अलग कार्ड पर करीब एक कॉल, यानी एक घंटे में करीब सौ, जबकि 15 fps पर हर फ़्रेम भेजने वाली सीधी-सादी पाइपलाइन 54,000 कॉल भेज देती। शो को अपने Ximilar अकाउंट में सेव करने पर हर शो के लिए एक सेशन शुरू करने का बिल जुड़ता है; रीस्टार्ट के बाद उसे जारी रखना मुफ़्त है।

क्या अपने मॉडल या अपना पहचान सिस्टम इस्तेमाल किया जा सकता है?

दोनों। कार्ड लोकेटर और आइडेंटिटी गेट बैकएंड के हिसाब से चलते हैं: साथ आने वाला RF-DETR .onnx एक्सपोर्ट, RT-DETRv2 का एक्सपोर्ट, या जब तक आप फ़ाइनट्यून पर काम कर रहे हों तब तक transformers डायरेक्टरी या hub id। उसके पीछे का पहचान स्टेप बस एक एंडपॉइंट है, इसलिए उसे अपनी पहचान सेवा की ओर मोड़ने पर भी उससे पहले लगा हर गेट, थ्रॉटल और कूलडाउन जस का तस रहता है। मॉडल बैकएंड और मॉडल कैटलॉग देखें।

चलाना

हार्डवेयर, स्ट्रीम और सुरक्षा

यह आपके शो के साथ-साथ उसी मशीन पर चलता है जिससे आप पहले से स्ट्रीम करते हैं।

क्या मुझे GPU चाहिए?

नहीं। साथ आने वाले वेट्स CPU के हिसाब से बने ONNX एक्सपोर्ट हैं, और लोकल इंजन का हर काम (मोशन गेट, डिटेक्शन थ्रॉटल, और वह एम्बेडिंग जो “वही कार्ड या नया कार्ड?” का जवाब देती है) उसी प्रोसेसर पर चलता है जो आपके पास पहले से है। ज़्यादा सटीकता वाले अपने वेट्स के लिए GPU एक विकल्प है, पर डिफ़ॉल्ट के लिए वह कभी ज़रूरी नहीं।

क्या यह Whatnot या Fanatics Live के साथ चलता है?

हां, पर मार्केटप्लेस से जुड़कर नहीं: यह उसी वीडियो से काम लेता है जो आप पहले से बना रहे हैं। OBS का वर्चुअल कैमरा, प्लेटफ़ॉर्म को जा रहे आउटपुट के साथ एक दूसरा RTMP या SRT आउटपुट, एन्कोडर से RTSP पुल, या बस उसी मैट की ओर लगा इसका अपना कैमरा। लाइव सेलिंग गाइड में चारों तरीके शुरू से आखिर तक समझाए गए हैं।

मेरी मशीन से असल में बाहर क्या जाता है?

क्लाइंट-साइड मोड में हर अलग कार्ड का एक JPEG क्रॉप: न स्ट्रीम, न उसके आसपास के फ़्रेम, न मैट का बाकी हिस्सा। कुछ भेजना है या नहीं, इसका हर फ़ैसला पहले लोकल होता है, इसलिए जिस एक घंटे के वीडियो में आप सौ कार्ड दिखाते हैं, उससे बस सौ छोटी रिक्वेस्ट जाती हैं। इकलौता अपवाद वह है जिसे आप खुद चालू करते हैं: --ximilar-stream के साथ शो की हिस्ट्री (हर कार्ड की एक टेक्स्ट पंक्ति और वह क्रॉप जिससे वह पहचाना गया) आपके अपने Ximilar अकाउंट के एक सेशन में भी सेव होती है। यह डिफ़ॉल्ट रूप से बंद है, और --no-ximilar-stream-images लगाने पर सिर्फ़ टेक्स्ट जाता है।

क्या शो को बाद में दोबारा देखा जा सकता है?

हां, अगर आप उसे सेव करें। --ximilar-stream NEW के साथ शुरू करें और हिस्ट्री में दिखने वाला हर कार्ड (अपनी कीमत, स्ट्रीम पर समय और उस क्रॉप के साथ जिससे वह पहचाना गया) शो चलते-चलते आपके Ximilar अकाउंट के एक सेशन में जाता रहता है। बाद में Ximilar ऐप का Cardstream सेक्शन खोलें: शो का मूल्य, उसके सबसे कीमती प्रोडक्ट और सबसे ज़्यादा आए सेट, हर कार्ड अपनी तस्वीर के साथ; जो बिका उस पर निशान लगाएं और गलत मिलान ठीक करें। शो के बीच में रीस्टार्ट करना पड़ा? NEW की जगह सेशन id दें और शो वहीं से चलता रहता है, भले ही सेशन बंद हो चुका हो। टीम वर्कस्पेस में सेव करने के लिए --ximilar-workspace है। पूरी जानकारी।

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

क्या इसे LAN पर चलाया जा सकता है, ताकि दूसरी मशीन UI खोल सके?

ऐसा न करें। वेब UI में कोई ऑथेंटिकेशन नहीं है और आपकी API कुंजी उसी के पास रहती है, इसलिए उसकी जगह 127.0.0.1 ही है, और कहीं नहीं। कंटेनर भीतर से 0.0.0.0 पर बाइंड होता है, इसीलिए डॉक्स में दी गई docker run पोर्ट को सिर्फ़ 127.0.0.1 पर पब्लिश करती है। अगर आपको यह सचमुच दूसरी मशीन से चाहिए, तो पोर्ट खोलने की जगह इसके आगे ऑथेंटिकेशन वाला अपना टनल लगाएं।

$ docker run --rm -e XIMILAR_API_KEY -p 127.0.0.1:8001:8001 \
    -v cardstream-models:/models cardstream
पहचान

यह क्या पहचानता है, और कितने भरोसे से

हर मिलान अपने रॉ डिस्टेंस, अपने स्तर और उन कार्डों के साथ आता है जो उसकी जगह हो सकते थे।

यह कौन-से कार्ड पहचान सकता है?

चार कैटेगरी, एक स्विच। ट्रेडिंग कार्ड गेम: Pokémon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana और करीब बीस दूसरे गेम, जिनके नए और विंटेज सिंगल कार्ड सीधे स्ट्रीम से पढ़े जाते हैं। हर बड़े खेल के स्पोर्ट्स कार्ड, पैरेलल और साल तक की बारीकी के साथ। ग्रेडेड स्लैब, जिनका लेबल केस तोड़े बिना पढ़ा जाता है। और कॉमिक्स, टाइटल, अंक और साल से। एक फ़्लैग कैटेगरी चुनता है, या सेटिंग्स डायलॉग उसे स्ट्रीम के बीच में बदल देता है। पूरी लिस्ट देखें।

जब यह गलत कार्ड बता दे, तब क्या होता है?

आपको पहले ही दिख जाता है। हर मिलान के साथ रॉ डिस्टेंस और High / Medium / Low का एक स्तर आता है (सीमाएं 0.30 और 0.40 पर हैं), और साथ में ऐसे चार तक वैकल्पिक कार्ड जो उसकी जगह हो सकते थे; सही कार्ड अक्सर उसी छोटी लिस्ट में होता है। नतीजे का थ्रेशोल्ड सेट कर दें और उससे नीचे का कुछ भी ओवरले तक पहुंचता ही नहीं। अगर पूरा शो एक ही गेम या एक ही सेट का है, तो प्रीफ़िल खोज शुरू होने से पहले ही उसका दायरा घटा देते हैं: गेम, सेट कोड या लिपि बता दें और एंडपॉइंट इनका अंदाज़ा लगाना बंद कर देता है।

ओपन सोर्स। सेल्फ़-होस्टेड। स्ट्रीम आपकी, स्टैक आपका।

बीच में कोई प्लेटफ़ॉर्म नहीं, प्रति-यूज़र लाइसेंस नहीं: Ximilar API या अपना पहचान सिस्टम जोड़ें, और cardstream उसे हर फ़्रेम पर नहीं, हर अलग कार्ड पर एक बार कॉल करता है। आप Whatnot पर बॉक्स ब्रेक करते हों, Fanatics Live जैसा शो चलाते हों या अपने लाइव कॉमर्स सेटअप से स्ट्रीम करते हों, cardstream को आज रात ही उसी हार्डवेयर पर चलाएं जो आपके पास पहले से है।