Nội dung khóa học
Giới thiệu thư viện Daisykit
3 bài học
Sử dụng Daisykit như thế nào?
6 bài học
Làm thế nào để đóng góp vào nguồn mở Daisykit?
5 bài học
Phụ lục
1 bài học
Viết ứng dụng AI đầu tiên với Daisykit
Khoá học: Xây dựng ứng dụng AI với Daisykit
- Nội dung
- Ghi chú
- Khoá học
Cách bắt đầu với Daisykit dễ nhất là sử dụng Daisykit Python. Bài học này sẽ hướng dẫn các bạn viết chương trình AI đầu tiên của mình với Python, sử dụng thư viện Daisykit để phát hiện khuôn mặt từ webcam.
Chuẩn bị
Để bắt đầu, các bạn cần có một máy tính có webcam và đã cài đặt Python 3.6 trở lên. Nếu bạn chưa cài đặt Python, hãy tham khảo bài hướng dẫn cài đặt Python. Sau khi cài đặt Python, các bạn cần cài đặt Daisykit Python bằng cách chạy lệnh sau:
pip install daisykit
Viết chương trình
Chương trình của chúng ta sẽ phát hiện khuôn mặt từ webcam và vẽ một khung chữ nhật bao quanh khuôn mặt. Để bắt đầu, các bạn tạo một tệp mới có tên là face_detection.py
và thêm đoạn mã sau vào file:
import cv2
import json
from daisykit.utils import get_asset_file, to_py_type
import daisykit
config = {
"face_detection_model": {
"model": get_asset_file("models/face_detection/yolo_fastest_with_mask/yolo-fastest-opt.param"),
"weights": get_asset_file("models/face_detection/yolo_fastest_with_mask/yolo-fastest-opt.bin"),
"input_width": 320,
"input_height": 320,
"score_threshold": 0.7,
"iou_threshold": 0.5,
"use_gpu": False
},
"with_landmark": True,
"facial_landmark_model": {
"model": get_asset_file("models/facial_landmark/pfld-sim.param"),
"weights": get_asset_file("models/facial_landmark/pfld-sim.bin"),
"input_width": 112,
"input_height": 112,
"use_gpu": False
}
}
face_detector_flow = daisykit.FaceDetectorFlow(json.dumps(config))
# Open video stream from webcam
vid = cv2.VideoCapture(0)
while(True):
# Capture the video frame
ret, frame = vid.read()
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
faces = face_detector_flow.Process(frame)
# for face in faces:
# print([face.x, face.y, face.w, face.h,
# face.confidence, face.wearing_mask_prob])
face_detector_flow.DrawResult(frame, faces)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
# Convert faces to Python list of dict
faces = to_py_type(faces)
# Display the resulting frame
cv2.imshow('frame', frame)
# The 'q' button is set as the
# quitting button you may use any
# desired button of your choice
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()
Chương trình trên sử dụng thư viện DaisyKit để phát hiện khuôn mặt trên video stream từ camera máy tính, đánh dấu vùng khuôn mặt và xác định xem người đó có đang đeo khẩu trang hay không.
Các bước chính trong chương trình:
- Nhập các thư viện và tài nguyên cần thiết, bao gồm OpenCV (cv2), Daisykit và cấu hình dưới dạng JSON.
- Cấu hình các tham số cho model phát hiện khuôn mặt và xác định vị trí landmark (điểm đánh dấu trên khuôn mặt).
- Tạo đối tượng FaceDetectorFlow từ Daisykit với cấu hình được định nghĩa ở bước 2.
- Mở luồng video stream từ webcam (hoặc bất kỳ nguồn video nào khác).
- Trong vòng lặp while, chương trình sử dụng OpenCV để đọc frame video stream từ camera.
- Chuyển đổi frame từ định dạng BGR sang RGB để phù hợp với đầu vào của model phát hiện khuôn mặt.
- Sử dụng model phát hiện khuôn mặt để tìm kiếm các khuôn mặt trong frame và đánh dấu chúng.
- Chuyển đổi frame trở lại định dạng BGR để hiển thị lên màn hình.
- Hiển thị kết quả frame lên màn hình bằng cách sử dụng hàm imshow() của OpenCV.
- Chương trình tiếp tục chạy cho đến khi người dùng bấm nút 'q' để thoát khỏi vòng lặp.
- Sau khi vòng lặp kết thúc, chương trình giải phóng tài nguyên camera và đóng tất cả các cửa sổ hiển thị của OpenCV.
Chạy tiếp lệnh:
python face_detection.py
Một cửa sổ mới sẽ xuất hiện, bạn sẽ thấy webcam của bạn đang hoạt động và đánh dấu các vị trí có khuôn mặt, thông tin landmark và thông tin có đeo khẩu trang hay không. Bạn có thể nhấn phím q
để thoát chương trình.
Vậy là các bạn đã sử dụng Daisykit để viết chương trình AI đầu tiên của mình, với tính năng phát hiện khuôn mặt, landmark khuôn mặt và phát hiện đeo khẩu trang. Trong các bài học tiếp theo, chúng ta sẽ làm quen với ứng dụng Daisykit trong các bài toán khác, tìm hiểu sâu hơn về kiến trúc thư viện Daisykit và cách đóng góp vào thư viện nguồn mở này.