- கூறுகள் தேவை
- ராஸ்பெர்ரி பைவில் ஓபன்சிவியை நிறுவுதல்
- Dlib ஐப் பயன்படுத்தி முக பாகங்களை எவ்வாறு கண்டறிவது
- முக அடையாளத்தைக் கண்டறிவதற்கான ராஸ்பெர்ரி பை நிரலாக்க
- முகம் பகுதி அங்கீகாரத்தை சோதித்தல்
முக அடையாளங்களைக் கண்டறிதல் என்பது புருவங்கள், கண்கள், மூக்கு, வாய் மற்றும் தாடை போன்ற முகத்தின் பல்வேறு பகுதிகளைக் கண்டறியும் செயல்முறையாகும். முக லேண்ட்மார்க் கண்டறிதல் நுட்பங்களைப் பயன்படுத்தும் பல பயன்பாடுகள் உள்ளன.
முன்னதாக நாம் ஓபன்சிவியைப் பயன்படுத்தி ஒரு முக அங்கீகார முறையை உருவாக்குகிறோம், இன்று அதே மைல்கல் கண்டறிதலுக்காக ராஸ்பெர்ரி பை உடன் அதே ஓபன்சிவியைப் பயன்படுத்துவோம். முகத்தில் உள்ள முக்கிய முக அமைப்புகளின் இருப்பிடத்தைக் கண்டறிய டிலிப் நூலகத்திலிருந்து முன் பயிற்சி பெற்ற முக மைல்கல் கண்டறிதல் தொகுதி பயன்படுத்தப்படும் மற்றும் கண்டறியப்பட்ட முகம் பாகங்களைக் காட்சிப்படுத்த பைத்தான் ஓபன்சிவி பயன்படுத்தப்படும்.
கூறுகள் தேவை
வன்பொருள் கூறுகள்
- ராஸ்பெர்ரி பை 3
- பை கேமரா தொகுதி
மென்பொருள் மற்றும் ஆன்லைன் சேவைகள்
- ஓபன்சிவி
- டிலிப்
- பைதான் 3
இந்த ராஸ்பெர்ரி பை 3 ஃபேஷியல் லேண்ட்மார்க் கண்டறிதலுடன் தொடர்வதற்கு முன் , முதலில், இந்த திட்டத்தில் ஓபன்சிவி, இம்யூட்டில்ஸ், டிலிப், நம்பி மற்றும் வேறு சில சார்புகளை நிறுவ வேண்டும். ஓபன்சிவி டிஜிட்டல் பட செயலாக்கத்திற்கு இங்கே பயன்படுத்தப்படுகிறது. டிஜிட்டல் பட செயலாக்கத்தின் மிகவும் பொதுவான பயன்பாடுகள் பொருள் கண்டறிதல், முகம் அங்கீகாரம் மற்றும் மக்கள் எதிர்.

ராஸ்பெர்ரி பை மூலம் பை கேமராவை எவ்வாறு இணைப்பது என்பது பற்றி மேலும் அறிய, எங்கள் முந்தைய பயிற்சிகளைப் பின்பற்றவும்.
ராஸ்பெர்ரி பைவில் ஓபன்சிவியை நிறுவுதல்
இங்கே ஓபன்சிவி நூலகம் ராஸ்பெர்ரி பை கியூஆர் ஸ்கேனருக்கு பயன்படுத்தப்படும். OpenCV ஐ நிறுவ, முதலில், ராஸ்பெர்ரி பை புதுப்பிக்கவும்.
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 ஐ நிறுவுகிறது
- ராஸ்பெர்ரி பை மற்றும் ஓபன்சிவியுடன் நிகழ்நேர முக அங்கீகாரம்
- ராஸ்பெர்ரி பை மற்றும் ஓபன்சிவி பயன்படுத்தி உரிம தட்டு அங்கீகாரம்
- ஓபன்சிவி மற்றும் ராஸ்பெர்ரி பை ஆகியவற்றைப் பயன்படுத்தி கூட்ட அளவு மதிப்பீடு
தொடக்க நிலை முதல் தொடர் ஓபன்சிவி டுடோரியல்களையும் உருவாக்கியுள்ளோம்.
Imutils ஐ நிறுவுதல்: மொழிபெயர்ப்பு, சுழற்சி, மறுஅளவிடுதல், எலும்புக்கூடுப்படுத்தல் மற்றும் ஓபன்சிவி மூலம் மேட்லோட்லிப் படங்களை எளிதாகக் காண்பித்தல் போன்ற தேவையான சில பட செயலாக்க செயல்பாடுகளை இயக்க imutils பயன்படுத்தப்படுகிறது. எனவே கீழே உள்ள கட்டளையைப் பயன்படுத்தி imutils ஐ நிறுவவும்:
pip3 install imutils
Dlib ஐ நிறுவுதல்: dlib என்பது நவீன கருவித்தொகுப்பாகும், இது இயந்திர கற்றல் வழிமுறைகள் மற்றும் நிஜ உலக சிக்கல்களுக்கான கருவிகளைக் கொண்டுள்ளது. Dlib ஐ நிறுவ கீழே உள்ள கட்டளையைப் பயன்படுத்தவும்.
pip3 நிறுவு dlib
NumPy ஐ நிறுவுதல்: NumPy என்பது விஞ்ஞான கணிப்பீட்டிற்கான முக்கிய நூலகமாகும், இது ஒரு சக்திவாய்ந்த n- பரிமாண வரிசை பொருளைக் கொண்டுள்ளது, C, C ++ போன்றவற்றை ஒருங்கிணைப்பதற்கான கருவிகளை வழங்குகிறது.
பிப் 3 இன்ஸ்டி நம்பி
Dlib ஐப் பயன்படுத்தி முக பாகங்களை எவ்வாறு கண்டறிவது
முகத்தின் முக அமைப்புகளுக்கு வரைபடத்தை உருவாக்கும் 68 (x, y) ஒருங்கிணைப்புகளின் இருப்பிடத்தைக் கண்டறிய dlib நூலகத்தின் முன் பயிற்சி பெற்ற முக அடையாள அடையாளங்காட்டியைப் பயன்படுத்த உள்ளோம். dlib முக மைல்கல் முன்கணிப்பு iBUG 300-W தரவுத்தொகுப்பில் பயிற்சி பெற்றது. 68 ஆயங்களின் குறியீடுகளைக் கொண்ட ஒரு படம் கீழே கொடுக்கப்பட்டுள்ளது:


