İçindekiler:
- Adım 1: İhtiyacınız Olan Şeyler
- Adım 2: Eyes Shape Predictor Dataset ile Python Kodu (PC Versiyonu)
- 3. Adım: Raspberry Pi Sürümü
Video: Uyuşukluk Uyarı Sistemi: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Her yıl dünya çapında birçok insan ölümcül trafik kazaları nedeniyle hayatını kaybetmekte ve uykulu araç kullanmak trafik kazalarının ve ölümlerin başlıca nedenlerinden biridir. Sürüş kontrollerindeki yorgunluk ve mikro uyku, genellikle ciddi kazaların temel nedenidir. Bununla birlikte, kritik bir durum ortaya çıkmadan önce yorgunluğun ilk belirtileri tespit edilebilir ve bu nedenle sürücü yorgunluğunun tespiti ve bunun göstergesi devam eden bir araştırma konusudur. Uyuşukluğu tespit etmek için kullanılan geleneksel yöntemlerin çoğu davranışsal yönlere dayanırken, bazıları müdahalecidir ve sürücülerin dikkatini dağıtabilir, bazıları ise pahalı sensörler gerektirir. Bu nedenle, bu yazıda, Android uygulaması üzerinde hafif, gerçek zamanlı bir sürücü uyuşukluk tespit sistemi geliştirildi ve uygulandı. Sistem videoları kaydeder ve görüntü işleme tekniklerini kullanarak her karede sürücünün yüzünü algılar. Sistem, yüzdeki önemli noktaları tespit edebiliyor, Adaptif eşiklemeye dayalı olarak sürücünün uykusunu algılamak için Göz En Boy Oranı (EAR) ve Göz Kapatma Oranı (ECR) hesaplıyor. Önerilen yaklaşımın etkinliğini test etmek için makine öğrenme algoritmaları kullanılmıştır. Ampirik sonuçlar, önerilen modelin rastgele orman sınıflandırıcı kullanarak %84 doğruluk elde edebildiğini göstermektedir.
Adım 1: İhtiyacınız Olan Şeyler
1. Ahududu PI
2. WEBCAM (DAHA İYİ SONUÇLAR İÇİN C270 HD WEB CAM)
PC sürümü kodda bazı değişikliklere ihtiyaç duyabilir
Adım 2: Eyes Shape Predictor Dataset ile Python Kodu (PC Versiyonu)
gerçek zamanlı bir videoda gözleri çok daha etkili bir şekilde algılamak için aşağıdaki.dat dosyasını kullanabiliriz.
drive.google.com/open?id=1UiSHe72L4TeN14VK…
.dat dosyasını yukarıdaki bağlantıdan indirin ve aşağıdaki python kodunu çalıştırın
Python kodu
scipy.uzaydan içe aktarma uzaklığı imutils'den içe aktarma face_utils içe aktarma imutils içe aktarma dlib içe aktarma cv2
def eye_aspect_ratio(göz):
A = uzaklık.öklid(göz[1], göz[5]) B = uzaklık.öklid(göz[2], göz[4]) C = uzaklık.öklid(göz[0], göz[3]) kulak = (A + B) / (2.0 * C) dönüş kulak eşiği = 0.25 frame_check = 20 tespit = dlib.get_frontal_face_detector() tahmin = dlib.shape_predictor(".\shape_predictor_68_face_landmarks.dat")# Dat dosyası kodun özüdür
(lBaşlat, lBitiş) = face_utils. FACIAL_LANDMARKS_68_IDXS["left_eye"]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS["right_eye"] cap=cv2. VideoCapture(0) flag=0 iken True: ret, frame=cap.read() frame = imutils.resize(frame, grey = cv2.cvtColor(çerçeve, cv2. COLOR_BGR2GRAY) konular = konulardaki konu için algıla(gri, 0): şekil = tahmin(gri, konu) şekil = face_utils.shape_to_np(shape)#NumPy Dizisine dönüştürme leftEye = şekil[lStart:lEnd] rightEye = şekil[rStart:rEnd] leftEAR = eye_aspect_ratio(leftEye) rightEAR = eye_aspect_ratio(rightEye) kulak = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull(leftEye) rightEyeHull = cv2.convex drawContours(frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours(frame, [rightEyeHull], -1, (0, 255, 0), 1) kulak = frame_check: cv2.putText(frame, "****************ALERT!****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText(çerçeve, "****************ALERT!*********** *****", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #print ("Dro" wsy") else: flag = 0 cv2.imshow("Frame", frame) key = cv2.waitKey(1) & 0xFF if key == ord("q"): break cv2.destroyAllWindows() cap.stop()
3. Adım: Raspberry Pi Sürümü
Kişiler gözlerini kapattığında ahududu pi size uyarı verecektir.
Buzzer'ınızı pim 23'e BAĞLAYIN (resme bakın)
scipy.spatial'den içe aktarma mesafesi
RPi. GPIO'yu GPIO olarak içe aktar
zamandan içe uyku
GPIO.setwarnings(Yanlış)
GPIO.setmode(GPIO. BCM)
imutils'den face_utils'i içe aktar
imutils'i içe aktar dlib'i içe aktar cv2'yi içe aktar
zil=23
GPIO.setup(buzzer, GPIO. OUT)
def eye_aspect_ratio(göz):
A = uzaklık.öklid(göz[1], göz[5]) B = uzaklık.öklid(göz[2], göz[4]) C = uzaklık.öklid(göz[0], göz[3]) kulak = (A + B) / (2.0 * C) dönüş kulak eşiği = 0.25 frame_check = 20 tespit = dlib.get_frontal_face_detector() tahmin = dlib.shape_predictor(".\shape_predictor_68_face_landmarks.dat")# Dat dosyası kodun özüdür
(lBaşlat, lBitiş) = face_utils. FACIAL_LANDMARKS_68_IDXS["left_eye"]
(rStart, rEnd) = face_utils. FACIAL_LANDMARKS_68_IDXS["right_eye"] cap=cv2. VideoCapture(0) flag=0 iken True: ret, frame=cap.read() frame = imutils.resize(frame, grey = cv2.cvtColor(çerçeve, cv2. COLOR_BGR2GRAY) konular = konulardaki konu için algıla(gri, 0): şekil = tahmin(gri, konu) şekil = face_utils.shape_to_np(shape)#NumPy Dizisine dönüştürme leftEye = şekil[lStart:lEnd] rightEye = şekil[rStart:rEnd] leftEAR = eye_aspect_ratio(leftEye) rightEAR = eye_aspect_ratio(rightEye) kulak = (leftEAR + rightEAR) / 2.0 leftEyeHull = cv2.convexHull(leftEye) rightEyeHull = cv2.convex) drawContours(frame, [leftEyeHull], -1, (0, 255, 0), 1) cv2.drawContours(frame, [rightEyeHull], -1, (0, 255, 0), 1) kulak = frame_check: cv2.putText(frame, "****************ALERT!****************", (10, 30), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText(çerçeve, "****************ALERT!*********** *****", (10, 325), cv2. FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) #print ("Dro" wsy")
GPIO.output(buzzer, GPIO. HIGH)
başka: bayrak = 0
GPIO.output(buzzer, GPIO. LOW)
cv2.imshow("Çerçeve", çerçeve) anahtar = cv2.waitKey(1) & 0xFF ise anahtar == ord("q"): break cv2.destroyAllWindows() cap.stop()
Önerilen:
Slide Advance Uyarı Sistemi: 6 Adım
Slayt İlerleme Uyarı Sistemi: Brown Dog Gadgets'ta atölyeler için çok sayıda video akışı yapıyoruz ve kurulumumuz, kamerada bir kişi ve yazılımı çalıştıran, sohbet penceresini izleyen ve kamera geçişini ve ilerlemesini yapan yapımcı olarak başka bir kişiyi içeriyor. slaytlar.
Arduino Araba Geri Geri Park Uyarı Sistemi - Adım Adım: 4 Adım
Arduino Araba Geri Geri Park Uyarı Sistemi | Adım Adım: Bu projede Arduino UNO ve HC-SR04 Ultrasonik Sensör kullanarak basit bir Arduino Araba Geri Park Sensörü Devresi tasarlayacağım. Bu Arduino tabanlı Araba Ters uyarı sistemi, Otonom Navigasyon, Robot Mesafesi ve diğer menzil r
Hava Durumu Uyarı Işık Sistemi: 6 Adım
Hava Durumu Uyarısı Işık Sistemi: Hava durumu uyarısı aydınlatma sistemi, farklı hava durumu uyarılarını veya saatleri gösterecek şekilde aydınlatmayı değiştirir. Bu sistem, hava durumunu belirtmek için bir aydınlatma değişikliği yapmak için serbestçe erişilebilen hava durumu verilerinden yararlanır. Bir ahududu pi (node-red aracılığıyla) şunları kontrol eder
Koridor Zil Uyarı Sistemi: 4 Adım
Koridor Zil Uyarı Sistemi: Okulda sınıf değişikliğinin ne zaman olacağını gösteren ziller vardır. İlk önce dersin ne zaman biteceğini belirtmek için çalarlar ve ardından bir sonraki dersin ne zaman başlayacağını belirtmek için ikinci kez çalarlar. Bir öğrenci geç kalırsa, genellikle
Tesisiniz için Düşük Nemli Toprak Uyarı Sistemi: 5 Adım
Tesisiniz için Düşük Nemli Toprak Uyarı Sistemi: Birkaç konutta, farklı bitki türlerine sahip kavanozlar bulmak yaygındır. Ve çok sayıda günlük aktivite ile insanlar bitkilerini sulamayı unutuyor ve sonunda susuzluktan ölüyorlar.Bu sorunu önlemenin bir yolu olarak, karar veriyoruz