সুচিপত্র:

গোপন বগি সহ মুখের স্বীকৃতি আয়না: 15 টি ধাপ (ছবি সহ)
গোপন বগি সহ মুখের স্বীকৃতি আয়না: 15 টি ধাপ (ছবি সহ)

ভিডিও: গোপন বগি সহ মুখের স্বীকৃতি আয়না: 15 টি ধাপ (ছবি সহ)

ভিডিও: গোপন বগি সহ মুখের স্বীকৃতি আয়না: 15 টি ধাপ (ছবি সহ)
ভিডিও: আল্লাহকে সাক্ষী রেখে বিয়ে। আল্লাহকে সাক্ষী মেনে গোপনে বিয়ে করলেন বৈধ হবে কি? Islamic waz bangla tv 2024, জুলাই
Anonim
গোপন বগি সহ মুখের স্বীকৃতি আয়না
গোপন বগি সহ মুখের স্বীকৃতি আয়না
গোপন বগি সহ মুখের স্বীকৃতি আয়না
গোপন বগি সহ মুখের স্বীকৃতি আয়না
গোপন বগি সহ মুখের স্বীকৃতি আয়না
গোপন বগি সহ মুখের স্বীকৃতি আয়না

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

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

আমি এই ব্যক্তিদের/প্ল্যাটফর্মগুলিকে বিশেষ ধন্যবাদ জানাতে চাই যেখানে আমি আমার তথ্য এবং সম্পদগুলি পেয়েছি:

TeCoEd - ইউটিউব চ্যানেল

PiMyLifeUp থেকে Emmet

Hackster.io (প্রোফাইল) এ MJRoBot

গ্যাভেন ম্যাকডোনাল্ড - ইউটিউব চ্যানেল

থিংভার্সে টাকার শ্যানন (প্রোফাইল)

সরবরাহ

