API Reference

v1.9.11

C Inferface

CreateCURecognizer

구분

내용

설명

함수

void* CreateCURecognizer()

SDK의 인스턴스를 생성한다. 이후 모든 인터페이스를 호출할 때 포인터를 사용한다.

리턴 값

void*

생성 된 SDK 포인터

DisposeCURecognizer

구분

내용

설명

함수

void DisposeCURecognizer(void* pRecognizer)

CreateCURecognizer에서 생성한 SDK 포인터의 메모리를 해제한다.

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

Init

구분

내용

설명

함수

bool Init(void* pRecognizer, void* root_dir, void* config_filepath)

SDK를 초기화한다.

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

void* root_dir

SDK가 설치된 경로의 Root Path

파라미터

void* config_filepath

SDK 설정 값이 포함된 json파일

리턴 값

bool

초기화 성공 여부

GetSDKVersion

구분

내용

설명

함수

ResultCode GetSDKVersion(void* pRecognizer, char* const buf, int buf_len)

SDK의 버전을 조회한다.

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

char* const buf

문자열을 받을 버퍼

파라미터

int buf_len

버퍼의 길이

리턴 값

ResultCode

성공 여부를 결과 코드로 리턴

DetectFaceTopN

구분

내용

설명

함수

ResultCode DetectFaceTopN(void* pRecognizer, const char* bgrData, int w, int h, int type,

FaceExtractResult* csresult, int topN, int* outCnt)

상위 N개의 얼굴 검출하고 결과를 즉시 리턴 한다.

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

const char* bgrData

BGR 이미지 데이터

파라미터

int w

이미지 너비

파라미터

int h

이미지 높이

파라미터

int type

이미지 타입 CV_8UC3 16

파라미터

FaceExtractResult* csresult

리턴할 결과값 - 임베딩은 포함안됨

파라미터

int topN, int* outCnt

검출할 상위 n개

파라미터

int* outCnt

실제 몇 개가 검출 되었는지 개수

리턴 값

ResultCode

성공 여부를 결과 코드로 리턴

DetectFaceAtt

구분

내용

설명

함수

ResultCode DetectFaceAttr(void* pRecognizer, const char* bgrData, int w, int h, int type, float* attrScores, FaceAttribute attrib)

얼굴의 특징을 검출

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

const char* bgrData

BGR 이미지 데이터

파라미터

int w

이미지 너비

파라미터

int h

이미지 높이

파라미터

int type

이미지 타입 CV_8UC3 16

파라미터

float* attrScores

결과 점수

파라미터

FaceAttribute attrib

검출할 속성

리턴 값

ResultCode

성공여부를 결과코드로 리턴

AlignCropFace

구분

내용

설명

함수

ResultCode AlignCropFace(void* pRecognizer, float* landmarks, int landmarksCnt, const char* bgrData, int w, int h, int type, char* alignedFaceData)

랜드마크를 이용해서 112 크기의 Aligned 이미지를 만들어 낸다.

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

float* landmarks

랜드마크 배열 포인터로 10개의 float

파라미터

int landmarksCnt

랜드마크 개수로 10개

파라미터

const char* bgrData

BGR 이미지 데이터

파라미터

int w

이미지 너비

파라미터

int h

이미지 높이

파라미터

int type

이미지 타입 CV_8UC3 16

파라미터

char* alignedFaceData

정렬된 112x112의 cv::Mat 형태의 BGR 이미지

리턴 값

ResultCode

성공여부를 결과코드로 리턴

ExtractFace

구분

내용

설명

함수

ResultCode ExtractFace(void* pRecognizer, const char* bgrData, int w, int h, int type, char* embedding, int embedding_size, bool do_normalize = false)

특징점 추출

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

const char* bgrData

BGR 이미지 데이터

파라미터

int w

이미지 너비

파라미터

int h

이미지 높이

파라미터

int type

이미지 타입 CV_8UC3 16

파라미터

char* embedding

추출된 특징점을 저장할 버퍼

파라미터

int embedding_size

특징점을 저장할 버퍼의 크기, 반드시 2048바이트이어야 함

파라미터

bool do_normalize

특징점을 노말라이즈 함

리턴 값

ResultCode

성공여부를 결과코드로 리턴

DetectAndExtractTopN

구분

내용

설명

함수

ResultCode DetectAndExtractTopN(

void* pRecognizer,

const char* bgrData, int width, int height, int type,

FaceExtractResult* csresult, int topN, int* outCnt, bool do_normalize)

특징점 추출하는데, 내부적으로 Detection -> Align -> Extraction 모든 수행

검출된 얼굴 중 Top N개의 얼굴의 특징점을 뽑아낸다.

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

const char* bgrData

BGR 이미지 데이터

파라미터

int w

이미지 너비

파라미터

int h

이미지 높이

파라미터

int type

이미지 타입 CV_8UC3 16

파라미터

