FaceServer/PbFaceList | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
FaceServer/PbFaceList.pb.cc | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
FaceServer/PbFaceList.pb.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
FaceServer/sample_face_search.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
FaceServer/PbFaceList
@@ -13,9 +13,33 @@ { enum ImageType { MBFT_YUV = 8; MBFT_Y8 = 9; MBFT_RGB = 11; MBFT_SDP = 1; MBFT_FMTP = 2; MBFT_INDEX = 3; MBFT_PTR_AVFRAME = 4; MBFT_H264_NALU = 5; MBFT_H264_NALU_AUX = 6; MBFT_JPEG = 7; MBFT_YUV = 8; MBFT_Y8 = 9; MBFT_YUV420 = 10; MBFT_NV12 = 11; MBFT_RGB = 12; MBFT_RGB888 = 13; MBFT_RGB565 = 14; MBFT_RGBA = 15; MBFT_BGRA = 16; MBFT_BGRA8888 = 17; MBFT_ABGR8888 = 18; MBFT_ARGB8888 = 19; } required uint32 idx = 1; FaceServer/PbFaceList.pb.cc
@@ -123,19 +123,26 @@ void AddDescriptorsImpl() { InitDefaults(); static const char descriptor[] = { "\n\nPbFaceList\"\377\002\n\nPbFaceList\022\027\n\005magic\030\001 \002" "\n\nPbFaceList\"\227\005\n\nPbFaceList\022\027\n\005magic\030\001 \002" "(\r:\01011706629\022\023\n\013image_count\030\002 \002(\r\022\021\n\tsrc" "_width\030\003 \001(\r\022\022\n\nsrc_height\030\004 \001(\r\022)\n\006imag" "es\030\005 \003(\0132\031.PbFaceList.FaceListImage\032\360\001\n\r" "es\030\005 \003(\0132\031.PbFaceList.FaceListImage\032\210\004\n\r" "FaceListImage\022\013\n\003idx\030\001 \002(\r\022\014\n\004size\030\002 \002(\r" "\022:\n\004type\030\003 \002(\0162#.PbFaceList.FaceListImag" "e.ImageType:\007MBFT_Y8\022\r\n\005width\030\004 \002(\r\022\016\n\006h" "eight\030\005 \002(\r\022\022\n\ntop_left_x\030\006 \001(\r\022\022\n\ntop_l" "eft_y\030\007 \001(\r\022\013\n\003img\030\010 \003(\014\"4\n\tImageType\022\014\n" "\010MBFT_YUV\020\010\022\013\n\007MBFT_Y8\020\t\022\014\n\010MBFT_RGB\020\013" "eft_y\030\007 \001(\r\022\013\n\003img\030\010 \003(\014\"\313\002\n\tImageType\022\014" "\n\010MBFT_SDP\020\001\022\r\n\tMBFT_FMTP\020\002\022\016\n\nMBFT_INDE" "X\020\003\022\024\n\020MBFT_PTR_AVFRAME\020\004\022\022\n\016MBFT_H264_N" "ALU\020\005\022\026\n\022MBFT_H264_NALU_AUX\020\006\022\r\n\tMBFT_JP" "EG\020\007\022\014\n\010MBFT_YUV\020\010\022\013\n\007MBFT_Y8\020\t\022\017\n\013MBFT_" "YUV420\020\n\022\r\n\tMBFT_NV12\020\013\022\014\n\010MBFT_RGB\020\014\022\017\n" "\013MBFT_RGB888\020\r\022\017\n\013MBFT_RGB565\020\016\022\r\n\tMBFT_" "RGBA\020\017\022\r\n\tMBFT_BGRA\020\020\022\021\n\rMBFT_BGRA8888\020\021" "\022\021\n\rMBFT_ABGR8888\020\022\022\021\n\rMBFT_ARGB8888\020\023" }; ::google::protobuf::DescriptorPool::InternalAddGeneratedFile( descriptor, 398); descriptor, 678); ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile( "PbFaceList", &protobuf_RegisterTypes); ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown); @@ -160,9 +167,25 @@ } bool PbFaceList_FaceListImage_ImageType_IsValid(int value) { switch (value) { case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: return true; default: return false; @@ -170,9 +193,25 @@ } #if !defined(_MSC_VER) || _MSC_VER >= 1900 const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_SDP; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_FMTP; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_INDEX; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_PTR_AVFRAME; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_H264_NALU; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_H264_NALU_AUX; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_JPEG; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_YUV; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_Y8; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_YUV420; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_NV12; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_RGB; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_RGB888; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_RGB565; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_RGBA; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_BGRA; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_BGRA8888; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_ABGR8888; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::MBFT_ARGB8888; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::ImageType_MIN; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage::ImageType_MAX; const int PbFaceList_FaceListImage::ImageType_ARRAYSIZE; FaceServer/PbFaceList.pb.h
@@ -49,13 +49,29 @@ } // namespace protobuf_PbFaceList enum PbFaceList_FaceListImage_ImageType { PbFaceList_FaceListImage_ImageType_MBFT_SDP = 1, PbFaceList_FaceListImage_ImageType_MBFT_FMTP = 2, PbFaceList_FaceListImage_ImageType_MBFT_INDEX = 3, PbFaceList_FaceListImage_ImageType_MBFT_PTR_AVFRAME = 4, PbFaceList_FaceListImage_ImageType_MBFT_H264_NALU = 5, PbFaceList_FaceListImage_ImageType_MBFT_H264_NALU_AUX = 6, PbFaceList_FaceListImage_ImageType_MBFT_JPEG = 7, PbFaceList_FaceListImage_ImageType_MBFT_YUV = 8, PbFaceList_FaceListImage_ImageType_MBFT_Y8 = 9, PbFaceList_FaceListImage_ImageType_MBFT_RGB = 11 PbFaceList_FaceListImage_ImageType_MBFT_YUV420 = 10, PbFaceList_FaceListImage_ImageType_MBFT_NV12 = 11, PbFaceList_FaceListImage_ImageType_MBFT_RGB = 12, PbFaceList_FaceListImage_ImageType_MBFT_RGB888 = 13, PbFaceList_FaceListImage_ImageType_MBFT_RGB565 = 14, PbFaceList_FaceListImage_ImageType_MBFT_RGBA = 15, PbFaceList_FaceListImage_ImageType_MBFT_BGRA = 16, PbFaceList_FaceListImage_ImageType_MBFT_BGRA8888 = 17, PbFaceList_FaceListImage_ImageType_MBFT_ABGR8888 = 18, PbFaceList_FaceListImage_ImageType_MBFT_ARGB8888 = 19 }; bool PbFaceList_FaceListImage_ImageType_IsValid(int value); const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage_ImageType_ImageType_MIN = PbFaceList_FaceListImage_ImageType_MBFT_YUV; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage_ImageType_ImageType_MAX = PbFaceList_FaceListImage_ImageType_MBFT_RGB; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage_ImageType_ImageType_MIN = PbFaceList_FaceListImage_ImageType_MBFT_SDP; const PbFaceList_FaceListImage_ImageType PbFaceList_FaceListImage_ImageType_ImageType_MAX = PbFaceList_FaceListImage_ImageType_MBFT_ARGB8888; const int PbFaceList_FaceListImage_ImageType_ImageType_ARRAYSIZE = PbFaceList_FaceListImage_ImageType_ImageType_MAX + 1; const ::google::protobuf::EnumDescriptor* PbFaceList_FaceListImage_ImageType_descriptor(); @@ -144,12 +160,44 @@ // nested types ---------------------------------------------------- typedef PbFaceList_FaceListImage_ImageType ImageType; static const ImageType MBFT_SDP = PbFaceList_FaceListImage_ImageType_MBFT_SDP; static const ImageType MBFT_FMTP = PbFaceList_FaceListImage_ImageType_MBFT_FMTP; static const ImageType MBFT_INDEX = PbFaceList_FaceListImage_ImageType_MBFT_INDEX; static const ImageType MBFT_PTR_AVFRAME = PbFaceList_FaceListImage_ImageType_MBFT_PTR_AVFRAME; static const ImageType MBFT_H264_NALU = PbFaceList_FaceListImage_ImageType_MBFT_H264_NALU; static const ImageType MBFT_H264_NALU_AUX = PbFaceList_FaceListImage_ImageType_MBFT_H264_NALU_AUX; static const ImageType MBFT_JPEG = PbFaceList_FaceListImage_ImageType_MBFT_JPEG; static const ImageType MBFT_YUV = PbFaceList_FaceListImage_ImageType_MBFT_YUV; static const ImageType MBFT_Y8 = PbFaceList_FaceListImage_ImageType_MBFT_Y8; static const ImageType MBFT_YUV420 = PbFaceList_FaceListImage_ImageType_MBFT_YUV420; static const ImageType MBFT_NV12 = PbFaceList_FaceListImage_ImageType_MBFT_NV12; static const ImageType MBFT_RGB = PbFaceList_FaceListImage_ImageType_MBFT_RGB; static const ImageType MBFT_RGB888 = PbFaceList_FaceListImage_ImageType_MBFT_RGB888; static const ImageType MBFT_RGB565 = PbFaceList_FaceListImage_ImageType_MBFT_RGB565; static const ImageType MBFT_RGBA = PbFaceList_FaceListImage_ImageType_MBFT_RGBA; static const ImageType MBFT_BGRA = PbFaceList_FaceListImage_ImageType_MBFT_BGRA; static const ImageType MBFT_BGRA8888 = PbFaceList_FaceListImage_ImageType_MBFT_BGRA8888; static const ImageType MBFT_ABGR8888 = PbFaceList_FaceListImage_ImageType_MBFT_ABGR8888; static const ImageType MBFT_ARGB8888 = PbFaceList_FaceListImage_ImageType_MBFT_ARGB8888; static inline bool ImageType_IsValid(int value) { return PbFaceList_FaceListImage_ImageType_IsValid(value); } FaceServer/sample_face_search.cpp
@@ -56,7 +56,6 @@ cv_feature_t *stface_extract_feature(stface_handles& handles, const STFaceImage& image) { cv_pixel_format stimgfmt = CV_PIX_FMT_GRAY8; int matType = 0; if (image.width > MAX_FACE_IMAGE_WIDTH || image.height > MAX_FACE_IMAGE_HEIGHT) { @@ -73,7 +72,13 @@ imgbufSize = image.height * image.width; stimgfmt = CV_PIX_FMT_GRAY8; matType = CV_8UC1; } else if (image.mb_type == MB_Frame::MBFT_NV12) { memcpy(imgbuf, image.buff, image.size);//#todo avoid mem cpy imgbufSize = image.height * image.width * 1.5; stimgfmt = CV_PIX_FMT_NV12; } else if (image.mb_type == MB_Frame::MBFT_RGB565) { @@ -90,11 +95,10 @@ image.width, image.height ); imgbufSize = image.height * image.width; stimgfmt = CV_PIX_FMT_GRAY8; matType = CV_8UC1; imgbufSize = image.height * image.width * 1.5; stimgfmt = CV_PIX_FMT_YUV420P; } else if (image.mb_type == MB_Frame::MBFT_ABGR8888) else if (image.mb_type == MB_Frame::MBFT_RGB888) { //int ret = libyuv::ARGBToBGRA( // image.buff, image.width * 4, @@ -106,7 +110,6 @@ // //imgbufSize = image.height * image.width * 4; //stimgfmt = CV_PIX_FMT_BGRA8888; //matType = CV_8UC4; int ret = libyuv::ABGRToI400( image.buff, image.width * 4, @@ -118,7 +121,6 @@ imgbufSize = image.height * image.width; stimgfmt = CV_PIX_FMT_GRAY8; matType = CV_8UC1; //{ // static int f = 0; @@ -152,21 +154,15 @@ // fwrite(imgbuf, 1, imgbufSize, pFile); // fclose(pFile); //} Mat matImg(cv::Size(image.width, image.height), matType, imgbuf); if (!matImg.data) { return nullptr; } cv_feature_t *p_feature = nullptr; cv_face_t *p_face = nullptr; int face_count = 0; cv_result_t result = CV_OK; result = cv_face_detect(handles.handle_detect, matImg.data, stimgfmt, matImg.cols, matImg.rows, matImg.step, CV_FACE_UP, &p_face, &face_count); result = cv_face_detect(handles.handle_detect, (unsigned char *)imgbuf, stimgfmt, image.width, image.height, image.width, CV_FACE_UP, &p_face, &face_count); if (face_count >= 1) { result = cv_verify_get_feature(handles.handle_verify, (unsigned char *)matImg.data, stimgfmt, matImg.cols, matImg.rows, matImg.step, p_face, &p_feature, nullptr); result = cv_verify_get_feature(handles.handle_verify, (unsigned char *)imgbuf, stimgfmt, image.width, image.height, image.width, p_face, &p_feature, nullptr); if (result != CV_OK) { LOGP(DEBUG, "cv_verify_get_feature failed, error code %d", result);