ক্যামেরা দিয়ে লোকেশন বোঝার ম্যাজিক

Story Behind Accelerated Coordinate Encoding & Global Local Accelerated Coordinate Encoding

ধরেন, আপনি পুরান ঢাকার এক কোনায়—ধর নওয়াব কাটরার কোন এক চিপা গলিতে—গিয়া হারায় গেসেন। আশেপাশে পুরা একরকম লাগে, সব দোকানগুলার সাইনবোর্ড পোলাপানরে দিয়া লিখানো, একটা গলি আরেকটার সাথে এমনভাবে মিশে গেছে যে গুগল ম্যাপে কিছুই ঠিকমতো খুঁজে পাচ্ছেন না। এখন, ধরেন, আপনার ফোনের ক্যামেরা একবার চালু করলেন, আর ফোন আপনারে বলতেছে, "আপনি এই মুহূর্তে বাবু বাজারের ওই আমির ভাইয়ের ফালুদার দোকানের সামনে দাঁড়ায় আছেন। বামে গেলে সদরঘাট, ডানে গেলে চকবাজার।" (কথার কথা)

এখন প্রশ্ন হইলো, এই কাজ ক্যামেরা করলো কিভাবে?

Visual Relocalization: ক্যামেরা দিয়ে লোকেশন বোঝার ম্যাজিক

আগে কী হইতো? লোকেশন জানার জন্য GPS ছিল, কিন্তু পুরান ঢাকার মতো জায়গায় গলির মধ্যে ঢুইকা গেলে GPS খালি কান্নাকাটি করতো—ঠিকমতো জায়গা চিনতেও পারতো না, আর বিল্ডিংয়ের কারণে সিগনালও কম পাইতো।

এখনকার দিনে ফোনের ক্যামেরা দিয়ে লোকেশন জানা যায়—এইটারে বলে Visual Positioning System (VPS)। এই সিস্টেম কেমনে কাজ করে?

চোখে দেখা জিনিসই ম্যাপ: আপনাকে পুরান ঢাকার সব গলি, দোকানের সাইনবোর্ড, রাস্তার ধুলাবালি, দেয়ালের দাগ—এইসব মিলাইয়া চিনতে পারে এই সিস্টেম।

Niantic কী করছে? Pokémon Go-খেলতে গিয়ে পোলাপান যখন রাস্তায় ঘুইরা ঘুইরা ক্যামেরা ইউজ করতো, তখন ওরা অলরেডি ১০ মিলিয়নেরও বেশি লোকেশনের ডেটা জোগাড় করে ফালাইছে! মানে, আপনি নওয়াব কাটরার একটা ছবি তুললে, ওরা খুঁজে বের করতে পারবে যে এই জায়গা আগেও কেউ স্ক্যান দিছিলো কিনা।

Training with AI: Niantic এইসব ছবি ইউজ কইরা AI Model Train করছে, যাতে ক্যামেরা ছবি দেখেই বুঝতে পারে আপনি কই আছেন।

এইটাই Visual Relocalization—মানে, আপনার একখান ছবি বা ভিডিও ক্লিপ দেখলেই AI জানবে আপনি ঠিক কোন গলিতে আছেন।

কিন্তু, সমস্যা ছিল একটা… Training সময় নিতো অনেক!

এই জিনিসটারে পারফেক্ট করার জন্য আগের সিস্টেমগুলা একটা জায়গার 3D ম্যাপ বানাইতে কয়েক ঘণ্টা বা দিন লেগে যাইতো! মানে সদরঘাটরে এমনভাবে ম্যাপ করতে চাইলে হাজার হাজার ছবি লাগতো আর AI-রে সেইটা শিখাইতে অনেক সময় লাগতো।

Niantic-এর নতুন সিস্টেম ACE (Accelerated Coordinate Encoding):

এই পদ্ধতিতে পুরা এলাকায় হাজার হাজার ছবি লাগবে না।

একটা Multi-Layer Perceptron (MLP) নামের বুদ্ধিমান Neural Network ইউজ করে, যাতে অনেক কম সময়ে হাজার হাজার ভিউপয়েন্ট ট্রেইন করা যায়।

