কিনটেক্টের 3 ডি-পয়েন্ট ব্যবহার করে কীস্টোন সংশোধন


15

এক্সএনএর সাহায্যে আমি একটি সাধারণ আয়তক্ষেত্র প্রদর্শন করছি যা মেঝেতে প্রক্ষেপণ করা হয়েছে। প্রজেক্টর একটি স্বেচ্ছাসেবী অবস্থানে স্থাপন করা যেতে পারে। স্পষ্টতই, অভিক্ষিপ্ত আয়তক্ষেত্রটি প্রজেক্টরের অবস্থান এবং কোণ অনুসারে বিকৃত হয়। একটি কিনেক্ট চারটি কোণ অনুসন্ধান করে মেঝেটি স্ক্যান করে। এখন আমার লক্ষ্যটি মূল আয়তক্ষেত্রটি এমন রূপান্তর করা যা মূলত আয়তক্ষেত্রটি প্রাক-warping দ্বারা প্রক্ষেপণটি আর বিকৃত হয় না।

আমার প্রথম পদ্ধতির 2D তে সমস্ত কিছু করা ছিল: প্রথমে warpPerspective()স্ক্যান করা পয়েন্টগুলি থেকে অভ্যন্তরীণ আয়তক্ষেত্রের পয়েন্টগুলিতে একটি দৃষ্টিভঙ্গি রূপান্তর (ওপেনসিভি ব্যবহার করে ) গণনা করুন এবং আয়তক্ষেত্রের বিপরীত প্রয়োগ করুন। এটি কাজ করে দেখে মনে হচ্ছে তবে এটি খুব ধীর ছিল কারণ এটি জিপিইউতে সরবরাহ করা যায়নি।

দ্বিতীয় পদ্ধতিরটি ছিল এক্সএনএর রেন্ডারিং বৈশিষ্ট্যগুলি ব্যবহার করার জন্য 3D এ সবকিছু করা। প্রথমে, আমি একটি বিমান প্রদর্শন করব, কিনেক্টের সাহায্যে এর কোণগুলি স্ক্যান করব এবং প্রাপ্ত বিমানটি 3 ডি-পয়েন্টগুলি মূল বিমানটিতে ম্যাপ করব। তাত্ত্বিকভাবে, আমি 2D- পদ্ধতির মতো আমি বিমানে দৃষ্টিভঙ্গির রূপান্তরটির বিপরীতটি প্রয়োগ করতে পারি। তবে, এক্সএনএ যেহেতু একটি ভিউ এবং প্রজেকশন ম্যাট্রিক্সের সাথে কাজ করে, আমি কেবল কোনও ফাংশনটিতে কল করতে warpPerspective()এবং পছন্দসই ফলাফল পেতে পারি না। আমার ক্যামেরার ভিউ এবং প্রজেকশন ম্যাট্রিক্সের জন্য নতুন প্যারামিটারগুলি গণনা করা দরকার।

প্রশ্ন: এই প্যারামিটারগুলি গণনা করে এগুলি দুটি ম্যাট্রিকে (ভিউ এবং প্রজেকশন) বিভক্ত করা সম্ভব? যদি তা না হয় তবে আমি কী ব্যবহার করতে পারি?


1
এক্সএনএ একটি ভিউ এবং প্রজেকশন ম্যাট্রিক্স ব্যবহার করে তবে আমি মনে করি শেষ ফলাফল = ভেক্টর * ভিউ * প্রক্ষেপণ। কেন একটি পরিচয় ম্যাট্রিক্স দেখার এবং বিপরীত দৃষ্টিভঙ্গির ম্যাট্রিক্স প্রক্ষেপণ করার চেষ্টা করবেন না এবং দেখুন যে এটি কাজ করে? (100% নিশ্চিত নয় যে এটি ঠিক যা ঘটে)
রায় টি।

1
আপনি ঠিক কীভাবে একটি দৃষ্টিকোণ রূপান্তর গণনা করেছেন warpPespective? আমি ওপেনসিভির সাথে পরিচিত নই, তবে দস্তাবেজটি দেখে মনে হচ্ছে এই ফাংশনটি কেবল একটি চিত্রের দৃষ্টিভঙ্গি প্রয়োগ করে । নাকি আমি বিভ্রান্ত? যাইহোক, সম্ভবত আপনার প্রথম প্রয়োগের আরও বিশদ যুক্ত সাহায্য করবে।
লরেন্ট কুইভিডু

আপনি পিসিএল লাইব্রেরি ( পয়েন্টক্লাউডস.আর.গ ) দেখতে পারেন। কিনেক্ট থেকে গভীরতার চিত্রটি রূপান্তরকরণ আপনাকে z অক্ষের সাথে ইশারা করে আদিতে ক্যামেরার সাথে একটি পয়েন্ট মেঘ দেয়। এরপরে আপনি বিমানটি সন্ধান করতে ransac বা অন্য কোনও অ্যালগরিদম ব্যবহার করতে পারেন।
এক্সিলিথ

উত্তর:


1

যেহেতু ভেক্টর বীজগণিতটি জিপিইউ বান্ধব, তাই সাধারণ বিমান এবং ডট পণ্যগুলি মূল বিমানের চারটি কোণ নীচে অনুসরণ করতে ব্যবহার করা যেতে পারে:

এখানে চিত্র বর্ণনা লিখুন

প্রজেক্টর পয়েন্ট (পি) দেওয়া, প্রক্ষেপিত বিন্দু (বি) দেওয়া হয়েছে, বিমানের একটি স্বেচ্ছাসেবী বিন্দু যেখানে বিকৃত আয়তক্ষেত্র (Q) রয়েছে, এবং সেই সমতলটির স্বাভাবিক ভেক্টর (এন), ছেদটির বিন্দু (A) পি থেকে বি পর্যন্ত লাইন, এবং বিমানটি দেওয়া হয়েছে

s = -dot_product(n, P - Q) / dot_product(n, normalized(B - P)) 
A = P + s * normalized(B-P)

উত্স http://geomalgorithms.com/a05-_intersect-1.html বিভাগ লাইন-বিমান ছেদ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.