somewhere in... blog
x
ফোনেটিক ইউনিজয় বিজয়

মেশিনকে দেয়া একজোড়া ভাল চোখ - 5: ডিজিটালের উপর এ্যানালগ ফিটিঙ

১৫ ই জুলাই, ২০০৬ ভোর ৪:০৪
এই পোস্টটি শেয়ার করতে চাইলে :

**(এই লেখাটা 'মেশিনকে দেয়া একজোড়া ভাল চোখ - 1 - 4' এর পরবর্তী অংশ;
আজ একটা কঠিন বিষয় খুব সহজ করে লেখার নিয়ত নিয়ে নামছি;
জানিনা বোঝানো যাবে কিনা!!
)
////////////////////////////////////////////////

প্রথমে একটু ব্যায়াম করে নিই আসুন;

কাগজকলম নিয়ে বসে ছোট বেলায় যে কাটাকুটি খেলতেন সেরকম করে পাশাপাশি 11 ঘর, উপরে নিচে 11 ঘরের একটা ছক এঁকে ফেলুন।

এই ছকটাই আসলে একটা ইমেজের Structure; ইমেজটার সাইজ হলো 11 x 11;

এখন, এই ছকটার সর্ববামের সবার উপরের ঘরটিতে একটা চিনহ দিন;
এই ঘরটিকে এখন থেকে আমরা বলব ইমেজ/ছকের (1,1) নম্বর কম্পোনেন্ট;
একঘর ডানে মুভ করুন;
এই ঘরটিকে বলব (2,1) নম্বর কম্পোনেন্ট;
এখন (2,1) নম্বর কম্পোনেন্ট ঘর থেকে একঘর নিচে নামুন;
এটি তাহলে কত নম্বর কম্পোনেন্টের ঘর?
(2,2) -- রাইট?

এখন (6,6) নম্বর কম্পনেন্টের ঘরটি খুঁজে বের করুন।
পেয়েছেন?
একদম মাঝেরটা, তাইনা?

(11,11) নম্বরটা?
সর্বডানের সবচেয়ে নিচের ঘরটা, ঠিক?

এতক্ষণ আমরা যা শিখলাম তাকে বলতে পারেন ম্যাট্রিক্স/ইমেজ ইন্ডেক্সিং;
প্রোগ্রামিংয়ের জন্য মাস্ট একটা আইডিয়া।

এখন আসুন মূল কথায় যাই,

আগের পর্বে বলেছি:

বাম আর ডান ক্যামেরায় দুটো ইমেজ নেয়া হলো;
ধরা যাক তাদের সাইজ 32 x 32;

এখন, ডান ও বাম ইমেজে যেহেতু একই বস্তুর (ধরুন মানুষের মুখ) ইমেজ আসবে কাজেই ইমেজ দুটো সদৃশ।

কিন্তু, ইমেজদুটোর মাঝে 'ডিসপ্যারিটি' আছে, অর্থাৎ বাম ইমেজে মানুষটার মুখ যদি (2,3) নম্বর পিক্সেল থেকে শুরু হয়, তবে ডান ইমেজে তা কখনই (2,3) নম্বর পিক্সেল থেকে শুরু হবেনা;
ডান ইমেজে তা, ধরুন, (10,4) নম্বর পিক্সেল থেকে শুরু হল।

এখন, আগের পর্বে বর্ণিত POC ফাংশান এই দুটি বাম ও ডান ইমেজের সাপেক্ষে হিসেব করলে, তাও 32 x 32 সাইজের একটা ম্যাট্রিক্স হবে;

যেহেতু বাম ও ডান ইমেজের ডিসপ্যারিটি (10-2, 4-3)=(8,1),
কাজেই 32 x 32 সাইজের POC ফাংশানের (8,1) নম্বর কম্পোনেন্ট বা উপাদানটার মান অন্যান্য কম্পোনেন্টের তুলনায় অনেক বেশী হবে;
অর্থাৎ (8,1) লোকেশানে পীক দেখা যাবে।
(মনে করার চেষ্টা করুন, POC খুব শার্প পীক দেখায়, এবং 'ডিসপ্যারিটির' লোকেশানে পীক দেখায়।)

এখন কথা হলো, ডান ও বাম ইমেজের ডিসপ্যারিটি পূর্ণসংখ্যা হবার সম্ভাবনা একদমই নেই;
কারণ যে বস্তুটির ছবি আমরা তুলছি তা Discrete না!!

এখন ধরা যাক, বাস্তবে বাম ও ডান ইমেজের 'ডিসপ্যারিটি' হলো (8.4,1.7);

তাহলে, POC ফাংশানের (8.4,1.7) নম্বর কম্পোনেন্টটাটে পীক দেখা যাবার কথা।