ফলে, ৫ মিনিটের মধ্যেই নতুন একটা জায়গার ম্যাপ তৈরি করা সম্ভব!

Google Earth কিভাবে এইটার সাথে জড়িত?

আপনি নিশ্চইয় জানেন, Google Earth তো পুরা দুনিয়ার উপরের দিক থাইকা তোলা ছবি রাখে। কিন্তু সমস্যা হইলো, Google Earth কেবল উপরের থাইকা দেখে, আপনার আমার মতো গলির ভেতর ঢুকে না!

এখন, Niantic-এর অনেক পুরানা ডেভেলপার Google Maps আর Google Earth-এর সাথে কাজ করছে, তাই ওরা জানে কিভাবে Google-এর ডাটা আর Niantic-এর গ্রাউন্ড-লেভেল ডাটা মিলায়ে জিনিসটারে আরেক ধাপ নিখুঁত করা যায়। আর Niantic আসলে গুগলেরই স্টার্টাপ ছিল পরে আলাদা হয়ে গেসে।

Microsoft-এর GLACE (Global Local ACE) কী করলো?

যেই সমস্যাটা Niantic-এর ACE পুরোপুরি সমাধান করতে পারে নাই, সেইটা হইলো বড় সিটি গুলার একসাথে মিলেমিশা যাওয়া স্ট্রাকচার!

আপনার মনে হচ্ছে লালবাগ কেল্লার এক পাশের গেটের সামনে আছেন, কিন্তু আসলে আপনি শাঁখারীবাজারের গলিতে। কারণ, দুই জায়গার দেয়াল দেখলে একরকম লাগে!

GLACE এই সমস্যা ফিক্স করলো Global Encoding + Local Encoding দিয়া।

Local Encoding: আপনার আশেপাশের ছোট ছোট অবজেক্ট দেখে লোকেশন চিনবে।

Global Encoding: এক্সট্রা কন্টেক্সট (মানে আশেপাশের বড় দালান, রাস্তার স্ট্রাকচার) দেখবে যাতে গুলায়া না ফেলে।

GLACE এই দুইটা জিনিস মিলায়ে একটা স্মার্ট সিস্টেম বানাইছে, যেইটা যেকোনো জায়গায় লোকেশন চিনতে পারে, এমনকি যদি জায়গাটা জটিল হয় তাও।

সংক্ষেপে বললে

  • Niantic Pokémon Go-এর মাধ্যমে মানুষকে দিয়ে কোটি কোটি লোকেশনের ছবি জোগাড় করছে।

  • ACE এই ডাটাকে এত ইফিশিয়েন্ট বানাইছে যে কয়েক মিনিটেই ম্যাপ আপডেট করা যায়।

  • Google Earth উপরের দিক থাইকা ছবি দিতেছে, আর Niantic নিচের দিক থাইকা ছবি দিতেছে—একসাথে মিলাইলে পারফেক্ট লোকেশন পাওয়া যায়।

  • Microsoft-এর GLACE এক ধাপ এগিয়ে গিয়া local + global encoding ইউজ করছে, যাতে ধোঁকা না খায়!

এইসব প্রযুক্তি মিলে যদি বাস্তবে ঢাকায় আসতো, তাহলে আপনি যেই গলিতেই হারায় যান না কেন, ফোন আপনাকে বলতেছে, "বাঁ দিকে ৩০ কদম গেলে হাবিব ভাইয়ের তেহারি, ডাইনে গেলে নিউমার্কেট, আর পিছনে গেলে তো স্রেফ আমানত শাহ গেটের ভেতর ঢুইকা পড়বেন!"

[বিঃদ্রঃ লেখাটা লিখেছিলাম এক ফ্রেন্ডকে বুঝানোর জন্য। এজন্য ভাষা এমন রয়ে গিয়েছে। খালি "তুই" কে "আপনি" তে কনভার্ট করে পোস্ট দিয়েছি]

সোর্সঃ

১। ACE https://arxiv.org/pdf/2305.14059

২। GLACE https://arxiv.org/pdf/2406.04340

৩। Niantic Lab Announcement https://nianticlabs.com/news/largegeospatialmodel

সাথে হেল্প করেছে SciSpace, Perplexity আর ChatGPT