- భాగాలు అవసరం
- రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
- అవసరమైన ఇతర ప్యాకేజీలను వ్యవస్థాపించడం
- రాస్ప్బెర్రీ పై ప్రోగ్రామింగ్
- డ్రైవర్ మగతను గుర్తించే వ్యవస్థను పరీక్షిస్తోంది
పగటి మరియు రాత్రి సమయాల్లో సరుకు మరియు భారీ వస్తువులను ఎక్కువ దూరం రవాణా చేసే ట్రక్ డ్రైవర్లు, వారు తరచుగా నిద్ర లేమితో బాధపడుతున్నారు. అలసట మరియు మగత హైవేలలో పెద్ద ప్రమాదాలకు ప్రధాన కారణాలు. ఆటోమొబైల్ పరిశ్రమలు మగతను గుర్తించగల మరియు దాని గురించి డ్రైవర్ను అప్రమత్తం చేసే కొన్ని సాంకేతిక పరిజ్ఞానాలపై పనిచేస్తున్నాయి.
ఈ ప్రాజెక్ట్లో, మేము రాస్ప్బెర్రీ పై, ఓపెన్సివి మరియు పై కెమెరా మాడ్యూల్ ఉపయోగించి డ్రైవర్ల కోసం స్లీప్ సెన్సింగ్ మరియు హెచ్చరిక వ్యవస్థను నిర్మించబోతున్నాము. ఈ వ్యవస్థ యొక్క ప్రాథమిక ఉద్దేశ్యం డ్రైవర్ యొక్క ముఖ స్థితి మరియు కంటి కదలికలను ట్రాక్ చేయడం మరియు డ్రైవర్ మగతగా భావిస్తే, సిస్టమ్ హెచ్చరిక సందేశాన్ని ప్రేరేపిస్తుంది. ఇది మా మునుపటి ముఖ మైలురాయి గుర్తింపు మరియు ముఖ గుర్తింపు అనువర్తనం యొక్క పొడిగింపు.
భాగాలు అవసరం
హార్డ్వేర్ భాగాలు
- రాస్ప్బెర్రీ పై 3
- పై కెమెరా మాడ్యూల్
- మైక్రో USB కేబుల్
- బజర్
సాఫ్ట్వేర్ మరియు ఆన్లైన్ సేవలు
- ఓపెన్సివి
- Dlib
- పైథాన్ 3
ఈ డ్రైవర్ మగతను గుర్తించే ప్రాజెక్టుతో కొనసాగడానికి ముందు , మొదట, మేము ఈ ప్రాజెక్ట్లో ఓపెన్సివి, ఇమ్యుటిల్స్, డిలిబ్, నంపి మరియు మరికొన్ని డిపెండెన్సీలను ఇన్స్టాల్ చేయాలి. ఓపెన్సివి డిజిటల్ ఇమేజ్ ప్రాసెసింగ్ కోసం ఇక్కడ ఉపయోగించబడుతుంది. డిజిటల్ ఇమేజ్ ప్రాసెసింగ్ యొక్క అత్యంత సాధారణ అనువర్తనాలు ఆబ్జెక్ట్ డిటెక్షన్, ఫేస్ రికగ్నిషన్ మరియు పీపుల్ కౌంటర్.
ఇక్కడ మేము ఈ స్లీప్ డిటెక్షన్ సిస్టమ్ను నిర్మించడానికి రాస్ప్బెర్రీ పై, పై కెమెరా మరియు బజర్లను మాత్రమే ఉపయోగిస్తున్నాము.
రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
ఓపెన్సివి మరియు ఇతర డిపెండెన్సీలను ఇన్స్టాల్ చేయడానికి ముందు, రాస్ప్బెర్రీ పై పూర్తిగా నవీకరించబడాలి. రాస్ప్బెర్రీ పైని దాని తాజా సంస్కరణకు నవీకరించడానికి క్రింది ఆదేశాలను ఉపయోగించండి:
sudo apt-get update
మీ రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేయడానికి అవసరమైన డిపెండెన్సీలను ఇన్స్టాల్ చేయడానికి క్రింది ఆదేశాలను ఉపయోగించండి.
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 సుడో వర్ణనాత్మక-పొందుటకు ఇన్స్టాల్ libqt4 పరీక్ష-y
చివరగా, కింది ఆదేశాలను ఉపయోగించి రాస్ప్బెర్రీ పై ఓపెన్సివిని ఇన్స్టాల్ చేయండి.
పైప్ 3 ఇన్స్టాల్ ఓపెన్సివి-కంట్రిబ్యూట్-పైథాన్ == 4.1.0.25
మీరు ఓపెన్సివికి కొత్తగా ఉంటే, రాస్ప్బెర్రీ పైతో మా మునుపటి ఓపెన్సివి ట్యుటోరియల్లను తనిఖీ చేయండి:
- CMake ఉపయోగించి రాస్ప్బెర్రీ పై ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
- రాస్ప్బెర్రీ పై మరియు ఓపెన్ సివిలతో రియల్ టైమ్ ఫేస్ రికగ్నిషన్
- రాస్ప్బెర్రీ పై మరియు ఓపెన్ సివి ఉపయోగించి లైసెన్స్ ప్లేట్ గుర్తింపు
- ఓపెన్సివి మరియు రాస్ప్బెర్రీ పై ఉపయోగించి క్రౌడ్ సైజు అంచనా
మేము అనుభవశూన్యుడు స్థాయి నుండి ప్రారంభమయ్యే ఓపెన్సివి ట్యుటోరియల్ల శ్రేణిని కూడా సృష్టించాము.
అవసరమైన ఇతర ప్యాకేజీలను వ్యవస్థాపించడం
మగత డిటెక్టర్ కోసం రాస్ప్బెర్రీ పైని ప్రోగ్రామ్ చేయడానికి ముందు, అవసరమైన ఇతర ప్యాకేజీలను ఇన్స్టాల్ చేద్దాం.
Dlib ని ఇన్స్టాల్ చేస్తోంది: వాస్తవ ప్రపంచ సమస్యలకు మెషిన్ లెర్నింగ్ అల్గోరిథంలు మరియు సాధనాలను కలిగి ఉన్న ఆధునిక టూల్కిట్ dlib. Dlib ని వ్యవస్థాపించడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి.
పైప్ 3 ఇన్స్టాల్ dlib
NumPy ని ఇన్స్టాల్ చేస్తోంది: శాస్త్రీయ కంప్యూటింగ్ కోసం NumPy అనేది కోర్ లైబ్రరీ, ఇది శక్తివంతమైన n- డైమెన్షనల్ అర్రే ఆబ్జెక్ట్ను కలిగి ఉంటుంది, C, C ++ మొదలైన వాటిని సమగ్రపరచడానికి సాధనాలను అందిస్తుంది.
పైప్ 3 నంపీ ఇన్స్టాల్ చేయండి
Face_recognition మాడ్యూల్ను ఇన్స్టాల్ చేస్తోంది: పైథాన్ లేదా కమాండ్ లైన్ నుండి ముఖాలను గుర్తించడానికి మరియు మార్చటానికి ఈ లైబ్రరీ ఉపయోగించబడుతుంది. ఫేస్ రికగ్నిషన్ లైబ్రరీని ఇన్స్టాల్ చేయడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి.
Pip3 face_recognition ని ఇన్స్టాల్ చేయండి
చివరికి, కింది ఆదేశాన్ని ఉపయోగించి ఐ_గేమ్ లైబ్రరీని ఇన్స్టాల్ చేయండి:
పైప్ 3 కంటి-గేమ్ను ఇన్స్టాల్ చేయండి
రాస్ప్బెర్రీ పై ప్రోగ్రామింగ్
ఓపెన్సివిని ఉపయోగించి డ్రైవర్ మగత డిటెక్టర్ కోసం పూర్తి కోడ్ పేజీ చివరిలో ఇవ్వబడుతుంది. మంచి అవగాహన కోసం కోడ్ యొక్క కొన్ని ముఖ్యమైన భాగాలను ఇక్కడ వివరిస్తున్నాము.
కాబట్టి, ఎప్పటిలాగే, అవసరమైన అన్ని లైబ్రరీలను చేర్చడం ద్వారా కోడ్ను ప్రారంభించండి.
face_recognition దిగుమతి cv2 దిగుమతి సంఖ్యను np దిగుమతి సమయం దిగుమతి cv2 దిగుమతి RPi.GPIO GPIO గా దిగుమతి కంటి_గేమ్
ఆ తరువాత, పై కెమెరా నుండి వీడియో ఫీడ్ పొందటానికి ఒక ఉదాహరణను సృష్టించండి. మీరు ఒకటి కంటే ఎక్కువ కెమెరాలను ఉపయోగిస్తుంటే , అప్పుడు సున్నాని cv2 తో భర్తీ చేయండి.
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 = తెలిసిన_ఫేస్_పేర్లు =
అప్పుడు ముఖ భాగాల స్థానాలు, ముఖ పేర్లు మరియు ఎన్కోడింగ్లను నిల్వ చేయడానికి కొన్ని వేరియబుల్స్ని సృష్టించండి.
face_locations = face_encodings = face_names = process_this_frame = నిజం
సమయం ఫంక్షన్ లోపల, స్ట్రీమింగ్ నుండి వీడియో ఫ్రేమ్లను సంగ్రహించండి మరియు ఫ్రేమ్లను చిన్న పరిమాణానికి పున ize పరిమాణం చేయండి మరియు ముఖ గుర్తింపు కోసం స్వాధీనం చేసుకున్న ఫ్రేమ్ను 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 (file) print (direction)
కోడ్ 10 సెకన్ల పాటు కంటి కదలికను గుర్తించకపోతే, అది వ్యక్తిని మేల్కొలపడానికి అలారంను ప్రేరేపిస్తుంది.
else: count = 1 + count print (count) if (count> = 10): GPIO.output (BUZZER, GPIO.HIGH) time.sleep (2) GPIO.output (BUZZER, GPIO.LOW) print ("హెచ్చరిక! ! హెచ్చరిక !! డ్రైవర్ మగత కనుగొనబడింది ")
అప్పుడు ఓపెన్సివి ఫంక్షన్లను ఉపయోగించి ముఖం చుట్టూ దీర్ఘచతురస్రాన్ని గీయండి మరియు దానిపై వచనాన్ని ఉంచండి. అలాగే, cv2.imshow ఫంక్షన్ ఉపయోగించి వీడియో ఫ్రేమ్లను చూపించు.
cv2.rectangle (ఫ్రేమ్, (ఎడమ, పైభాగం), (కుడి, దిగువ), (0, 255, 0), 2) cv2.rectangle (ఫ్రేమ్, (ఎడమ, దిగువ - 35), (కుడి, దిగువ), (0, 255, 0), cv2.FILLED) font = 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 కంటే ఎక్కువ అయినప్పుడు, ఇది అలారంను ప్రేరేపిస్తుంది, పరిస్థితి గురించి మిమ్మల్ని హెచ్చరిస్తుంది.
ఈ విధంగా మీరు ఓపెన్సివి మరియు రాస్ప్బెర్రీ పై ఉపయోగించి మగత డిటెక్టర్ను నిర్మించవచ్చు. పని చేసే వీడియో మరియు కోడ్ కోసం క్రిందికి స్క్రోల్ చేయండి.