முக அடையாளத்தைக் கண்டறிவதற்கான ராஸ்பெர்ரி பை நிரலாக்க
முக பாகங்களுக்கான முழுமையான பைதான் குறியீடு dlib இன் முன் பயிற்சி பெற்ற முக அடையாள அடையாளங்காட்டியுடன் அங்கீகாரம் பக்கத்தின் இறுதியில் கொடுக்கப்பட்டுள்ளது. சிறந்த புரிதலுக்காக குறியீட்டின் சில முக்கியமான பகுதிகளை இங்கே விளக்குகிறோம்.
எனவே, வழக்கம் போல், தேவையான அனைத்து நூலகங்களையும் சேர்த்து குறியீட்டைத் தொடங்கவும்.
imutils இறக்குமதி முகம்_உட்டில்கள் இறக்குமதி எண்ணை np இறக்குமதி ஆர்க்பார்ஸ் இறக்குமதி imutils pcamera.array இலிருந்து dlib இறக்குமதி cv2 ஐ இறக்குமதி செய்க
பின்னர் கேமரா பொருளை துவக்கி, தீர்மானத்தை (640, 480) மற்றும் பிரேம் வீதத்தை 30 எஃப்.பி.எஸ் ஆக அமைக்கவும்
camera = PiCamera () camera.resolution = (640, 480) camera.framerate = 30
இப்போது அடுத்த வரிகளில், முக மைல்கல் முன்கணிப்பாளருக்கு பாதையை வழங்க வாத பாகுபடுத்தியைப் பயன்படுத்தவும்.
ap = argparse.ArgumentParser () ap.add_argument ("- p", "--shape-predictor", required = true, help = "face land mark predict path") args = vars (ap.parse_args ())
அடுத்த வரிகளில், HOG- அடிப்படையிலான dlib இன் முன் பயிற்சி பெற்ற ஃபேஸ் டிடெக்டரைத் துவக்கி, முன் பயிற்சி பெற்ற முக மைல்கல் முன்கணிப்பை ஏற்றவும்.
கண்டறிதல் = dlib.get_frontal_face_detector () முன்கணிப்பு = dlib.shape_predictor (args)
ராஸ்பெர்ரி பை கேமராவிலிருந்து பிரேம்களைப் பிடிக்கத் தொடங்க, பிடிப்பு_குறை செயல்பாட்டைப் பயன்படுத்தவும்.
கேமராவில் உள்ள சட்டத்திற்கு.)
ஒரு குறிப்பிட்ட சட்டகத்தைப் பிடிக்க விசைப்பலகை விசை 'எஸ்' ஐப் பயன்படுத்தவும். கைப்பற்றப்பட்ட படத்தின் அளவை மாற்றி, அதை கிரேஸ்கேலாக மாற்றவும்.
விசை என்றால் == ஆர்டர் ("கள்"): image = imutils.resize (படம், அகலம் = 400) சாம்பல் = cv2.cvtColor (படம், cv2.COLOR_BGR2GRAY)
கைப்பற்றப்பட்ட படத்தில் உள்ள முகங்களைக் கண்டறிய dlib நூலகத்தின் கண்டறிதல் செயல்பாட்டைப் பயன்படுத்தவும்.
rects = கண்டறிதல் (சாம்பல், 1)
எந்த முகம் கண்டறிதல் செய்யப்பட்டது என்பதை படம் எடுத்து, முக அடையாளங்களை தீர்மானிக்கவும், 68 புள்ளிகளை NumPy வரிசையாக மாற்றவும். முகம் பகுதிகள் ஒவ்வொன்றையும் தனித்தனியாக சுழற்றுங்கள்.
கணக்கீடு (ரெக்ட்ஸ்) இல் (i, rect): வடிவம் = முன்கணிப்பு (சாம்பல், செவ்வகம்) வடிவம் = face_utils.shape_to_np (வடிவம்)
பின்னர், அசல் படத்தின் நகலை எடுத்து, அதை லூப்பிற்குப் பயன்படுத்தி படத்தின் முகப் பகுதியின் பெயரை வரையலாம். உரை நிறம் சிவப்பு நிறமாக இருக்கும், RGB மதிப்புகளை மாற்றுவதன் மூலம் அதை வேறு வண்ணத்திற்கு மாற்றலாம்.
face_utils இல் (பெயர், (i, j))., 255), 2)
இப்போது நாம் கண்டறியப்பட்ட முகப் பகுதிகளுக்கு மேல் சுழன்று ஓப்பன்சிவி வரைதல் செயல்பாட்டைப் பயன்படுத்தி இந்த முகப் பகுதிகளில் வட்டங்களை வரையலாம். வரைதல் செயல்பாடுகளைப் பற்றிய கூடுதல் தகவலுக்கு இந்த OpenCV ஆவணத்தைப் பின்பற்றலாம்
(x, y) வடிவத்தில்: cv2.circle (குளோன், (x, y), 1, (0, 0, 255), -1)
இப்போது அடுத்த வரிகளில், ஒரு குறிப்பிட்ட முகப் பகுதியின் ஆயங்களின் எல்லைப் பெட்டியைக் கணக்கிடுவதன் மூலம் ஒவ்வொரு முகப் பகுதியையும் தனித்தனி படமாக பிரித்தெடுப்போம். பிரித்தெடுக்கப்பட்ட படம் 250 பிக்சல்களாக மாற்றப்படும்.
(x, y, w, h) = cv2.boundingRect (np.array (])) roi = image roi = imutils.resize (roi, width = 250, inter = cv2.INTER_CUBIC)
இப்போது குறியீட்டின் கடைசி வரிகளில், முகப் பகுதிகளை அவற்றின் பெயர்களையும் அந்த பகுதியின் தனி படத்தையும் காண்பி. முகம் பகுதியை மாற்ற ESC விசையைப் பயன்படுத்தவும்.
cv2.imshow ("ROI", roi) cv2.imshow ("படம்", குளோன்) cv2.waitKey (0)
முகம் பகுதி அங்கீகாரத்தை சோதித்தல்
திட்டத்தை சோதிக்க, ஒரு கோப்பகத்தை உருவாக்கி, கீழேயுள்ள கட்டளைகளைப் பயன்படுத்தி அதற்கு செல்லவும்:
mkdir முகம்-பகுதி-கண்டறிதல் சிடி முகம்-பகுதி-கண்டறிதல்
இப்போது இந்த இணைப்பில் இருந்து shape_predictor_68_face_landmarks.dat கோப்பைப் பதிவிறக்கவும் பின்னர் பிரித்தெடுக்க மற்றும் நகல் shape_predictor_68_face_landmarks.dat இந்த நூலகம் உள்ளே கோப்பு, பின்னர் ஒரு புதிய கோப்பு என்ற திறக்க detect.py மற்றும் கீழே கொடுக்கப்பட்டுள்ள பேஸ்ட் செய்யவும்.
இப்போது கீழேயுள்ள கட்டளையைப் பயன்படுத்தி பைதான் குறியீட்டைத் தொடங்கவும்:
python3 det.py --shape-predictor shape_predictor_68_face_landmarks.dat

உங்கள் கேமராவிலிருந்து நேரடி காட்சியைக் காட்டும் சாளரத்தைக் காண்பீர்கள். நேரடி ஸ்ட்ரீமில் இருந்து ஒரு சட்டத்தைத் தேர்ந்தெடுக்க 'எஸ்' விசையை அழுத்தவும். உங்கள் வாய் பகுதியில் சிவப்பு புள்ளிகளைக் காண்பீர்கள். மற்ற முக பாகங்களைக் காண ESC விசையைப் பயன்படுத்தவும்.
முழுமையான பைதான் குறியீடு மற்றும் ஆர்ப்பாட்டம் வீடியோ கீழே கொடுக்கப்பட்டுள்ளன.
