Dlib là thư viện mã nguồn mở về Machine Learning, trong đó nổi tiếng nhất là Deep Learning. Để làm quen, tìm hiểu khả năng ứng dụng của Dlib bạn có thể sử dụng Python để test cho nhanh.
Cài đặt Dlib với CUDA trên Windows 10
Dlib là thư viện Deep Learning nên chạy rất chậm với CPU, do đó các bạn cần chạy bằng GPU. Khi cài bằng pip thì không enable CUDA nên các bạn cần build bằng source code.
Thông tin cấu hình PC và phần mềm sử dụng trong bài này:
- Windows 10 build 2004
- Python 3.7.3 x64
- GPU: RTX 2060 6GB VRAM
- Cmake 3.22.1
- Dlib 19.21.0
- Visual Studio 2017
- CUDA 11.2.0_460.89_win10
- cuDNN 8.1.1.33
Bước 1: cài đặt các phần mềm
Cài đặt Python 3.7.3 và Cmake, cứ next -> next là được. Cài xong thì restart PC.
Bước 2: cài đặt CUDA và cuDNN
Cài đặt CUDA và cuDNN theo bài viết này Hướng dẫn cài đặt Tensorflow GPU với CUDA 11.2 trên Windows 10. Cài xong thì restart PC.
Bước 3: cài đặt Visual Studio 2017
Mình thấy Visual Studio 2017 ổn định nhất nên sử dụng 2017, các bạn muốn dùng bản mới hơn cũng được. Lưu ý phải cài C++ development như hình dưới, cài xong thì restart PC.
Bước 4: config cmake
Giải nén source code dlib, sau đó tạo folder build bên trong folder dlib.
Mở chương trình Cmake GUI và chọn folder source code & folder build như hình dưới
Nếu bước 2 cài đặt CUDA thành công thì Cmake sẽ tự tìm được CUDA_TOOLKIT_ROOT_DIR.
Ấn nút config để chọn compiler, các bạn chọn đúng phiên bản Visual Studio đang sử dụng và x64 như hình
Lưu ý: mặc định CUDA chỉ chạy với x64, nên bạn make bất kỳ lib/source/… gì có sử dụng CUDA là auto chọn x64
Bước 5: build dlib bằng cmake
Dùng command line di chuyển đến folder dlib và chạy lệnh cmake . Nếu không tìm thấy cmake thì add folder C:\Program Files\CMake\bin\ vào biến môi trường PATH
Sau khi chạy xong thì chạy tiếp lệnh
python setup.py install --set DLIB_USE_CUDA=1
Nếu thành công kết quả sẽ như hình dưới
Kiểm tra dlib cài đặt thành công hay chưa
Dùng lệnh sau để kiểm tra dlib package, hiển thị ra version 19.21 là được
pip show dlib
Kiểm tra dlib có dùng CUDA hay chưa trong Python
import dlib
dlib.DLIB_USE_CUDA
Kết quả hiện ra True là đúng.
Nếu có lỗi khi import dlib: ImportError: DLL load failed while importing _dlib_pybind11: The specified module could not be found
Cách fix là vào file __init__.py bị lỗi, sửa dòng 15 để điều kiện là True để copy file .lib cần thiết vào folder DLL như hình dưới là được.
Example
Trong source code dlib các bạn sẽ thấy folder python_examples, bên dưới mình sẽ demo 1 số ví dụ trực quan, dễ thấy dễ hiểu
Phát hiện khuôn mặt
Các bạn gõ lệnh
face_detector.py hotgirl.jpg
Kết quả như hình
Trong đó có cnn_face_detector.py cũng có công dụng tìm khuôn mặt tuy nhiên chạy rất chậm.
Tìm face landmark
Để chạy được example các bạn cần download file model shape_predictor_68_face_landmarks.dat.bz2
Sau đó bạn tạo 1 folder tên image rồi bỏ các ảnh bạn cần xử lý vào trong đó. Vì example này sẽ tìm tất cả file trong folder mà bạn chỉ định.
Sau khi download xong, các bạn giải nén rồi copy vào folder python_example. Sau đó gõ lệnh
face_landmark_detection.py shape_predictor_68_face_landmarks.dat image
Kết quả như hình
Căn chỉnh khuôn mặt
Example này dùng để xoay khuôn mặt bị nghiêng.
Để chạy được example các bạn cần download file model shape_predictor_5_face_landmarks.dat.bz2
Sau đó gõ lệnh
face_alignment.py shape_predictor_5_face_landmarks.dat girl.jpg
Kết quả như hình
Và còn nhiều example khác nữa, các bạn tìm hiểu nhé.