Dnes vytvoříme chytrý systém detekce ospalosti řidiče pomocí Raspberry Pi, který bude sledovat pohyb očí řidiče. Pokud zjistí, že by řidič mohl usnout nebo je ve stavu ospalosti, spustí se výstraha ve formě zvuku, která tuto osobu přivede zpět do stavu vědomí.

Při přepravě nákladu a těžkých materiálů na velké vzdálenosti (zejména v noci) kamiony se účinky nedostatečného spánku pro tyto řidiče neustále řídí jako hlavní problém, který vede ke smrtelným nehodám.

Podle studie AAA Traffic Safety Foundation z roku 2014 to bylo zjištěno 37 procent řidičů za jízdy usnulo. Z 21 procent smrtelných nehod, 13 procent způsobil těžké zranění – to vše kvůli ospalému řidiči, který musí nepřetržitě řídit dlouhou dobu a přitom mít stále na očích vozovku.

Navrhli jsme také obvod pro alarmové zařízení proti spánku, které můžete zkontrolovat.

Jak funguje systém detekce ospalosti řidiče?

Modul kamery připojený k modulu RPi nepřetržitě zaznamenává video ze sedadla řidiče. Python skript pak detekuje obličej řidiče a když je detekován, jsou zachyceny oči osoby a předány dalšímu modulu s názvem oční hra, který následně zpracuje zachycený snímek videa a detekuje pohyb očí. Pokud oko řidiče zůstane ve stejné poloze bez jakéhokoli pohybu nebo mrknutí, spustí se zvuk alarmu, který řidiče požádá, aby zůstal vzhůru a pokračoval v jízdě.

Kusovník

Driver Drowsiness Detection System Parts

Budeme také potřebovat SD kartu pro nastavení Raspbian OS.

Systém detekce ospalosti řidiče – kód

Nejprve musíme nastavit knihovnu a moduly v našem RPi. Chcete-li to provést, otevřete terminál Linux a nainstalujte požadované moduly pomocí následující syntaxe a příkazů.

sudo pip3 install install opencv
sudo pip3 instalace rozpoznávání obličeje
sudo pip3 nainstalovat espeak 
sudo pip3 nainstalovat eyegame
sudo pip3 instalace delib
sudo pip3 instalace numpy

Po úspěšné instalaci modulů nyní vytvořte kód Pythonu. Pojmenoval jsem to eyetrack.py. Do kódu naimportujeme všechny požadované moduly.

Python Code for Driver Drowsiness Detection

Dále nastavte název souboru a cestu. To je potřeba, protože chceme zachytit a vyjmout konkrétní snímek z videa a uložit jej do této cesty, která bude předána oční hra pro detekci pohybu očí.

ČTĚTE VÍCE
Jaký diferenciál má moje E36?

Driver Drowsiness Detection Code

Dále nastavíme tvář a jméno obrázku řidiče kamionu a vytvoříme a zatímco funkce, která se spustí smyčka dokud není výrok pravdivý.

Nyní zachytíme video z kamery pomocí OpenCV a stříháme video snímek po snímku. Poté bude předán modulu rozpoznávání obličeje pro detekci obličeje.

Pokud je rozpoznaný obličej stejný jako obličej řidiče, jeho obrázek se uloží do cesty, kterou jsme předtím vytvořili. Poté zavoláme oční hra modul pro analýzu pohybu oka a oční bulvy.

Programming Driver Drowsiness Detection System

Úspěšnou detekcí obličeje řidiče a pohybu oční bulvy pak zařízení opakovaně analyzuje polohu oční bulvy. Pokud není detekován žádný pohyb očí, zařízení počká 30 sekund.

I poté, pokud není detekován žádný pohyb očí, zvuk se spustí, aby řidiče upozornil a probudil. Když je řidič vzhůru a je detekován pohyb očí, proces upozornění se automaticky zastaví.

Driver Drowsiness Detection using OpenCV

Testování

Po napsání celého kódu připojte modul kamery k Raspberry Pi, který je následně připojen k reproduktoru přes audio jack. Nyní spusťte skript a počkejte několik sekund. Na obrazovce se objeví okno, které bude zobrazovat živý záznam videa z kamery. Tím, že budete před kamerou, bude terminálem python detekován váš obličej a pohyb očí a jejich poloha. Pokud zjistí, že nedochází k žádnému pohybu očí, začne počítat. Po 30 sekundách se ozve hlasové upozornění „Spíte, začněte jezdit“.

Takto si můžete vytvořit svůj vlastní systém detekce ospalosti řidiče.

Pokud při vytváření tohoto projektu narazíte na nějaké problémy, neváhejte se zeptat v komentářích níže.