কিন্তু POC তো 32 x 32 সাইজের Discrete ফাংশান;
তার কম্পোনেন্টগুলোর নম্বর শুধু পূর্ণসংখ্যাই হতে পারে!!

কাজেই এক্ষেত্রে আমরা হয়ত (8,1) নম্বর এবং (8,2) নম্বর কম্পোনেন্টে দুটো পীক দেখতে পাব।

তারমানে আসল পীকটা হলো এই (8,1) এবং (8,2) এর মাঝখানে, অর্থাৎ (8.4,1.7) এ। এই দশমিকযুক্ত ডিসপ্যারিটিকেই বলা হয় 'সাব-পিক্সেল' ডিসপ্যারিটি!!
(সফটওয়্যারের বাহাদূরীটাই এখানে!! হার্ডওয়্যারে যেখানে পিক্সেল পর্যায়ে গিয়েই আমাদের থেমে যেতে হচ্ছে, সফটওয়্যার সেখানে আরও গভীরে প্রবেশের পথকরে দিতে পারে -- বাই দ্য ওয়ে, সফটওয়্যার হলো মানুষের চিন্তাশক্তির সবচেয়ে কাছাকাছি মেশিনাইজড রূপ)

এখন এই আসল পীকের (8.4,1.7) অবস্থান কিভাবে বের করব?

সেজন্য খুব পরিচিত পদ্ধতি হলো ফাংশান ফিটিং;

একটা উদাহরণ দিচ্ছি (কঠিন হতে পারে):
ধরুন X আর Y এর মাঝে নিচের সম্পর্কটা আছে;

X=0 হলে Y=0;
X=1 হলে Y=2;
X=2 হলে Y=4;
X=3 হলে Y=6;
X=4 হলে Y=6;
X=5 হলে Y=4;
X=6 হলে Y=2;
X=7 হলে Y=0;

উপরের আলোচনার সাথে মিলিয়ে বললে, এখানে Y হলো POC এর মতোই একটা ফাংশান, কিন্তু POC দ্্বিমাত্রিক আর Y একমাত্রিক।
আর, X হলো এখানে একমাত্রিক ইনডেক্স;

এখন বলুনতো, X এর কোন মানের জন্য Y এর মান সর্বোচ্চ হবে?

এখানে লক্ষ্য করুন, X এর মান 0 থেকে 3 পর্যন্ত Y এর মান সমান হারে বাড়ল,
তারপর আবার দেখা যাচ্ছে X এর মান 4 থেকে 7 পর্যন্ত Y এর মান একই হারে কমল।

এখন দেখুন, যদি X এর মান 3 এর পরপরই Y এর মান কমা শুরু করত,
তাহলে X এর মান 3 ও 4 এর জন্য Y এর মান একই হতনা; 4 এর জন্য মানটা কম হতো।

কাজেই, বলা যায় যে Y এর মান 3 ও 4 এর মাঝখানে কোনস্থান থেকে Y এর মান কমা শুরু করেছে।

X and Y এর মাণগুলো বসিয়ে গ্রাফ এঁকে ফেললে দেখবেন যে,
X = 0 to 3 এর জন্য একটা ঊর্ধমুখী সরলরেখা, আর X = 4 to 7 এর জন্য একটা নিন্মমুখী সরলরেখা আঁকা গেছে।

লক্ষ্য করুন, আমরা X এর জন্য শুধু পূর্ণসংখ্যা মান নিয়েছি;
কাজেই Y একটা Discrete ফাংশান।

প্রাপ্ত সরলরেখাদুটোকে উপরের দিকে বাড়াতে থাকলে একসময় তারা ছেদ করবে;
এই ছেদবিন্দুটাই Y এর সর্বোচ্চ মান, অর্থাৎ পীক!!

এভাবে গ্রাফের (আসলে ম্যাথমেটিক্সে বলা হয় কার্ভের) মাধ্যমে Discrete ফাংশানের পীকের দশমিক ইনডেক্স (Non-integer location/coordinate) বের করা যায়।

বুঝবেন যে, Y এর মান 3.5 এর পর থেকেই Y এর মান কমা শুরু করেছে।
এটাই ফাংশান ফিটিং!!!

এই ক্ষেত্রে X=3.5 এ Y এর সর্বোচ্চ মান বা পীক পাওয়া যাবে;

অর্থাৎ, Discrete ফাংশান Y এর পীকের Non-integer location/coordinate X হবে 3.5।

এখন, পরের সমস্যা হলো -- কার্ভটা কিভাবে বুঝব।
উপরের উদাহরণটা সহজ ছিল বলে আমরা বুঝেছি যে সরলরেখাদুটোকে উপরের দিকে টেনে নিলে পীক পাওয়া যাবে।