FaceExtractResult* csresult

검출한 얼굴의 결과 값으로 특징점이 포함

파라미터

int topN

검출할 얼굴의 최대 개수

파라미터

int* outCnt

검출된 얼굴 개수

파라미터

bool do_normalize

특징점을 노말라이즈 함

리턴 값

ResultCode

성공여부를 결과코드로 리턴

MatchFeature

구분

내용

설명

함수

float MatchFeature(void *pRecognizer, const char *srcFeature, int srcFeatureLen, const char *destFeature, int destFeatureLen)

특징점 매칭

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

const char *srcFeature

특징점1

파라미터

int srcFeatureLen

특징점1의 길이로 2048로 고정

파라미터

const char *destFeature

특징점2

파라미터

int destFeatureLen

특징점2의 길이로 2048로 고정

리턴 값

ResultCode

성공여부를 결과코드로 리턴

getDetectorInputWidth

구분

내용

설명

함수

int getDetectorInputWidth(void* pRecognizer)

FaceDetector의 입력 이미지 폭을 구함

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

int

입력 이미지의 폭

리턴 값

int buf_len

버퍼의 길이

getDetectorInputHeight

구분

내용

설명

함수

int getDetectorInputHeight(void* pRecognizer)

FaceDetector의 입력 이미지 높이를 구함

파라미터

void* pRecognizer

CreateCURecognizer에서 생성 한 객체 포인터

파라미터

int

입력 이미지의 높이

리턴 값

int buf_len

버퍼의 길이

FaceAttribute

구분

내용

설명

enum

FaceAttribute

얼굴의 특징

FA_BLUR

이미지가 Blurry 한지 여부로 0~1 사이의 확률 값

FA_FRONTAL

얼굴이 정면을 향하는지 여부로 0~1 사이의 확률 값

FA_SUNGLASS

선그라스를 착용 여부로 0~1 사이의 확률 값

FA_HAT

모자를 착용했는지 여부로 0~1 사이의 확률 값

ResultCode

구분

내용

설명

enum

ResultCode

SDK 함수의 결과값을 리턴

K_ERROR_INVALID

유효하지 않는 값 에러

K_SUCCESS

성공

K_ERROR_EMPTY_IMAGE

이미지가 없음

K_ERROR_FACE_NONE

얼굴을 찾을 수 없음

K_ERROR_LANDMARK_NONE

랜드마크가 없음

K_ERROR_LANDMARK_NOTMATCH

랜드마크의 개수가 불일치

K_ERROR_EMBEDDING_NONE

특징점을 추출할 수 없음

K_ERROR_EMBEDDING_BUFFER_NONE

특징점 저장할 버퍼의 에러

K_ERROR_PENDING_INIT

SDK 초기화 중

K_ERROR_UNKNOWN

알 수 없는 에러


C++ Interface

Init

구분

내용

설명

함수

bool Init(const std::string& root_dir, const std::string& config_filepath)

SDK를 초기화

파라미터

const std::string& root_dir

SDK가 설치된 경로의 Root Path

파라미터

const std::string& config_filepath

SDK 설정 값이 포함된 json파일

리턴 값

bool

초기화 성공 여부

GetVersion

구분

내용

설명

함수

std::string GetVersion()

SDK의 버전을 조회

리턴 값

std::string

버전

DetectFace

구분

내용

설명

함수

cu::FaceROIs DetectFace(const std::vectorcv::Mat& frames)

얼굴 검출

파라미터

std::vectorcv::Mat

bgr 이미지

리턴 값

FaceROIs

검출된 영역 정보

GetFaceCount

구분

내용

설명

함수

cu::Resultcu::FaceSDKError GetFaceCount(size_t &count)

마지막에 검출된 이미지에서 얼굴의 개수를 구한다.

파라미터

size_t &count

coutn 배열의 개수를 채움.

리턴 값

cu::Resultcu::FaceSDKError

FaceSDKError 정보를 리턴.

GetFaceAt

구분

내용

설명

함수

cu::Resultcu::FaceSDKError GetFaceAt(size_t index, cu::Face** outFace)

얼굴의 정보를 Index로 가져온다.

파라미터

size_t index

배열의 index

파라미터

cu::Face** outFace

결과 정보

리턴 값

cu::Resultcu::FaceSDKError

FaceSDKError 정보를 리턴.

DetectHat

구분

내용

설명

함수

float DetectHat(const cv::Mat& cropped_face)

모자 착용 여부를 스코어로 측정한다.

파라미터

cv::Mat& cropped_face

얼굴을 crop + align 한 이미지

리턴 값

float

0~1 사이의 스코어

DetectSunglasses

구분

내용

설명

함수

float DetectSunglasses(const cv::Mat& cropped_face)

Sunglasses 착용 여부를 스코어로 측정한다.

파라미터

const cv::Mat& cropped_face

cropped_face 얼굴을 crop + align 한 이미지

리턴 값

