- கூறுகள் தேவை
- ராஸ்பெர்ரி பைவில் ஓபன்சிவியை நிறுவுதல்
- தேவையான பிற தொகுப்புகளை நிறுவுதல்
- ராஸ்பெர்ரி பை நிரலாக்க
- டிரைவர் மயக்கம் கண்டறிதல் அமைப்பை சோதித்தல்
பகல் மற்றும் இரவு நேரங்களில் நீண்ட தூரங்களுக்கு சரக்கு மற்றும் கனமான பொருட்களை கொண்டு செல்லும் டிரக் ஓட்டுநர்கள், அவர்கள் பெரும்பாலும் தூக்கமின்மையால் பாதிக்கப்படுகிறார்கள். சோர்வு மற்றும் மயக்கம் ஆகியவை நெடுஞ்சாலைகளில் பெரிய விபத்துகளுக்கு முக்கிய காரணங்கள். ஆட்டோமொபைல் தொழில்கள் சில தொழில்நுட்பங்களில் செயல்படுகின்றன, அவை மயக்கத்தைக் கண்டறிந்து அதைப் பற்றி ஓட்டுநரை எச்சரிக்கும்.
இந்த திட்டத்தில், ராஸ்பெர்ரி பை, ஓபன்சிவி மற்றும் பை கேமரா தொகுதியைப் பயன்படுத்தி டிரைவர்களுக்கு ஸ்லீப் சென்சிங் மற்றும் எச்சரிக்கை அமைப்பை உருவாக்க உள்ளோம். இந்த அமைப்பின் அடிப்படை நோக்கம் ஓட்டுனரின் முக நிலை மற்றும் கண் அசைவுகளைக் கண்காணிப்பதும், ஓட்டுநருக்கு மயக்கம் ஏற்பட்டால், கணினி ஒரு எச்சரிக்கை செய்தியைத் தூண்டும். இது எங்கள் முந்தைய முக அடையாளத்தைக் கண்டறிதல் மற்றும் முகம் அடையாளம் காணும் பயன்பாட்டின் நீட்டிப்பு ஆகும்.
கூறுகள் தேவை
வன்பொருள் கூறுகள்
- ராஸ்பெர்ரி பை 3
- பை கேமரா தொகுதி
- மைக்ரோ யூ.எஸ்.பி கேபிள்
- பஸர்
மென்பொருள் மற்றும் ஆன்லைன் சேவைகள்
- ஓபன்சிவி
- டிலிப்
- பைதான் 3
இந்த இயக்கி மயக்கத்தைக் கண்டறியும் திட்டத்துடன் தொடர்வதற்கு முன் , முதலில், இந்த திட்டத்தில் OpenCV, imutils, dlib, Numpy மற்றும் வேறு சில சார்புகளை நிறுவ வேண்டும். ஓபன்சிவி டிஜிட்டல் பட செயலாக்கத்திற்கு இங்கே பயன்படுத்தப்படுகிறது. டிஜிட்டல் பட செயலாக்கத்தின் மிகவும் பொதுவான பயன்பாடுகள் பொருள் கண்டறிதல், முகம் அங்கீகாரம் மற்றும் மக்கள் எதிர்.
இந்த ஸ்லீப் கண்டறிதல் முறையை உருவாக்க ராஸ்பெர்ரி பை, பை கேமரா மற்றும் ஒரு பஸரை மட்டுமே இங்கே பயன்படுத்துகிறோம்.

