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

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

By Chủ tiệm Mì
September 30, 2019 4 Min Read
13

Vui vẻ chào các anh em thích ăn Mì AI, một tuần mới lại đến với vô vàn hứng khởi. Hôm nay chúng ta sẽ cùng nhau đi thêm 1 bài nữa trong Computer Vision là 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.

Bài này sẽ áp dụng các công nghệ như: CNN, transfer learning dùng mạng VGG16 nổi tiếng, kỹ thuật xóa nền tách đối tượng…

Bài toán của chúng ta là sẽ xây dựng một hệ thống nhận dạng bàn tay để đoán ra các ký tự mà người khuyết tật muốn nói. Ví dụ trong bài này mình sẽ làm với 5 kí tự sample là: V, L,E,F và B trong bảng thủ ngữ sau:

nhận diện thủ ngữ
Nguồn: DoiSongTrai.net

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

Chúng ta tạo một thư mục MiAI_Hand_Lang để lưu lại các thứ của bài này nhé. Sau khi tạo xong thư mục này, các bạn chuyển vào trong thư mục và gõ lệnh

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

Đợi một chút để dữ liệu tải về cho tới khi done nhé. Các bạn tạo thêm các thư mục sau:

  • Thư mục data – chứa ảnh để train
  • Thư mục models – chứa các model sau khi train nhé.

Các bạn tải dữ liệu tại đây và giải nén toàn bộ ảnh bên trong vào thư mục data nhé (chú ý chỉ lấy file ảnh, ko lấy thư mục nếu có nhé)

Sau khi tải xong các bạn tiến hành cài đặt các thư viện cần thiết bằng lệnh

pip install -r setup.txt

Sau đó ngồi uống trà để đợi cho các thư viện cài đặt xong nhé. Khi nào cài xong thì các bạn có thể đi sang phần tiếp theo.

Phần 2. Tư tưởng thuật toán nhận diện thủ ngữ

Bài toán này mình sẽ làm theo các bước như sau nhé:

  1. Train:
    • Ta chuẩn bị sẵn các ảnh đầu vào là các ảnh bàn tay đang thực hiện các ký tự nói trên và lưu trong thư mục Data. Các ảnh được gán nhãn đầy đủ bằng tên file.
    • Ta thực hiện chuyển các ảnh đó về size 224 x224 và đưa qua mạng VGG16 đã được thêm 1 vài layer Dense (Fully Connect) và cuối cùng là 1 lớp softmax để dự đoán kết quả đầu ra.
    • Ta thực hiện train mạng của chúng ta với khoảng hơn 2000 ảnh train và gần 300 ảnh test.
  2. Chạy thử:
    • Ta thực hiện mở Webcam và khoanh 1 vùng sẽ phát hiện bàn tay ở trong vùng đó. Gọi là detection region.
    • Người dùng bỏ tay ra khỏi vùng detection region và nhấn phím B để máy thu nhận nền của vùng. Nếu muốn thu nhận lại nền, người dùng bấm phím R.
    • Người dùng đưa tay vào trong vùng detection (sau khi đã capture nền) và tạo thành các hình ký tự.
    • Model sẽ hiển thị ký tự ra màn hình.
    • Người dùng bấm Q để thoát.

Phần 3. Tiến hành viết code

Để có thể hiểu được các bước trên, các bạn hãy đọc kỹ code của mình trong 2 file train_model.py và detection.py nhé. Mình đã comment từng dòng rồi nhé.

nhận diện thủ ngữ

Nếu bạn có khó khăn gì hoặc cần chỉnh sửa, cải tiến gì mà bị vướng, các bạn cứ post bài trên group Mì AI tại đây nhé Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup 

Phần 4. Tiến hành train model

Chúng ta đã có ảnh input, chúng ta đã có 2 file code train_model.py và detection.py. Bây giờ các bạn chạy lệnh sau để train model:

python train_model.py

Mình đang để train tầm 50 epoch nhé các bạn (vì train đến đó thấy accury tốt lắm rồi), các bạn có thể tăng giảm để trải nghiệm xem model sẽ khác nhau như thế nào nhé.

nhận diện thủ ngữ

Sau khi train xong, trong thư mục models sẽ xuất hiện file mymodel.h5 chính là file saved model của các bạn nhé.

Phần 5. Phần hay nhất, thử nghiệm model nhận diện thủ ngữ

