# আপনার IoT ডিভাইস থেকে আপনার অবজেক্ট ডিটেক্টর কল করুন - ভার্চুয়াল IoT হার্ডওয়্যার এবং রাস্পবেরি পাই আপনার অবজেক্ট ডিটেক্টর প্রকাশিত হওয়ার পর, এটি আপনার IoT ডিভাইস থেকে ব্যবহার করা যেতে পারে। ## ইমেজ ক্লাসিফায়ার প্রজেক্ট কপি করুন আপনার স্টক ডিটেক্টরের বেশিরভাগ অংশই সেই ইমেজ ক্লাসিফায়ারের মতো, যা আপনি পূর্ববর্তী পাঠে তৈরি করেছিলেন। ### কাজ - ইমেজ ক্লাসিফায়ার প্রজেক্ট কপি করুন 1. `stock-counter` নামে একটি ফোল্ডার তৈরি করুন, যদি আপনি ভার্চুয়াল IoT ডিভাইস ব্যবহার করেন তবে আপনার কম্পিউটারে, অথবা রাস্পবেরি পাই-এ। যদি আপনি ভার্চুয়াল IoT ডিভাইস ব্যবহার করেন, তবে একটি ভার্চুয়াল এনভায়রনমেন্ট সেট আপ করতে ভুলবেন না। 1. ক্যামেরা হার্ডওয়্যার সেট আপ করুন। * যদি আপনি রাস্পবেরি পাই ব্যবহার করেন, তবে আপনাকে PiCamera ফিট করতে হবে। আপনি ক্যামেরাটিকে একটি নির্দিষ্ট অবস্থানে স্থির করতে চাইতে পারেন, উদাহরণস্বরূপ, একটি বাক্স বা ক্যানের উপর ক্যাবল ঝুলিয়ে বা ডাবল-সাইডেড টেপ দিয়ে ক্যামেরাটিকে একটি বাক্সে স্থির করে। * যদি আপনি ভার্চুয়াল IoT ডিভাইস ব্যবহার করেন, তবে আপনাকে CounterFit এবং CounterFit PyCamera শিম ইনস্টল করতে হবে। যদি আপনি স্থির ছবি ব্যবহার করতে চান, তবে এমন কিছু ছবি তুলুন যা আপনার অবজেক্ট ডিটেক্টর আগে দেখেনি। যদি আপনি আপনার ওয়েব ক্যাম ব্যবহার করতে চান, তবে এটি এমনভাবে স্থাপন করুন যাতে এটি আপনার ডিটেক্ট করা স্টক দেখতে পারে। 1. ক্যামেরা থেকে ছবি তোলার জন্য [ম্যানুফ্যাকচারিং প্রজেক্টের পাঠ ২](../../../4-manufacturing/lessons/2-check-fruit-from-device/README.md#task---capture-an-image-using-an-iot-device)-এর ধাপগুলো পুনরাবৃত্তি করুন। 1. ইমেজ ক্লাসিফায়ার কল করার জন্য [ম্যানুফ্যাকচারিং প্রজেক্টের পাঠ ২](../../../4-manufacturing/lessons/2-check-fruit-from-device/README.md#task---classify-images-from-your-iot-device)-এর ধাপগুলো পুনরাবৃত্তি করুন। এই কোডের বেশিরভাগ অংশ অবজেক্ট ডিটেক্ট করতে পুনরায় ব্যবহার করা হবে। ## কোডটি ক্লাসিফায়ার থেকে ইমেজ ডিটেক্টরে পরিবর্তন করুন আপনি ইমেজ ক্লাসিফাই করতে যে কোড ব্যবহার করেছেন, তা অবজেক্ট ডিটেক্ট করতে ব্যবহৃত কোডের সাথে খুবই মিল। প্রধান পার্থক্য হলো Custom Vision SDK-তে ব্যবহৃত মেথড এবং কলের ফলাফল। ### কাজ - কোডটি ক্লাসিফায়ার থেকে ইমেজ ডিটেক্টরে পরিবর্তন করুন 1. ইমেজ ক্লাসিফাই এবং প্রেডিকশন প্রসেস করার তিনটি লাইন কোড মুছে ফেলুন: ```python results = predictor.classify_image(project_id, iteration_name, image) for prediction in results.predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%') ``` এই তিনটি লাইন সরিয়ে ফেলুন। 1. ইমেজে অবজেক্ট ডিটেক্ট করার জন্য নিচের কোডটি যোগ করুন: ```python results = predictor.detect_image(project_id, iteration_name, image) threshold = 0.3 predictions = list(prediction for prediction in results.predictions if prediction.probability > threshold) for prediction in predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%') ``` এই কোডটি `detect_image` মেথডকে প্রেডিক্টরের উপর কল করে অবজেক্ট ডিটেক্টর চালায়। এটি একটি থ্রেশহোল্ডের উপরে থাকা সমস্ত প্রেডিকশন সংগ্রহ করে এবং সেগুলো কনসোলে প্রিন্ট করে। একটি ইমেজ ক্লাসিফায়ার যেখানে প্রতি ট্যাগের জন্য একটি মাত্র ফলাফল ফেরত দেয়, সেখানে অবজেক্ট ডিটেক্টর একাধিক ফলাফল ফেরত দেয়। তাই যেগুলোর সম্ভাবনা কম, সেগুলো ফিল্টার করতে হবে। 1. এই কোডটি চালান, এটি একটি ছবি তুলবে, অবজেক্ট ডিটেক্টরে পাঠাবে এবং ডিটেক্ট করা অবজেক্টগুলো প্রিন্ট করবে। যদি আপনি ভার্চুয়াল IoT ডিভাইস ব্যবহার করেন, নিশ্চিত করুন যে CounterFit-এ একটি উপযুক্ত ছবি সেট করা আছে, অথবা আপনার ওয়েব ক্যাম নির্বাচিত আছে। যদি আপনি রাস্পবেরি পাই ব্যবহার করেন, নিশ্চিত করুন যে আপনার ক্যামেরা তাকের উপর থাকা অবজেক্টগুলোর দিকে নির্দেশ করছে। ```output pi@raspberrypi:~/stock-counter $ python3 app.py tomato paste: 34.13% tomato paste: 33.95% tomato paste: 35.05% tomato paste: 32.80% ``` > 💁 আপনার ছবির জন্য উপযুক্ত একটি `threshold` মান নির্ধারণ করতে হতে পারে। আপনি তোলা ছবিটি এবং এই মানগুলো **Predictions** ট্যাবে Custom Vision-এ দেখতে পারবেন। ![তাকের উপর ৪টি টমেটো পেস্টের ক্যান এবং ৪টি ডিটেকশনের জন্য ৩৫.৮%, ৩৩.৫%, ২৫.৭% এবং ১৬.৬% প্রেডিকশন](../../../../../translated_images/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.bn.png) > 💁 আপনি এই কোডটি [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) অথবা [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device) ফোল্ডারে খুঁজে পেতে পারেন। 😀 আপনার স্টক কাউন্টার প্রোগ্রাম সফল হয়েছে! --- **অস্বীকৃতি**: এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।