ভিডিও আন্ডারস্ট্যান্ডিং (Video understanding) একসাথে দুটি কঠিন প্রশ্ন জিজ্ঞাসা করে। ফ্রেমের ভেতরে কী আছে, এবং এটি কোথায় যাচ্ছে? কম্পিউটার ভিশন সিস্টেমগুলো ঐতিহ্যগতভাবে এই প্রশ্নগুলোর উত্তর একে একে দিয়ে থাকে। প্রথমে তারা সেগমেন্ট (segment) করে, পিক্সেল থেকে অবজেক্টগুলোকে আলাদা করে। তারপর তারা ট্র্যাক (track) করে, সময়ের সাথে সেই অবজেক্টগুলোকে সংযুক্ত করে। এই বিভাজন ঘর্ষণ বা সমস্যা তৈরি করে। প্রথম ধাপের ভুলগুলো দ্বিতীয় ধাপে প্রভাব ফেলে। সীমানা পরিবর্তিত হয়। পরিচয় বদলে যায়। যখন মানুষ বা যানবাহন একে অপরের ওপর দিয়ে যায় (overlap), পুরো পাইপলাইনটি অচল হয়ে পড়ে।
মাল্টি-কাট ফরমুলেশন (multi-cut formulations) সংক্রান্ত সাম্প্রতিক কাজ একটি ভিন্ন পথ দেখায়। দুটি মডেলকে চেইন বা পর্যায়ক্রমে ব্যবহার করার পরিবর্তে, এটি সেগমেন্টেশন এবং ট্র্যাকিংকে একটি একক অপ্টিমাইজেশন সমস্যা হিসেবে উপস্থাপন করে। এর ফলে সীমানা আরও নিখুঁত হয়, আইডেন্টিটি পরিবর্তনের হার কমে এবং দৃশ্য যখন জনাকীর্ণ বা জটিল হয়ে ওঠে, তখনও পাইপলাইনটি অটুট থাকে।
পাইপলাইনের সমস্যা
বেশিরভাগ প্রোডাকশন সিস্টেম প্রথমে ডিটেকশন বা সেগমেন্টেশন চালায়, তারপর আউটপুটটি একটি ট্র্যাকিং মডিউলকে হস্তান্তর করে। এই হস্তান্তরের সময়ই সমস্যাগুলো দেখা দেয়। স্থির ছবির ওপর প্রশিক্ষিত একটি সেগমেন্টেশন মডেল দশ নম্বর ফ্রেমে একটি মাস্ক তৈরি করতে পারে যা কিছুটা বড়, এবং এগারো নম্বর ফ্রেমে সেটি কিছুটা ছোট হতে পারে। একটি ট্র্যাকার যা শুধুমাত্র বক্স সেন্টার বা এমবেডিং ডিস্টেন্সের ওপর নির্ভর করে, তাকে সিদ্ধান্ত নিতে হয় যে ওই দুটি মাস্ক একই অবজেক্টের কি না। সেগমেন্টারকে এটি বলার কোনো উপায় তার নেই যে সীমানাটি ভুল দেখাচ্ছে। এই দুটি সিস্টেম একে অপরের সাথে যোগাযোগ করতে পারে না।
অবজেক্টগুলো যখন একে অপরের সাথে মিথস্ক্রিয়া (interact) করে, তখন এই বিভাজনটি জটিল হয়ে ওঠে। একটি রাস্তার মোড়ের কথা ভাবুন যেখানে পথচারীরা একে অপরের পাশ দিয়ে চলাফেরা করছে, অথবা একটি রোবোটিক আর্ম একটি নির্দিষ্ট অংশ ধরার জন্য বক্সের স্তূপের ওপর দিয়ে হাত বাড়াচ্ছে। এই মুহূর্তগুলোতে, ঐতিহ্যগত ট্র্যাকারগুলো আইডেন্টিটি বজায় রাখতে মোশন মডেল বা অ্যাপিয়ারেন্স ফিচারের ওপর নির্ভর করে। যখন অক্লুশন (occlusion) বা কোনো কিছু দ্বারা ঢাকা পড়া কয়েক ফ্রেমের বেশি স্থায়ী হয়, তখন সেই সংকেতগুলো অকার্যকর হয়ে পড়ে। ট্র্যাকারটি হয় একই অবজেক্টের জন্য একটি নতুন পরিচয় তৈরি করে অথবা অন্য কোনো অবজেক্টের ওপর সেই পরিচয়টি চাপিয়ে দেয়। এদিকে, সেগমেন্টার মাস্ক তৈরি করতে থাকে, সে জানেই না যে লেবেলগুলো বিচ্যুত হয়ে গেছে। এই বিচ্যুতি সংশোধন করতে হলে ভারী পোস্ট-প্রসেসিং বা ম্যানুয়াল অ্যানোটেশনের প্রয়োজন হয়, যা অটোমেশনের মূল উদ্দেশ্যকেই ব্যর্থ করে দেয়।
ঐতিহ্যগত মডেলগুলো প্রায়শই তখনই ট্র্যাক হারিয়ে ফেলে যখন অবজেক্টগুলো একে অপরের ওপর দিয়ে যায়। এই ভুলগুলো এলোমেলো নয়; এগুলো কাঠামোগত। যে পাইপলাইন সময়কে একটি গৌণ বিষয় হিসেবে বিবেচনা করে, তার ধারাবাহিকতা বজায় রাখতে সমস্যা হওয়া অনিবার্য।
মাল্টি-কাট যা নিয়ে আসে
একটি মাল্টি-কাট ফরমুলেশন সেগমেন্টেশন এবং ট্র্যাকিংয়ের মধ্যকার দেয়ালটি ভেঙে দেয়। বিচ্ছিন্ন মাস্কের একটি সিকোয়েন্স তৈরি করে পরে সেগুলোকে জোড়া দেওয়ার পরিবর্তে, এই পদ্ধতিটি একটি গ্রাফ তৈরি করে যা স্থান এবং সময় উভয়কেই বিস্তৃত করে। প্রতিটি ফ্রেমের প্রতিটি সম্ভাব্য অবজেক্ট অঞ্চল একটি নোড (node) হিসেবে কাজ করে। এজগুলো (edges) এমন অঞ্চলগুলোকে সংযুক্ত করে যা একই সত্তার অংশ হতে পারে, একটি একক ফ্রেমের মধ্যে এবং ধারাবাহিক ফ্রেমগুলোর মধ্যেও। এরপর অ্যালগরিদমটি সেই এজগুলোকে কাটার সর্বোত্তম উপায় খুঁজে বের করে যাতে অবশিষ্ট সংযুক্ত অংশগুলো ভিডিওর মাধ্যমে স্বাভাবিকভাবে চলাফেরা করা সামঞ্জস্যপূর্ণ অবজেক্ট গঠন করে।
যেহেতু সিদ্ধান্তটি গ্লোবাল (global), তাই পনেরো নম্বর ফ্রেমের একটি সীমানা সংশোধন পাঁচ নম্বর ফ্রেমের তথ্যের দ্বারা প্রভাবিত হতে পারে। যদি দুজন মানুষ একে অপরকে অতিক্রম করে, তবে ফরমুলেশনটিকে শুধুমাত্র গতির (velocity) ওপর ভিত্তি করে অনুমান করতে হয় না। এটি একসাথে অ্যাপিয়ারেন্স, আকৃতি, গতি এবং সীমানার সামঞ্জস্যতা (boundary coherence) বিবেচনা করে। মাস্কের গুণমান এবং ট্র্যাকের গুণমান একই অবজেক্টিভের অধীনে অপ্টিমাইজ করা হয়। সলভার যখন একটি আইডেন্টিটির জন্য সিদ্ধান্ত নেয়, তখন সে ইতিমধ্যে যাচাই করে নেয় যে সংশ্লিষ্ট পিক্সেলগুলো স্থানিক দিক থেকে (spatially) যুক্তিযুক্ত কি না। এই কাপলিং বা সংযোগই ফ্রেমওয়ার্কটিকে সেই সব অক্লুশন থেকে কাটিয়ে উঠতে সাহায্য করে যা একটি পাইপলাইন পদ্ধতিকে অচল করে দিত।
ভিজ্যুয়াল ডেটাকে সরাসরি ট্র্যাকিং লজিকের সাথে যুক্ত করার ফলে ফিডব্যাক লুপটি সম্পন্ন হয়। সেগমেন্টেশন ট্র্যাকিংকে তথ্য প্রদান করে এবং ট্র্যাকিংয়ের সীমাবদ্ধতাগুলো (constraints) সেগমেন্টেশনকে পরিমার্জিত করে। আপনি কম ম্যানুয়াল কারেকশন বা সংশোধনের মাধ্যমে আরও নির্ভুল ফলাফল পাবেন কারণ সিস্টেমটি প্রতিটি ধাপে আর বিচ্ছিন্নভাবে অনুমান করে না।
এটি বাস্তবে কোথায় ব্যবহৃত হয়
একটি ইউনিফাইড ফরমুলেশনের সুবিধাগুলো কেবল তাত্ত্বিক নয়। এগুলো প্রয়োগের ক্ষেত্রে প্রতিনিয়ত আসা তিনটি নির্দিষ্ট ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ।
ফ্রেম-টু-ফ্রেম সামঞ্জস্যতা (Frame-to-frame consistency)। স্পোর্টস অ্যানালিটিক্সে, একজন অ্যাথলেটের সিলুয়েট (silhouette) নিখুঁত থাকা প্রয়োজন যাতে স্ট্রাইড লেন্থ (stride length) বা জয়েন্ট অ্যাঙ্গেলের (joint angles) মতো বায়োমেকানিক্যাল মেট্রিক্সগুলো নির্ভরযোগ্যভাবে সংগ্রহ করা যায়। যদি সেগমেন্টেশন ট্র্যাকিংয়ের সাথে সামঞ্জস্য না রেখে অস্থিরতা দেখায়, তবে এর ফলে প্রাপ্ত কাইনমেটিক্স (kinematics) ত্রুটিপূর্ণ বা নয়েজি (noisy) হয়ে পড়ে। একটি ইউনিফাইড ফরমুলেশন পুরো ক্লিপ জুড়ে অ্যাথলেটের আউটলাইনকে একটি অবিচ্ছিন্ন সত্তা হিসেবে বিবেচনা করে সেই সমস্যাটি দূর করে।
জনাকীর্ণ দৃশ্য। নজরদারি এবং জনসমাগম গণনার অ্যাপ্লিকেশনগুলো যখন মানুষ একত্রে ভিড় করে, তখন তাদের নির্ভুলতা কমে যায়। আলাদা আলাদা ট্র্যাকারগুলো প্রায়ই পরিচয় বা আইডেন্টিটি মিশিয়ে ফেলে অথবা শরীরের মাঝখানের ফাঁকা জায়গায় কাল্পনিক অবজেক্ট তৈরি করে। ভিজ্যুয়াল এভিডেন্স বা দৃশ্যমান প্রমাণকে সরাসরি ট্র্যাকিং লজিকের সাথে যুক্ত করার মাধ্যমে, multi-cut পদ্ধতি জনাকীর্ণ দৃশ্যে অবজেক্টের পরিচয় আরও ভালোভাবে বজায় রাখে। এমনকি যখন তাদের bounding boxes গুলো প্রায় সম্পূর্ণভাবে একে অপরের ওপর উঠে আসে, তখনও ব্যক্তিরা স্বতন্ত্র থাকে।
সীমানার অখণ্ডতা। রোবোটিক্সে, একটি pick-and-place সিস্টেমের গ্রাস্প (grasp) করার পরিকল্পনা করার জন্য অবজেক্টের সঠিক কন্টুর প্রয়োজন। একটি segmentation মডেল যদি temporal context উপেক্ষা করে, তবে সেটি ব্যাকগ্রাউন্ডের অংশ অন্তর্ভুক্ত করতে পারে অথবা কোনো বস্তুর কোণা কেটে ফেলতে পারে। যখন segmentation এবং tracking একটি একক লক্ষ্য শেয়ার করে, তখন মডেলটি শেখে যে সীমানাগুলো সময়ের সাথে স্থিতিশীল হওয়া উচিত। এর ফলে প্রাপ্ত মাস্কগুলো প্রকৃত প্রান্তের সাথে আরও নিখুঁতভাবে মিলে যায়, যার অর্থ হলো গ্রাস্পিংয়ের ব্যর্থতা কম হবে এবং অতিরিক্ত সেফটি মার্জিন রাখার প্রয়োজন কম পড়বে।
আরও উন্নত পাইপলাইন তৈরি করা
ভিডিও অ্যানালাইসিস বা রোবোটিক্সে কর্মরত ইঞ্জিনিয়ারদের জন্য, এই পরিবর্তনটি আপনার সিস্টেম আর্কিটেকচার করার পদ্ধতিতে সুনির্দিষ্ট প্রভাব ফেলবে।
Detection, segmentation, এবং tracking-কে তিনটি আলাদা microservices হিসেবে ভাবা বন্ধ করুন যা একটি কনভেয়ার বেল্টের মতো tensors পাস করে। এর পরিবর্তে এমন ফ্রেমওয়ার্ক খুঁজুন যা একটি যৌথ লক্ষ্য (joint objective) প্রকাশ করে। আপনি যদি একটি কাস্টম পাইপলাইন তৈরি করেন, তবে বিবেচনা করুন যে আপনার গ্রাফ স্ট্রাকচার একই loss-এর মধ্যে spatial affinity এবং temporal continuity উভয়কেই এনকোড করতে পারে কি না। এমনকি আপনি যদি নিজে সম্পূর্ণ multi-cut solver ইমপ্লিমেন্ট না করেন, তবুও এই নীতিটি কার্যকর। এমন কিছু constraints যোগ করুন যা সময়ের সাথে অবজেক্টের উপস্থিতি বা appearance-কে প্রতিটি ফ্রেমের মাস্কের গুণমানের সাথে যুক্ত করে।
Occlusion-এর ক্ষেত্রে কঠোরভাবে পরীক্ষা করুন। সাধারণ প্যাটার্নে চলা বিচ্ছিন্ন অবজেক্ট সম্বলিত একটি ডেমো ভিডিও পাইপলাইনড অ্যাপ্রোচের দুর্বলতাগুলো প্রকাশ করবে না। এমন সিকোয়েন্স সংগ্রহ করুন যেখানে টার্গেটগুলো একে অপরের ওপর উঠে আসে, যেখানে occlusion-এর মাঝপথে আলোর পরিবর্তন ঘটে এবং যেখানে অবজেক্টগুলো স্ক্রিনের বাইরে থেকে পুনরায় প্রবেশ করে। এই মুহূর্তগুলোই একটি জোড়া লাগানো পাইপলাইন এবং একটি সত্যিকারের একীভূত পাইপলাইনের মধ্যে পার্থক্য তৈরি করে।
আপনার annotation কৌশলটি সাবধানে প্রস্তুত করুন। Joint মডেলগুলোর প্রায়ই pure segmentation বা pure tracking ডেটাসেটের তুলনায় ভিন্ন ধরনের ground truth স্ট্রাকচারের প্রয়োজন হয়। আপনার হয়তো প্রতিটি ইমেজের pixel classes-এর পাশাপাশি ফ্রেমগুলোর মধ্যে instance identities ধারাবাহিকভাবে লেবেল করার প্রয়োজন হতে পারে। শুরুতে এই লেবেলিংয়ে বিনিয়োগ করলে পরবর্তীতে deployment-এর সময় ম্যানুয়াল কারেকশন বা হাতে কলমে সংশোধনের প্রয়োজনীয়তা কমে যাবে।
মূল শিক্ষা
Segmentation এবং tracking-কে স্বতন্ত্র কাজ হিসেবে বিবেচনা করা তখনই যুক্তিযুক্ত ছিল যখন compute এবং model capacity সীমিত ছিল। এখন আর তা নয়। একটি multi-cut formulation দেখায় যে এই দুটি কাজ আসলে একটিই: সময়ের সাথে টিকে থাকা সুসংগত অবজেক্ট খুঁজে বের করা। এগুলোকে একসাথে সমাধান করার মাধ্যমে আপনি এমন মাস্ক পাবেন যা মোশনের সাথে সামঞ্জস্যপূর্ণ এবং এমন ট্র্যাক পাবেন যা শেপের সাথে সামঞ্জস্যপূর্ণ। এর ফলে এমন একটি video understanding pipeline তৈরি হয় যা ফ্রেমগুলোর মধ্যে ত্রুটি কমায়, চলন্ত অবজেক্টের চারপাশে আরও পরিষ্কার সীমানা তৈরি করে এবং occlusion ও ভিড়ের জটিল বাস্তবতার মধ্যেও নির্ভুল থাকে।
