Có ai từng sử dụng nhận diện khuôn mặt ESP-WHO không? Tôi đang dùng phiên bản IDF 5.5.1 và sử dụng ví dụ của chính hãng, nhưng không cấu hình được SDK, không biên dịch được, tất cả các tệp tiêu đề đều bị mất.
Kho lưu trữ chính hãng như sau:
GitHub - espressif/esp-who: Khung nhận diện và phát hiện khuôn mặt
GitHub - espressif/esp-dl: Thư viện học sâu Espressif cho ứng dụng AIoT
Để giải quyết vấn đề cấu hình và biên dịch ESP-WHO trên ESP-IDF 5.5.1, cần tập trung vào ba khía cạnh chính: biến môi trường, khởi tạo phụ thuộc, cấu hình thành phần. Dưới đây là giải pháp từng bước:
Bước 1: Khởi tạo phụ thuộc submodule của ESP-WHO
ESP-WHO phụ thuộc vào các submodule như esp-dl, cần đảm bảo các phụ thuộc này được tải đúng. Mở terminal, vào thư mục esp-who-master, chạy lệnh:
git submodule update --init --recursive
Bước 2: Cấu hình biến môi trường IDF_EXTRA_ACTIONS_PATH
Thông báo lỗi “biến IDF_EXTRA_ACTIONS_PATH chưa được thiết lập đúng” là chìa khóa. Biến này cần trỏ đến thư mục bsp (đường dẫn hỗ trợ bo mạch) trong ESP-WHO.
Cách thiết lập trên Windows:
Tìm đường dẫn esp-who-master (ví dụ: C:\Users\49864\Desktop\esp-who-master), đường dẫn đầy đủ đến thư mục bsp là C:\Users\49864\Desktop\esp-who-master\bsp.
Mở cài đặt biến môi trường hệ thống (nhấp chuột phải vào “This PC” → “Properties” → “Advanced System Settings” → “Environment Variables”).
Trong “User variables” hoặc “System variables”, thêm biến mới:
Tên biến: IDF_EXTRA_ACTIONS_PATH
Giá trị biến: C:\Users\49864\Desktop\esp-who-master\bsp (thay bằng đường dẫn thực tế của bạn).
Khởi động lại VSCode để biến môi trường có hiệu lực.
Bước 3: Đảm bảo môi trường ESP-IDF được tải đúng
Trong VSCode, cần tải môi trường thông qua bảng lệnh ESP-IDF:
Nhấn Ctrl+Shift+P mở Command Palette, nhập “ESP-IDF: Show Examples Projects” để xác nhận đường dẫn ESP-IDF được nhận diện.
Khi mở terminal dự án, sử dụng “ESP-IDF: New Terminal” để đảm bảo các biến môi trường (như IDF_PATH) được tải đúng.
Bước 4: Kiểm tra CMakeLists.txt và đăng ký thành phần
Ví dụ human_face_recognition cần đăng ký thành phần và đường dẫn tệp tiêu đề đúng. Kiểm tra CMakeLists.txt:
Đảm bảo sử dụng idf_component_register để bao gồm thành phần và thư mục tệp tiêu đề cần thiết:
idf_component_register(
SRCS "app_main.cpp" "frame_cap_pipeline.cpp"
INCLUDE_DIRS "."
REQUIRES esp_who esp_camera esp_dl # Thêm các thành phần phụ thuộc theo nhu cầu
)
Bước 5: Dọn dẹp và xây dựng lại dự án
Xóa thư mục build, chạy lại quy trình xây dựng:
idf.py fullclean
idf.py set-target esp32 # Thay bằng chip mục tiêu của bạn (ví dụ esp32s3)
idf.py build
Lưu ý bổ sung: Tính tương thích phiên bản
Nếu vẫn chưa giải quyết được, hãy kiểm tra tính tương thích của ESP-WHO với ESP-IDF 5.5.1. Xem README hoặc GitHub Issues của ESP-WHO. Nếu phiên bản hỗ trợ chính thức thấp hơn 5.5.1, hãy thử giảm phiên bản ESP-IDF về phiên bản tương thích (ví dụ 5.0 hoặc 4.4), sau đó lặp lại quy trình cấu hình trên.
Sau khi thực hiện các bước trên, lỗi “lỗi cấu hình SDK” và “không tìm thấy tệp tiêu đề” sẽ được giải quyết. Nếu vẫn gặp lỗi, hãy kiểm tra thêm includePath và browse.path trong c_cpp_properties.json có chứa thư mục tệp tiêu đề ESP-WHO, hoặc tạo Issue trên kho lưu trữ GitHub của ESP-WHO để nhờ hỗ trợ chính thức.