얼굴 인식 (Face Recognition) - leeyoungseo/- GitHub Wiki
-
본 어플리케이션은 face image에서 face 부분을 detection 한 뒤, image database 에서 해당 face를 찾아 누구인지 알려주는 어플리케이션이다.
-
본 어플리케이션은 C++로 작성된 오픈소스코드 이며, 제작자는 Robin Hewitt 이다.
-
본 어플리케이션에 대한 자세한 설명은 이 곳에서 확인할 수 있다. Face Recognition
-
본 어플리케이션을 리눅스 서버 및 ARM 모바일 기기에서 아래와 같이 컴파일하여 사용할 수 있다.
$ sudo apt-get install -y build-essential
$ sudo apt-get install -y cmake
$ sudo apt-get install -y libgtk2.0-dev
$ sudo apt-get install -y pkg-config
$ sudo apt-get install -y python-numpy python-dev
$ sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev libjasper-dev
$ sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils
$ wget http://smrl.korea.ac.kr/deeplink/chris/opencv/opencv-facerecog.tar.gz $ tar -xzvf opencv-facerecog.tar.gz
$ wget http://smrl.korea.ac.kr/deeplink/chris/opencv/opencv-2.4.11.zip
$ unzip opencv-2.4.11.zip
$ cd opencv-2.4.11
$ cmake .
$ make -j4
$ sudo make install
$ pkg-config --modversion opencv
위의 pkg-config를 확인하여 OpenCV가 정상적으로 설치되었는지 확인
$ wget http://smrl.korea.ac.kr/deeplink/chris/opencv/boost_1_55_0.tar.bz2
$ tar xzvf boost_1_55_0.tar.bz2
$ cd boost_1_55_0
$ ./bootstrap.sh
$ sudo ./b2 install
~/.bashrc 파일에 환경변수 추가
export PATH=$PATH:<boost dir>
export PATH=$PATH:/home/extraHDD/carrotyone/source/offloading/boost_1_55_0/boost [EXAMPLE]
export FACEREC=<face recognition directory>
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
$ source ~/.bashrc
face recognition directory는 Face-recognition 소스코드가 설치된 폴더를 뜻함
opencv-facerecog.cpp을 수정해 주어야 함
// setup env vars
377 char* env = getenv( "FACEREC" );
378 string workingDir = string( env ) + "/" + WORKING_DIR;
379 filesystem::create_directory( workingDir );
380 string facesDir = workingDir + "/" + FACES_DIR;
381 string cascadeFile = workingDir + "/" + CASCADE_FILE;
382 string facesdbFile = workingDir + "/" + FACEDB_FILE;
383 string nameFile = workingDir + "/" + NAME_FILE;
384 logFile = workingDir + "/" + LOG_FILE;
385 debugDir = workingDir + "/" + DEBUG_DIR;
386 filesystem::create_directory( debugDir );
run.sh를 수정해 주어야 함
3 WORKING_DIR=`echo "$FACEREC/.opencv-facerecog"`
이후에 shell script를 실행
$ cd <face recognition diretory>
$ ./run.sh
face recognition directory는 Face-recognition 을 설치한 폴더
$ wget http://smrl.korea.ac.kr/deeplink/chris/toolchain/gcc-linaro-aarch64-linux-gnu-4.8-2014.04_linux.tar.bz2
먼저 ARM 전용으로 Cross compile을 진행하기 위해서 Toolchain을 설치하여야 함
$ sudo apt-get install build-essential
$ sudo apt-get install gcc-arm-linux-gnueabihf
$ sudo apt-get install g++-arm-linux-gnueabihf
$ sudo arm-linux-gnueabihf-g++ --version
version을 확인해 주어야 함 (설치가 되어있는지 확인)
OpenCV 설치
$ wget http://smrl.korea.ac.kr/deeplink/chris/opencv/opencv-2.4.11.zip
$ unzip opencv-2.4.11.zip
$ cd opencv-2.4.11
$ cd platforms/linux/
$ mkdir build
arm-gnueabi.toolchain.cmake 파일을 수정해 주어야 함
$ vim arm-gnueabi.toolchain.cmake
5 set(GCC_COMPILER_VERSION "[위에서 확인한 amr-linux-gnueabihf-g++ 툴체인 버전]" CACHE STRING "GCC Compiler version")
6
7 set(FLOAT_ABI_SUFFIX "hf")
8
9 if (NOT SOFTFP)
10 set(FLOAT_ABI_SUFFIX "hf")
11 endif()
Build Command
$ cd build
$ cmake -DSOFTFP=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=../arm-gnueabi.toolchain.cmake ../../..
$ make -j8
$ make install -j8
opencv/platforms/linux/build/install/share/OpenCV/3rdparty/lib 의 Library 이름 변경
$ mv liblibjasper.a libjasper.a
$ mv liblibjpeg.a libjpeg.a
$ mv liblibpng.a libpng.a
$ mv liblibtiff.a libtiff.a
~/.bashrc의 맨 아래 부분에 환경변수 추가 설정
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:<OpenCV dir>/platforms/linux/build/install/lib/pkgconfig:<OpenCV dir>/platforms/linux/build/install/share/OpenCV/3rdparty/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<OpenCV dir>/platforms/linux/build/install/lib:<OpenCV dir>/platforms/linux/build/install/share/OpenCV/3rdparty/lib
$ wget http://smrl.korea.ac.kr/deeplink/chris/opencv/boost_1_55_0.tar.bz2
$ tar xzvf boost_1_55_0.tar.bz2
$ cd boost_1_55_0
$ mkdir build
$ ./bootstrap.sh
$ vi project-config.jam
if ! gcc in [ feature.values <toolset> ]
{
using gcc : arm : arm-linux-gnueabihf-g++ ;
# using gcc ;
}
$ ./bjam install --prefix=build --layout=system -toolset=gcc-arm link=static runtime-link=static
Linux와 동일 (경로만 임의로 설정해 주면 됨)