2 ডি ক্যামেরা ব্যবহার করে 3 ডি পজিশনের অনুমান


9

আমার একটি ক্যামেরা রয়েছে (আইফোন), আমার কাছে ইমেজে একটি 3 ডি কন্ট্রোল অবজেক্ট রয়েছে যা আমি এর বৈশিষ্ট্যগুলি খুব ভাল জানি। (আমার নিয়ন্ত্রণ বস্তু) গতিতে একটি গৌণ বস্তুও রয়েছে। চূড়ান্ত লক্ষ্যটি একটি নির্দিষ্ট সময়ের জন্য চলমান বস্তুর 3 ডি ট্র্যাজেক্টরি স্থাপন করা। (ট্র্যাকিং)

আমি জিজ্ঞাসা করতে চান, আমি খুঁজে পেতে পারেন?

  • কন্ট্রোল অবজেক্টের ফোনের দূরত্ব (আলোচনার জন্য ধরে নেওয়া যাক, ক্যামেরা নির্দিষ্ট উচ্চতায় এবং নির্দিষ্ট দূরত্বে রয়েছে উভয়টিই জানা যায় নি তবে ক্যামেরাটি পৃষ্ঠের উপরের দিকে লম্ব রয়েছে যা জানা আছে)

  • সেকেন্ডারি অবজেক্ট যেখানে আমি প্রতিটি পরবর্তী ফ্রেমে অবজেক্টটি সনাক্ত করতে পারি। আমার লক্ষ্যটি এটির 3 ডি ট্রাজেক্টোরিটি অনুমান করা যা আমি উপরে নির্দেশ করেছি।

বোনাস প্রশ্ন, আমরা সিস্টেমকে এমন করে তুলতে পারি যে কন্ট্রোল অবজেক্টের ফোনের দূরত্ব সেট করা যায় (যদিও এটি পছন্দনীয় নয়) তবে এটি কি আমাকে দ্বিতীয় পয়েন্টে সহায়তা করবে?


আপনি কি এই অঞ্চলের সাহিত্যের সাথে পরিচিত? যদি না হয় তবে আমি কিছু কাগজপত্র সুপারিশ করতে পারি, তবে সতর্ক হতে হবে: গণিতগুলি এতে জড়িত।
এমরে

@ যদি আপনি কিছু পয়েন্টার সরবরাহ করতে পারেন তবে এটি দুর্দান্ত হবে। গণিত কোনও সমস্যা নয়, আমরা গণিতকে ভালবাসি।
কুটুনার


@ এখানে আমি পর্যালোচনা কাগজটি একবার দেখে নিই .. এটি ট্র্যাকিংয়ের জন্য আরও বেশি, আমি সহজেই অবজেক্টটি ট্র্যাক করতে পারি, এটি সমস্যা নয়। আমি পিন পয়েন্ট করতে পারি যেখানে পিক্সেলটি বস্তুটি। বিষয়টি হ'ল বস্তুটি 3 ডি স্পেসে রয়েছে। এটা কি সম্ভব? মূলত, 3 ডি স্পেসে আমার আরেকটি অবজেক্ট রয়েছে যা আমি সেই বৈশিষ্ট্যগুলি জানি যা আমি রেফারেন্সের ফ্রেম হিসাবে ব্যবহার করতে পারি তবে এটি is
কুটুনার

আমি দুঃখিত, ভুল কাগজ। সম্ভবত আপনি অজানা পরিবেশ [পিডিএফ] এর জন্য ভিশন-ভিত্তিক 3D ট্র্যাজেক্টরি ট্র্যাকিং মানিয়ে নিতে পারেন ? তারা একটি স্টেরিও ক্যামেরা ব্যবহার করে; এটা কি আপনার পক্ষে সম্ভাবনা?
এমরে

উত্তর:


15

