- ضروری اجزاء
- راسبیری پائی میں اوپن سی وی انسٹال کرنا
- دوسرے مطلوبہ پیکجز انسٹال کرنا
- راسبیری پائی پروگرامنگ
- ڈرائیور غنودگی کا پتہ لگانے کے نظام کی جانچ کر رہا ہے
ٹرک ڈرائیور جو دن اور رات کے وقت طویل فاصلے پر سامان اور بھاری سامان لے جاتے ہیں ، وہ اکثر نیند کی کمی کا شکار رہتے ہیں۔ تھکاوٹ اور غنودگی ہائی ویز پر بڑے حادثات کی وجوہات ہیں۔ آٹوموبائل صنعتیں کچھ ایسی ٹیکنالوجیز پر کام کر رہی ہیں جن سے غنودگی کا پتہ چل سکتا ہے اور ڈرائیور کو اس سے آگاہ کیا جاسکتا ہے۔
اس پروجیکٹ میں ، ہم راسبیری پائی ، اوپن سی وی ، اور پائ کیمرا ماڈیول استعمال کرتے ہوئے ڈرائیوروں کے لئے نیند سینسنگ اور الرٹنگ سسٹم بنانے جارہے ہیں ۔ اس سسٹم کا بنیادی مقصد ڈرائیور کے چہرے کی حالت اور آنکھوں کی نقل و حرکت کا سراغ لگانا ہے اور اگر ڈرائیور کو تکلیف محسوس ہو رہی ہے تو پھر یہ نظام انتباہی پیغام بھیج دے گا۔ یہ ہمارے چہرے کی تاریخی نشان کی شناخت اور چہرے کی شناخت کی درخواست کی توسیع ہے۔
ضروری اجزاء
ہارڈ ویئر اجزاء
- راسبیری پائی 3
- پائی کیمرہ ماڈیول
- مائیکرو USB کیبل
- بزر
سافٹ ویئر اور آن لائن خدمات
- اوپن سی وی
- دلیب
- ازگر 3
اس کے ساتھ آگے بڑھنے سے پہلے ڈرائیور غنودگی کا پتہ لگانے کے منصوبے ، سب سے پہلے، ہم اس منصوبے میں OpenCV، imutils، dlib، Numpy، اور کچھ دیگر انحصار انسٹال کرنے کی ضرورت ہے. اوپن سی وی کا استعمال یہاں ڈیجیٹل امیج پروسیسنگ کے لئے کیا گیا ہے۔ ڈیجیٹل امیج پروسیسنگ کی سب سے عام ایپلی کیشنز آبجیکٹ کا پتہ لگانے ، چہرے کی شناخت اور لوگوں کا مقابلہ کرتے ہیں۔
اس نیند کا پتہ لگانے کے نظام کو بنانے کے لئے ہم یہاں صرف راسبیری پائ ، پائ کیمرا ، اور ایک بزر استعمال کررہے ہیں۔
راسبیری پائی میں اوپن سی وی انسٹال کرنا
اوپن سی وی اور دیگر انحصارات کو انسٹال کرنے سے پہلے ، راسبیری پائی کو مکمل طور پر اپ ڈیٹ کرنے کی ضرورت ہے۔ راسبیری پائی کو اس کے تازہ ترین ورژن میں تازہ کاری کرنے کے لئے درج ذیل کمانڈز کا استعمال کریں۔
sudo اپٹ اپ ڈیٹ
پھر اپنے راسبیری پائ پر اوپن سی وی انسٹال کرنے کے لئے مطلوبہ انحصار انسٹال کرنے کے لئے درج ذیل کمانڈز کا استعمال کریں۔
libhdf5-dev -y sudo apt-get install libhdf5-serial-dev آپ خود انسٹال کریں libatlas-base-dev انسٹال کریں libjasper-dev -y sudo apt-get نصب کریں libqtgui4 -y سودو مناسب حاصل انسٹال libqt4 ٹیسٹ -y
آخر میں ، ذیل کے احکامات کا استعمال کرتے ہوئے راسبیری پائی پر اوپن سی وی انسٹال کریں۔
pip3 انسٹال کریں اوپنکیو-شراکت-ازگر == 4.1.0.25
اگر آپ اوپن سی وی میں نئے ہیں تو ، راسبیری پائی کے ساتھ ہمارے پچھلے اوپن سی وی سبق کو چیک کریں۔
- سی ایم کیک کا استعمال کرتے ہوئے راسبیری پائی پر اوپن سی وی انسٹال کرنا
- راسبیری پائی اور اوپن سی وی کے ساتھ حقیقی وقت کا سامنا کرنا پڑتا ہے
- راسبیری پائی اور اوپن سی وی کا استعمال کرتے ہوئے لائسنس پلیٹ کی پہچان
- اوپن سی وی اور راسبیری پائ کا استعمال کرتے ہوئے ہجوم سائز کا تخمینہ
ہم نے ابتدائی سطح سے شروع ہونے والے اوپن سی وی سبق کا ایک سلسلہ بھی تیار کیا ہے۔
دوسرے مطلوبہ پیکجز انسٹال کرنا
راسبیری پائی کو غنودگی کا پتہ لگانے والے کے لئے پروگرام کرنے سے پہلے ، آئیے دوسرے مطلوبہ پیکیجز انسٹال کریں۔
dlib انسٹال کرنا: dlib ایک جدید ٹول کٹ ہے جس میں مشینی لرننگ الگورتھم اور حقیقی دنیا کے مسائل کے ل tools ٹولز شامل ہیں۔ dlib انسٹال کرنے کے لئے نیچے دیئے گئے کمانڈ کا استعمال کریں۔
pip3 انسٹال dlib
NumPy انسٹال کرنا: NumPy سائنسی کمپیوٹنگ کے لئے بنیادی لائبریری ہے جو ایک طاقتور n جہتی صفی آبجیکٹ پر مشتمل ہے ، C ، C ++ وغیرہ کو اکٹھا کرنے کے لئے ٹولز مہیا کرتی ہے۔
پپ 3 انسٹال کریں
چہرے کی شناخت کے ماڈیول کی تنصیب کرنا: یہ لائبریری ازگر یا کمانڈ لائن سے چہروں کو پہچاننے اور اسے استعمال کرنے میں استعمال ہوتی تھی۔ چہرے کی شناخت لائبریری کو انسٹال کرنے کے لئے نیچے دیئے گئے کمانڈ کا استعمال کریں۔
Pip3 انسٹال کریں face_re شناخت
اور آخر میں ، ذیل میں کمانڈ استعمال کرکے آئی_ گیم لائبریری انسٹال کریں۔
آنکھوں کا کھیل انسٹال کریں
راسبیری پائی پروگرامنگ
اوپن سی وی کا استعمال کرتے ہوئے ڈرائیور غنودگی کا پتہ لگانے والے کے لئے مکمل کوڈ صفحہ کے آخر میں دیا گیا ہے۔ یہاں ہم بہتر تفہیم کے لئے کوڈ کے کچھ اہم حص partsوں کی وضاحت کر رہے ہیں۔
لہذا ، ہمیشہ کی طرح ، تمام مطلوبہ لائبریریوں کو شامل کرکے کوڈ شروع کریں۔
درآمد چہرے_ شناخت درآمد cv2 درآمد نامی NP درآمد وقت درآمد cv2 درآمد RPI.GPIO بطور GPIO درآمد eye_game
اس کے بعد ، پِی کیمرے سے ویڈیو فیڈ حاصل کرنے کے ل an ایک مثال بنائیں۔ اگر آپ ایک سے زیادہ کیمرا استعمال کر رہے ہیں تو ، پھر cv2.VideoCapture (0) فنکشن میں ایک سے صفر کو تبدیل کریں ۔
ویڈیو_کیپچر = سی وی 2۔ ویڈیو کیپچر (0)
اب اگلی لائنوں میں ، فائل کا نام اور فائل کا راستہ درج کریں۔ میرے معاملے میں ، کوڈ اور فائل دونوں ایک ہی فولڈر میں ہیں۔ پھر تصویر میں چہرے کا مقام حاصل کرنے کے لئے چہرے کی انکوڈنگز کا استعمال کریں۔
img_image = face_recognition.load_image_file ("img.jpg") img_face_encoding = face_recognition.face_encodings (img_image)
اس کے بعد چہروں اور ان کے ناموں کو بچانے کے لئے دو ارے بنائیں۔ میں صرف ایک امیج استعمال کر رہا ہوں۔ آپ کوڈ میں مزید تصاویر اور ان کے راستے شامل کرسکتے ہیں۔
معلوم_ سطح_نکوڈنگز = جانا جاتا_ سطح_نومز =
پھر چہرے کے پرزوں کے مقامات ، چہرے کے ناموں اور انکوڈنگز کو اسٹور کرنے کے لئے کچھ متغیرات بنائیں۔
face_locations = face_encodings = چہرہ_ نام = عمل_یہ_ فریم = سچ ہے
جبکہ فنکشن کے اندر ، ویڈیو فریموں کو اسٹریمنگ سے کیپچر کریں اور فریم کو چھوٹے سائز میں تبدیل کریں اور چہرے کی شناخت کے ل the کیپچرڈ فریم کو آر جی بی رنگ میں تبدیل کریں۔
ریٹ ، فریم = ویڈیو_کیپچر.ریڈ () چھوٹا_ فریم = cv2.resize (فریم ، (0 ، 0) ، fx = 0.25 ، fy = 0.25) rgb_small_frame = small_frame
اس کے بعد ، ویڈیو میں چہروں کی تصویر کے ساتھ موازنہ کرنے کے لئے چہرے کی شناخت کا عمل چلائیں۔ اور چہرے کے پرزے والے مقامات بھی حاصل کریں۔
اگر عمل_یہ_ فریم: چہرہ_مقامات = چہرہ_قسمیت۔ سطح_مقامات (rgb_small_frame) face_encodings = face_recognition.face_encodings (rgb_small_frame، face_locations) cv2.imwrite (فائل ، چھوٹے_ فریم)
اگر تسلیم شدہ چہرہ تصویر میں چہرے سے ملتا ہے تو ، پھر آنکھوں کی نقل و حرکت کو ٹریک کرنے کے لئے آئیگم فنکشن کو کال کریں ۔ کوڈ بار بار آنکھوں اور آنکھوں کی بال کی پوزیشن کو معلوم کرے گا۔
face_distanceces = face_recognition.face_distance (known_face_encodings، face_encoding) best_match_index = np.argmin (face_distanceces) اگر مماثل ہے: نام = معلوم_ سطح_ناموں کی سمت = آنکھ_گیم. گیٹ_یئ بال_ ڈائرکشن (فائل) پرنٹ (سمت)
اگر کوڈ 10 سیکنڈ تک آنکھوں کی نقل و حرکت کا پتہ نہیں چلاتا ہے ، تو یہ شخص کو بیدار کرنے کے لئے خطرے کی گھنٹی کو متحرک کردے گا ۔
ورنہ: گنتی = 1 + کاؤنٹ پرنٹ (گنتی) اگر (گنتی> = 10): GPIO.output (BUZZER، GPIO.HIGH) time.sleep (2) GPIO.output (BUZZER، GPIO.LOW) پرنٹ ("الرٹ! ! الرٹ !! ڈرائیور کی غنودگی کا پتہ چلا ")
پھر چہرے کے گرد مستطیل کھینچنے کے لئے اوپن سی وی افعال استعمال کریں اور اس پر متن رکھیں۔ نیز ، cv2.imshow فنکشن کا استعمال کرتے ہوئے ویڈیو فریم دکھائیں ۔
cv2.ریکانگل (فریم ، (بائیں ، اوپر) ، (دائیں ، نیچے) ، (0 ، 255 ، 0) ، 2) سی وی 2۔رکٹینگ (فریم ، (بائیں ، نیچے - 35) ، (دائیں ، نیچے) ، (0 ، 255 ، 0) ، cv2.FILLED) فونٹ = cv2.FONT_HERSHEY_DUPLEX cv2.putText (فریم ، نام ، (بائیں + 6 ، نیچے - 6) ، فونٹ ، 1.0 ، (0 ، 0 ، 255) ، 1) cv2.imshow ('ویڈیو' ، فریم) کوڈ کو روکنے کے لئے کلیدی 'S' سیٹ کریں۔ اگر cv2.waitKey (1) & 0xFF == آرڈر ('s'): وقفہ
ڈرائیور غنودگی کا پتہ لگانے کے نظام کی جانچ کر رہا ہے
ایک بار جب کوڈ تیار ہوجائے تو ، پائ کیمرا اور بوزر کو راسبیری پائی سے جوڑیں اور کوڈ چلائیں۔ تقریبا 10 سیکنڈ کے بعد ، آپ کے راسبیری پائی کیمرہ سے براہ راست سلسلہ بندی کے ساتھ ایک ونڈو نظر آئے گی۔ جب آلہ چہرے کو پہچانتا ہے ، تو وہ آپ کا نام فریم پر پرنٹ کرے گا اور آنکھوں کی نقل و حرکت سے باخبر رہنا شروع کردے گا۔ اب الارم کی جانچ کے لئے اپنی آنکھیں 7 سے 8 سیکنڈ تک بند کریں۔ جب گنتی 10 سے زیادہ ہوجائے گی ، تو یہ خطرے کی گھنٹی کو متحرک کرے گا ، اور آپ کو صورتحال سے آگاہ کرے گا۔
اس طرح آپ اوپن سی وی اور راسبیری پائی کا استعمال کرکے نیند کا پتہ لگانے والے کو تیار کرسکتے ہیں ۔ کام کرنے والی ویڈیو اور کوڈ کیلئے نیچے سکرول کریں۔