ராஸ்பெர்ரி பைவில் ஓபன்சிவியை நிறுவுதல்
ஓபன்சிவி மற்றும் பிற சார்புகளை நிறுவுவதற்கு முன், ராஸ்பெர்ரி பை முழுமையாக புதுப்பிக்கப்பட வேண்டும். ராஸ்பெர்ரி பை அதன் சமீபத்திய பதிப்பிற்கு புதுப்பிக்க பின்வரும் கட்டளைகளைப் பயன்படுத்தவும்:
sudo apt-get update
உங்கள் ராஸ்பெர்ரி பையில் OpenCV ஐ நிறுவ தேவையான சார்புகளை நிறுவ பின்வரும் கட்டளைகளைப் பயன்படுத்தவும்.
sudo apt-get install libhdf5-dev -y sudo apt-get install libhdf5-serial-dev –y sudo apt-get install libatlas-base-dev –y sudo apt-get install libjasper-dev -y sudo apt-get install libqtgui4 -y sudo apt-get நிறுவ libqt4 சோதனை -y
இறுதியாக, கீழேயுள்ள கட்டளைகளைப் பயன்படுத்தி ராஸ்பெர்ரி பைவில் ஓபன்சிவியை நிறுவவும்.
pip3 install opencv-பங்களிப்பு-பைதான் == 4.1.0.25
நீங்கள் ஓபன்சிவிக்கு புதியவர் என்றால், ராஸ்பெர்ரி பை மூலம் எங்கள் முந்தைய ஓபன்சிவி டுடோரியல்களைச் சரிபார்க்கவும்:
- CMake ஐப் பயன்படுத்தி ராஸ்பெர்ரி பையில் OpenCV ஐ நிறுவுகிறது
- ராஸ்பெர்ரி பை மற்றும் ஓபன்சிவியுடன் நிகழ்நேர முக அங்கீகாரம்
- ராஸ்பெர்ரி பை மற்றும் ஓபன்சிவி பயன்படுத்தி உரிம தட்டு அங்கீகாரம்
- ஓபன்சிவி மற்றும் ராஸ்பெர்ரி பை ஆகியவற்றைப் பயன்படுத்தி கூட்ட அளவு மதிப்பீடு
தொடக்க நிலை முதல் தொடர் ஓபன்சிவி டுடோரியல்களையும் உருவாக்கியுள்ளோம்.
தேவையான பிற தொகுப்புகளை நிறுவுதல்
மயக்கத்தைக் கண்டுபிடிப்பதற்கான ராஸ்பெர்ரி பை நிரல் செய்வதற்கு முன், தேவையான பிற தொகுப்புகளை நிறுவுவோம்.
Dlib ஐ நிறுவுதல்: dlib என்பது நவீன கருவித்தொகுப்பாகும், இது இயந்திர கற்றல் வழிமுறைகள் மற்றும் நிஜ உலக சிக்கல்களுக்கான கருவிகளைக் கொண்டுள்ளது. Dlib ஐ நிறுவ கீழே உள்ள கட்டளையைப் பயன்படுத்தவும்.
pip3 நிறுவு dlib
NumPy ஐ நிறுவுதல்: NumPy என்பது விஞ்ஞான கம்ப்யூட்டிங்கின் முக்கிய நூலகமாகும், இது ஒரு சக்திவாய்ந்த n- பரிமாண வரிசை பொருளைக் கொண்டுள்ளது, C, C ++ போன்றவற்றை ஒருங்கிணைப்பதற்கான கருவிகளை வழங்குகிறது.
pip3 நம்பி நிறுவவும்
Face_recognition தொகுதி நிறுவுதல்: இந்த நூலகம் பைத்தான் அல்லது கட்டளை வரியிலிருந்து முகங்களை அடையாளம் கண்டு கையாள பயன்படுகிறது. முகம் அடையாளம் காணும் நூலகத்தை நிறுவ பின்வரும் கட்டளையைப் பயன்படுத்தவும்.
Pip3 face_recognition ஐ நிறுவவும்
கடைசியாக, கீழேயுள்ள கட்டளையைப் பயன்படுத்தி கண்_கேம் நூலகத்தை நிறுவவும்:
pip3 கண்-விளையாட்டை நிறுவவும்
ராஸ்பெர்ரி பை நிரலாக்க
ஓபன்சிவியைப் பயன்படுத்தி டிரைவர் மயக்கத்தைக் கண்டுபிடிப்பதற்கான முழுமையான குறியீடு பக்கத்தின் இறுதியில் கொடுக்கப்பட்டுள்ளது. சிறந்த புரிதலுக்காக குறியீட்டின் சில முக்கியமான பகுதிகளை இங்கே விளக்குகிறோம்.
எனவே, வழக்கம் போல், தேவையான அனைத்து நூலகங்களையும் சேர்த்து குறியீட்டைத் தொடங்கவும்.
face_recognition import cv2 import numpy என np இறக்குமதி நேர இறக்குமதி cv2 இறக்குமதி RPi.GPIO ஐ GPIO இறக்குமதி கண்_கேமாக இறக்குமதி செய்க
அதன் பிறகு, பை கேமராவிலிருந்து வீடியோ ஊட்டத்தைப் பெற ஒரு உதாரணத்தை உருவாக்கவும். நீங்கள் ஒன்றுக்கு மேற்பட்ட கேமராக்களைப் பயன்படுத்துகிறீர்கள் என்றால், பூஜ்ஜியத்தை cv2.VideoCapture (0) செயல்பாட்டில் மாற்றவும் .
video_capture = cv2.VideoCapture (0)
இப்போது அடுத்த வரிகளில், கோப்பின் பெயர் மற்றும் கோப்பின் பாதையை உள்ளிடவும். என் விஷயத்தில், குறியீடு மற்றும் கோப்பு இரண்டும் ஒரே கோப்புறையில் உள்ளன. படத்தில் முக இருப்பிடத்தைப் பெற முக குறியாக்கங்களைப் பயன்படுத்தவும்.
img_image = face_recognition.load_image_file ("img.jpg") img_face_encoding = face_recognition.face_encodings (img_image)
அதன் பிறகு முகங்களையும் அவற்றின் பெயர்களையும் சேமிக்க இரண்டு வரிசைகளை உருவாக்கவும். நான் ஒரு படத்தை மட்டுமே பயன்படுத்துகிறேன்; குறியீட்டில் கூடுதல் படங்களையும் அவற்றின் பாதைகளையும் நீங்கள் சேர்க்கலாம்.
known_face_encodings = known_face_names =
முகத்தின் பாகங்கள் இருப்பிடங்கள், முகப் பெயர்கள் மற்றும் குறியாக்கங்களை சேமிக்க சில மாறிகள் உருவாக்கவும்.
face_locations = face_encodings = face_names = process_this_frame = உண்மை
உள்ளே போது செயல்பாடு, ஸ்ட்ரீமிங் இருந்து வீடியோ சட்டங்களைக் கைப்பற்றுவதற்கு மற்றும் சிறிய அளவு ஃப்ரேம்களைப் அளவை மேலும் முகம் அங்கீகாரம் RGB வண்ண பதிவுசெய்த சட்ட மாற்றுகின்றன.
ret, frame = video_capture.read () small_frame = cv2.resize (frame, (0, 0), fx = 0.25, fy = 0.25) rgb_small_frame = small_frame
அதன் பிறகு, வீடியோவில் உள்ள முகங்களை படத்துடன் ஒப்பிட்டு முகத்தை அடையாளம் காணும் செயல்முறையை இயக்கவும். மேலும் முகம் பாகங்கள் இருப்பிடங்களையும் பெறுங்கள்.
process_this_frame என்றால்: face_locations = face_recognition.face_locations (rgb_small_frame) face_encodings = face_recognition.face_encodings (rgb_small_frame, face_locations) cv2.imwrite (கோப்பு, சிறிய_பிரேம்)
அங்கீகரிக்கப்பட்ட முகம் படத்தில் உள்ள முகத்துடன் பொருந்தினால், கண் அசைவுகளைக் கண்காணிக்க கண் பார்வை செயல்பாட்டை அழைக்கவும். குறியீடு கண் மற்றும் கண் பார்வை நிலையை மீண்டும் மீண்டும் கண்காணிக்கும்.
face_distances = face_recognition.face_distance (known_face_encodings, face_encoding) best_match_index = np.argmin (face_distances) பொருந்தினால்: name = known_face_names direction = eye_game.get_eyeball_direction (கோப்பு) அச்சு (திசை)
குறியீடு 10 விநாடிகளுக்கு எந்த கண் அசைவையும் கண்டறியவில்லை என்றால், அது நபரை எழுப்ப அலாரத்தைத் தூண்டும்.
else: count = 1 + count print (count) if (count> = 10): GPIO.output (BUZZER, GPIO.HIGH) time.sleep (2) GPIO.output (BUZZER, GPIO.LOW) அச்சு ("எச்சரிக்கை! ! எச்சரிக்கை !! இயக்கி மயக்கம் கண்டறியப்பட்டது ")
பின்னர் ஓபன்சிவி செயல்பாடுகளைப் பயன்படுத்தி முகத்தைச் சுற்றி ஒரு செவ்வகத்தை வரைந்து அதில் ஒரு உரையை வைக்கவும். மேலும், cv2.imshow செயல்பாட்டைப் பயன்படுத்தி வீடியோ பிரேம்களைக் காட்டு.
cv2.rectangle (frame, (left, top), (right, bottom), (0, 255, 0), 2) cv2.rectangle (frame, (left, bottom - 35), (right, bottom), (0, 255, 0), cv2.FILLED) எழுத்துரு = cv2. ('வீடியோ', பிரேம்) குறியீட்டை நிறுத்த விசை 'எஸ்' ஐ அமைக்கவும். cv2.waitKey (1) & 0xFF == ஆர்டர் ('கள்') என்றால்: உடைக்க
டிரைவர் மயக்கம் கண்டறிதல் அமைப்பை சோதித்தல்
குறியீடு தயாரானதும், பை கேமரா மற்றும் பஸரை ராஸ்பெர்ரி பைக்கு இணைத்து குறியீட்டை இயக்கவும். தோராயமாக 10 விநாடிகளுக்குப் பிறகு, உங்கள் ராஸ்பெர்ரி பை கேமராவிலிருந்து நேரடி ஸ்ட்ரீமிங்கில் ஒரு சாளரம் தோன்றும். சாதனம் முகத்தை அடையாளம் காணும்போது, அது உங்கள் பெயரை சட்டகத்தில் அச்சிட்டு கண் இயக்கத்தைக் கண்காணிக்கத் தொடங்கும். அலாரத்தை சோதிக்க இப்போது 7 முதல் 8 விநாடிகள் கண்களை மூடு. எண்ணிக்கை 10 க்கு மேல் ஆகும்போது, அது அலாரத்தைத் தூண்டும், நிலைமை குறித்து உங்களை எச்சரிக்கும்.

ஓபன்சிவி மற்றும் ராஸ்பெர்ரி பை ஆகியவற்றைப் பயன்படுத்தி நீங்கள் மயக்கத்தைக் கண்டுபிடிப்பதை உருவாக்கலாம். வேலை செய்யும் வீடியோ மற்றும் குறியீட்டிற்கு கீழே உருட்டவும்.
