OpenCV: OpenCV是一個用於計算機視覺的庫函數,最初是用c++編寫的。
Dlib: Dlib是一個Python庫,包含了數據挖掘、數據結構、機器學習、圖像處理等工具。
打哈欠檢測與應用
打哈欠檢測就是使用OpenCV和Dlib來檢測打哈欠(由於疲勞或無聊而張大嘴巴深吸氣)。可廣泛應用於自駕車、駕駛員疲勞檢測、駕駛員睡意檢測、駕駛員意識檢測等領域。
安裝OpenCv和Dlib庫
OpenCv的安裝如下:
pip install opencv-python
Dlib的安裝如下:
pip install cmakepip install dlib
導入Opencv,Dlib和Numpy庫
設置dat文件
我們將.dat文件放置到工作目錄中,它是一個可以識別面部特徵並提供信息的模型。Dlib將從文件中提取所有信息,使用opencv查找不同的特徵。
定義函數獲取landmarks並使用顏色對其進行注釋
形狀預測器(dat文件)用於從圖像中提取信息,例如眼角,鼻子周圍的區域等。圖像被轉換為矩陣,並且annotate_landmarks()函數標記這些特徵/信息,其他函數使用這些特徵/信息來提取各種像上嘴唇,上嘴等
提取有關各種特徵的關鍵信息,以檢測打哈欠
當yawn_status為True時,打開攝像頭並定義打哈欠標準,然後相應地分配操作。Python實現如下:
如果lip_distance大於25,則(yawn_status)被定義為打呵欠。在這種情況下,屏幕上會出現「Employee is Yawning」的文字,然後我們播放mp3文件。如果Yawn_status為true,則「Yawn Count」將繼續顯示該對象打哈欠的次數。
實時顯示Landmark如下所示