কিন্তু দ্্বিমাত্রিক কোন 32 x 32 ম্যাট্রিক্সের ক্ষেত্রে এই কার্ভ ঠিক করাটা আসলেই কঠিণ!!

এখন একটা ব্ল্যাকবক্স মারি :)

আমাদের POC ফাংশান ব্যাব হার করলে আগে বর্ণিত জেনারেলি ব্যাবহৃত SAD, SSD, NCC এর তুলনায় বেশী Accuracy তে ফাংশান ফিটিং করা যায়।
কারণ, POC ফাংশান সবসময়ই নির্দিষ্ট আকৃতি ধারণ করে, তাই ফিটিঙে সুবিধা।
অন্যান্যরা ডেটাভেদে ভিন্ন ভিন্ন আকৃতি ধারণ করে।

ব্ল্যাকবক্স শেষ .....

(উপরের ব্ল্যাকবক্সের ব্যাখ্যা ....)


দ্্বিমাত্রিক ফাংশানের ক্ষেত্রে তাই প্রাপ্ত Discrete ডেটার সাথে 2nd order function ফিটিং করে Interpolation ব্যাবহার করা হয় ।
তারপর দেখা হয় কোন 2nd order function টা সবচেয়ে ভাল ফিট করে।

দুই পর্ব আগে উল্লেখিত প্রচলিত SAD, SSD, NCC পদ্ধতিগুলোতে এভাবেই ফাংশান ফিটিঙের মাধ্যমে 'সাব-পিক্সেল ডিসপ্যারিটি' বের করা হয়।
কিন্তু Interpolation ব্যাবহারের কারনে Accuracy টা কমে যায়।
কারণ, Interpoaltion মানেই হলো কিছু Assumed মান বসানো।

POC ফাংশান ব্যাবহারের আরেকটি বড় সুবিধা এখানে আমরা পেয়েছি;
আমাদের ল্যাবে আমরা এই POC ফাংশানের Continuous space এর মডেল ডিফাইন করতে পেরেছি, যেটার shape হলো Periodic SINC function এর মতো।
এটা আমাদের কাজের একটা খুব বড় Theoritical originality;

কাজেই, আমাদের POC ফাংশানের ক্ষেত্রে 2nd order function assume করার প্রয়োজন নেই;
ডাইরেক্ট Periodic SINC function ফিট করে দিলেই হলো!!

(ব্ল্যাকবক্সের ব্যাখ্যা শেষ .................)

এর বাইরে
Windowing, Spectral weighting function এসব ব্যাবহার করে ব্লক-ম্যাচিঙের Accuracy বাড়ানো হয়েছে;

বড় বড় সাইজের (আমার সিস্টেমে 640 x 480 সাইজ) দুটো ইমেজ থেকে 32 x 32 সাইজের দুটো সদৃশ ইমেজ কেটে নেয়া কঠিন!!
সেজন্য একটা coarse-to-fine স্ট্র্যাটেজি প্রয়োগ করেছি, যা POC এর জন্য খুব উপযোগী।

স্টেরেও ভিশনে Projective Distortion নামের একটা ভয়াবহ ঝামেলা আছে বলে, কোনভাবেই ব্লক সাইজ বেশী বড় নেয়া যায়না।

খুব ছোট লোকাল অঞ্চলেই এরা সদৃশ বলে ধরে নেয়া যায় -- বেশী বড় হলে কখনই সদৃশ হয়না।

খুব ছোট ব্লক নিলে, ব্লকদুটোর ডিসপ্যারিটি যদি একটু বড় হয় তাহলে আবার বাম ও ডান ব্লকে ওভারল্যাপিং অংশের পরিমাণ এত কম হয় যে ম্যাচিঙে মাঝেমাঝে ভাল রেজালট পাওয়া যায়না।

এই সমস্যার সমাধানে আমি প্রস্তাব করেছি একটি পদ্ধতি -- Sub-pixel window alignment technique।
এটা একটা Iterative Process, যার মাধ্যমে কয়েকবার সার্চ করে প্রতিবারই window alignment এর মাধ্যমে ওভারল্যাপিং অংশের পরিমান বাড়ানো হয়।

মোটামুটি এই সব মিলিয়ে করেসপন্ডেন্স সার্চ।

পরের পর্বে এর সামারি দেব;
ছোট হবে সেই পর্বটা -- আশা করি।
সর্বশেষ এডিট : ৩১ শে ডিসেম্বর, ১৯৬৯ সন্ধ্যা ৭:০০
১৫টি মন্তব্য ০টি উত্তর

আপনার মন্তব্য লিখুন

