সুচিপত্র:

পাইথন ভাষায় স্ট্রাকচার্ড লাইট এবং স্টেরিও ভিশনের উপর ভিত্তি করে DIY 3D স্ক্যানার: 6 টি ধাপ (ছবি সহ)
পাইথন ভাষায় স্ট্রাকচার্ড লাইট এবং স্টেরিও ভিশনের উপর ভিত্তি করে DIY 3D স্ক্যানার: 6 টি ধাপ (ছবি সহ)

ভিডিও: পাইথন ভাষায় স্ট্রাকচার্ড লাইট এবং স্টেরিও ভিশনের উপর ভিত্তি করে DIY 3D স্ক্যানার: 6 টি ধাপ (ছবি সহ)

ভিডিও: পাইথন ভাষায় স্ট্রাকচার্ড লাইট এবং স্টেরিও ভিশনের উপর ভিত্তি করে DIY 3D স্ক্যানার: 6 টি ধাপ (ছবি সহ)
ভিডিও: Python Programing Tutorial In Bangla | বাংলায় পাইথন প্রোগ্রামিং টিউটোরিয়াল | Batch: 201 Class-03 2024, জুলাই
Anonim
পাইথন ভাষায় স্ট্রাকচার্ড লাইট এবং স্টেরিও ভিশনের উপর ভিত্তি করে DIY 3D স্ক্যানার
পাইথন ভাষায় স্ট্রাকচার্ড লাইট এবং স্টেরিও ভিশনের উপর ভিত্তি করে DIY 3D স্ক্যানার
পাইথন ভাষায় স্ট্রাকচার্ড লাইট এবং স্টেরিও ভিশনের উপর ভিত্তি করে DIY 3D স্ক্যানার
পাইথন ভাষায় স্ট্রাকচার্ড লাইট এবং স্টেরিও ভিশনের উপর ভিত্তি করে DIY 3D স্ক্যানার

এই 3D স্ক্যানারটি কম খরচে প্রচলিত আইটেম যেমন ভিডিও প্রজেক্টর এবং ওয়েবক্যাম ব্যবহার করে তৈরি করা হয়েছিল। একটি স্ট্রাকচার্ড-লাইট 3D স্ক্যানার হল একটি 3D স্ক্যানিং ডিভাইস যা প্রজেক্টেড লাইট প্যাটার্ন এবং ক্যামেরা সিস্টেম ব্যবহার করে কোনো বস্তুর ত্রিমাত্রিক আকৃতি পরিমাপ করে। সফ্টওয়্যারটি পাইথন ভাষার সাথে কাঠামোগত আলো এবং স্টেরিও দৃষ্টিভঙ্গির উপর ভিত্তি করে তৈরি করা হয়েছিল।

একটি ত্রিমাত্রিক আকৃতির পৃষ্ঠে আলোর একটি সংকীর্ণ ব্যান্ড প্রজেক্ট করা আলোকসজ্জার একটি রেখা তৈরি করে যা প্রজেক্টরের তুলনায় অন্য দৃষ্টিকোণ থেকে বিকৃত দেখা যায় এবং এটি পৃষ্ঠের আকৃতির সঠিক জ্যামিতিক পুনর্গঠনের জন্য ব্যবহার করা যেতে পারে। অনুভূমিক এবং উল্লম্ব আলো ব্যান্ড বস্তুর পৃষ্ঠে প্রক্ষিপ্ত হয় এবং তারপর দুটি ওয়েবক্যাম দ্বারা ধরা হয়।

ধাপ 1: ভূমিকা

ভূমিকা
ভূমিকা
ভূমিকা
ভূমিকা

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

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

পদক্ষেপ 2: সফ্টওয়্যার

সফটওয়্যার
সফটওয়্যার

পাইথন ভাষা তিনটি কারণে প্রোগ্রামিং এর জন্য ব্যবহার করা হত, একটি এটি শেখা এবং বাস্তবায়ন করা সহজ, দুইটি আমরা ইমেজ সম্পর্কিত রুটিনের জন্য OPENCV ব্যবহার করতে পারি এবং তিনটি এটি বিভিন্ন অপারেটিং সিস্টেমের মধ্যে বহনযোগ্য তাই আপনি উইন্ডোজ, ম্যাক এবং লিনাক্সে এই প্রোগ্রামটি ব্যবহার করতে পারেন। আপনি যে কোন ধরনের ক্যামেরা (ওয়েবক্যাম, এসএলআর বা ইন্ডাস্ট্রিয়াল ক্যামেরা) বা 1024X768 রেজোলিউশনের প্রজেক্টরের সাথে সফটওয়্যার কনফিগার করতে পারেন। দুই গুণের বেশি রেজোলিউশনের ক্যামেরা ব্যবহার করা ভাল। আমি ব্যক্তিগতভাবে তিনটি ভিন্ন কনফিগারেশনে পারফরম্যান্স পরীক্ষা করেছিলাম, প্রথমটি ছিল দুটি সমান্তরাল মাইক্রোসফট ওয়েবক্যাম সিনেমা এবং একটি ছোট পোর্টেবল প্রজেক্টর, দ্বিতীয়টি ছিল দুটি লাইফক্যাম সিনেমা ওয়েবক্যামার যা একে অপরের দিকে 15 ডিগ্রি ঘুরিয়েছিল এবং ইনফোকাস প্রজেক্টর, শেষ কনফিগারেশন ছিল লজিটেক ওয়েব ক্যামেরার সাথে এবং ইনফোকাস প্রজেক্টর। বস্তুর পৃষ্ঠের বিন্দু মেঘ ক্যাপচার করার জন্য আমাদের পাঁচটি ধাপ অনুসরণ করা উচিত:

1. ধূসর প্যাটার্ন প্রজেক্ট করা এবং দুটি ক্যামেরা "SL3DS1.projcapt.py" থেকে ছবি তোলা

2. প্রতিটি ক্যামেরার 42 টি ছবি প্রসেস করা এবং পয়েন্ট কোড "SL3DS2.procimages.py" ক্যাপচার করা

2. প্রক্রিয়াকৃত এলাকাগুলির জন্য মাস্কিং নির্বাচন করার জন্য থ্রেশহোল্ড সামঞ্জস্য করা "SL3DS3.adjustthresh.py"

4. "SL3DS4.calcpxpy.py" প্রতিটি ক্যামেরায় একই রকম পয়েন্ট খুঁজুন এবং সংরক্ষণ করুন

5 বিন্দু মেঘ "SL3DS5.calcxyz.py" এর X, Y এবং Z স্থানাঙ্ক গণনা করুন

আউটপুট একটি PLY ফাইল যা বস্তুর পৃষ্ঠের পয়েন্টগুলির সমন্বয় এবং রঙের তথ্য। আপনি অটোডেস্ক প্রোডাক্টের মতো সিএডি সফটওয়্যার বা মেশল্যাবের মতো ওপেন সোর্স সফটওয়্যার দিয়ে পিএলওয়াই ফাইল খুলতে পারেন।

www.autodesk.com/products/personal-design-a…

পাইথন 2.7, OPENCV মডিউল এবং NUMPY এই পাইথন প্রোগ্রামগুলো চালানোর জন্য ইনস্টল করা উচিত। আমি TKINTER এ এই সফটওয়্যারের জন্য একটি GUI তৈরি করেছি যা আপনি দুটি নমুনা ডেটা সেট সহ ছয় ধাপে খুঁজে পেতে পারেন। আপনি নিম্নলিখিত ওয়েবসাইটে এই বিষয়ে অতিরিক্ত তথ্য পেতে পারেন:

docs.opencv.org/modules/calib3d/doc/camera_…

docs.opencv.org/modules/highgui/doc/reading…

www.3dunderworld.org/software/

arxiv.org/pdf/1406.6595v1.pdf

mesh.brown.edu/byo3d/index.html

www.opticsinfobase.org/aop/fulltext.cfm?uri…

hera.inf-cv.uni-jena.de:6680/pdf/Brauer-Bur…

ধাপ 3: হার্ডওয়্যার সেটআপ

হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ

হার্ডওয়্যার নিয়ে গঠিত:

1. দুটি ওয়েব ক্যামেরা (Logitech C920C)

2. ইনফোকাস LP330 প্রজেক্টর

3. ক্যামেরা এবং প্রজেক্টর স্ট্যান্ড (3 মিমি এক্রাইলিক প্লেট এবং 6 মিমি এইচডিএফ কাঠ লেজার কাটার দিয়ে কাটা)

একটি নোটবুক কম্পিউটারের মত দুটি ভিডিও আউটপুট সহ একটি কম্পিউটারের সাথে দুটি ক্যামেরা এবং প্রজেক্টর সংযুক্ত থাকতে হবে এবং প্রজেক্টর স্ক্রিনটি প্রধান উইন্ডোজ ডেস্কটপে একটি এক্সটেনশন হিসেবে কনফিগার করা উচিত। এখানে আপনি ক্যামেরা, প্রজেক্টর এবং স্ট্যান্ডের ছবি দেখতে পারেন। কাটা জন্য প্রস্তুত অঙ্কন ফাইল SVG বিন্যাসে সংযুক্ত করা হয়।

প্রজেক্টর হল একটি ইনফোকাস LP330 (নেটিভ রেজোলিউশন 1024X768) নিম্নোক্ত চশমা সহ। (XGA) ভিডিও মোড: ** ডেটা মোড: MAX 1024x768 সর্বোচ্চ পাওয়ার: 200 ওয়াট ভোল্টেজ: 100V - 240V সাইজ (সেমি) (HxWxD): 6 x 22 x 25 ওজন: 2.2 কেজি ল্যাম্প লাইফ (ফুল পাওয়ার): 1, 000 ঘন্টা ল্যাম্পের ধরন: UH