float

0~1 사이의 스코어

DetectBlur

구분

내용

설명

함수

float DetectBlur(const cv::Mat& cropped_face)

얼굴의 Blurry 정도를 측정한다.

파라미터

const cv::Mat& cropped_face

얼굴을 crop + align 한 이미지

리턴 값

float

0~1 사이의 스코어

DetectFrontal

구분

내용

설명

함수

float DetectFrontal(const cv::Mat& cropped_face)

얼굴이 정면을 향하는지에 대한 스코어를 측정한다.

파라미터

const cv::Mat& cropped_face

얼굴을 crop + align 한 이미지

리턴 값

float

0~1 사이의 스코어

DetectSmartPhone

구분

내용

설명

함수

cu::ObjectBBoxes DetectSmartPhone(const cv::Mat& frame)

스마트폰을 검출

파라미터

const cv::Mat& frame

BGR 이미

리턴 값

cu::ObjectBBoxes

Object 검출 정보

ResetPassiveLiveness

구분

내용

설명

함수

void ResetPassiveLiveness()

Passive Liveness를 초기화

DetectPassiveLiveness

구분

내용

설명

함수

IPassiveLiveness::State DetectPassiveLiveness(const cv::Mat& cropped_face)

PassiveLiveness 진행.

파라미터

const cv::Mat& cropped_face

얼굴을 200x200 크기로 자른 사진

리턴 값

IPassiveLiveness::State

SetPassiveLivenessThresholds

구분

내용

설명

함수

void SetPassiveLivenessThresholds(float threshold0, float threshold1, float threshold2, float threshold3)

Passive Liveness를 초기화

파라미터

float threshold0

파라미터

float threshold1

파라미터

float threshold3

AlignCropFace

구분

내용

설명

함수

void AlignCropFace(const cu::Landmark& landmark, const cv::Mat& face, cv::Mat& aligned_face)

랜드마크 5개의 점을 이용하여 눈코입의 위치를 정규화된 위치로 변환하고 112 크기로 자른다.

파라미터

const cu::Landmark& landmark

랜드마크 배열 포인터로 10개의 float

파라미터

const cv::Mat& face

BGR 이미지 데이터

파라미터

cv::Mat& aligned_face

정렬된 112x112의 cv::Mat 형태의 BGR 이미지

ExtractFace

구분

내용

설명

함수

cv::Mat ExtractFace(const cv::Mat &face, bool do_normalize = false)

특징점 추출

파라미터

const cv::Mat &face

BGR 이미지 데이터

파라미터

bool do_normalize = false

true일 경우 특징점을 노말라이즈 함

리턴 값

cv::Mat

특징점을 리턴, 512x1 행렬

MatchFeature

구분

내용

설명

함수

float MatchFeature(const char* galleryFeature, const size_t galleryFeatureLen, const char* targetFeature, const size_t targetFeatureLen)

두개 Feature의 유사도 비교

파라미터

const char* galleryFeature

특징점1

파라미터

const size_t galleryFeatureLen

특징점1의 길이로 2048로 고정

파라미터

const char* targetFeature

특징점2

파라미터

const size_t targetFeatureLen

특징점2의 길이로 2048로 고정

리턴 값

float

매칭 스코어 0~1. 1에 가까울 수록 동일 인물

DetectAndExtractTopN

구분

내용

설명

함수

int DetectAndExtractTopN(const cv::Mat& frame, FaceExtractResults& results, int topN = 1, bool do_normalize = false)

특징점 추출하는데, 내부적으로 Detection -> Align -> Extraction 모든 수행

검출된 얼굴 중 Top N개의 얼굴의 특징점을 뽑아낸다.

파라미터

const cv::Mat& frame

BGR 이미지

파라미터

FaceExtractResults& results

검출한 얼굴의 결과 값으로 특징점이 포함

파라미터

int topN = 1

검출할 얼굴의 최대 개수

파라미터

bool do_normalize = false

true일 경우 특징점을 노말라이즈 함

리턴 값

int

검출한 개수

getDetectorInputWidth

구분

내용

설명

함수

size_t getDetectorInputWidth() const

얼굴 검출 함수의 입력 이미지 폭

리턴 값

bool

얼굴 검출 함수의 입력 이미지 폭

getDetectorInputHeight

구분

내용

설명

함수

size_t getDetectorInputHeight() const

얼굴 검출 함수의 입력 이미지 높이

리턴 값

size_t

얼굴 검출 함수의 입력 이미지 높이

getExtractorInputWidth

구분

내용

설명

함수

size_t getExtractorInputWidth() const

추출 함수의 입력 이미지 폭

리턴 값

size_t

추출 함수의 입력 이미지 폭

getExtractorInputHeight

구분

내용

설명

함수

size_t getExtractorInputHeight() const

추출 함수의 입력 이미지 높이

리턴 값

size_t

추출 함수의 입력 이미지 높이