ছবি সংযুক্ত করতে এখানে ড্রাগ করে আনুন অথবা কম্পিউটারের নির্ধারিত স্থান থেকে সংযুক্ত করুন (সর্বোচ্চ ইমেজ সাইজঃ ১০ মেগাবাইট)
Shore O Shore A Hrosho I Dirgho I Hrosho U Dirgho U Ri E OI O OU Ka Kha Ga Gha Uma Cha Chha Ja Jha Yon To TTho Do Dho MurdhonNo TTo Tho DDo DDho No Po Fo Bo Vo Mo Ontoshto Zo Ro Lo Talobyo Sho Murdhonyo So Dontyo So Ho Zukto Kho Doye Bindu Ro Dhoye Bindu Ro Ontosthyo Yo Khondo Tto Uniswor Bisworgo Chondro Bindu A Kar E Kar O Kar Hrosho I Kar Dirgho I Kar Hrosho U Kar Dirgho U Kar Ou Kar Oi Kar Joiner Ro Fola Zo Fola Ref Ri Kar Hoshonto Doi Bo Dari SpaceBar
এই পোস্টটি শেয়ার করতে চাইলে :
আলোচিত ব্লগ

সবাই জামাতের পক্ষে জিকির ধরুন, জামাত বিজয়ের দ্বারপ্রান্তে!

লিখেছেন জ্যাক স্মিথ, ১২ ই ফেব্রুয়ারি, ২০২৬ রাত ১১:৩১



চলছে ত্রয়োদশ সংসদ নির্বাচনের ভোট গণনা, তুমুল লড়াই হচ্ছে জামাত ও বিএনপির মধ্যে কোথাও জামাত এগিয়ে আবার কোথাও বিএনপি এগিয়ে। কে হতে যাচ্ছে আমাদের ভবিষ্যৎ সরকার- জামাত না... ...বাকিটুকু পড়ুন

নির্বাচন তাহলে হয়েই গেল

লিখেছেন অনিকেত বৈরাগী তূর্য্য , ১৩ ই ফেব্রুয়ারি, ২০২৬ ভোর ৪:১৬


ত্রয়োদশ জাতীয় সংসদ নির্বাচনে নিরঙ্কুশ সংখ্যাগরিষ্ঠতা নিয়ে সরকার গঠন করতে যাচ্ছে বিএনপি। ২৯৯টি আসনের মধ্যে এখন পর্যন্ত বেসরকারি ফলাফলে ১৭৫টি আসনে জয় পেয়েছে দলটির প্রার্থীরা।

অন্যদিকে, জামায়াতে ইসলামীর প্রার্থীরা ৫৬টি আসনে... ...বাকিটুকু পড়ুন

ত্রয়োদশ জাতীয় নির্বাচন ২০২৬ : পর্যবেক্ষণ,পর্যালোচনা ও ফলাফল

লিখেছেন স্বপ্নের শঙ্খচিল, ১৩ ই ফেব্রুয়ারি, ২০২৬ ভোর ৬:২০



আজ রাত ১২ই ফেব্রুয়ারী, দেশব্যাপী ত্রয়োদশ জাতীয় নির্বাচন ২০২৬ এর ভোট গণণা চলছে ।

যত সমস্যার সৃষ্টি এই ভোট প্রয়োগ করা নিয়ে । কেউ বলছে ভোট দিতে হবে , কেন্দ্রে... ...বাকিটুকু পড়ুন

মেটিকুলাস ডিজাইনের নির্বাচন কেমন হলো?

লিখেছেন সৈয়দ কুতুব, ১৩ ই ফেব্রুয়ারি, ২০২৬ সকাল ১১:২৪


ত্রয়োদশ জাতীয় সংসদ নির্বাচনে বাংলাদেশ জাতীয়তাবাদী দল বিএনপি ২১৩ আসনে জয়ী হয়েছে। তবে প্রত্যাশার চেয়ে বেশি ভালো ফলাফল করেছে জামায়াত ! এগারো দলীয় জোট প্রায় ৭৬ টি আসনে... ...বাকিটুকু পড়ুন

দেশ চুরান্ত লজ্জার হাত থেকে রক্ষা পেয়েছে।

লিখেছেন জ্যাক স্মিথ, ১৩ ই ফেব্রুয়ারি, ২০২৬ দুপুর ২:১৮



অনেক জল্পনা কল্পনার পর শেষ পর্যন্ত বিএনপির ভূমিধ্বস বিজয় হয়েছে- এ যাত্রায় দেশ চুরান্ত লজ্জার হাত থেকে বেঁচে গেলো। চারিদিকে যা শুরু হয়েছিলো (জামাতের তাণ্ডব) তা দেখে মনে... ...বাকিটুকু পড়ুন

×