এই ভিডিও প্রজেক্টরটি স্ক্যান করা বস্তুর উপর স্ট্রাকচার্ড লাইট প্যাটার্ন প্রজেক্ট করতে ব্যবহৃত হয়। কাঠামোগত প্যাটার্নটি উল্লম্ব এবং অনুভূমিক সাদা আলোর স্ট্রিপগুলি ধারণ করে যা একটি ডেটা ফাইলে সংরক্ষণ করা হয় এবং ওয়েবক্যামগুলি সেই বিকৃত স্ট্রিপগুলি ক্যাপচার করে।

সফ্টওয়্যার নিয়ন্ত্রনযোগ্য সেই ক্যামেরাগুলি ব্যবহার করুন কারণ আপনাকে ফোকাস, উজ্জ্বলতা, রেজোলিউশন এবং চিত্রের মান সামঞ্জস্য করতে হবে। প্রতিটি ব্র্যান্ডের দেওয়া এসডিকে দিয়ে ডিএসএলআর ক্যামেরা ব্যবহার করা সম্ভব।

কোপেনহেগেন ফ্যাব্লাবে এর সমর্থনে সমাবেশ ও পরীক্ষা পরিচালিত হয়েছিল।

ধাপ 4: স্ক্যানার দিয়ে পরীক্ষা করা

স্ক্যানারের সাথে পরীক্ষা করা
স্ক্যানারের সাথে পরীক্ষা করা
স্ক্যানারের সাথে পরীক্ষা করা
স্ক্যানারের সাথে পরীক্ষা করা
স্ক্যানারের সাথে পরীক্ষা করা
স্ক্যানারের সাথে পরীক্ষা করা

সিস্টেম পরীক্ষার জন্য একটি মাছের খেলনা ব্যবহার করা হয়েছিল এবং আপনি বন্দী ছবিটি দেখতে পারেন। সমস্ত ক্যাপচার করা ফাইল এবং আউটপুট পয়েন্ট ক্লাউড সংযুক্ত ফাইলটিতে অন্তর্ভুক্ত করা হয়েছে, আপনি মেশল্যাব দিয়ে PLY পয়েন্ট ক্লাউড ফাইল খুলতে পারেন:

meshlab.sourceforge.net/

ধাপ 5: কিছু অন্যান্য স্ক্যান ফলাফল

কিছু অন্যান্য স্ক্যান ফলাফল
কিছু অন্যান্য স্ক্যান ফলাফল
কিছু অন্যান্য স্ক্যান ফলাফল
কিছু অন্যান্য স্ক্যান ফলাফল
কিছু অন্যান্য স্ক্যান ফলাফল
কিছু অন্যান্য স্ক্যান ফলাফল
কিছু অন্যান্য স্ক্যান ফলাফল
কিছু অন্যান্য স্ক্যান ফলাফল

এখানে আপনি কিছু মানুষের মুখ স্ক্যান এবং একটি দেয়ালের 3 ডি স্ক্যান দেখতে পারেন। প্রতিফলন বা ভুল ছবির ফলাফলের কারণে সবসময় কিছু বহিরাগত পয়েন্ট থাকে।

ধাপ 6: 3D স্ক্যানার GUI

3D স্ক্যানার GUI
3D স্ক্যানার GUI

এই ধাপে 3 ডি স্ক্যান সফটওয়্যারটি পরীক্ষার জন্য আমি দুটি ডাটা সেট যোগ করি একটি মাছের স্ক্যান এবং অন্যটি এর সঠিকতা দেখার জন্য কেবল একটি সমতল প্রাচীর। ZIP ফাইল খুলুন এবং SL3DGUI.py চালান। ইনস্টলেশনের জন্য চেক ধাপ 2. সমস্ত সোর্স কোডের জন্য এখানে আমার ইনবক্সে বার্তা পাঠান।

3 ডি স্ক্যান অংশ ব্যবহারের জন্য আপনাকে দুটি ক্যামেরা এবং প্রজেক্টর ইনস্টল করতে হবে কিন্তু অন্যান্য অংশের জন্য শুধু বোতামে ক্লিক করুন। নমুনা ডেটা পরীক্ষার জন্য প্রথমে প্রসেসে ক্লিক করুন তারপর থ্রেশহোল্ড, স্টেরিও ম্যাচ এবং সবশেষে পয়েন্ট ক্লাউড। পয়েন্ট ক্লাউড দেখতে মেশ্ল্যাব ইনস্টল করুন।

meshlab.sourceforge.net/

প্রস্তাবিত: