Skip to content
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Computer Vision

Computer Vision & Pi – Chương 3. Lắp đặt Pi trên xe hơi để phát hiện tài xế ngủ gật

By Chủ tiệm Mì
February 26, 2020 4 Min Read
11

Chào tuần mới anh em Mì AI, hôm nay chúng ta sẽ cùng nhau tìm cách lắp đặt Pi trên xe hơi và triển khai phần mềm phát hiện tài xế ngủ gật nhé!

Các bạn chưa đọc các bài trước trong series có thể đọc tại đây:

  • Cài đặt môi trường lập trình cho Raspberry Pi
  • Triển khai model AI nhận diện đối tượng MobileNet SSD lên Raspberry Pi

Bài toán lần này của chúng ta như sau, chúng ta sẽ mang Pi lên trên xe hơi, sau đó kết nối Pi với hệ thống loa và chạy phần mềm cảnh báo ngủ gật trên Pi. Phần mềm trên Pi sẽ theo dõi đôi mắt của tài xế thường xuyên. Nếu như tài xế nhắm mắt ngủ trong 1 khoảng thời gian nhất định do chúng ta quy định thì âm thanh chói tai sẽ phát ra từ hệ thống loa để cảnh báo làm giật mình tài xế hoặc khuyên tài xế nên dừng xe để nghỉ ngơi tránh các tai nạn đáng tiếc.

phát hiện ngủ gật

Okie bắt đầu cho nó ngầu nào!

Phần 1 – Chuẩn bị nguyên vật liệu

Để làm bài này các bạn chuẩn bị cho mình về mặt thiết bị như sau:

  • Một đôi loa PC nhỏ, chạy nguồn USB. Chú ý nếu bạn nào đấu nối âm thanh vào cổng AUX của hệ thống âm thanh xe hơi thì khỏi cần đôi loa PC này nhé.
  • Một máy Raspberry Pi
  • Một màn hình nhỏ gọn tầm 7 Inch là đủ, chạy nguồn USB.
phát hiện ngủ gật

Về phần mềm, các bạn chạy trên Termial của Pi (cách chạy xem lại Bài số 2 Triển khai model AI nhận diện đối tượng MobileNet SSD lên Raspberry Pi nhé) để tải mã nguồn phần mềm cảnh báo ngủ gật về máy bằng dòng lệnh:

git clone https://github.com/thangnch/MiAI_Sleep_Detection_Pi

Sau khi tải xong project về, các bạn tải file landmark predict tại đây và copy vào thư mục chứa mã nguồn (có file pi_drow.py đấy).

Tiếp theo, các bạn cài đặt các thư viện cần thiết bằng lệnh sau (chú ý mình khuyến cáo các bạn tạo môi trường ảo tránh lỗi nhé, cách tạo môi trường ảo cũng có trong Bài số 2 luôn):

pip install -r setup.txt

Các bạn tiếp tục kiên nhẫn đợi cài thư viện vì cái máy Pi nó chậm lắm chứ ko nhanh như PC của các bạn.

Xong, bây giờ sang Phần 2 là Lý thuyết.

Phần 2 – Thuật toán của bài toán phát hiện buồn ngủ

Thuật toán của bài này khá đơn giản như sau:

  • Bước 1: Mình load module detect khuôn mặt bằng HAARCASCADE và module phát hiện 68 điểm trên mặt – gọi là Facial Landmark.
  • Bước 2: Mình tiến hành detect khuôn mặt từ camera của Pi, sau đó với mỗi khuôn mặt tìm được mình detect 68 điểm Landmark.
  • Bước 3: Mình chọn 2 cụm Landmark ở 2 mắt của khôn mặt. Tính toán khoảng cách giữa 2 mí mắt và đặt một ngưỡng để xác định xem mắt nhắm – khoảng cách nhỏ hay mở – khoảng cách lớn
  • Bước 4: Nếu trong X frame liên tiếp (do mình cấu hình) mà mắt nhắm thì mình coi là ngủ và tiến hành phát audio ra cổng 3.5 của Pi để cánh bảo.

Nói thêm về 68 điểm facial landmark như hình dưới để các bạn dễ hình dung:

Với hình trên thì 2 cụm mắt sẽ là các điểm: Từ 37 đến 42 và từ 43 đến 48 😀

Phần 3 – Tiến hành chạy thử chương trình

Trước khi chạy chương trình các bạn hãy đến dòng 13 và cấu hình lại đường dẫn đến file alarm.wav nhé. Cái này tùy vào các bạn đặt mã nguồn ở đâu trên Pi để cấu hình cho chuẩn. Như của mình là

# Cau hinh duong dan den file alarm.wav
wav_path = "/home/pi/miai/landmark/alarm.wav"

Sau đó các bạn chạy lệnh:

python pi_drow.py

Một cửa sổ sẽ hiện lên trên Pi để nhận diện xem bạn có nhắm mắt hay không như sau là okie:

phát hiện ngủ gật

Về mã nguồn của chương trình thì mình đã comment khá kỹ trong file pi_drow.py rồi. Các bạn xem chi tiết trong đó và compare với thuật toán bên trên là sẽ hiểu ngay. Nếu có gì vướng mắc các bạn cứ post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup để cùng trao đổi nhé.

