国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        在 Python 中使用 cv2 進行嗜睡檢測

        2022-12-15 10:57
        磐創AI
        關注

        大家好,在這個博客中,我們將構建一個嗜睡檢測應用程序,它將檢測視頻中的人是否變得昏昏欲睡。

        這是一個非常有趣且簡單的項目,代碼甚至不到 80 行,讓我們開始吧

        看看最終輸出

        注意——你不會在這里聽到警報聲,因為它是 GIF,你可以在博客上查看視頻:

        嗜睡檢測代碼

        from imutils import face_utils

        import dlib

        import cv2

        from pygame import mixer

        thres = 6

        mixer.init()

        sound = mixer.Sound('alarm.wav')

        dlist = []

        detector = dlib.get_frontal_face_detector()

        predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")

        cap = cv2.VideoCapture(0)

        def dist(a,b):

           x1,y1 = a

           x2,y2 = b

           return ((x1-x2)**2 + (y1-y2)**2)**0.5

        while True:

           # Getting out image by webcam

           _, image = cap.read()

           # Converting the image to gray scale

           gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
               

           # Get faces into webcam's image

           rects = detector(gray, 0)
           

           # For each detected face, find the landmark.

           for (i, rect) in enumerate(rects):

               # Make the prediction and transfom it to numpy array

               shape = predictor(gray, rect)

               shape = face_utils.shape_to_np(shape)
           

               # Draw on our image, all the finded cordinate points (x,y)

               for (x, y) in shape:

                  cv2.circle(image, (x, y), 2, (0, 255, 0), -1)
               

               le_38 = shape[37]

               le_39 = shape[38]

               le_41 = shape[40]

               le_42 = shape[41]

               re_44 = shape[43]

               re_45 = shape[44]

               re_47 = shape[46]

               re_48 = shape[47]
               
               dlist.append((dist(le_38,le_42)+dist(le_39,le_41)+dist(re_44,re_48)+dist(re_45,re_47))/4<thres)

              if len(dlist)>10:dlist.pop(0)

               # Drowsiness detected

               if sum(dlist)>=4:

                   try:

                       sound.play()

                   except:

                       pass

               else:

                   try:

                       sound.stop()

                   except:

                       pass
               

           # Show the image

           cv2.imshow("Output", image)
           

           if cv2.waitKey(5) & 0xFF == 27:

               break


        cv2.destroyAllWindows()

        cap.release()

        第 1-4 行:導入所需的庫。

        第 6 行:設置閾值(將在前面的代碼中看到)。

        第 8-9 行:使用 pygame 模塊創建警報聲音,以便在應用程序中進一步使用它。

        第 11 行:我們將在前面使用的空列表。

        第 13 行:使用 dlib 人臉檢測器。

        第 14 行:使用 dlib 地標檢測器檢測眼點。

        第 16 行:初始化 cap 對象以便稍后使用 Webcam。

        第 18-21 行:一個簡單的距離函數,用于計算兩個坐標之間的距離。

        第 25 行:從網絡攝像頭讀取圖像。

        第 27 行:將它們轉換為灰度。

        第 30 行:檢測人臉。

        第 33 行:開始遍歷這些面部。

        第 35-36 行:獲取 68 個面部特征并將它們轉換為 NumPy 數組。

        第 39–40 行:畫出所有的地標。

        第 42-50 行:提取所需的眼睛標志。

        對于左眼,我們將提取38、39、42 和 41。

        對于右眼,我們將提取44、45、48 和 47。

        在閱讀進一步的步驟之前,請閱讀下面的算法。

        第 54 行:該行負責保持 dlist=10 的大小。

        刪除是從前面完成的,添加是在最后完成的。

        這就像一個隊列系統。

        第 57–66 行:當 dlist 中至少有 4 個 True 時播放警報。當它們小于 4 時停止。第 69 行:顯示圖像。

        第 71–72 行:當用戶按下ESC鍵時停止應用程序。

        第 74–75 行:關閉所有 cv2 窗口并釋放網絡攝像頭。

        用于檢測嗜睡的算法:

        · 求 38-42、39-41、44-48 和 45-47 地標之間的距離,并求這 4 個地標的平均值。

        · 如果這個平均值大于我們最初定義的 thres,則在我們的 dlist 中追加/添加一個 True。

        · 如果我們的 dlist 包含 4 個或更多 Trues,則意味著在連續 4 幀中,檢測到睡意,因此播放警報。

        · 我們保留了大于等于4,因為如果我們不這樣做,即使我們眨眼,我們的程序也會發出警報,這是誤報。

        輸出:

        注意——你不會在這里聽到警報聲,因為它是 GIF,你可以在博客上查看視頻

        執行嗜睡檢測的其他想法:第一種方法是我們在上面執行的方法。第二種方法是在人臉圖像上訓練神經網絡。第三種方法是在眼睛圖像上訓練神經網絡。

        這就是你可以使用 cv2和 dlib 在 python 中執行嗜睡檢測的方法。


               原文標題 : 在 Python 中使用 cv2 進行嗜睡檢測

        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 商城县| 国产av大全| 91亚洲视频| 石首市| 国产成人久久久777777麻豆| 亚洲最大的成人网站| 伊人二区| 无码人妻AV一区二区| 灵宝市| 99伊人网| 亚洲AV电影冈| 国产V^在线| 91N在线观看| 国产精品成人三级| 一级AV韩国| 亚洲中文字幕av| 人人肏屄| 国产精品人妻无码久久久豆腐| 国产精品乱码一区二区三区| 河曲县| 宁波市| 蓝田县| 97精品人妻一区二区三区| 国精产品一区一区二区三区mba| 亚洲人妻系列| 奉节县| 精品久久国产| 人妻?无码?中出| 久久久久久久久久8888| 孟村| 老熟女AV| 灵寿县| 国模吧视频| 蜜桃av在线| 国产精品99久久久久久噜噜| 丰原市| 亚洲人人色| 亚洲天堂免费观看| 泽州县| 久草在线观看视频| 老司机玖玖在線|