티스토리 뷰

반응형

실생활에서 얼굴인식 기능을 사용한 경우를 쉽게 발견할 수 있습니다.

대표적인 예로는 사진 어플리케이션에서 제공하는 컨텐츠로 가상으로 액세서리를 착용한 모습을 보여주는 경우가 있습니다.

어떻게 프로그램적으로 얼굴인식 처리를 할 수 있을까요?

어렵게 느껴지는 얼굴인식을 쉽게 접근 할 수 있도록 OpenCV 라는 오픈소스로 제공하고 있습니다.

OpenCV 오픈소스를 유연하게 사용하려면 NDK를 활용해야합니다.

이번 포스트는 OpenCV 사용 전 NDK 환경 설정 방법에 대해서 공유 하려고 합니다.



NDK 세팅하기


Android NDK는 C와 C++ 같은 언어를 사용하여 앱의 네이티브 코드 일부를 구현하는 도구 모음입니다. 어떤 유형의 앱에서는 이러한 언어로 작성된 코드 라이브러리를 재사용하는 데 도움이 됩니다.


NDK 설정하는 방법은 Create New Project 부터 시작합니다.

Phone and Tablet 에서 Native C++ 을 클릭 후 Next 누릅니다.


프로젝트 이름과 패키지명을 입력합니다.


Finish 버튼 클릭하여 프로젝트 초기 설정을 마무리 합니다.


이제 NDK 을 설치하겠습니다.

Tools > SDK Manager 을 클릭하여 SDK Setting 화면으로 진입합니다.


SDK Tools 에서 LLDB, CMake을 클릭 후 Install 합니다.



프로젝트에 OpneCV SDK 설정하기


OpenCV 공식 사이트의 Releases 메뉴을 클릭하여 설치를 진행합니다.

https://opencv.org/releases/


다운 받은 OpenCV SDK을 프로젝트에 모듈 추가할 것입니다.

[File]→[New]→[Import Module...] 메뉴 선택 합니다.

Source Directory 항목에서 “<설치한위치>\OpenCV-android- sdk\sdk\java” 폴더 선택합니다.


추가한 모듈을 앱에 연결하는 작업을 진행할 것입니다.

앱 최상단 프로젝트 폴더을 오른쪽 클릭하여 Open Module Settings 을 클릭합니다.


Dependencies 항목을 눌러 + 버튼을 눌러 추가한 모듈을 추가합니다.









설정이 거의 끝나갑니다.

빌드를 시도하면 다음과 같은 Version 에러가 발생합니다.


추가한 모듈의 Gradle과 Manifest을 진입하여 설정된 버전을 확인합니다.

필자는 Minifest의 버전 설정한 것을 삭제하고, Gradle의 버전을 프로젝트 버전과 동일하게 맞췄습니다.






OpenCV Java API 사용하기

OpenCV Java API을 사용하려면 so 파일을 Android Project 에 옮기겠습니다.

New > Folder > JNI Folder을 클릭합니다.


파일 위치를 src/main/jniLibs 로 설정합니다.

만약 New Folder Location에 위치를 변경할 수 없을 시 Change Folder Location 체크박스를 체크합니다.


다운받은 OpenCV SDK 폴더로 진입합니다.

\OpenCV-android-sdk\sdk\native\libs 아래 모든 파일을 복사하여 \app\src\main\jniLibs\ 폴더에 붙여넣습니다.







마무리

OpenCV so 파일까지 옮겼으면 모든 설정이 끝났습니다.

NDK와 OpenCV 설정이 잘되었는지 확인하려면 MainActivity에서 initDebug() 함수을 호출합니다.

initDebug() 함수는 OpenCV가 정상적으로 설정되었을 시 True을 리턴하는 함수입니다.


소스코드

 // Used to load the 'native-lib' library on application startup.
    static {
        System.loadLibrary("native-lib");

        if (!OpenCVLoader.initDebug()){
            Log.d(TAG, "OpenCV is not loaded");
        }else{
            Log.d(TAG, "OpenCV is loaded successfully!");
        }
}

결과


다양한 OpenCV 기능을 체험할 준비는 완료되었습니다.

Vision 기술이 발전되고 수요도 늘고 있는 시점에 OpenCV 세팅은 필수로 다가오고 있습니다.

모두가 편리하게 세팅을 하기를 바랍니다.

반응형

'프로그래밍 > OpenCV' 카테고리의 다른 글

OpenCV 활용해보자  (2) 2019.08.05
댓글