আপনার যদি object টি পরিচিত পয়েন্ট রয়েছে (পরিচিত 3 ডি স্থানাঙ্ক, এবং ) আপনি অবজেক্টের সমন্বয় ব্যবস্থা সম্পর্কিত ক্যামেরার অবস্থানটি গণনা করতে পারেন।X,YZ

প্রথমে কিছু বেসিক।

Homogenous তুল্য ইউক্লিডিয় এর ভেক্টর উপস্থাপনা তুল্য হয় যা আমরা তাই স্কেল ফ্যাক্টর নামক যোগ আছে যেমন যে সমজাতীয় তুল্য হয় । আপনার নিজস্ব গণনায় যত তাড়াতাড়ি সম্ভব রাখার চেষ্টা করুন (এর অর্থ আপনি সর্বশেষ উপাদানটির সাথে এর শেষ উপাদানটি দিয়ে ভাগ করে সমজাতীয় স্থানাঙ্ককে " " করেন: )। আমরা 2 ডি পয়েন্টের জন্য সমজাতীয় উপস্থাপনাও ব্যবহার করতে পারি যেমন (স্মরণকারী যে এই এবং(X,Y,Z)ωX=ω[XYZ1]Tω=1XXωx=ω[XY1]ω,X,YZপ্রতিটি পয়েন্টের জন্য পৃথক, এটি 2 ডি বা 3 ডি পয়েন্ট হতে পারে)। সমজাতীয় সমন্বয় উপস্থাপনা গণিতকে সহজ করে তোলে।

ক্যামেরা ম্যাট্রিক্স ডি প্রজেকশন ম্যাট্রিক্স থেকে ডি ওয়ার্ল্ড থেকে ইমেজ সেন্সর পর্যন্ত:3×4

x=PX

যেখানে হল চিত্র সেন্সর (পিক্সেল ইউনিট সহ) এবং the হল প্রজেক্টড থ্রিডি পয়েন্ট (এটি বলতে পারি যে এটির ইউনিট হিসাবে মিলিমিটার রয়েছে)।xX

আমরা মনে করি যে দুটি 3-ভেক্টরের মধ্যে ক্রস পণ্যটিকে ম্যাট্রিক্স-ভেক্টর-গুণ হিসাবে সংজ্ঞায়িত করা যায় যে:

v×u=(v)xu=[0v3v2v30v1v2v10]u

এছাড়া খেয়াল করা জরুরী যে ক্রস প্রকাশনা দরকারী ।v×v=0

এখন আগের সমীকরণগুলি থেকে প্রক্ষেপণ ম্যাট্রিক্স সমাধান করার চেষ্টা করা যাক । বাম দিক থেকে প্রজেকশন সমীকরণটিকে s ক্রস প্রোডাক্ট ম্যাট্রিক্স দিয়ে গুণিত করতে দেয় :Px

(x)xx=(x)xPX=0

আহা! ফলাফলটি অবশ্যই শূন্য ভেক্টর হতে হবে। যদি আমরা এখন সমীকরণটি পাই তবে:

[0wyw0xyx0][P1,1P1,2P1,3P1,4P2,1P2,2P2,3P2,4P3,1P3,2P3,3P3,4]X=[P3,4WyP2,1XwP2,2YwP2,4Ww+P3,1XyP2,3Zw+P3,2Yy+P3,3ZyP1,4Ww+P1,1XwP3,4Wx+P1,2YwP3,1Xx+P1,3ZwP3,2YxP3,3ZxP2,4Wx+P2,1XxP1,4WyP1,1Xy+P2,2YxP1,2Yy+P2,3ZxP1,3Zy]=0

কিছুটা রিফ্যাক্টরিং সহ আমরা ম্যাট্রিক্সের বাইরে প্রোজেকশন ম্যাট্রিক্স পেতে পারি :P

[0000XwYwZwWwXyYyZyWyXwYwZwWw0000XxYxZxWxXyYyZyWyXxYxZxWx0000][P1P2P3]=0