Train đã xong, cũng khá tốn thời gian nếu máy các bạn không có GPU nhưng đợi chờ là hạnh phúc. Bạn nào ngại train thì lấy luôn model sẵn có của mình nhé (tải tại đây) và copy vào thư mục models là xong nhé.

Bây giờ chúng ta tiến hành kiểm thử model nào. Chạy lệnh sau nhé:

python detection.py

Nếu mọi thứ okie thì 1 cửa sổ webcam sẽ hiện ra. Các bạn làm như sau nhé:

  • Né đầu ra khỏi vùng khung hình xanh, làm sao khung hình trống, và không có vật gì chuyển động trong đó.
  • Nhấn phím B để thu nhận nền.
  • Sau đó đưa tay vào trong khu vực khung hình xanh và tạo các ký tự nhé. Máy sẽ hiển thị ký tự lên màn hình.
  • Nhấn Q để thoát hoặc R để lấy lại nền (nếu kết quả nhận ko chính xác)

Video minh họa:

Chú ý: Các bạn nên dùng camera tốt 1 chút để hạn chế nhiễu, ngoài ra nên thực hành tại môi trường đủ ánh sáng để có kết quả tốt nhất nhé!

Rồi, như vậy các bạn đã hoàn thành bài nhận diện thủ ngữ – ngôn ngữ ký hiệu để có thể hiểu được người khuyết tật (câm điếc) giao tiếp rồi. Nếu trong quá trình triển khai có vướng gì các bạn cứ post bài trên group Mì AI tại đây nhé Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup 

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

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

Nguồn tham khảo: https://github.com/athena15/project_kojak

Tags:

aiainoodleCNNcomputer visionmachine learningmì aimlopencvthreshold OTSUtransfer learningVGG
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

Thử “chơi lớn” dạy máy tính “học” nhận diện ngoại ngữ bằng mạng LSTM

Next

Đi buôn chứng khoán cùng Mì AI, xây model LSTM dự đoán giá chứng khoán Vietcombank cuối năm 2019

13 Comments
  1. diuthanhdo says:
    October 3, 2019 at 10:28 am

    anh ơi, anh có thể chia sẻ thêm về bài toán extract thông tin từ CMND được không ạ? Em cảm ơn

    Reply
    1. Nguyễn Chiến Thắng says:
      October 3, 2019 at 10:29 am

      Okie thanks bạn ủng hộ
      Mình sẽ có bài riêng về vấn đề đó nhé.

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

      Reply
  2. dang thi says:
    December 31, 2020 at 3:24 pm

    anh ơi tại sao lại dùng mạng VGG16 vậy a, em khảo sát trong các mang CNN nổi tiengs, VGG16 đã cũ ,nặng… ko pit có ưu điểm j mà anh chọn nó làm tiền xử lý ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      January 6, 2021 at 3:36 am

      Ah tại anh quen dùng thôi 😉

      Reply
  3. Phúc says:
    April 25, 2021 at 2:29 pm

    Anh ơi em bấm vào cái cài đầu tiên nó báo lỗi thế này sửa sao anh
    (venv) D:\python\MiAI_Hand_Lang>git clone https://github.com/thangnch/MiAI_Hand_Lang .
    ‘git’ is not recognized as an internal or external command,
    operable program or batch file.

    Reply
    1. Nguyễn Chiến Thắng says:
      April 26, 2021 at 3:07 pm

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

      Reply
  4. Hau says:
    October 1, 2021 at 10:18 am

    anh ơi lúc em train nó báo lỗi này thì xử lý như nào ạ
    ImportError: cannot import name ‘VGG16’ from ‘keras.applications’

    Reply
    1. Nguyễn Chiến Thắng says:
      October 2, 2021 at 8:55 pm

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

      Reply
  5. Văn Tèo says:
    October 2, 2022 at 10:53 pm

    dạ anh ơi cho em xin file ảnh của các chữ cái còn lại được không ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      November 4, 2022 at 2:23 pm

      Mình chỉ có bộ này thôi. Bạn cần dữ liệu post lên https://facebook.com/groups/miaigroup trao đổi cho tiện nhé!

      Reply
  6. thông says:
    June 26, 2024 at 11:32 pm

    pip install -r setup.txt
    cái nay em hông đc anh ơi

    Reply
    1. Nguyễn Chiến Thắng says:
      August 18, 2024 at 7:43 am

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

      Reply
    2. khang says:
      March 3, 2025 at 12:03 am

      mình cũng gặp tình trạng giống bạn , bạn khắc phục được chưa ??

      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!