Showing posts with label Face recognition. Show all posts

Face recognition - Nhận dang khuôn mặt (P2)

Ở phần 2 này sẽ là exam với thư viện Dlib



1. Build Dlib
DLib là một thư viện xử lý ảnh tương đương như OpenCV, tuy nhiên điểm khác ở đây là DLib sử dụng Deep Learning trong tính năng  Face recorgnition của họ, còn OpenCV chỉ là xử lý ảnh thông thường thôi.

Link source: dlib.net

1.1 Build cho PC

 
cd dlibsource
PREFIX=/home/linuxpc/dlib/x86/install

mkdir release
cd release
cmake  \
-DCMAKE_BUILD_TYPE=RELEASE \
-DDLIB_NO_GUI_SUPPORT=1 \
-DDLIB_USE_CUDA=0 \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
..

make
make install



1.2 Build cho Raspberry PI
Tạo toolchain file: arm-gnueabi.toolchain-rpi.cmake
set( CMAKE_SYSTEM_NAME Linux )
set( CMAKE_SYSTEM_PROCESSOR arm )
set( CMAKE_C_COMPILER arm-linux-gnueabihf-gcc )
set( CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++ )


#export toolchain 
TOOLCHAIN_DIR=/opt/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64
export PATH=$PATH:${TOOLCHAIN_DIR}/bin

PREFIX=/home/linuxpc/dlib/rpi/install
TOOLCHAIN_FILE=/path/to/arm-gnueabi.toolchain-rpi.cmake

cd dlibsource
mkdir release
cd release
cmake  \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN_FILE \
-DDLIB_NO_GUI_SUPPORT=1 \
-DDLIB_USE_CUDA=0 \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
..

make
make install




2. Face detection

https://github.com/eslinux/ImageProcessing/tree/master/DLib/face-detector


3. Face recorgnition

https://github.com/eslinux/ImageProcessing/tree/master/DLib/face-recognition


Saturday, October 14, 2017

Face recognition - Nhận dang khuôn mặt (P1)

1. Face detection
- Phát hiện khuôn mặt
- Không định danh được khuôn mặt đó là ai


Chỉ phát hiện ra có mặt người, không biết là ai


2. Face recognition


                     Xác định được người trong hình là Carie, Kate, Nicola, Jessica

+ Sau khi phát hiện ra khuôn mặt (face detection) thì nó sẽ xác định xem khuôn mặt phát hiện được là của ai

+ Để có thể biết được khuôn mặt trong hình là của ai thì trước đó phải training cho nó bằng tập ảnh gọi là data training (ảnh + ID (tên của người trong ảnh)). Quá trình training bao gồm
    - training image -> face detection -> face registration (đăng ký khuôn mặt + ID)
 
+ Khi chạy face recognition, từ một bức ảnh input chương trình sẽ lần lượt thực hiện các bước

    - Chạy Face detection để phát hiện face/mặt trong ảnh input
    - So sánh face trong ảnh input vừa phát hiện xem nó có giống với những face mà nó được training trước đó hay không từ đó đưa ra kết quả face đó là của ai trong tập nó đã được training hoặc không là của ai cả (không biết)

Tóm là thì Face recognition hoạt động y như con người vậy, phải được giới thiệu người đó là ai rồi sau đó gặp lại thì mới nhận ra được, tuy nhiên nhiều khi đã biết người đó rồi nhưng lần sau gặp lại thì không nhận ra được, cái đó phần mềm nó gọi là độ chính xác.

Độ chính xác phụ thuộc vào nhiều yếu tố:
- Thuật toán
- Tập ảnh traning ít hay nhiều, đủ góc cạnh mặt nhiều hay ít
- Chất lượng ảnh
- Xử lý trên ảnh trên không gian 2 chiều (ảnh thường), 3chiều (xác định thêm độ sâu, mô hình hóa face trên không gian 3 chiều kiểu như Face ID trên Iphone X của Apple)
- ...


3. Exam 

Face recognition bằng phần mềm OpenCV

https://github.com/eslinux/ImageProcessing/tree/master/OpenCV/15-Face-Recognition




- Copyright © Lập trình hệ thống nhúng Linux . Powered by Luong Duy Ninh -