যেখানে হ'ল : তম সারির ক্যামেরা ম্যাট্রিক্স এর স্থানান্তর । পূর্ববর্তী (বড়) ম্যাট্রিক্স সমীকরণের সর্বশেষ সারিটি প্রথম দুটি সারির লিনিয়ার সংমিশ্রণ, সুতরাং এটি কোনও অতিরিক্ত তথ্য আনবে না এবং এটি ছেড়ে দেওয়া যেতে পারে।PnnP

ছোট বিরতি যাতে আমরা আমাদের কষ্ট সংগ্রহ করতে পারি। নোট করুন যে পূর্ববর্তী ম্যাট্রিক্স সমীকরণটি প্রতিটি পরিচিত 3D-> 2D চিঠিপত্রের জন্য গঠন করতে হবে (এর মধ্যে কমপক্ষে 6 টি থাকতে হবে)।

এখন, প্রতিটি পয়েন্ট চিঠিপত্রের জন্য, উপরের ম্যাট্রিক্সের প্রথম দুটি সারি গণনা করুন, একে অপরের উপরে ম্যাট্রিক্স স্ট্যাক করুন এবং আপনি নতুন ম্যাট্রিক্স পান যার জন্য2×12A

A[P1P2P3]=0

যেহেতু আমাদের 12 টি অজানা এবং (কমপক্ষে) 12 টি সমীকরণ রয়েছে এটি সমাধান করা যেতে পারে। কেবলমাত্র সমস্যাটি হ'ল আমরা তুচ্ছ উত্তরটি পেতে চাই না যেখানে

[P1P2P3]=0

ভাগ্যক্রমে আমরা জোর করার জন্য একক মান ভলন (এসভিডি) ব্যবহার করতে পারি

[P1P2P3]=1

সুতরাং সমীকরণগুলি সমাধান করার জন্য, ম্যাট্রিক্স এসভিডি গণনা করুন এবং ক্ষুদ্রতম আইজেন মান অনুসারে একক ভেক্টর চয়ন করুন। এই ভেক্টরটি ম্যাট্রিক্স এ এর ​​নাল ভেক্টর এবং ক্যামেরা ম্যাট্রিক্স এর সমাধানও । কেবলমাত্র এবং ফর্ম ।AP[P1P2P3]TP

এখন আপনি বস্তুর দূরত্ব জানতে চেয়েছিলেন। হিসাবে সংজ্ঞায়িত করা হয়:P

P=K[RRC]

যেখানে the হল অবজেক্ট উত্সের সাথে সম্পর্কিত ক্যামেরার অবস্থান। এটা তোলে থেকে সমাধান করা যেতে পারে গণনা করে গুলি নাল ভেক্টর।CPP

(হার্টলি, জিসারম্যান - কম্পিউটার ভিশনে একাধিক দেখুন জ্যামিতি)

অবশেষে, আপনি যখন দুটি ফ্রেমের জন্য ক্যামেরার অবস্থান গণনা করেন, আপনি জন্য দুটি সমীকরণ সমাধান করে অজানা বস্তুর অবস্থানগুলি (বা বস্তুর কিছু বিন্দুর অবস্থানগুলি) গণনা করতে পারেন :X

x1=P1Xx2=P2X

যা আমরা ক্যামেরার ম্যাট্রিকগুলি কীভাবে সমাধান করেছি ঠিক :

(x1)xP1X=0(x2)xP2X=0

ইত্যাদি।


আপনার কি ক্যামেরার 3 ডি অবস্থান গণনা করার উপায়টি ওপেনসিভি সলভ পিএনপির সমতুল্য তা বলা কি সঠিক? docs.opencv.org/2.4/modules/calib3d/doc/… (পৃষ্ঠায় সলিউশনপিএনপি অনুসন্ধান করুন I আমি একটি # দিয়ে একটি ইউআরএল পেস্ট করতে পারি না)
গ্রেগোরেজেন্টিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.