কম্পিউটার দৃষ্টিভঙ্গি সারা বিশ্বের উদ্যোক্তাদের আগ্রহকে ধরে রেখেছে, এবং সঙ্গত কারণে: আধুনিক এআই প্রযুক্তির সক্ষমতা পূর্বে অসম্ভব ধারণাকে বাস্তব পণ্যে পরিণত করে।
ফটো এবং ভিডিওতে বস্তুর সনাক্তকরণ এবং শ্রেণীবিভাগ করার জন্য অনেকগুলি বিভিন্ন এলাকায় এবং শত শত সিস্টেমে অ্যাপ্লিকেশন পাওয়া গেছে — বিল্ট-ইন ফেসিয়াল রিকগনিশন সহ সুরক্ষা ক্যামেরা থেকে শুরু করে এক্স-রে স্ক্যানের উপর ভিত্তি করে সাধারণ মোবাইল অ্যাপস পর্যন্ত রোগ সনাক্তকরণ।
কিন্তু ভূমিকার সাথে যথেষ্ট, এই নিবন্ধে আমি 'পর্দার অন্তরালে' কীভাবে একটি কম্পিউটার ভিশন পণ্য তৈরি করা হয়, বিশেষ করে একটি জটিল বিষয় শেয়ার করতে চেয়েছিলাম।
আমার বার্ডসি-তে কাজ করার সুযোগ হয়েছে — এমন লোকেদের জন্য একটি পাখি স্বীকৃতি অ্যাপ যারা দেখতে চায় যারা তাদের বাড়ির উঠোনে যায় যখন তারা না দেখছে।
Birdsy হল একটি জটিল, AI-চালিত অ্যাপ যার সাথে রিয়েল-টাইম অবজেক্ট ডিটেকশন এবং শ্রেণীবিভাগ যা দুর্বল হার্ডওয়্যারে চালানো, পাখির ধরন এবং উচ্চ নির্ভুলতার সাথে লিঙ্গ সনাক্ত করতে সক্ষম হওয়া প্রয়োজন।
এই সমস্ত কিছুর পরিপ্রেক্ষিতে, প্রাথমিক ধারণা থেকে অ্যাপ স্টোরগুলিতে অ্যাপটি প্রকাশ করার রাস্তাটি জটিল ছিল — এবং একই সাথে চিত্তাকর্ষক।
আমরা অনেক প্রতিবন্ধকতার মুখোমুখি হয়েছি — ব্যবসা এবং উন্নয়ন উভয় দিক থেকেই — যেগুলি আমি একই প্রকল্পের মুখোমুখি হতে পারে এমন উদ্যোক্তা এবং এআই ডেভেলপারদের সাহায্য করার জন্য এক জায়গায় শেয়ার করার সিদ্ধান্ত নিয়েছি।
শিকারীদের এড়াতে পাখিদের তাদের পরিবেশের সাথে পুরোপুরি মিশে যেতে লক্ষ লক্ষ বছরের বিবর্তন হয়েছে এবং এই ক্ষেত্রে, পাখি পর্যবেক্ষকরা, বন্যপ্রাণীর প্রশংসা করা তাদের পক্ষে কঠিন করে তুলেছে।
কিছু পাখির প্রজাতির মুখোমুখি পর্যবেক্ষণ করার সময়... চঞ্চু সমস্যাযুক্ত হতে পারে, আপনার বাড়ির আরাম থেকে একটি ভিডিও ক্যামেরার মাধ্যমে তাদের পর্যবেক্ষণ করা আমাদের ডানাওয়ালা বন্ধুদের উপভোগ করার একটি সুন্দর উপায়, বিশেষ করে যদি AI কয়েক ঘণ্টার ভিডিও ফুটেজ দেখার প্রয়োজনকে সরিয়ে দেয় এবং পাঠায় যখন একটি পাখি ক্যামেরার ভিউতে প্রবেশ করে তখন আপনি সতর্ক করেন, স্বয়ংক্রিয়ভাবে সনাক্ত করে যে এটি কোন পাখির প্রজাতি।
বার্ডসির দুটি অংশ রয়েছে:
পরিষেবাটিকে আরও সহজলভ্য এবং ব্যবহারে সহজ করতে, পাখি দেখার জন্য যে কোনও ক্যামেরা ব্যবহার করা যেতে পারে। এখানেই আমরা প্রথম সমস্যায় পড়েছিলাম: নিম্ন-মানের ক্যামেরা কারণ সেগুলি সবচেয়ে সাশ্রয়ী এবং সর্বাধিক বিস্তৃত।
যদিও 'কোন ক্যামেরা সীমা' ব্যবহারকারীদের জন্য দুর্দান্ত, এটি আমাদের জন্য একটি চ্যালেঞ্জ উপস্থাপন করেছে, কারণ অবজেক্ট ডিটেকশন মডেল ক্যামেরা চিপসেট ব্যবহার করে চলে।
যেখানে কেউ একটি ভাল চুক্তি পায়, অন্যরা লাঠির সংক্ষিপ্ত প্রান্ত পায়, এই ক্ষেত্রে 'অন্যরা' আমাদের সিভি বিকাশকারী। একটি সস্তা ক্যামেরার সাথে কাজ করা মানে একটি সস্তা চিপসেটের সাথে কাজ করা যা ডিফল্ট নিউরাল নেটওয়ার্ক আর্কিটেকচার ব্যবহার করা অসম্ভব করে তোলে।
একটি টপ-অফ-দ্য-লাইন, কম্পিউটার ভিশন ভিডিও ক্যামেরার গোল্ড স্ট্যান্ডার্ড (NVIDIA Jetson Nano) এর তুলনায় যা প্রায় 120 স্তরের ডিফল্ট YOLO v4 ব্যবহার করতে দেয়, যে ক্যামেরাগুলির সাথে আমাদের কাজ করতে হয়েছিল শুধুমাত্র 22টি স্তরের জন্য অনুমোদিত৷
যেখানে একটি সম্পূর্ণ YOLO v4 নিউরাল নেটওয়ার্ক দুর্দান্ত স্বীকৃতির ফলাফল প্রদান করে, একটি স্ট্রাইপ-ডাউন সংস্করণ খারাপভাবে কাজ করে। আমরা উভয়ই পরীক্ষা করেছি এবং একটি সস্তা চিপসেট ব্যবহার করে এটি চালানোর সময় মডেলের গভীরতা কত কম ছিল তা নিয়ে অপ্রীতিকরভাবে অবাক হয়েছি।
আমরা ডিফল্ট YOLO v4 মডেলের প্রশিক্ষণ দিয়ে শুরু করেছিলাম এবং গ্রাহকের ডেটাসেটে এটি পরীক্ষা করেছিলাম আমরা যে ফলাফলগুলি অর্জন করেছি তা সন্তোষজনক ছিল - 95% mAp, যা কম্পিউটারের দৃষ্টিভঙ্গির বিশ্বে একটি মডেল উৎপাদনে চালু করার জন্য যথেষ্ট।
ক্যামেরার পরামিতিগুলির সাথে মানানসই মডেলটিকে পুনরায় প্রশিক্ষণ দেওয়ার পরে, সনাক্তকরণের গুণমান উল্লেখযোগ্যভাবে হ্রাস পেয়েছে। কিন্তু যন্ত্র যেখানে ব্যর্থ হয় সেখানে মানুষ এগিয়ে যায়।
আমরা পরীক্ষার ডেটাতে নিউরাল নেটওয়ার্ক পরীক্ষা করেছি এবং মিথ্যা ইতিবাচক এবং মিথ্যা নেতিবাচকগুলি দৃশ্যত মূল্যায়ন করেছি। এটি হাইলাইট করেছে যে নেটওয়ার্কের কোথায় জ্ঞানের অভাব ছিল এবং কোথায় এটি সবচেয়ে বেশি ভুল করেছে৷
নেটওয়ার্কটি মানুষ, বিশেষ করে মানুষের হাত, প্রাণী হিসাবে সনাক্ত করতে আগ্রহী ছিল (এবং আমরা এটিকে দোষ দিই না, মানুষ সর্বোপরি প্রাণী)। যদিও, জৈবিক দৃষ্টিকোণ থেকে, এটি সঠিক, শেষ-ব্যবহারকারী তাদের প্রতিবেশীদের চেয়ে পাখি দেখতে বেশি আগ্রহী, তাই আমাদের নেটওয়ার্ককে মানুষকে উপেক্ষা করার এবং পরিবর্তে পাখি এবং স্তন্যপায়ী প্রাণীর উপর ফোকাস করার জন্য শেখানোর কাজ করতে হয়েছিল।
এটি করার জন্য, আমরা নেতিবাচক উদাহরণ যুক্ত করেছি, যার মধ্যে বিভিন্ন কোণে মানুষের ছবি এবং মানুষের হাত রয়েছে।
ক্যামেরাগুলির দুটি মোড রয়েছে: নিয়মিত দিনের মোড যা ফুল-রঙের ছবি তৈরি করে এবং রাতের সময় ইনফ্রারেড মোড, যা কালো এবং সাদা ছবি তৈরি করে। যখন ক্যামেরাটি ইনফ্রারেডে স্যুইচ করে, মডেলটি প্রচুর মিথ্যা ইতিবাচক উৎপন্ন করে:
ব্যবহারকারীরা একটি বিজ্ঞপ্তির মাধ্যমে জেগে উঠলে খুশি হবেন না, একটি পেঁচা বা শেয়ালের দিকে তাকানোর জন্য উত্তেজিত হবেন, কিন্তু ক্যামেরার লেন্সের বিরুদ্ধে একটি পতঙ্গের শরীরে আঘাত করার রেকর্ডিং দেখে শেষ করবেন৷
ঘুমের ব্যাঘাতগুলিকে ন্যূনতম করার জন্য, আমরা রাতের সেটিংসে মিথ্যা ইতিবাচক উদাহরণগুলি সংগ্রহ করেছি এবং সেগুলিকে হাতে চিহ্নিত করেছি।
সোশ্যাল মিডিয়াকে 'হাইলাইট রিল' বলা হয়েছে বলে শুনেছেন যেখানে লোকেরা নিজেদের সেরা সংস্করণ উপস্থাপন করে? কে জানত বন্য প্রাণীদের ক্ষেত্রেও এটি সত্য হতে পারে।
পাখির ছবি যা উন্মুক্ত উত্স থেকে প্রাপ্ত করা যেতে পারে, যেমন গুগল ইমেজ এবং ইউটিউব ভিডিও, সাধারণত উচ্চ মানের, খুব তীক্ষ্ণ এবং নমুনাগুলিকে তাদের সর্বোত্তমভাবে চিত্রিত করে, ক্যামেরার দিকে তাকানো বা অন্ততপক্ষে সামনে অবস্থান করা, পাখির মধ্যে কিছুই নেই এবং ক্যামেরা দৃশ্যে বাধা দেয়।
বাস্তবতা সবসময় সুন্দর হয় না। ক্যামেরাগুলি নিম্নমানের ছবি তৈরি করে যা মানুষের চোখের জন্য কী ঘটছে তা বোঝা কঠিন করে তোলে, বৃষ্টি, তুষার বা ধুলোর মতো খারাপ আবহাওয়া দৃশ্যে বাধা সৃষ্টি করতে পারে এবং আমরা নিশ্চিত যে পাখিরা যখন কেউ সেগুলি ধারণ করতে চায় এবং সম্ভব সবচেয়ে হাস্যকর উপায়ে নিজেদের অবস্থান.
ক্লায়েন্ট যে ডেটাসেট প্রদান করেছে (ইন্টারনেটে পাওয়া শর্ট ইমেজ সমন্বিত) এই প্রকল্পের জন্য খুব বেশি ব্যবহার করা হয়নি।
আমাদের ক্লায়েন্টের ক্যামেরা ব্যবহার করে বাস্তব অবস্থায় পাখির চিত্রের একটি সেট সংগ্রহ করা দরকার ছিল মডেলটি দেখানোর জন্য যে পাখিগুলি আসলে কেমন দেখায় এবং সামাজিক মিডিয়াতে কীভাবে উপস্থাপন করা হয় তা নয়।
সুতরাং, উপরের সমস্ত কাজ করার পরে:
আমরা বস্তু সনাক্তকরণের জন্য একটি 97,5% এমএপি অর্জন করতে পেরেছি। এটি একটি কম্পিউটার ভিশন মডেলের জন্য একটি অত্যন্ত উচ্চ ফলাফল কারণ যেকোন সিভি মডেলের উৎপাদনের জন্য অলিখিত নিয়ম হল 94% এমএপি থাকা।
যদিও আমরা এখন যে ফলাফলগুলি অর্জন করেছি তা চূড়ান্ত পণ্যে ব্যবহার করার জন্য যথেষ্ট বেশি, তবুও উন্নতির জন্য জায়গা রয়েছে।
প্রতিটি গোষ্ঠীর জন্য পর্যাপ্ত ছবি সংগ্রহ করার পরে, আমরা আশা করি mAP বৃদ্ধি পাবে এবং 98,5% এ পৌঁছাবে।
আপনার বাড়ির উঠোন দর্শকদের জানার পরবর্তী ধাপ হল একটি পাখির সাথে একটি বস্তুর শ্রেণীবিভাগের মডেলে ছবি পাঠানো। এর লক্ষ্য পাখির প্রজাতি এবং এর লিঙ্গ সনাক্ত করা।
যেহেতু কিছু পাখির প্রজাতি নির্দিষ্ট মহাদেশে একচেটিয়াভাবে বাস করে, আমরা দুটি মডেল তৈরি করার সিদ্ধান্ত নিয়েছি - একটি উত্তর আমেরিকায় বসবাসকারীদের জন্য এবং একটি ইউরোপে বসবাসকারীদের জন্য৷
প্রাথমিকভাবে, 'হেড-অন' পদ্ধতি ব্যবহার করে বস্তুর শ্রেণীবিভাগের সমস্যাটি সমাধান করা হয়েছিল: নেটওয়ার্কটিকে পুরুষ এবং মহিলা উভয়েরই বিভিন্ন প্রজাতির ছবি দেখানো হয়েছিল, যেখান থেকে তারা দেখতে কেমন এবং প্রতিটি থেকে কীভাবে আলাদা তা জানার চেষ্টা করেছিল। অন্যান্য
এর ফলে খুব দুর্বল নির্ভুলতা স্কোর হয়েছে, অন্য কথায়, পাখি এবং স্তন্যপায়ী প্রজাতি সনাক্ত করার সময় নেটওয়ার্কটি অনেক ভুল করেছে।
নেটওয়ার্ক একই সময়ে অনেক দিক শেখার চেষ্টা করছিল। অনেক পাখির প্রজাতি একে অপরের সাথে খুব মিল দেখায় এবং ভিন্ন রঙের পালকের একক প্যাচ বা ভিন্ন আকৃতির চঞ্চু দ্বারা একে অপরের থেকে আলাদা।
প্রদত্ত পরিস্থিতিতে একই প্রজাতির বিভিন্ন লিঙ্গের চেহারা কেমন তা সহ এই সমস্ত তথ্য ধরে রাখা খুব কঠিন। আরও বিস্তৃত পাখির ধরন সঠিকভাবে নির্ধারণ করার সময় নেটওয়ার্কটি প্রায়শই পাখির প্রজাতিকে মিশ্রিত করে।
উদাহরণস্বরূপ, কালো পালকের প্যাচে একটি হুডযুক্ত ওয়ারব্লার এবং কেনটাকি ওয়ারব্লারের মধ্যে পার্থক্য:
নেটওয়ার্ক একটি হুডযুক্ত ওয়ারব্লারকে কেন্টাকি ওয়ারব্লার হিসাবে লেবেল করবে, একটি ভুল ফলাফল তৈরি করবে, তবে সাধারণত সঠিক: উভয়ই ওয়ারব্লার। সময়ের স্বার্থে, ক্লায়েন্ট সিদ্ধান্ত নিয়েছে যে এটির নির্দিষ্ট প্রজাতির চেয়ে সামগ্রিক পাখির ধরন সনাক্ত করা আরও গুরুত্বপূর্ণ, তাই আমরা এখান থেকেই শুরু করেছি।
মডেল মূল্যায়নের পর, আমরা একটি মাল্টিস্টেজ পদ্ধতি বাস্তবায়ন করার সিদ্ধান্ত নিয়েছি:
পাখির প্রজাতিকে গোষ্ঠীবদ্ধ করার মাধ্যমে, আমরা ক্লাসের সংখ্যা 98 থেকে 49-এ কমিয়ে আনতে পেরেছি, যা নির্ভুলতার স্কোরকে ব্যাপকভাবে উন্নত করেছে কারণ নেটওয়ার্কে বেছে নেওয়ার মতো অনেকগুলি ক্লাস ছিল না।
আপনি যখন একটি নতুন ধারণার মুখোমুখি হন, তখন আপনি বই পড়েন বা শিক্ষামূলক ভিডিও দেখেন তা বোঝার জন্য। আপনি যদি ব্যর্থ হন, আপনি আপনার বন্ধুকে এটি আপনাকে ব্যাখ্যা করতে বলুন বা আপনি এই বিষয়ে একটি সেমিনারে যান। অন্য কথায়, আপনি এটি আরও ভালভাবে বোঝার জন্য এটি সম্পর্কে আরও তথ্য সংগ্রহ করার চেষ্টা করেন।
নিউরাল নেটওয়ার্কের ক্ষেত্রেও একই কথা। একজন ওয়ারব্লার দেখতে কেমন তা বোঝার জন্য আপনার যত ভালো প্রয়োজন, ওয়ারব্লারের আরও বেশি ছবি আপনাকে দেখাতে হবে। এটি যত বেশি ডেটা দেখবে, তত ভাল নির্ভুলতা স্কোর হবে।
আমরা যে মাল্টিস্টেজ পন্থা বেছে নিয়েছি তা শুধুমাত্র অবজেক্ট ক্লাসিফিকেশন মডেলের নির্ভুলতাই উন্নত করেনি বরং ডেটাসেট বিশ্লেষণ করা এবং নেটওয়ার্কে শেখার ডেটার অভাব কোথায় তা নির্ধারণ করা সম্ভব করে তুলেছে।
অবজেক্ট ক্লাসিফিকেশন মডেল চালু হওয়ার পর, আমরা এমন ফলাফল পেয়ে বিস্মিত হয়েছিলাম যা পরীক্ষায় আমাদের দেখানোর চেয়ে অনেক খারাপ ছিল: মডেলটি পাখির প্রজাতি নির্ধারণ করতে পারেনি বা সঠিকভাবে টাইপ করতে পারেনি।
সমস্যাটি এর চেয়েও গভীরে চলে গেছে: পুরো প্রকল্পের দায়িত্বে থাকা আমাদের কম্পিউটার ভিশন বিকাশকারী, যিনি এটিতে কাজ করার সময় নিজেই পাখির সমস্ত প্রজাতি শিখেছেন, তিনি নেটওয়ার্ক দ্বারা ভুলভাবে লেবেল করা ছবিগুলি পেয়ে পাখিগুলি কী তা নির্ধারণ করতেও ব্যর্থ হন। .
দেখা গেল যে জুলাই একটি পাখির শ্রেণিবিন্যাস মডেল চালু করার সেরা সময় নয় কারণ এটি এমন সময় যেখানে কিশোর পাখিরা উড়তে শেখে এবং তাদের বাসা ছেড়ে দেয়।
কুৎসিত হাঁসের বাচ্চার গল্প মনে আছে? ঠিক আছে, এটি বেশিরভাগ পাখির ক্ষেত্রেই সত্য, পালতোলা পাখি প্রাপ্তবয়স্ক পাখির মতো দেখতে কিছুই নয় এবং এটি এখনও অল্প বয়সী হলে আপনি কোন পাখিটিকে দেখছেন তা জানা কঠিন।
আমরা গ্রীষ্মে তরুণ পাখির ছবি সংগ্রহ করেছি এবং বিভিন্ন বয়সে বিভিন্ন পাখির প্রজাতি নির্ধারণের জন্য শ্রেণিবিন্যাস নেটওয়ার্ককে প্রশিক্ষণ দেওয়ার পরিকল্পনা করেছি।
পাখি পর্যবেক্ষকরা একটি উত্সাহী গুচ্ছ, তারা জানে কিভাবে একটি পাখিকে তার একক পালকের আকৃতি দ্বারা সনাক্ত করতে হয়। তাদের কাছে এমন জ্ঞান রয়েছে যা আমাদের শ্রেণীবিভাগের নেটওয়ার্ক থাকার স্বপ্ন দেখে, তাহলে কেন দুজনকে একত্রিত করে একটি পাখি-প্রেমী জোট গঠন করবে না যা বিশ্ব আগে কখনও দেখেনি?
বর্তমানে, শ্রেণীবিভাগ নেটওয়ার্ক শুধুমাত্র ব্যবহারকারীকে পাখির প্রজাতি বলে না, এটি অন্যান্য অনুমানের সাথে আত্মবিশ্বাসের মাত্রাও দেখায়।
ব্যবহারকারী নেটওয়ার্কের অনুমান নিশ্চিত করতে বা এটি সংশোধন করতে পারে, এইভাবে আমাদের এটিকে প্রশিক্ষণ দিতে সাহায্য করে - একবারে একটি পাখি। 3 মাস ধরে ইউজার ফিডব্যাক সিস্টেম চালানোর পর, আমরা 20 হাজারেরও বেশি ছবি সংগ্রহ করেছি। এই তথ্যটি আমাদের কাছে অমূল্য কারণ ফটোগুলি বাস্তব জীবনের পরিস্থিতিতে (খারাপ আবহাওয়া, রাতে, ইত্যাদি) তৈরি করা হয়েছে এবং বিশেষজ্ঞদের দ্বারা চিহ্নিত করা হয়েছে৷
এটি লক্ষণীয় যে এই প্রকল্পের সময়, আমরা নিজেরাই পাখি বিশেষজ্ঞ হয়েছি। সারাদিন পাখির দিকে তাকানো, মূলত একটি ভার্চুয়াল শিশুকে বিভিন্ন ধরণের চড়ুইয়ের মধ্যে সমস্ত সামান্য পার্থক্য সম্পর্কে শিক্ষিত করার সময়, একজনকে পাখি পর্যবেক্ষণ সম্প্রদায়ের তাত্ক্ষণিক প্ল্যাটিনাম সদস্য করে তোলে৷
অন্য সব ব্যর্থ হলে, আমাদের সিভি দলের সদস্যরা সহজেই পাখিবিদ্যায় নিজেদের খুঁজে পেতে পারেন।
একটি গুরুতর নোটে, পাখির হাজার হাজার চিত্রের মাধ্যমে তাকানো, তা ডেটাসেট মার্কআপের জন্যই হোক বা নেটওয়ার্কটি কোথায় সবচেয়ে বেশি ভুল করে তা বিশ্লেষণ করার জন্য, আমরা এই প্রকল্পের গভীরে অনুসন্ধান করেছি এবং কেবল পাখির জ্ঞানের একটি গুচ্ছ দিয়েই নয় বরং অন্য প্রান্ত থেকে বেরিয়ে এসেছি। কীভাবে জটিল চিত্র সনাক্তকরণ এবং শ্রেণিবিন্যাস সিস্টেমগুলি কাজ করে, কীভাবে সেগুলিকে সর্বোত্তমভাবে প্রয়োগ করতে হয়, কীভাবে একটি বড় ডেটাসেট বিশ্লেষণ করতে হয় এবং এর দুর্বল পয়েন্টগুলি খুঁজে বের করতে হয় সে সম্পর্কে আরও ভাল ধারণা।
এই প্রকল্পটি আমাদের জন্য অমূল্য ছিল গবেষণা করার এবং সাম্প্রতিকতম কম্পিউটার ভিশন প্রযুক্তির সাথে কাজ করার, রিয়েল-টাইম গ্রাহকের প্রতিক্রিয়ার সাথে কাজ করার এবং পুরানো কোডের সাথে কাজ করার সময় আমাদের সমস্যা সমাধানের দক্ষতা পোলিশ করার সুযোগ হিসাবে।