Vậy là các bạn đã biết cách triển khai một bài toán thực tế là phát hiện tài xế ngủ gật trên Pi. Các bạn xem clip youtube của mình dưới đây để thấy cách mình triển khai thực tế trên xe oto nhé.

Xin chào và hẹn gặp lại trong các bài tiếp theo.

Chúc các bạn thành công!

Hãy join cùng cộng đồng Mì AI nhé!

Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
Website: https://miai.vn/
Youtube: http://bit.ly/miaiyoutube

Cảm ơn bài tham khảo tuyệt vời của tác giả tại đây

Tags:

drowsiness detectionobject detectionobject detection on piphát hiện ngủ gậtraspberry Pi
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

Computer Vision & Pi – Chương 2. Triển khai model AI nhận diện đối tượng MobileNet SSD lên Raspberry Pi

Next

Computer Vision & Pi – Chương 4. Train model Tiny YOLOv3 để xem có đưa lên Pi được không?

11 Comments
  1. Computer Vision & Pi – Chương 5. Đưa model Tiny YOLO v3 lên Pi - Mì AI says:
    May 18, 2020 at 1:35 pm

    […] Bài 3: Computer Vision & Pi – Chương 3. Lắp đặt Pi trên xe hơi để phát hiện tài xế … […]

    Reply
  2. N says:
    May 19, 2020 at 5:54 am

    Mì AI tuyệt vời quá, giúp “người cao tuổi” ko ngại khi học AI

    Reply
    1. Nguyễn Chiến Thắng says:
      May 19, 2020 at 6:55 am

      Thanks bạn ủng hộ nha. Mì AI do người cao tuổi viết nên rất phù hợp người cao tuổi:D
      #MìAI
      Fanpage: http://facebook.com/miaiblog
      Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup
      Blog: https://miai.vn
      Youtube: http://bit.ly/miai_youtube

      Reply
  3. Bao HQ says:
    December 12, 2021 at 11:42 am

    Theo mình thấy trước bước 1 nên có thêm một bước nữa là detect face để cắt ra cái box chứ vừa đủ cái face. Vậy sẽ tăng dộ chính xác cho landmark detection sau này

    Reply
    1. Nguyễn Chiến Thắng says:
      December 21, 2021 at 10:20 am

      Chuẩn bạn. Còn nhiều cái cài tiến nữa để tăng hiệu quả model.

      Reply
  4. Kien says:
    April 17, 2023 at 6:24 pm

    Anh ơi em cho chạy thử trên linux đến đoạn pip install -r setup.txt thì gặp nhiều lỗi quá ạ anh có thể giải đáp giúp em được không ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      May 9, 2023 at 10:59 am

      Bạn post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup cho tiện trao đổi nhé!

      Reply
      1. nguyễn sỹ văn says:
        October 2, 2024 at 8:02 am

        em không dùng màng hình rời, cho hiển thị qua màng hình lap vẫn code y như vậy được phải ko anh.!

        Reply
        1. Nguyễn Chiến Thắng says:
          October 15, 2024 at 10:18 am

          Đúng. Em cài đặt VNC cũng được đó.

          Reply
  5. nguyễn sỹ văn says:
    October 2, 2024 at 8:03 am

    em không dùng màng hình rời, cho hiển thị qua màng hình lap vẫn code y như vậy được phải ko anh.!

    Reply
    1. Nguyễn Chiến Thắng says:
      October 15, 2024 at 10:19 am

      Đc em. Cảm ơn em. Cần thêm gì cứ lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup nhé!

      Reply
Show Comments

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Tìm hiểu và cài đặt OpenClaw – trợ lý ảo 24/7 thông minh đa chức năng – Mì Ai
  • Dùng thử Pika – robot học Tiếng Anh cho trẻ cực đỉnh – Mì AI
  • TopView.AI 4.0 – nền tảng tạo AI video cộng tác bá đạo – Mì AI
  • Storm MCP – giải pháp nhanh gọn nhẹ để có MCP Server trong 5 phút – Mì AI
  • VoxCPM thử voice cloning với checkpoint finetune Tiếng Việt – Mì AI

Recent Comments

  1. Chủ tiệm Mì on Thử xây dựng hệ thống Agentic AI với LangGraph – Mì AI
  2. Nguyễn Chiến Thắng on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  3. Trần Sơn Dương on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  4. Salomon on [CV] Thử làm model cảnh báo ngủ gật cho tài xế oto bằng Dlib và Resnet
  5. khang on Xây dựng hệ thống nhận diện thủ ngữ – ngôn ngữ ký hiệu tay – để giao tiếp với người khuyết tật

Categories

  • Basic
  • Computer Vision
  • Data Science – Data Analysis
  • Generative AI
  • MÌ ÚP
  • Natural Language Processing
  • RNN-LSTM-GRU
  • Share Data

Là người đi trước, hãy biết đưa tay lại phía sau.

Nguyễn Chiến Thắng
Cảm ơn các bạn đã ủng hộ Mì AI!