百度雲人臉識別API人臉對比

来源:https://www.cnblogs.com/erlchixiha/archive/2019/11/06/11805011.html
-Advertisement-
Play Games

利用百度雲人臉識別API人臉對比介面,將對比分數較高的圖片存入指定的文件夾 ...


 1 from urllib import request
 2 import base64
 3 import requests
 4 import re
 5 import json
 6 import urllib
 7 import os
 8 
 9 
10 # 獲取token
11 def get_token(client_id,client_secret):
12     host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+ client_id + '&client_secret='+ client_secret + ''
13     headers = {'Content-Type': 'application/json; charset=UTF-8'}
14     res = requests.post(host, headers=headers)
15     access_token = re.findall('"access_token":"(.*?)"', res.text)[0]
16     return access_token
17 
18 # 打開文件夾
19 def geturlPath(path):
20     dirs = os.listdir(path)
21     lst = []
22     for dir1 in dirs:
23         pa = path + dir1
24         lst.append(pa)
25     return lst
26 
27 # 打開本地圖片,並轉化為base64
28 def open_pic2base(image):
29     f = open(image,'rb')
30     img = base64.b64encode(f.read()).decode('utf-8')
31     return img
32 
33 # 對兩張圖片進行對比
34 def check2pic(client_id,client_secret,image1,image2):
35     request_url = "https://aip.baidubce.com/rest/2.0/face/v3/match"
36     for image in image2:
37         a = open_pic2base(image)
38         b = base64.b64decode(a)
39         params = json.dumps(
40             [{"image": open_pic2base(image1), "image_type": "BASE64","quality_control": "LOW"},
41              {"image": a, "image_type": "BASE64","quality_control": "LOW"}])
42 
43         # 調用介面
44         access_token = get_token(client_id, client_secret)
45         request_url = request_url + "?access_token=" + access_token
46         params = params.encode("utf-8")
47         request = urllib.request.Request(url=request_url, data=params)
48         request.add_header('Content-Type', 'application/json')
49 
50         response = urllib.request.urlopen(request)
51         content = response.read()
52         score = 0
53         if content:
54             result = json.loads(content.decode('utf-8'))
55             if result["error_code"] == 0:
56                 score = result["result"]["score"]
57                 if score > 75:
58                     with open('G:/images6/'+ image.split('/')[-1],'wb') as f:
59                         f.write(b)
60                         f.close()
61             else:
62                 errors = {}
63                 error_msg = result["error_msg"]
64                 errors[image.split('/')[-1]] = error_msg
65                 print(errors)
66 if __name__ == '__main__':
67     client_id = '***************'
68     client_secret = '*******************'
69     path = r'G:/images5/'
70 
71     image1 = 'G:\images2\gu1.jpg'
72     image2 = geturlPath(path)
73 
74     # 將兩張圖片進行對比,得出相似分
75     check2pic(client_id,client_secret,image1,image2)

 

   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文本處理工具awk awk:(Aho, Weinberger, Kernighan,)報告生成器,格式化文本輸出 有多種版本:New awk(nawk),GNU awk( gawk) @[toc] gawk:模式掃描和處理語言 awk語言 ⽣成需要的測試數據: [root@magedu ~] hea ...
  • Shell內置命令、外部命令、別名、函數、保留關鍵字的優先順序 在Shell中,有5種可調用的東西:別名(alias)、函數(function)、shell保留關鍵字、shell內置命令、外部命令。 如果它們同名了,那麼優先調用誰呢?可使用 查看。 內置命令、別名、函數、外部命令 $ alias ki ...
  • 回到目錄 BJT晶體管可以實現邏輯門,事實上,在場效應管被髮明用於集成電路以前,各種邏輯門晶元中的電路就是用BJT晶體管來實現的。最早人們使用二極體與BJT組合來實現邏輯門,這個稱為二極體-晶體管邏輯(Diode-Transistor Logic),簡稱DTL;後來改進為全部用BJT晶體管來實現邏輯 ...
  • 框架是用visual studio創建的win32控制台模板,然後自己添加最小化及還原部分代碼。 需要額外包含的頭文件: #include <shellapi.h> #include <WinUser.h> 方式是在托盤區創建圖標,隱藏主視窗。 托盤創建圖標: void ToTray(HWND hW ...
  • 今天在安裝Python模塊matplotlib的時候,一直安裝不成功,老是提示“socket.timeout: The read operation timed out”或者“Read timed out.” 因為國內的網路訪問國外延遲很高,所以安裝模塊很慢就不說了,還一定安裝不上。 1 [root ...
  • Linux系統內核參數優化 在工作中,平常我們使用官方鏡像安裝的Linux系統(非自定製化的)系統內核考慮的是最通用的場景,通常設定都偏向穩定保守,比較典型的代表如紅帽系列的RHEL、CentOS等。而在正式的生成環境使用中,伺服器的CPU、記憶體等硬體配置都比較高,而安裝系統時預設的系統內核參數設定 ...
  • 安裝ntp服務的軟體包 sudo yum install ntp 將ntp服務設置為預設啟動 systemctl enable ntpd 修改啟動參數,增加-g -x參數,允許ntp服務在系統時間誤差較大時也能正常工作 sudo vi /etc/sysconfig/ntpd 啟動ntp服務 sudo ...
  • 介面協議: 請商戶對接使用對應的轉賬介面API和免轉介面API,商戶只能使用菜單對應的API,否則介面會調用失敗。左側菜單未註明的介面免轉錢包和轉賬錢包可以共同使用 所有採集均按照北京時間獲取記錄 所有游戲都支持在登錄和額度轉換時若用戶未創建會自動創建用戶 所有額度轉換介面都會返迴轉換後的餘額 所有... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...