ফ্রেম সরবরাহ:

  • উড প্ল্যাঙ্ক (এই বোর্ডের মাত্রা ছিল 42 "7.5" 5/16 দ্বারা ")
  • পেন্সিল ছবির ফ্রেম (কাচের সঙ্গে)
  • স্প্রে পেইন্ট
  • এক উপায় প্রতিফলিত আঠালো
  • গ্লাস ক্লিনার ও রাগ
  • MDF কাঠ

মুখের স্বীকৃতি সরবরাহ:

  • রাস্পবেরি পাই (আমি পাই 3 বি+ ব্যবহার করেছি কিন্তু অন্যান্য বিকল্প আছে)
  • ক্যামেরা মডিউল
  • Stepper মোটর

সরঞ্জাম:

  • টেবিল দেখেছি
  • জিগ দেখেছি
  • SandpaperWood
  • আঠালো টেপ
  • পরিমাপ করা
  • কাঁচি
  • ছিটানোর বোতল
  • 3D প্রিন্টার
  • ভালো আঠা

ধাপ 1: বক্স ফ্রেমের জন্য কাট

বাক্স ফ্রেমের জন্য কাট
বাক্স ফ্রেমের জন্য কাট
বাক্স ফ্রেমের জন্য কাট
বাক্স ফ্রেমের জন্য কাট
বাক্স ফ্রেমের জন্য কাট
বাক্স ফ্রেমের জন্য কাট
বাক্স ফ্রেমের জন্য কাট
বাক্স ফ্রেমের জন্য কাট

আমি সেকেন্ড হ্যান্ড স্টোর থেকে একটি ছবির ফ্রেম কিনেছি। শুধু একটি সতর্কতা, নিশ্চিত করুন যে ফ্রেম তৈরির তক্তাগুলি কমপক্ষে 1 1/2 চওড়া। এটি এর জন্য আপনি কাঠের অন্যান্য বোর্ডগুলিকে কাজ করার জন্য পর্যাপ্ত জায়গা দিয়ে আঠালো করতে পারেন। এছাড়াও, গ্লাসটি নিশ্চিত করুন ফ্রেমটি পুরোপুরি পরিষ্কার।

  • ফ্রেমটিকে পোর্ট্রেট ওরিয়েন্টেশনে রাখুন। ফ্রেমের কাচের গর্তের লম্বা দিকগুলি (এলএস) পরিমাপ করুন উপরে এবং নীচে উভয় অতিরিক্ত ½”দিয়ে। (অর্থাত্ কাচের গর্তের পরিমাপের লম্বা পাশে এক ইঞ্চি যোগ করুন। এটি রেকর্ড করুন এবং LSM (লং সাইড মেজারমেন্ট) লেবেল করুন।
  • একইভাবে, গর্তের উপরের দিকটি পরিমাপ করুন এবং অতিরিক্ত 1”যোগ করুন। এটি রেকর্ড করুন এবং এসএসএম (শর্ট সাইড মেজারমেন্ট) লেবেল করুন।
  • আপনার বোর্ড পান এবং একটি টেবিল করাত দিয়ে, দুটি LSM x 2”এবং দুটি SSM x 2” কেটে নিন।
  • একটি LSM কাট নিন এবং নিচের দিক থেকে 2”x1” আয়তক্ষেত্র পরিমাপ করুন যা 1”এবং বাম এবং ডান দিক থেকে (3 ছবিতে দেখানো হয়েছে)।
  • গর্তটি কাটাতে একটি জিগস ব্যবহার করুন। তারপর প্রান্তগুলি বালি করার জন্য স্যান্ডপেপার ব্যবহার করুন।

ধাপ 2: ড্রয়ারের জন্য কাটা

ড্রয়ারের জন্য কাট
ড্রয়ারের জন্য কাট
ড্রয়ারের জন্য কাট
ড্রয়ারের জন্য কাট
ড্রয়ারের জন্য কাট
ড্রয়ারের জন্য কাট
ড্রয়ারের জন্য কাট
ড্রয়ারের জন্য কাট

এখন আমরা ড্রয়ার (ওরফে সিক্রেট কম্পার্টমেন্ট) তৈরি করতে শুরু করব।

  • দুটি 4 "x 1" পার্শ্ব, একটি 3 "" x 1 "(পিছনের প্রান্ত), একটি 4" "x 1" "(সামনের প্রান্ত) এবং একটি 4" x 3 "" (প্ল্যাটফর্ম) কেটে ফেলুন।
  • প্ল্যাটফর্মের 4 "পাশে প্রথম 4" x 1 "পাশটি আঠালো করুন। আমি প্ল্যাটফর্মের পাশে কয়েকটি কাগজ ভাঁজ করে রেখেছিলাম যাতে এটি কিছুটা উত্তোলন করা হয়, এইভাবে এটি এলএস প্লাঙ্কে যে গর্তটি কেটে ফেলেছিল তাতে টানবে না। 30 মিনিটের জন্য শুকানোর জন্য সেট করুন।
  • একইভাবে, প্ল্যাটফর্মের 3 ⅜”প্রান্ত বরাবর 3 ⅜” x 1”আঠালো করুন। 30 মিনিটের জন্য শুকানোর জন্য সেট করুন। তারপরে প্রথম 4 এর বিপরীত দিকে দ্বিতীয় 4 "x 1" পাশটি আঠালো করুন। 30 মিনিটের জন্য শুকানোর জন্য সেট করুন।
  • আপাতত সামনের প্রান্তটি সরিয়ে রাখুন। এটি ড্রয়ারের উপর আঠালো শেষ জিনিস হবে।
  • শেষ হয়ে গেলে, আপনি যে গর্তটি এলএসএম তক্তার মধ্যে জিগস করেছেন তাতে এটি ফিট করে কিনা তা পরীক্ষা করুন। যদি না হয়, ড্রয়ারটি সহজেই ভিতরে এবং বাইরে স্লাইড না হওয়া পর্যন্ত গর্তটি বালি করুন এবং কোনও টান নেই।

ধাপ 3: ফ্রেম একসাথে রাখা

ফ্রেম একসাথে রাখা
ফ্রেম একসাথে রাখা
ফ্রেম একসাথে রাখা
ফ্রেম একসাথে রাখা
ফ্রেম একসাথে রাখা
ফ্রেম একসাথে রাখা

সমস্ত অংশ সম্পূর্ণ হওয়ার সাথে সাথে আমরা ফ্রেমের সম্পূর্ণতা একত্রিত করতে শুরু করতে পারি।

  • LSM তক্তাটি প্রতিটি পাশে ½”দিয়ে কাচের গর্ত দিয়ে কেন্দ্রীভূত করুন। নিশ্চিত করুন যে এটি ছিদ্র থেকে ½”দূরে আঠালো (ছবি 1 এ দেখানো হয়েছে)। 30 মিনিটের জন্য শুকানোর জন্য সেট করুন।
  • এলএসএম তক্তার ভিতরে স্পর্শ করা প্রান্ত দিয়ে প্রথম এসএসএম তক্তাটি আঠালো যা কেবল আঠালো ছিল। (এটি একটি সোজা উপর আঠালো করা হয় তা নিশ্চিত করার জন্য একটি শাসক ব্যবহার করুন)। 30 মিনিটের জন্য শুকানোর জন্য সেট করুন।
  • অন্যান্য এলএসএম সাইড নিন এবং প্রথমটির মতো আঠালো করুন। নিশ্চিত করুন যে এটি গর্ত থেকে ½”দূরে এবং এসএসএম যা শুধু সংযুক্ত ছিল তা তক্তার ভিতরে আঠালো। 30 মিনিটের জন্য শুকানোর জন্য সেট করুন।
  • উপরের প্রান্তে শেষ এসএসএম আঠালো করুন। যেহেতু আপনার দুই পাশে দুটি LSM আছে, আপনি সেগুলিকে কতটা সোজাভাবে সংযুক্ত করেছেন তার উপর নির্ভর করে, এটি SSM এর পাশগুলিকে নিচে বালি করতে হবে যাতে এটি ফিট করে (আমার কাটিং কখনও কখনও বন্ধ থাকে)। 30 মিনিটের জন্য শুকানোর জন্য সেট করুন।
  • ড্রয়ারের নীচে এবং ফ্রেমের মধ্যে ছোট জায়গাটি পরিমাপ করুন। এই পরিমাপের সাহায্যে MDF কাঠের একটি টুকরো 4 "দ্বারা কেটে ফেলুন। আপনি এই টুকরোটি ড্রয়ারের কাছাকাছি করতে চান কিন্তু এটি স্পর্শ করেন না। এটি ড্রয়ারকে ন্যূনতম ঘর্ষণ সহ সমর্থন করার জন্য।
  • সব শেষ হয়ে গেলে, আমি ফ্রেম আঁকা স্প্রে করেছি যাতে সমস্ত টুকরা মিলে যায়।

ধাপ 4: আয়নার জন্য

আয়নার জন্য
আয়নার জন্য
আয়নার জন্য
আয়নার জন্য
আয়নার জন্য
আয়নার জন্য
আয়নার জন্য
আয়নার জন্য

আমাজন থেকে কেনা একমুখী চলচ্চিত্র আঠালো ছিল প্রায় 10 ডলার। যদি আপনি আগ্রহী হন তবে আরও ভাল মানের রয়েছে যা একটু বেশি ব্যয়বহুল। আমি যা ব্যবহার করি তা প্রতিফলিত হয় কিন্তু আপনি বলতে পারেন এটি একটি নিয়মিত আয়না নয় যা আপনি একটি বাড়িতে দেখতে পাবেন। আরো ব্যয়বহুল জিনিস আপনি যে চেহারা পাবেন।

  • দুই পাশে গ্লাস ক্লিনার দিয়ে গ্লাস পরিষ্কার করুন।
  • একমুখী আঠালো আনরোল করুন এবং কাচের উপরে রাখুন। আঠালো কেটে ফেলুন যাতে কাচের প্রতিটি পাশে কমপক্ষে ½”অতিরিক্ত থাকে।
  • গ্লাসটি একপাশে রাখুন এবং এর একপাশে জল দিয়ে ভিজিয়ে দিন। তারপর প্লাস্টিকের কোটটি একমুখী আঠালো থেকে ছিঁড়ে ফেলুন এবং নতুন উন্মুক্ত দিকটি পানি দিয়ে স্প্রে করুন।
  • কাচের ভেজা পাশে আঠালো ভেজা পাশে রাখুন। 30 মিনিট বসতে দিন।
  • উল্টান এবং আঠালো এবং কাচের মধ্যে কোন বুদবুদ সমতল করতে আপনার থাম্ব ব্যবহার করুন। তারপর চারপাশের প্রান্ত থেকে অতিরিক্ত আঠালো কাটা।

ধাপ 5: রাস্পবিয়ান স্ট্রেচ ইনস্টল করুন

এটি আমার প্রথমবার রাস্পবেরি পাই পরিবেশে প্রবেশ করে আমি কীভাবে ওএস ইনস্টল করা যায় তার নির্দেশাবলী খুঁজতে শুরু করি। আমি অবশেষে TeCoEd দ্বারা ইউটিউবে একটি সহজবোধ্য টিউটোরিয়াল খুঁজে পেয়েছি যা SD কার্ডে স্ট্রেচ ইনস্টল করার প্রক্রিয়ার মধ্য দিয়ে গিয়েছিল (পাশাপাশি একটি সুন্দর পরিচিতি সহ)। এখানে সেই টিউটোরিয়ালের লিঙ্ক দেওয়া হল:

মোটকথা, আপনাকে যা করতে হবে তা হল:

  • আপনার ড্রাইভ >> ড্রাইভ টুলস >> ফরম্যাট নির্বাচন করে SD কার্ড ফরম্যাট করুন। রাস্পিয়ান স্ট্রেচের জন্য জিপ ফাইলটি ডাউনলোড করুন (এখানে পাওয়া যায়:
  • এসডি কার্ডে ওএস ইমেজ ফ্ল্যাশ করুন। TeCoEd এটি সম্পূর্ণ করতে Win32 ডিস্ক ইমেজার ব্যবহার করেছে। আমি balenaEtcher ইনস্টল করা শেষ করেছি যা একটু বেশি সহজবোধ্য মনে হয়েছিল। (এখানে balenaEtcher এর ডাউনলোড লিঙ্ক রয়েছে:
  • একবার বেলেনাএচারে "ফাইল থেকে ফ্ল্যাশ" নির্বাচন করুন এবং পূর্বে ডাউনলোড করা জিপ ফাইলটি নির্বাচন করুন। পরবর্তী, পছন্দসই এসডি কার্ড নির্বাচন করুন (যদি স্বয়ংক্রিয়ভাবে নির্বাচিত না হয়)। তারপরে সরস ফ্ল্যাশ বোতামটি টিপুন এবং যাদু হওয়ার জন্য অপেক্ষা করুন।

একবার এসডি কার্ডে ইনস্টল হয়ে গেলে আপনি এটি রাস্পবেরি পাইতে ertুকিয়ে জেনেরিক পাই সেটআপ প্রক্রিয়ার মধ্য দিয়ে যেতে পারেন।

ধাপ 6: OpenCV ইনস্টল করুন

এখন আরও মুখ-স্বীকৃতি-ভিত্তিক অংশে। মুখগুলি চিনতে হলে, আমাদের অবশ্যই OpenCV লাইব্রেরি ডাউনলোড করতে হবে যেখানে কম্পিউটার ভিশন নিয়ে কাজ করার জন্য প্রচুর সংখ্যক সরঞ্জাম রয়েছে।

ওপেনসিভি ইনস্টল করা আমার জন্য সফ্টওয়্যার দিকের সবচেয়ে কঠিন অংশ ছিল। কিন্তু অসংখ্য নির্দেশনা অনুসরণ করার পর আমি অবশেষে পাইমেইলাইফআপ থেকে এমমেটের একটি টিউটোরিয়াল খুঁজে পেয়েছি যা এখানে যে কৌশলটি পেয়েছে:

আমি এই ধাপগুলির মধ্য দিয়ে যাব না কারণ আপনি লিঙ্ক থেকে তাদের অনুসরণ করা আরও উপযুক্ত হবে (প্রদত্ত ব্যাখ্যা এবং আরও সহজেই সাইট থেকে কপি এবং পেস্ট করার ক্ষমতা সহ)।

ধাপ 7: ক্যামেরা সক্ষম/পরীক্ষা করুন

ক্যামেরা সক্ষম/পরীক্ষা করুন
ক্যামেরা সক্ষম/পরীক্ষা করুন
ক্যামেরা সক্ষম/পরীক্ষা করুন
ক্যামেরা সক্ষম/পরীক্ষা করুন

ওপেনসিভি ইনস্টল করার পর MJRoBot- এর Hackster.io- এর একটি টিউটোরিয়াল ব্যবহার করে আমার বাকি যাত্রা সম্পন্ন হয়েছে:

আমরা শুরু করার আগে আমি আপনাকে স্মরণ করিয়ে দিতে চাই যে আমি এই স্ক্রিপ্টগুলির মূল স্রষ্টা নই কিন্তু তাদের কিছু অংশ পরিবর্তন করেছি।

শুরু করার জন্য আমাদের ক্যামেরা পরীক্ষা করা উচিত যাতে আমরা স্ক্রিনে ভিডিও ধারণ করতে পারি। আমি MJRoBot এর ধাপ 3 এ প্রদত্ত স্ক্রিপ্টটি চালানোর চেষ্টা করে প্রায় এক ঘন্টা কাটিয়েছি। জীবন যেমন হবে তেমনি আমাদের আসলে রাস্পবেরি পাই তে ক্যামেরা চালু করতে হবে (দেখা যাচ্ছে প্রদত্ত নির্দেশনা পড়া ভাল ধারণা হতে পারে… mmm নাহ)। সুতরাং ক্যামেরাটিকে তার সঠিক পোর্টের সাথে সংযুক্ত করার পরে এই পদক্ষেপগুলি অনুসরণ করুন:

  • একটি কমান্ড টার্মিনাল খুলুন এবং sudo raspi-config টাইপ করুন
  • "ক্যামেরা সক্ষম করুন" নির্বাচন করুন (এটি একটি ডিভাইসের বিকল্পের অধীনে পাওয়া যেতে পারে)
  • "এন্টার" টিপুন
  • "ফিনিশ" এ যান এবং আপনাকে রিবুট করার জন্য অনুরোধ করা হবে

তারপর এই পদক্ষেপগুলি অনুসরণ করুন:

  • রাস্পবেরির প্রধান মেনুতে যান (উপরের বাম দিকে)
  • পছন্দ
  • রাস্পবেরি পাই কনফিগারেশন
  • ইন্টারফেস
  • তারপর ক্যামেরায়, "সক্ষম" নির্বাচন করুন
  • তাহলে ঠিক আছে"

এখন আপনি ক্যামেরাটি পরীক্ষা করার জন্য MJRoBot এর টিউটোরিয়াল থেকে এই স্ক্রিপ্টটি সফলভাবে চালাতে সক্ষম হবেন (মনে রাখবেন যে এই সমস্ত কোড এবং আরও গভীরভাবে বর্ণনা MJRobot এর টিউটোরিয়ালের উপরে প্রদত্ত লিঙ্কে পাওয়া যায়):

np হিসাবে numpy আমদানি করুন

cv2 cap = cv2 আমদানি করুন। ফ্লিপ (ফ্রেম -1)) এবং 0xff যদি k == 27: # ব্রেক ক্যাপ ছাড়ার জন্য 'ESC' টিপুন।

পূর্ববর্তী কোড দুটি উইন্ডো প্রদর্শন করা উচিত, একটি রঙে এবং অন্যটি গ্রেস্কেলে। যদি আপনি এটি এতদূর তৈরি করেন তবে আমি মনে করি আপনি একটি সুন্দর স্যান্ডউইচ প্রাপ্য।

ধাপ 8: তথ্য সংগ্রহ এবং প্রশিক্ষণ তথ্য

তথ্য সংগ্রহ এবং প্রশিক্ষণ উপাত্ত
তথ্য সংগ্রহ এবং প্রশিক্ষণ উপাত্ত
তথ্য সংগ্রহ এবং প্রশিক্ষণ উপাত্ত
তথ্য সংগ্রহ এবং প্রশিক্ষণ উপাত্ত
তথ্য সংগ্রহ এবং প্রশিক্ষণ উপাত্ত
তথ্য সংগ্রহ এবং প্রশিক্ষণ উপাত্ত

প্রদত্ত টিউটোরিয়ালে লেখক শীঘ্রই প্রদত্ত কোডের প্রক্রিয়াগুলি সম্পর্কে আরও গভীরতার মধ্যে চলে যান, কিন্তু যেহেতু এই আয়নাটি কীভাবে তৈরি করা হয়েছিল সে সম্পর্কে এই নির্দেশাবলী আমি ইতিহাস বা জটিল যান্ত্রিকতার গভীরতায় যাব না। যাইহোক আমি আপনাকে সুপারিশ করছি যে আপনি আপনার জীবনের একটি মাস এই দুটি জিনিস পড়ুন কারণ সেগুলি আপনার মনকে ভালভাবে পরিবেশন করতে পারে।

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

একটি কমান্ড লাইন খুলুন এবং এটি একটি মজার কিছু নামকরণ করে একটি নতুন ডিরেক্টরি তৈরি করুন (আমি আমার ফেসরেক নামে পরিচিত)

mkdir FaceRec

এখন, ডিরেক্টরিকে ফেসরেক -এ পরিবর্তন করুন এবং একটি উপ -ডিরেক্টরি তৈরি করুন যাতে এটি ডেটাসেটের নাম নিশ্চিত হয়।

সিডি ফেসরেক

mkdir ডেটাসেট

আমরা যখন সেখানে থাকি, তখন আমরা প্রশিক্ষক নামে অন্য সাবডিরেক্টরিও তৈরি করতে পারি।

mkdir প্রশিক্ষক

এখন আপনি প্রথম স্ক্রিপ্টের দিকনির্দেশগুলি চালাতে এবং অনুসরণ করতে পারেন যা ব্যবহারকারীর ছবি ক্যাপচার করবে। (শুধু একটি মাথা, 1, 2, 3 ইত্যাদি হিসাবে ব্যবহারকারী আইডি লিখতে ভুলবেন না)

cv2import os cam = cv2 আমদানি করুন। ব্যক্তি, একটি সংখ্যাসূচক মুখ আইডি লিখুন face_id = ইনপুট ('\ n প্রবেশ করুন ব্যবহারকারী আইডি শেষ প্রেস ==>') মুদ্রণ ("\ n [তথ্য] মুখের ক্যাপচার আরম্ভ করা count = 0 while (True): ret, img = cam.read () img = cv2.flip (img, -1) # flip video image vertically grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) face = face_detector.detectMultiScale (ধূসর, 1.3, 5) মুখে (x, y, w, h) জন্য: cv2.rectangle (img, (x, y), (x+w, y+h), (255, 0, 0), 2) count + = 1 # ক্যাপচার করা ছবিটি ডেটাসেট ফোল্ডারে সংরক্ষণ করুন cv2.imwrite ("dataset/User।" + Str (face_id) + '।' + Str (count) + ".jpg", ধূসর [y: y +h, x: x+w]) cv2.imshow ('image', img) k = cv2.waitKey (100) & 0xff # k == 27: break elif count> = 30: # 30 টি মুখের নমুনা নিন এবং ভিডিও ব্রীয়া বন্ধ করুন k মুদ্রণ ("\ n [INFO] প্রস্থান প্রোগ্রাম এবং পরিস্কার জিনিস") cam.release () cv2.destroyAllWindows ()

এই মুহুর্তে নিশ্চিত হয়ে নিন যে আপনি পাইতে বালিশ ইনস্টল করেছেন। যদি না হয়, কমান্ডটি চালান:

পিপ ইনস্টল বালিশ

এটি সম্পন্ন হওয়ার পরে আপনি প্রশিক্ষণ স্ক্রিপ্ট (দ্বিতীয় স্ক্রিপ্ট) চালাতে পারেন যা আপনাকে নির্বিঘ্নে একটি.yaml ফাইল সরবরাহ করবে যা চূড়ান্ত স্ক্রিপ্টে ব্যবহৃত হবে।

পিআইএল আমদানি থেকে np হিসাবে cv2import numpy আমদানি করুন ছবি আমদানি os # ফেস ইমেজ ডাটাবেস পাথের পথ = 'ডেটাসেট' সনাক্তকারী = cv2.face. LBPHFaceRecognizer_create () detector = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml"); # ফাংশন ছবি এবং লেবেল ডেটা পেতে getImagesAndLabels (path): imagePaths = [os.path.join (path, f) for f in os.listdir (path)] faceSamples = ids = imagePaths এ imagePath- এর জন্য: PIL_img = Image.open (imagePath).convert ('L') # এটি ধূসর স্কেলে রূপান্তর করুন img_numpy = np.array (PIL_img, 'uint8') id = int (os.path.split (imagePath) [-1]। বিভক্ত ("।") [1]) মুখ = detector.detectMultiScale (img_numpy) (x, y, w, h) এর জন্য মুখে: faceSamples.append (img_numpy [y: y+h, x: x+w]) ids.append (id) return faceSamples, ids print ("\ n [INFO] প্রশিক্ষণের মুখ। এতে কয়েক সেকেন্ড সময় লাগবে। অপেক্ষা করুন …") মুখ, ids = getImagesAndLabels (path) identizer.train (face, np.array (ids)) # মডেলটি প্রশিক্ষক/trainer.yml identizer.write এ সংরক্ষণ করুন ('trainer/trainer.yml') # identizer.save () Mac এ কাজ করেছে, কিন্তু Pi তে নয় # প্রশিক্ষিত মুখের সংখ্যা প্রিন্ট করুন এবং প্রোগ্রাম প্রিন্ট শেষ করুন ("\ n [INFO] {0} প্রশিক্ষিত মুখ। প্রস্থান প্রোগ্রাম"। ফরম্যাট (len (np.unique (ids))))

স্ক্রিপ্টগুলির এই সেটের মধ্যে যেটা চমৎকার তা হল যে, একাধিক মুখ সিস্টেমে beুকতে পারে যার অর্থ হল একাধিক ব্যক্তি যদি ইচ্ছা হয় তাহলে আয়নার অভ্যন্তরে প্রবেশ করতে পারে।

নিচে আমার কাছে ডাটা ক্যাপচার স্ক্রিপ্ট এবং ট্রেনিং স্ক্রিপ্ট ডাউনলোডের জন্য উপলব্ধ।

ধাপ 9: মুখের স্বীকৃতি সময়

মুখের স্বীকৃতি সময়
মুখের স্বীকৃতি সময়
মুখের স্বীকৃতি সময়
মুখের স্বীকৃতি সময়

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

আমরা আমাদের প্রয়োজনীয় সব মডিউল আমদানি করে শুরু করব এবং তারপর GPIO মোডে GPIO. BCM সেট করব

np হিসাবে numpy আমদানি করুন

আমদানি করুন

কন্ট্রোলপিন নামের এই পরবর্তী তালিকাটি এমন সংখ্যার একটি অ্যারে যা আউটপুট পিনের প্রতিনিধিত্ব করে যা আমাদের স্টেপার মোটরের জন্য ব্যবহৃত হবে।

ControlPin = [14, 15, 18, 23]

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

GPIO.setup (ControlPin , GPIO. OUT)

GPIO.output (ControlPin , 0) GPIO.setup (2, GPIO. IN, pull_up_down = GPIO. PUD_DOWN)

পরের দুটি ভেরিয়েবল হল ক্রম যা আমরা মোটর চালানোর জন্য ব্যবহার করব। আমি গ্যাভেন ম্যাকডোনাল্ডের একটি চমৎকার ভিডিও থেকে এই তথ্যটি শিখেছি যা আমি দেখার পরামর্শ দিচ্ছি কারণ সে শুধু কোড নয় বরং প্রকৃত মোটরের গভীরতায় যায় (এখানে পাওয়া যায়: https://www.youtube.com/embed/Dc16mKFA7Fo) । মোটকথা, আসন্ন openComp এবং closeComp ফাংশনে নেস্টেড ফর-লুপ ব্যবহার করে প্রতিটি ক্রম পুনরাবৃত্তি করা হবে। যদি আপনি ঘনিষ্ঠভাবে দেখেন তবে seq2 হল seq1 এর ঠিক বিপরীত। হ্যাঁ, আপনি অনুমান করেছেন। একটি মোটরকে এগিয়ে নিয়ে যাওয়ার জন্য এবং অন্যটি বিপরীত দিকে।

seq1 =

seq2 =

আমাদের openComp ফাংশন দিয়ে শুরু করে আমরা একটি লুপ তৈরি করি যা 1024 বার পুনরাবৃত্তি করবে। ম্যাকডোনাল্ডের ভিডিও অনুসারে 512 পুনরাবৃত্তি মোটরের সম্পূর্ণ ঘূর্ণন সরবরাহ করবে এবং আমি দেখতে পেলাম যে প্রায় দুটি ঘূর্ণন একটি ভাল দৈর্ঘ্য ছিল কিন্তু এটি একজন ব্যক্তির আকারের উপর নির্ভর করে সামঞ্জস্য করা যেতে পারে। Seq1 এবং seq2 এ পাওয়া 8 টি অ্যারের হিসাব করার জন্য পরবর্তী ফর-লুপটি 8 টি পুনরাবৃত্তি নিয়ে গঠিত। এবং পরিশেষে, শেষের জন্য লুপ চারটি আইটেমের জন্য চারবার পুনরাবৃত্তি করে যা এই প্রতিটি অ্যারে এবং 4 টি GPIO পিনের সাথে আমাদের মোটর সংযুক্ত আছে। এখানকার লাইনটি GPIO পিন নির্বাচন করে এবং এটি কোন পুনরাবৃত্তির উপর নির্ভর করে তা চালু বা বন্ধ করে দেয়। লাইন পরে কিছু বাফার সময় প্রদান করে যাতে আমাদের মোটর মোটেও ঘোরানো না হয়। ড্রয়ারটি সরানোর জন্য মোটর ঘোরানোর পরে এটি চলার আগে 5 সেকেন্ডের জন্য ঘুমায়। এই সময়টি এখানে সামঞ্জস্য করা যেতে পারে অথবা আপনি মন্তব্য করা কোডটি সক্ষম করতে পারেন যা টাইমারের পরিবর্তে স্ক্রিপ্ট দিয়ে এগিয়ে যাওয়ার জন্য পুশ-বোতাম ব্যবহারের অনুমতি দেয়।

আমি পরিসরে (1024) জন্য:

পরিসরের অর্ধেকের জন্য (2) == GPIO. LOW: বিরতি; '' সময়। ঘুম (5)

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

আমি পরিসরে (1024) জন্য:

পরিসীমা অর্ধেকের জন্য (ControlPin [0], 0) GPIO.output (ControlPin [3], 0) time.sleep (3)

পরবর্তী অংশের বেশিরভাগ অংশ ক্যামেরা সেট আপ এবং মুখের স্বীকৃতি শুরু করতে ব্যবহৃত হয়। আবার, MKRoBot এর নির্দেশনাগুলি অংশগুলিতে আরও বেশি করে যায় কিন্তু আপাতত, আমি কেবল আয়নার জন্য ব্যবহৃত অংশগুলি দেখাই।

প্রথমে আমি তালিকার নাম পরিবর্তন করেছি যাতে আমার নাম সেই সূচীতে থাকে যা আমি ডেটা সংগ্রহের সময় এটি বরাদ্দ করেছি (আমার ক্ষেত্রে ১)। এবং তারপরে আমি বাকি মানগুলিকে None এ সেট করেছি যেহেতু ডেটাসেটে আমার আর মুখ ছিল না।

নামগুলি

আমাদের শেষ কয়েকটি লাইন কোড থিক ফর-লুপে প্রয়োগ করা হয়েছে। ভেরিয়েবল আস্থা একটি স্ট্রিংয়ে পরিণত হওয়ার আগে আমি একটি পূর্ণসংখ্যা (intConfidence) হিসাবে আস্থা সঞ্চয় করার জন্য একটি পরিবর্তনশীল তৈরি করেছি। তারপর আমি একটি if- স্টেটমেন্ট ব্যবহার করে দেখেছি যে আত্মবিশ্বাস 30 এর চেয়ে বেশি এবং যদি আইডি (কম্পিউটারটি কোন ব্যক্তিকে সনাক্ত করছে, এই ক্ষেত্রে, "ড্যানিয়েল") আমার নামের সমান।এটি নিশ্চিত হওয়ার পরে ফাংশন openComp বলা হয় যা মোটরকে সরিয়ে দেয়, 5 সেকেন্ডের পরে বেরিয়ে যায়, এবং তারপর ক্লোজকম্পে এগিয়ে যায় যা মোটরটিকে বিপরীত দিকে নিয়ে যায় এবং থিক লুপ দিয়ে এগিয়ে যাওয়ার আগে কিছু পরিষ্কার করে।

যদি intConfidence> 30 এবং id == 'Daniel':

openComp () closeComp ()

একটি বাগ যা আমি এখানে পেয়েছি তা হল মাঝে মাঝে ক্লোজকম্প ফেরত আসার পরে, কোডটি চলতে থাকে কিন্তু শর্তসাপেক্ষে যদি বিবৃতিটি আবার সত্য বলে প্রমাণিত হয় তবে এটি ভিডিও ফিড পড়ছে যা এখনও বাফারে রয়েছে। যদিও এটি প্রতিবার ঘটে না যদিও আমি এখনও নিশ্চিত না করার উপায় খুঁজে পাইনি যে এটি কখনই ঘটবে না, তাই যদি কারও কোন ধারণা থাকে তবে আমাকে মন্তব্যগুলিতে জানান।

এখানে পুরো স্ক্রিপ্টটি এক জায়গায় (এবং এটির নীচে ডাউনলোডযোগ্য):

আমদানি cv2

np আমদানি np হিসাবে আমদানি করুন আমদানি করুন (ControlPin , GPIO. OUT) GPIO.output (ControlPin , 0) GPIO.setup (2, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) seq1 =

ধাপ 10: পাই মাউন্ট করা এবং মোটর সংযুক্ত করা

পাই মাউন্ট করা এবং মোটর সংযুক্ত করা
পাই মাউন্ট করা এবং মোটর সংযুক্ত করা
পাই মাউন্ট করা এবং মোটর সংযুক্ত করা
পাই মাউন্ট করা এবং মোটর সংযুক্ত করা
পাই মাউন্ট করা এবং মোটর সংযুক্ত করা
পাই মাউন্ট করা এবং মোটর সংযুক্ত করা

রাস্পবেরি পাইকে ফ্রেমে মাউন্ট করা বরং সহজ ছিল। আমি একটি ছোট 90-ডিগ্রি কনুই ডিজাইন করেছি যার একটি মুখে একটি গর্ত রয়েছে এবং অন্যটি সম্পূর্ণ সমতল। থ্রিডি প্রিন্টিং এর পর এগুলোকে রাস্পবেরি পাই এর মাউন্ট করা গর্তে স্ক্রু দিয়ে সংযুক্ত করা যেতে পারে (আমি জিপিআইও পিনের প্রতিটি পাশে দুটি গর্ত ব্যবহার করেছি)।

আমি তখন 3D মুদ্রিত কনুইয়ের বিপরীত মুখগুলিতে সুপার আঠালো ব্যবহার করে এগিয়ে গেলাম যাতে ফ্রেমের ড্রয়ারের ঠিক উপরে পিআই আঠালো হয়। আঠালো শুকিয়ে দেওয়ার পরে আমি কেবল দুটি স্ক্রু দিয়ে পাইকে সরিয়ে দিতে বা প্রতিস্থাপন করতে সক্ষম হয়েছিলাম। আমার নীচের কনুইয়ের জন্য.stl আছে।

এখন কেবল মোটর ড্রাইভারকে PI- এর সাথে IN1, IN2, IN3, IN4 সংযুক্ত করে যথাক্রমে GPIO 14, 15, 18, 23 এর সাথে সংযুক্ত করুন। অবশেষে, কন্ট্রোলার বোর্ডের 5v এবং গ্রাউন্ড পিনগুলিকে 5v আউটপুট এবং পাই এর গ্রাউন্ড পিনের সাথে সংযুক্ত করুন।

এখানে কিছু রেফারেন্সের জন্য পাই এর পিনআউটের লিঙ্ক দেওয়া হল:

ধাপ 11: ক্যামেরা মাউন্ট করা

ক্যামেরা মাউন্ট করা
ক্যামেরা মাউন্ট করা
ক্যামেরা মাউন্ট করা
ক্যামেরা মাউন্ট করা
ক্যামেরা মাউন্ট করা
ক্যামেরা মাউন্ট করা

ক্যামেরা মাউন্ট করা পাই এর চেয়ে কিছুটা কম শক্ত ছিল কিন্তু পদ্ধতিটি কাজটি সম্পন্ন করেছে। প্রতিটি প্রান্তে 2 টি ছিদ্রযুক্ত একটি পাতলা মরীচি ডিজাইন এবং প্রিন্ট করার পর আমি তার মাউন্ট করা গর্তের মাধ্যমে মরীচিটিকে রাসবেরি পাইয়ের সাথে সংযুক্ত করেছি। তারপর শুধু অন্য একটি স্ক্রু সঙ্গে মরীচি বিপরীত প্রান্তে ক্যামেরা সংযুক্ত করুন। তা-দা! এটা দেখতে বেশ উড়ছে।

ধাপ 12: ড্রয়ার-মুভিং-মেকানিজম তৈরি এবং মাউন্ট করা

ড্রয়ার-মুভিং-মেকানিজম তৈরি এবং মাউন্ট করা
ড্রয়ার-মুভিং-মেকানিজম তৈরি এবং মাউন্ট করা
ড্রয়ার-মুভিং-মেকানিজম তৈরি এবং মাউন্ট করা
ড্রয়ার-মুভিং-মেকানিজম তৈরি এবং মাউন্ট করা
ড্রয়ার-মুভিং-মেকানিজম তৈরি এবং মাউন্ট করা
ড্রয়ার-মুভিং-মেকানিজম তৈরি এবং মাউন্ট করা

নির্মাতা সম্প্রদায়ের সদয় উপহারের জন্য এই পদক্ষেপটি সহজ করা হয়েছে। থিংভার্সে একটি দ্রুত অনুসন্ধানের পরে আমি TucksProjects দ্বারা তৈরি একটি রৈখিক অ্যাকচুয়েটর খুঁজে পেতে সক্ষম হয়েছি (এখানে পাওয়া যায়: https://www.thingiverse.com/thing:2987762)। যা করার বাকি ছিল তা ছিল একটি এসডি কার্ডে চাপড় দেওয়া এবং প্রিন্টারকে কাজটি করতে দিন।

আমি ফিউশন into০ এ গিয়ে শেষ করেছি এবং স্পার এডিট করেছি কারণ আমার মোটরের শাফট টাক্স প্রজেক্টস দ্বারা সরবরাহ করা একটির জন্য অনেক বড় ছিল। আমি নীচে যে জন্য.stl আছে। প্রিন্ট শেষ হওয়ার পরে, আমাদের কেবল মোটর শ্যাফ্টে স্পার স্থাপন করে এটিকে একত্রিত করতে হবে, তারপরে মোটর এবং ঘেরের দিকগুলি 2 টি স্ক্রু দিয়ে সংযুক্ত করে (এটি বন্ধ করার আগে আপনি র্যাকটি মাঝখানে রেখেছেন তা নিশ্চিত করে)। আমি র্যাক থেকে এক ইঞ্চি কেটে ফেলতে শেষ করেছি যাতে এটি ড্রয়ার এবং ফ্রেমের মধ্যে ফিট করে।

এখন যা বাকি আছে তা হল ফ্রেম এবং ড্রয়ারের সাথে মেকানিজম সংযুক্ত করা। "আমরা কিভাবে TIHS করব?" আপনি জিজ্ঞাসা করেন … হ্যাঁ, আমার সাথে বলুন: সুপার গ্লু। উপরের ছবিতে যেমন দেখানো হয়েছে, শুধু ফ্রেমের নিচের দিকে মেকানিজমটি রাখুন এবং ড্রয়ারের স্লাইডে থাকা কাঠের টুকরার উপরে এটিকে ধাক্কা দিন। এটি এখানে গুরুত্বপূর্ণ যে আপনি যতটা সম্ভব ফ্রেমের সাথে রাক/মেকানিজমকে সমান্তরাল করার চেষ্টা করুন যাতে যখন মেকানিজম চলে যায় তখন ড্রয়ারটি সোজা ঠেলে দেয় এবং একটি কোণে নয়। আঠা শুকিয়ে যাওয়ার পর, র্যাকের প্রান্তে আরও কিছু আঠালো রাখুন এবং ড্রয়ারকে অবস্থানে সরান এবং শুকিয়ে দিন। একবার সম্পন্ন হলে আমাদের গোপন ড্রয়ারকে ভেতরে ও বাইরে স্লাইড করার জন্য একটি শক্তিশালী প্রক্রিয়া আছে।

ধাপ 13: আয়নার পিছনে কার্ডবোর্ড যুক্ত করা

আয়নার পিছনে কার্ডবোর্ড যুক্ত করা
আয়নার পিছনে কার্ডবোর্ড যুক্ত করা
আয়নার পিছনে কার্ডবোর্ড যুক্ত করা
আয়নার পিছনে কার্ডবোর্ড যুক্ত করা
আয়নার পিছনে কার্ডবোর্ড যুক্ত করা
আয়নার পিছনে কার্ডবোর্ড যুক্ত করা

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

ধাপ 14: চূড়ান্ত টুকরা করা

চূড়ান্ত টুকরা করা
চূড়ান্ত টুকরা করা
চূড়ান্ত টুকরা করা
চূড়ান্ত টুকরা করা

শেষ জিনিসটি ড্রয়ারের সামনের অংশে রাখা উচিত যা আগে আলাদা করা হয়েছিল। মোটরটি সরান যাতে ড্রয়ারটি আটকে যায়। তারপরে সামনের অংশটি আঠালো করুন যাতে ড্রয়ারের টুকরাটি কেন্দ্রীভূত হয় (চারপাশে একটু ঝুলানো উচিত। তারপর আপনি এটি কেবল একটি দেয়ালে ঝুলিয়ে রাখতে পারেন।

ধাপ 15: সমাপ্তি

সমাপ্তি
সমাপ্তি
সমাপ্তি
সমাপ্তি

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

সামগ্রিক রেটিং: 10/10

মন্তব্য: #WillNotTryAgain… যদি না আমি এই নির্দেশনা অনুসরণ করতে পারি;)

গোপন কম্পার্টমেন্ট চ্যালেঞ্জ
গোপন কম্পার্টমেন্ট চ্যালেঞ্জ
গোপন কম্পার্টমেন্ট চ্যালেঞ্জ
গোপন কম্পার্টমেন্ট চ্যালেঞ্জ

সিক্রেট কম্পার্টমেন্ট চ্যালেঞ্জে গ্র্যান্ড প্রাইজ

প্রস্তাবিত: