From 9304cfd245218c3836da3d9848342bd872c44e5d Mon Sep 17 00:00:00 2001 From: aixiao Date: Fri, 5 Nov 2021 17:53:46 +0800 Subject: [PATCH] Format C language code --- BaiduAIFaceComparison | Bin 0 -> 60232 bytes BaiduAIFaceComparison.c | 189 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 BaiduAIFaceComparison create mode 100644 BaiduAIFaceComparison.c diff --git a/BaiduAIFaceComparison b/BaiduAIFaceComparison new file mode 100644 index 0000000000000000000000000000000000000000..d0143065cd5aa057bd511747a8b0949f838ef7f9 GIT binary patch literal 60232 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 +#include +#include +#include +#include "cJSON.h" +#include +#include +#include +#include + +size_t access_token_callback(void *ptr, size_t size, size_t nmemb, void *stream) +{ + char *buf = (char *)malloc(size * nmemb + 8); + memset(buf, '\0', size * nmemb + 8); + strncpy(buf, ptr, size * nmemb); + cJSON *json = cJSON_Parse(buf); + char *access_token_result = (char *)stream; + strncpy(access_token_result, cJSON_GetObjectItem(json, "access_token")->valuestring, 128); + //printf("stream:%s\n",(char *)stream); + cJSON_Delete(json); + free(buf); + + return size * nmemb; +} + +int post_access_token(char *access_token) +{ + CURL *curl; + CURLcode result_code; + int error_code = 0; + char url[256] = { 0 }; + char access_token_url[] = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials"; + char AK[] = "vEcmEHNhIBfmA5qGs5TtcA8R"; + char SK[] = "G4fk4L8p9QQGMqui4MkMWZ0fGkwWQoKE"; + char access_token_result[128] = { 0 }; + + curl = curl_easy_init(); + if (curl) { + //std::string url = access_token_url + "&client_id=" + AK + "&client_secret=" + SK; + sprintf(url, "%s&client_id=%s&client_secret=%s", access_token_url, AK, SK); + //printf("url: %s\n",url ); + curl_easy_setopt(curl, CURLOPT_URL, url); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, access_token_result); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, access_token_callback); + result_code = curl_easy_perform(curl); + if (result_code != CURLE_OK) { + fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(result_code)); + return 1; + } + //printf("access_token_result:%s\n",access_token_result); + strcpy(access_token, access_token_result); + curl_easy_cleanup(curl); + error_code = 0; + } else { + fprintf(stderr, "curl_easy_init() failed."); + error_code = 1; + } + + return error_code; +} + +size_t faceMatch_callback(void *ptr, size_t size, size_t nmemb, void *stream) +{ + // 获取到的body存放在ptr中,先将其转换为string格式 + char *buf = (char *)malloc(size * nmemb + 8); + memset(buf, '\0', size * nmemb + 8); + strncpy(buf, ptr, size * nmemb); + + cJSON *json = cJSON_Parse(buf); + printf("data:%s\n", cJSON_Print(json)); + if (strstr(cJSON_Print(json), "SUCCESS") == NULL) { + *((double *)stream) = 0; + } else { + cJSON *result = cJSON_GetObjectItem(json, "result"); + //printf("data:%s\n",cJSON_Print(result)); + double *faceMatch_result = (double *)stream; + *faceMatch_result = cJSON_GetObjectItem(result, "score")->valuedouble; + //printf("stream:%f\n",*faceMatch_result); + } + cJSON_Delete(json); + free(buf); + + return size * nmemb; +} + +int post_faceMatch(double *faceMatch, char *access_token, char *file1, char *file2) +{ + char url[256] = { 0 }; + char request_url[] = "https://aip.baidubce.com/rest/2.0/face/v3/match"; + sprintf(url, "%s?access_token=%s", request_url, access_token); + + char *getbase64(char *photoname); + char image[] = "\"image\": "; + char image_type[] = "\"image_type\": \"BASE64\""; + char *image1_base64 = getbase64(file1); + char *image2_base64 = getbase64(file2); + char *params = (char *)malloc(strlen(image1_base64) + strlen(image2_base64) + 2 * strlen(image) + 2 * strlen(image_type) + 128); + sprintf(params, "[{%s\"%s\", %s}, {%s\"%s\", %s}]", image, image1_base64, image_type, image, image2_base64, image_type); + cJSON *json = cJSON_Parse(params); + //printf("%s\n", cJSON_Print(json)); + //printf("param : %s\n", params); + CURL *curl = NULL; + CURLcode result_code; + int is_success; + curl = curl_easy_init(); + double faceMatch_result; + if (curl) { + curl_easy_setopt(curl, CURLOPT_URL, url); + curl_easy_setopt(curl, CURLOPT_POST, 1); + struct curl_slist *headers = NULL; + headers = curl_slist_append(headers, "Content-Type:application/json;charset=UTF-8"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + //curl_easy_setopt(curl, CURLOPT_POSTFIELDS, params); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, cJSON_Print(json)); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &faceMatch_result); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, faceMatch_callback); + result_code = curl_easy_perform(curl); + + free(image1_base64); + free(image2_base64); + free(params); + cJSON_Delete(json); + + if (result_code != CURLE_OK) { + fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(result_code)); + is_success = 1; + return is_success; + } + *faceMatch = faceMatch_result; + curl_easy_cleanup(curl); + is_success = 0; + } else { + fprintf(stderr, "curl_easy_init() failed."); + is_success = 1; + } + + return is_success; +} + +char *getbase64(char *photoname) +{ + char order[128] = { 0 }; + char file[32] = { 0 }; + char *base64 = NULL; + + sprintf(order, "base64 %s > %s_base64", photoname, photoname); + system(order); + sprintf(file, "%s_base64", photoname); + int fd = open(file, O_RDWR); + int len = lseek(fd, 0, SEEK_END); + lseek(fd, 0, SEEK_SET); + base64 = (char *)malloc(len + 1); + read(fd, base64, len); + base64[len] = '\0'; + + //printf("%d\n",strlen(base64)); + return base64; +} + +int main(int argc, char *argv[], char **envp) +{ + if (argc == 3 && argv[1] != NULL && argv[2] != NULL) { + ; + } else { + printf("%s image_file image_file\n", argv[0]); + exit(1); + } + + char access_token[128]; + double faceMatch = 0; // 面部匹配 + + post_access_token(access_token); + //printf("access_token: %s\n", access_token); + + post_faceMatch(&faceMatch, access_token, argv[1], argv[2]); + //printf("faceMatch : %f \n",faceMatch); + + if (faceMatch > 90) { + printf("相似\n"); + return 1; + } else { + printf("不相似\n"); + return 0; + } + + return 0; +}