色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于華為云人臉識別服務(FRS)開發體驗

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2025-01-09 11:32 ? 次閱讀

手把手的技術干貨教程,記錄從0到1的開發過程。

一、前言

1.1 內容簡介

這篇文章的內容主要介紹:華為云人臉識別服務(FRS)接口的使用過程。 利用華為云提供的人臉識別服務(FRS),完成:人臉檢測人臉庫創建向人臉庫添加人臉在人臉庫里搜索匹配的人臉完成人臉對比 等幾個主要的功能。 只要完成了這幾個功能,就可以開發成品軟件,完成很多需要人臉服務的 場景,行業的項目落地。 比如:人臉識別考勤人臉識別簽到人臉門禁開鎖 等等場景。

人臉識別服務基于人的臉部特征信息,利用計算機對人臉圖像進行處理、分析和理解,用戶通過實時訪問和調用API獲取人臉處理結果,幫助用戶自動進行人臉的識別、比對以及相似度查詢等。 人臉識別服務提供了開放API接口,提供人臉識別能力,用戶可以直接調用API接口訪問華為云人臉識別服務,完成人臉識別后返回的結果為JSON格式,用戶通過API接口與人臉識別服務交互,就可以完成項目開發。

當前開發案例時,編譯語言采用Python(畢竟環境安裝簡單,符合大部分人的需求),開發環境使用華為云新推出的開發者空間的云主機,也就是在開發者空間的云主機里完成上面所說的項目開發體驗。

這里使用的華為云開發者空間云主機,是華為云為全球開發者打造的一個云端開發環境,簡化開發流程、提高開發效率,并促進技術創新。這個平臺提供了一個無需成本即可探索和使用華為云服務的機會,每位注冊的開發者在年度內都能享有數百小時的云主機使用權。云主機預裝了CodeArts IDE(華為云的集成開發環境)、代碼倉庫以及JDK、Python等關鍵運行時插件,從而避免了本地環境配置的復雜性,讓開發者能夠快速上手并立即開始工作。

除了云主機外,華為云還提供了5GB的云存儲容量及定制化的場景模擬沙箱,這些資源幫助開發者在安全隔離的環境中進行實驗和測試。華為云開發者空間提供了豐富的技術培訓課程和專業認證資料,助力開發者提升技能,并通過認證來證明自己的能力。該空間特別注重于應用全周期管理,涵蓋從應用構建到運維的全過程,確保開發者可以高效地完成云端應用搭建。

華為云開發者空間云主機圍繞CodeArts IDE打造了一個全面的開發工具生態系統,整合了鯤鵬、昇騰、鴻蒙等核心生態的開發資源,提供廣泛的開源軟件庫和實用開發插件,支持從代碼托管到應用運維的各個階段。這不僅提升了開發效率,也方便了開發者與華為先進技術和全球開發者社區互動,共同推動技術進步和應用創新。

華為云開發者空間云主機的操作系統版本為Ubuntu 22.04.4 LTS,并且內置了一些常用的應用程序如Gitcode等,為開發者提供了一個穩定而高效的開發環境。

下面是運行效果:

image-20241128232249335

image-20241128233000894

image-20241128232640997

1.2 開發環境

在使用華為云人臉識別服務(FRS)進行開發時,開發環境是華為云新推出的開發者空間云主機。這個開發環境為開發者提供了便捷且功能豐富的云端工作空間,特別適合進行各種云原生應用的開發和測試。
當前項目使用的相關軟件工具已經上傳到網盤:[https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink]

(1)開發者空間云主機

云主機中預裝了華為云CodeArts IDE 開發工具,這是一款集成了多種開發插件的一站式開發環境,支持代碼編寫、調試、版本控制等功能。

(2)開發環境的具體配置

  • 操作系統 :云主機的操作系統版本為Ubuntu 22.04.4 LTS,這是一個廣泛使用的Linux發行版,擁有良好的社區支持和豐富的軟件包。
  • 存儲容量 :每位注冊的開發者都能獲得5GB的云存儲空間,用于存放項目文件和個人數據。
  • 開發語言 :選擇了Python為例。

(3)開發流程

  1. 初始化設置 :登錄華為云賬號后進入開發者空間,領取并配置云主機,包括選擇默認配置以及等待初始化過程完成。
  2. 環境準備 :在云主機上安裝必要的開發工具和依賴庫,比如Python及其相關庫requests等,以便調用華為云API。
  3. 獲取API憑證 :在華為云平臺上創建并獲取Access Key ID和Secret Access Key,用于身份驗證。
  4. 開發與測試 :利用Python腳本調用人臉識別服務的各種API接口,實現人臉檢測、人臉庫管理及人臉比對等功能,并進行充分的測試以保證功能正確性。
  5. 部署與優化 :根據實際應用場景將開發完成的人臉識別解決方案部署到生產環境中,并持續優化性能和用戶體驗。

1.3 功能說明

華為云人臉識別服務(FRS)提供了一系列功能,通過這些功能可以實現多種應用場景中的人臉識別需求。

當前使用華為云FRS接口完成的主要功能:

(1) 人臉檢測 :這一功能用于從圖像或視頻流中識別人臉的位置和大小。它能夠返回人臉的邊界框、關鍵點以及姿態信息等,是進行后續處理的基礎步驟。

(2) 人臉庫創建 :在實際應用中,通常需要將特定的人臉數據存儲起來以便后續查詢對比。此功能允許用戶創建一個或多個人臉庫,每個人臉庫可以包含多個不同的人臉記錄。

(3) 向人臉庫添加人臉 :當創建了人臉庫后,可以通過上傳圖片的方式將人臉添加到已有的人臉庫中。每張圖片代表一個人臉樣本,并且可以與該人臉相關的額外信息一同保存,如姓名、ID號等。

(4) 人臉比對/搜索 :這項功能支持在指定的人臉庫中查找與給定人臉相似度最高的匹配項。通過比較兩張人臉圖片或者直接使用人臉特征值來進行比對,從而判斷是否為同一人。這一步驟對于實現諸如考勤系統、訪問控制等場景非常關鍵。

基于上述功能,開發者可以開發出多種實用的應用程序,例如:

  • 人臉識別考勤 :自動記錄員工的上下班時間。
  • 人臉識別簽到 :會議、活動中的快速簽到解決方案。
  • 人臉門禁開鎖 :通過識別訪客身份來控制物理訪問權限。

1.4 實現過程

  • 環境準備 :在華為云開發者空間的云主機上設置好Python開發環境,包括安裝必要的庫如requests等,以便調用華為云提供的API接口。
  • 獲取API憑證 :在開始調用API之前,需要在華為云平臺上注冊并獲取相應的認證密鑰(Access Key ID 和 Secret Access Key),這些信息會在每次請求時用來驗證身份。
  • 調用人臉檢測API :使用Python腳本發送HTTP POST請求至華為云FRS的人臉檢測端點,傳入待分析的圖片文件,接收JSON格式的結果。
  • 創建人臉庫 :同樣地,通過發送合適的HTTP請求來創建新的人臉庫,并獲取其唯一標識符。
  • 添加人臉至庫 :將欲存儲的人臉圖片上傳至剛剛創建好的人臉庫中,同時關聯相關信息。
  • 執行人臉比對 :最后,利用人臉比對API,將現場捕捉到的人臉與數據庫內已有的記錄進行對比,根據返回的相似度分數做出決策。

二、華為云開發者空間

2.1 進入開發者空間

鏈接地址:[https://developer.huaweicloud.com/space/devportal/desktop]

登錄華為云賬號,進去之后看到的頁面如下:

image-20241128112456710

2.2 配置云主機

在左上角可以看到云主機的配置提醒,目前默認是基礎版。

image-20241128112719601

點擊配置云主機,會彈出對話框,讓你選擇云主機的配置,進行安裝系統。我這里選擇ubuntu 22.04.

image-20241128112849373

2.3 安裝系統

點擊安裝后,會進行安裝系統。需要等等一段時間。

image-20241128112946066

image-20241128113018917

2.4 啟動云主機

安裝完畢之后,直接可以在瀏覽器里啟動云主機。

image-20241128115019990

啟動需要一段時間初始環境。

image-20241128115003882

進去之后會有引導界面,提示云主機的使用技巧。

image-20241128115120299

進入桌面后的默認效果如下。

image-20241128132247230

2.5 全屏切換

在桌面頁面上有個按鈕可以全屏切換,切換全屏后,可視化空間更大,開發更加方便。

image-20241128132652870

2.6 共享桌面

云主機還有共享桌面功能,如果需要遠程演示項目,共享開發過程,對方還可以遠程操作,這個功能非常的方便。 直接雙擊666

image-20241128132902031

2.5 測試Python開發環境

點擊左下角的所有應用程序,可以看到開發菜單里,有安裝好的Python環境,可以直接使用。

image-20241128133211189

啟動之后的效果如下。

image-20241128133407115

進去之后,點擊左上角,新建一個文件。

image-20241128133738010

然后保存文件,名字叫:test.py

image-20241128134016923

image-20241128134054067

然后編寫一段簡單的python代碼,測試當前的開發環境是否正常。

image-20241128134212194

代碼如下:

import socket

def get_local_ip():
    """
    獲取本地 IP 地址
    """
    try:
        # 創建一個 socket 對象,并連接到一個公共地址
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(("8.8.8.8", 80))
        local_ip = s.getsockname()[0]
        s.close()
        return local_ip
    except Exception as e:
        return f"無法獲取本地 IP 地址: {e}"

if __name__ == '__main__':
    print("本地 IP 地址是:", get_local_ip())

點擊左上角運行。

image-20241128134259768

結果如下:

image-20241128134333622

2.6 安裝requests庫

接下來需要使用Python代碼的requests庫,發起HTTP請求。先提前安裝環境。

image-20241128144050189

2.7 安裝Pillow庫

PillowPIL(Python Imaging Library)的一個分支,提供了圖片處理功能。

pip3 install Pillow

image-20241128230449973

到此,云主機的開發環境已經測試OK。

三、人臉識別服務使用

3.1 開通人臉識別服務

鏈接地址: https://console.huaweicloud.com/frs/?region=cn-north-4&locale=zh-cn#/frs/manage/index

image-20241128135750778

開通之后的效果。

image-20241128135835684

3.2 接口文檔

在控制臺頁面中,可以看到每個功能都有一個接口文檔按鈕,點擊可以一鍵翻到對應的幫助文檔頁面。快速了解此功能的使用辦法。

image-20241128140149977

這里以人臉檢測V2 接口文檔介紹為例。 點擊進去訪問的頁面如下。

image-20241128140510729

向下翻,可以看到此接口如何調用,需要傳入什么參數

在下面可以看到一個請求參數的說明。第一個參數是:X-Auth-Token,這個很重要,調用華為云的API接口都需要填這個參數。 關于如何獲取這個X-Auth-Token參數。 下面章節里會詳細介紹。

image-20241128140601326

3.3 項目憑證

接下來調用人臉服務的API接口,都需要token進行鑒權,需要使用項目憑證 這個參數。

【1】獲取項目憑證 點擊左上角用戶名,選擇下拉菜單里的我的憑證。 記住這個項目ID,后面會用到。

image-20241128141601764

3.4 創建IAM賬戶

創建一個IAM賬戶,因為接下來使用人臉服務的API接口,這些接口都需要token進行鑒權。簡單來說,就是身份的認證。 調用接口獲取Token時,就需要填寫IAM賬號信息。所以,接下來演示一下過程。

地址: https://console.huaweicloud.com/iam/?region=cn-north-4#/iam/users

鼠標放在左上角頭像上,在下拉菜單里選擇統一身份認證

image-20241111111454853

點擊右上角創建用戶

填寫用戶名和密碼信息:

image-20241028150247054

繼續點擊下一步:

image-20241028150339739

然后點擊創建用戶

image-20241028150407852

創建成功:

image-20241028150432765

創建完成

image-20241111111554099

用戶信息如下:

主用戶名  xiao_ping_ping
IAM用戶  ds_abc
密碼     DS12345678

然后回到人臉服務去的控制臺頁面 要點擊開通管理,給新創建的IAM用戶賦予權限。 一定要開,不然后面訪問API是沒有權限的。

image-20241128155631892

就像這樣,點擊開通服務 即可。

image-20241128160044905

3.5 獲取token鑒權

【1】Token介紹

為了方便接下來調用華為云的API接口,這里先完成token參數的獲取。

幫助文檔:https://support.huaweicloud.com/api-iam/iam_30_0001.html

image-20241128142121839

獲取的Token有效性說明:

Token的有效期為 24小時 。建議進行緩存,避免頻繁調用。使用Token前請確保Token離過期有足夠的時間,防止調用API的過程中Token過期導致調用API失敗。重新獲取Token,不影響已有Token有效性。

image-20241128142220806

【2】接口使用說明

在文檔頁面,向下翻,可以看到對于此接口的詳細說明。還支持使用在線調試。

image-20241128142459385

【3】編寫代碼獲取token

import requests
import json

# 主賬號用戶名
MAIN_USER = "[填你自己的]"

# IAM 子賬戶用戶名
IAM_USER = "[填你自己的]"

# IAM 子賬戶密碼
IAM_PASSWORD = "[填你自己的]"

# 項目 ID
PROJECT_ID = "[填你自己的]"

# 服務器區域代號
SERVER_ID = "cn-north-4"

# 保存 TOKEN 的文件路徑
TOKEN_FILE_PATH = "token.txt"

def get_token():
    """
    功能: 獲取 TOKEN 并保存到本地文件
    """
    # 請求地址
    request_url = f"https://iam.{SERVER_ID}.myhuaweicloud.com/v3/auth/tokens"

    # 構造請求頭
    headers = {
        "Content-Type": "application/json;charset=UTF-8"
    }

    # 構造請求體
    payload = {
        "auth": {
            "identity": {
                "methods": ["password"],
                "password": {
                    "user": {
                        "domain": {
                            "name": MAIN_USER
                        },
                        "name": IAM_USER,
                        "password": IAM_PASSWORD
                    }
                }
            },
            "scope": {
                "project": {
                    "name": SERVER_ID
                }
            }
        }
    }

    # 發出 POST 請求
    try:
        response = requests.post(request_url, headers=headers, data=json.dumps(payload))

        # 打印狀態碼
        print(f"狀態碼: {response.status_code}")

        if response.status_code == 201:
            # 讀取 X-Subject-Token 響應頭
            token = response.headers.get("X-Subject-Token")

            # 打印返回的數據和 Token
            print(f"反饋的數據: {response.json()}")
            print(f"Token: {token}")

            # 保存 TOKEN 到本地文件
            if token:
                save_token_to_file(token)
                print(f"TOKEN 已保存到 {TOKEN_FILE_PATH}")
            else:
                print("未能獲取到 TOKEN")
        else:
            print(f"獲取 TOKEN 失敗: {response.text}")

    except Exception as e:
        print(f"請求發生錯誤: {e}")

def save_token_to_file(token):
    """
    保存 TOKEN 到本地文件
    """
    try:
        with open(TOKEN_FILE_PATH, "w") as file:
            file.write(token)
    except Exception as e:
        print(f"保存 TOKEN 時發生錯誤: {e}")

def main():
    # 獲取 TOKEN
    get_token()

if __name__ == "__main__":
    main()

代碼說明:

(1) 依賴庫 :使用requests庫發起 HTTP 請求。 如果沒有安裝,在運行代碼前安裝依賴庫:

pip install requests

(2) 主要邏輯 :構造請求頭和請求體。發起 POST 請求,獲取響應。從響應頭中提取 X-Subject-Token 并保存到本地文件。

(3) TOKEN 保存 : TOKEN 被保存到 token.txt 文件中,方便后續直接讀取使用。

(4) 運行方式 : 將代碼保存為get_token.py,可以通過命令運行:

python get_token.py

也可以直接在終端運行,更加方便。 代碼編寫完畢,點擊右上角的綠色三角形按鈕,運行。 得到了Token然后保存到本地文件里。

image-20241128144526555

3.6 人臉檢測功能

【1】接口地址

幫助文檔地址: https://support.huaweicloud.com/api-face/face_02_0084.html

人臉檢測功能的API接口地址:https://face.cn-north-4.myhuaweicloud.com/v2/{project_id}/face-detect

【2】請求參數

參數參數類型描述
X-Auth-TokenString用戶Token。
Content-TypeString參數值為application/json
參數名參數類型說明
image_base64String圖像數據,Base64編碼,要求:Base64編碼后大小不超過8MB,建議小于1MB。圖片為JPG/JPEG/BMP/PNG格式。
attributesString是否返回人臉屬性,希望獲取的屬性列表,多個屬性間使用逗號(,)隔開。目前支持的屬性有:2:年齡4:裝束(帽子、眼鏡)6:口罩7:發型8:胡須11:圖片類型12:質量13:表情21:人臉圖片旋轉角(順時針偏轉角度),支持0°、90°、180°和270°圖片旋轉。

【3】響應參數

如果狀態返回400,表示肯定是調用出錯了,如果返回狀態碼是 200,那么返回的值就是以下的幾種情況。

參數描述
faces檢測到的人臉。 調用失敗時無此字段。
參數描述
bounding_box人臉在圖像中的位置。
attributes人臉關鍵屬性,比如頭部姿態。
參數描述
width人臉圖像所在矩形框的寬度。
top_left_y矩形框左上角縱坐標。
top_left_x矩形框左上角橫坐標。
height人臉圖像所在矩形框的高度。
參數描述
dress包含glass和hat兩個屬性結果。
glass是否戴眼鏡:yes:戴眼鏡dark:戴墨鏡none:未戴眼鏡unknown:未知
hat是否戴帽子:yes:戴帽子none:未戴帽子unknown:未知
age年齡。
mask是否戴口罩:yes:戴口罩none:未戴口罩unknown:未知
beard胡須:yes:有胡須none:無胡須unknown:未知
phototype圖片類型:idcard:證件照monitor:攝像頭監控internet photo:網絡圖片
quality圖片中人臉的遮擋度、模糊度、光照強度、姿態角度。
hair發型:long:長發short:短發unknown:未知
expression人臉表情,包括中性、高興、害怕、驚訝、傷心、生氣、厭惡。
face_angle人臉圖片旋轉角(順時針偏轉角度),支持0°、90°、180°和270°圖片旋轉。
參數參數類型描述
glassString是否戴眼鏡:yes:戴眼鏡dark:戴墨鏡none:未戴眼鏡unknown:未知
hatString是否戴帽子:yes:戴帽子none:未戴帽子unknown:未知
參數參數類型描述推薦
total_scoreDouble人臉質量總分,取值范圍[0-1],分值越大質量越高。大于0.45
blurDouble模糊度,取值范圍[0-1],分值越大模糊問題越嚴重。小于0.3
poseDouble姿態,取值范圍[0-1],分值越大姿態問題越嚴重。小于0.3
occlusionDouble遮擋,取值范圍[0-1],分值越大遮擋問題越嚴重。小于0.3
illuminationDouble光照,取值范圍[0-1],分值越大光照問題越嚴重。小于0.3
參數參數類型描述
typeString人臉表情類型:neutral:中性happy:高興fear:害怕surprise:驚訝sad:傷心angry:生氣disgust:厭惡unknown:圖片質量問題導致未識別
probabilityDouble表情置信度,取值范圍[0-1]。

【4】準備測試的圖片

打開文件管理器,在/home/developer目錄下創建一個image文件夾。

image-20241128153923767

然后打開瀏覽器,下載幾張測試的圖片。

image-20241128154207462

準備好兩張測試的照片。

image-20241128154401482

【5】編寫代碼

重新新建一個face_detect.py 文件。用于編寫測試人臉檢測代碼。

image-20241128153628766

編寫代碼如下:

import requests
import base64
import json

# 項目 ID 和服務器區域代號
PROJECT_ID = "填你自己的"
SERVER_ID = "cn-north-4"

# TOKEN 文件路徑
TOKEN_FILE_PATH = "token.txt"

def read_token_from_file():
    """
    從文件中讀取 TOKEN
    """
    try:
        with open(TOKEN_FILE_PATH, "r") as file:
            token = file.read().strip()
        return token
    except Exception as e:
        print(f"讀取 TOKEN 文件時發生錯誤: {e}")
        return None

def image_to_base64(image_path):
    """
    將圖片轉換為 Base64 編碼
    """
    try:
        with open(image_path, "rb") as image_file:
            encoded_string = base64.b64encode(image_file.read()).decode("utf-8")
        return encoded_string
    except Exception as e:
        print(f"圖片編碼為 Base64 時發生錯誤: {e}")
        return None

def face_detect(image_path):
    """
    人臉檢測功能
    """
    # 獲取 TOKEN
    token = read_token_from_file()
    if not token:
        print("TOKEN 無法加載,檢測失敗")
        return

    # 請求地址
    request_url = f"https://face.{SERVER_ID}.myhuaweicloud.com/v2/{PROJECT_ID}/face-detect"

    # 將圖片轉換為 Base64 編碼
    img_data = image_to_base64(image_path)
    if not img_data:
        print("圖片無法轉換為 Base64,檢測失敗")
        return

    # 構造請求頭
    headers = {
        "Content-Type": "application/json",
        "X-Auth-Token": token
    }

    # 構造請求體
    payload = {
        "image_base64": img_data,
        "attributes": "1,2,4,6,7,8"  # 自定義返回字段
    }

    # 發送 POST 請求
    try:
        response = requests.post(request_url, headers=headers, data=json.dumps(payload))

        # 打印狀態碼
        print(f"狀態碼: {response.status_code}")

        # 解析和打印返回結果
        if response.status_code == 200:
            print("人臉檢測成功,結果如下:")
            print(json.dumps(response.json(), indent=4, ensure_ascii=False))
        else:
            print(f"人臉檢測失敗: {response.text}")

    except Exception as e:
        print(f"請求發生錯誤: {e}")

def main():
    # 圖片路徑,替換為你要檢測的圖片路徑
    image_path = "/home/developer/image/1.jpeg"

    # 執行人臉檢測
    face_detect(image_path)

if __name__ == "__main__":
    main()

以下是用 Python 實現的人臉檢測功能代碼,使用 requests 庫來發出 HTTP 請求,并從本地的 token.txt 文件中讀取 TOKEN。代碼也包含將圖片轉換為 Base64 編碼的邏輯:

import requests
import base64
import json

# 項目 ID 和服務器區域代號
PROJECT_ID = "填你自己的"
SERVER_ID = "cn-north-4"

# TOKEN 文件路徑
TOKEN_FILE_PATH = "token.txt"

def read_token_from_file():
    """
    從文件中讀取 TOKEN
    """
    try:
        with open(TOKEN_FILE_PATH, "r") as file:
            token = file.read().strip()
        return token
    except Exception as e:
        print(f"讀取 TOKEN 文件時發生錯誤: {e}")
        return None

def image_to_base64(image_path):
    """
    將圖片轉換為 Base64 編碼
    """
    try:
        with open(image_path, "rb") as image_file:
            encoded_string = base64.b64encode(image_file.read()).decode("utf-8")
        return encoded_string
    except Exception as e:
        print(f"圖片編碼為 Base64 時發生錯誤: {e}")
        return None

def face_detect(image_path):
    """
    人臉檢測功能
    """
    # 獲取 TOKEN
    token = read_token_from_file()
    if not token:
        print("TOKEN 無法加載,檢測失敗")
        return

    # 請求地址
    request_url = f"https://face.{SERVER_ID}.myhuaweicloud.com/v2/{PROJECT_ID}/face-detect"

    # 將圖片轉換為 Base64 編碼
    img_data = image_to_base64(image_path)
    if not img_data:
        print("圖片無法轉換為 Base64,檢測失敗")
        return

    # 構造請求頭
    headers = {
        "Content-Type": "application/json",
        "X-Auth-Token": token
    }

    # 構造請求體
    payload = {
        "image_base64": img_data,
        "attributes": "1,2,4,6,7,8"  # 自定義返回字段
    }

    # 發送 POST 請求
    try:
        response = requests.post(request_url, headers=headers, data=json.dumps(payload))

        # 打印狀態碼
        print(f"狀態碼: {response.status_code}")

        # 解析和打印返回結果
        if response.status_code == 200:
            print("人臉檢測成功,結果如下:")
            print(json.dumps(response.json(), indent=4, ensure_ascii=False))
        else:
            print(f"人臉檢測失敗: {response.text}")

    except Exception as e:
        print(f"請求發生錯誤: {e}")

def main():
    # 圖片路徑,替換為你要檢測的圖片路徑
    image_path = "/home/developer/image/1.jpeg"

    # 執行人臉檢測
    face_detect(image_path)

if __name__ == "__main__":
    main()

代碼說明:

(1) 依賴庫

  • 使用 requests 進行 HTTP 請求。
  • 使用 base64 將圖片轉換為 Base64 編碼。
  • 確保安裝了依賴庫:pip install requests

(2) 主要邏輯

  • 讀取 TOKEN :從 token.txt 文件中讀取 TOKEN。
  • 圖片編碼 :將輸入圖片文件轉為 Base64 格式。
  • 構造請求 :設置請求頭和請求體,指定自定義返回字段。
  • 發送請求 :調用 API 完成人臉檢測,打印響應結果。

(3) 錯誤處理 :捕獲文件讀取、圖片編碼以及 HTTP 請求的異常,方便排查問題。

(4) 運行方式

  • 將代碼保存為 face_detect.py
  • 替換 image_path 為本地圖片的實際路徑。
  • 運行代碼:
    python face_detect.py
    

(5) 輸出

  • 成功時,打印 API 返回的 JSON 數據。
  • 失敗時,打印錯誤狀態碼及返回信息。

【6】終端運行測試

也可以直接在終端運行,更加方便。 代碼編寫完畢,點擊右上角的綠色三角形按鈕,運行。

image-20241128161543427

當前調用測試的圖片是:

image-20241128161638311

接口返回的結果:

{
    "faces": [
        {
            "bounding_box": {
                "width": 150,
                "top_left_y": 431,
                "top_left_x": 192,
                "height": 182
            },
            "attributes": {
                "gender": "female",
                "age": 25,
                "dress": {
                    "glass": "none",
                    "hat": "none"
                },
                "mask": "none",
                "hair": "long",
                "beard": "none"
            }
        },
        {
            "bounding_box": {
                "width": 148,
                "top_left_y": 428,
                "top_left_x": 358,
                "height": 188
            },
            "attributes": {
                "gender": "female",
                "age": 26,
                "dress": {
                    "glass": "none",
                    "hat": "none"
                },
                "mask": "none",
                "hair": "long",
                "beard": "none"
            }
        }
    ]
}

JSON數據表示的含義如下:

  • 檢測到了兩張人臉。
  • 第一張人臉
    • 位置:左上角坐標(192, 431),寬度150像素,高度182像素。
    • 屬性:女性,年齡25歲,未戴眼鏡和帽子,長發,無胡須,未戴口罩。
  • 第二張人臉
    • 位置:左上角坐標(358, 428),寬度148像素,高度188像素。
    • 屬性:女性,年齡26歲,未戴眼鏡和帽子,長發,無胡須,未戴口罩。

這些信息提供了每張人臉的位置以及一些基本屬性如性別、年齡、是否佩戴眼鏡或帽子等。

到此,接口就已經調用成功了。從返回的

3.7 創建人臉庫

【1】人臉庫的作用

如果我們要做考勤系統,簽到系統,那么設計之前需要創建人臉庫,錄入每個人員的人臉信息,才可以設計后面的考勤,簽到的人臉對比識別功能。

【2】接口地址

創建人臉庫的幫助文檔地址: https://support.huaweicloud.com/api-face/face_02_0088.html

image-20241128162301635

繼續向下翻,可以看到接口地址請求參數的說明。

image-20241128162521673

接口地址: https://face.cn-north-4.myhuaweicloud.com/v2/{project_id}/face-sets

【3】請求參數

參數描述
X-Auth-Token用戶Token。
Content-Type參數值為application/json
參數描述
external_fields用戶自定義數據,自定義字段不能以vector、bounding_box、external_image_id、face_id、create_time、_id、_all、_source等字段命名,這些字段為內置字段,自定義字段避免使用。自定義字段的key值長度范圍為[1,36],string類型的value長度范圍為[1,256]。如果在后續操作中,使用該自定義字段向人臉庫中添加人臉,需要在創建人臉庫時定義該字段。
face_set_name人臉庫的名稱,字符串長度1-64。建議人臉庫的名稱不要以下劃線(_)開頭,否則云監控服務會無法采集人臉數量。
face_set_capacity人臉庫最大的容量,填寫1萬整數倍的數字,例如:30000。默認為100000,最大值為100000,可通過創建新的人臉庫進行擴容,每個用戶可使用10個人臉庫,每個人臉庫容量為10萬個人臉特征。如需擴容單個人臉庫規模,請聯系華為云客服確認擴容規模與價格。
參數描述
type數據類型支持string、integer、double、long等。

【4】響應參數

正常情況下,返回的狀態碼:200

參數描述
face_number人臉庫中已有的人臉特征的數量。
external_fields用戶的自定義字段。
face_set_id人臉庫ID,隨機生成的包含八個字符的字符串。
face_set_name人臉庫名稱。
create_date創建時間。
face_set_capacity人臉庫最大的容量。創建人臉庫時,請求參數如果不設置face_set_capacity參數,默認每個人臉庫最大容量為10萬個人臉特征。

【5】編寫代碼

創建一個新文件名字為:face-sets.py

image-20241128164031260

編寫代碼:

import requests

# 項目ID和服務器區域代號
PROJECT_ID = "填你自己的"
SERVER_ID = "cn-north-4"

# 從當前目錄下的token.txt文件讀取Token
with open('token.txt', 'r') as file:
    Token = file.read().strip()

def create_face_database(face_lib_name):
    # 設置請求地址
    url = f"https://face.{SERVER_ID}.myhuaweicloud.com/v2/{PROJECT_ID}/face-sets"

    # 構造請求頭
    headers = {
        "Content-Type": "application/json",
        "X-Auth-Token": Token
    }

    # 構造請求體
    payload = {
        "external_fields": {
            "face_name": {"type": "string"},
            "face_phone": {"type": "string"},
            "face_class": {"type": "string"}
        },
        "face_set_name": face_lib_name
    }

    # 發送POST請求
    response = requests.post(url, json=payload, headers=headers)
    
    # 輸出響應狀態碼及內容
    print(f"Status Code: {response.status_code}")
    print(f"Response: {response.json()}")

# 調用函數創建人臉庫
create_face_database("face_1")

運行代碼的時候,要修改最前面的項目ID參數,和最后創建的人臉庫名稱。 代碼從本地文件token.txt中讀取認證Token。記得在運行此腳本之前檢查token.txt文件是否存在且包含有效的Token值(最前面已經說了怎么得到這個Token值)。

【6】終端運行代碼測試

image-20241128164446802

返回的結果如下:

Response: {'face_set_info': {'face_number': 0, 'face_set_id': 'tKzQuUW4', 'face_set_name': 'face_1', 'create_date': '2024-11-28 08:41:49', 'face_set_capacity': 100000, 'external_fields': {'face_name': {'type': 'string'}, 'face_phone': {'type': 'string'}, 'face_class': {'type': 'string'}}}}

根據返回的JSON響應數據以及華為云人臉識別服務FRS的文檔說明,下面是JSON數據信息的總結:

face_set_info :包含了創建的人臉庫的具體信息。

  • face_number :人臉庫中已有的人臉特征數量。當前值為0,表示剛剛創建的人臉庫還沒有添加任何人臉特征。
  • face_set_id :人臉庫的唯一標識符,隨機生成的字符串。這里的ID是tKzQuUW4
  • face_set_name :用戶指定的人臉庫名稱。這里命名為face_1
  • create_date :人臉庫的創建時間。這里是2024-11-28 08:41:49(UTC+08:00)。
  • face_set_capacity :人臉庫的最大容量。默認情況下為100,000個人臉特征,這里顯示的也是100,000。
  • external_fields :用戶自定義字段的信息。
    • face_name :類型為string,用于存儲人臉名稱。
    • face_phone :類型為string,用于存儲電話號碼。
    • face_class :類型為string,用于存儲人臉分類信息。

JSON響應表明成功創建了一個名為face_1的人臉庫,該庫的ID是tKzQuUW4,創建于2024年11月28日08:41:49,并且設置了三個自定義字段(face_nameface_phoneface_class),每個字段的類型都是string。目前該人臉庫尚未添加任何人臉特征。

3.8 向人臉庫添加人臉

【1】接口地址

幫助文檔:https://support.huaweicloud.com/api-face/face_02_0093.html

image-20241128165025080

接口地址: https://face.cn-north-4.myhuaweicloud.com/v2/{project_id}/face-sets/{face_set_name}/faces

參數參數類型描述
project_idString項目ID
face_set_nameString人臉庫名稱,字符串長度1-64。

【2】請求參數

參數是否必選參數類型描述
X-Auth-TokenString用戶Token。
Content-TypeString發送的實體的MIME類型,參數值為“application/json”。
參數名參數類型說明
image_base64String圖像數據,Base64編碼,要求:Base64編碼后大小不超過8MB,建議小于1MB。圖片為JPG/JPEG/BMP/PNG格式。
external_image_idString用戶指定的圖片外部ID,與當前圖像綁定。用戶沒提供,系統會生成一個。該ID長度范圍為1~36位,可以包含字母、數字、中劃線或者下劃線,不包含其他的特殊字符。
external_fieldsObject根據用戶自定義數據類型,填入相應的數值。需在創建人臉庫時定義external_fields字段,才可以在添加人臉時使用該字段。
singleboolean是否將圖片中的最大人臉添加至人臉庫。可選值包括:true:傳入的單張圖片中如果包含多張人臉,則只將最大人臉添加到人臉庫中。false:默認為false。傳入的單張圖片中如果包含多張人臉,則將所有人臉添加至人臉庫中。

【3】響應參數

狀態碼:200

參數描述
face_set_id人臉庫ID。 調用失敗時無此字段。
face_set_name人臉庫名稱。 調用失敗時無此字段。
faces調用失敗時無此字段。

【4】編寫代碼

創建新文件:face-sets_lib.py

image-20241128165828014

編寫代碼如下:

import requests
import base64
import io

# 項目ID和服務器區域代號
PROJECT_ID = "填你自己的"
SERVER_ID = "cn-north-4"

# 從當前目錄下的token.txt文件讀取Token
with open('token.txt', 'r') as file:
    Token = file.read().strip()

def to_base64(image_path):
    """將圖片轉換為Base64編碼的字符串"""
    with open(image_path, 'rb') as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

def register_face(image_path, face_lib, name):
    # 讀取圖片并進行Base64編碼
    img_data = to_base64(image_path)

    # 設置請求地址
    url = f"https://face.{SERVER_ID}.myhuaweicloud.com/v2/{PROJECT_ID}/face-sets/{face_lib}/faces"

    # 構造請求頭
    headers = {
        "Content-Type": "application/json",
        "X-Auth-Token": Token
    }

    # 構造請求體
    payload = {
        "image_base64": img_data,
        "external_fields": {"face_name": name},
        "single": True
    }

    # 發送POST請求
    response = requests.post(url, json=payload, headers=headers)
    
    # 輸出響應狀態碼及內容
    print(f"Status Code: {response.status_code}")
    print(f"Response: {response.json()}")

# 調用函數注冊人臉
register_face("/home/developer/image/1.jpeg", "face_1", "xiaolong")

運行代碼時,替換"face_1""xiaolong"為你實際的人臉庫名稱和自定義字段值。代碼從本地文件token.txt中讀取認證Token,并從指定路徑讀取圖片進行Base64編碼。

【5】終端運行測試

image-20241128170144543

返回的結果如下:

Response: {'face_set_id': 'tKzQuUW4', 'face_set_name': 'face_1', 'faces': [{'face_id': '1cOqkdyg', 'external_image_id': 'JAHIqXTA', 'bounding_box': {'width': 148, 'top_left_x': 358, 'top_left_y': 428, 'height': 188}, 'external_fields': {'face_name': 'xiaolong'}}]}
Response: {'face_set_id': 'tKzQuUW4', 'face_set_name': 'face_1', 'faces': [{'face_id': '1cOqkdyg', 'external_image_id': 'JAHIqXTA', 'bounding_box': {'width': 148, 'top_left_x': 358, 'top_left_y': 428, 'height': 188}, 'external_fields': {'face_name': 'xiaolong'}}]}
Response: {'face_set_id': 'tKzQuUW4', 'face_set_name': 'face_1', 'faces': [{'face_id': '1cOqkdyg', 'external_image_id': 'JAHIqXTA', 'bounding_box': {'width': 148, 'top_left_x': 358, 'top_left_y': 428, 'height': 188}, 'external_fields': {'face_name': 'xiaolong'}}]}

Response: {'face_set_id': 'tKzQuUW4', 'face_set_name': 'face_1', 'faces': [{'face_id': '1cOqkdyg', 'external_image_id': 'JAHIqXTA', 'bounding_box': {'width': 148, 'top_left_x': 358, 'top_left_y': 428, 'height': 188}, 'external_fields': {'face_name': 'xiaolong'}}]}

根據返回的JSON響應數據以及華為云人臉識別服務FRS的文檔,以下是JSON數據信息的總結:

  • face_set_id :人臉庫的唯一標識符。這里的ID是tKzQuUW4
  • face_set_name :人臉庫的名稱。這里是face_1
  • faces :一個數組,包含了成功添加到人臉庫中的人臉信息。
    • face_id :系統生成的唯一標識符,用于標識該人臉。這里的ID是1cOqkdyg
    • external_image_id :用戶指定的圖片外部ID,與當前圖像綁定。這里的ID是JAHIqXTA
    • bounding_box :描述了人臉在圖像中的位置。
      • width :矩形框的寬度。這里是148像素。
      • top_left_x :矩形框左上角的橫坐標。這里是358像素。
      • top_left_y :矩形框左上角的縱坐標。這里是428像素。
      • height :矩形框的高度。這里是188像素。
    • external_fields :用戶自定義字段的信息。
      • face_name :自定義字段face_name的值,這里是xiaolong

這個JSON響應表明成功將一張包含人臉的圖片添加到了名為face_1的人臉庫中。人臉庫的ID是tKzQuUW4。添加的人臉具有以下特征:

  • 人臉ID為1cOqkdyg
  • 圖片外部ID為JAHIqXTA
  • 人臉在圖片中的位置由矩形框表示,寬度為148像素,高度為188像素,左上角坐標為(358, 428)。
  • 自定義字段face_name的值為xiaolong

3.9 從人臉庫匹配人臉

【1】功能說明

人臉搜索是指在已有的人臉庫中,查詢與目標人臉相似的一張或者多張人臉,并返回相應的置信度。如果圖片中包含多個人臉,選取圖片中檢測到的最大尺寸人臉作為檢索的輸入。 支持傳入圖片或者faceID進行人臉搜索。

【2】幫助文檔

地址:https://support.huaweicloud.com/api-face/face_02_0086.html

image-20241128170350645

【3】接口地址

https://face.cn-north-4.myhuaweicloud.com/v2/{project_id}/face-sets/{face_set_name}/search

參數參數類型描述
project_idString項目ID
face_set_nameString人臉庫名稱,字符串長度1-64。

【4】請求參數

參數是否必選參數類型描述
X-Auth-TokenString用戶Token。
Content-TypeString發送的實體的MIME類型,參數值為“application/json”。
參數名說明
image_base64圖像數據,Base64編碼,要求:Base64編碼后大小不超過8MB,建議小于1MB。圖片為JPG/JPEG/BMP/PNG格式。
face_id導入人臉時,系統返回的人臉編號,即人臉ID。
top_n返回查詢到的最相似的N張人臉,N默認為10,取值范圍[0,1000]。N張人臉按照置信度降序排序,置信度越大越靠前。
threshold人臉相似度閾值,低于這個閾值則不返回,取值范圍[0,1],一般情況下建議取值0.93,默認為0。
sort支持字段排序
filter過濾條件
return_fields指定返回的自定義字段。

【5】響應參數

狀態碼:200

參數參數類型描述
facesArray of SearchFace objects查找的人臉集合。 調用失敗時無此字段。
參數參數類型描述
bounding_boxBoundingBox object人臉在圖像中的位置。
similarityDouble人臉搜索時用于被檢索的相似度。
external_fieldsObject用戶添加的額外自定義字段。
external_image_idString人臉所在的外部圖片ID。
face_idString人臉ID,由系統內部生成的唯一ID。
參數參數類型描述
widthInteger矩形框寬度。
top_left_yInteger矩形框左上角縱坐標。
top_left_xInteger矩形框左上角橫坐標。
heightInteger矩形框高度。

【6】編寫代碼

新建文件。face-sets_search.py

image-20241128170858737

代碼編寫如下:

import base64
import requests
import io

# 項目ID
PROJECT_ID = "填你自己的"

# 服務器區域代號
SERVER_ID = "cn-north-4"

# 從當前目錄下的token.txt文件中讀取Token
with open('token.txt', 'r') as file:
    TOKEN = file.read().strip()

def image_to_base64(image_path):
        """
        將圖片轉換為 Base64 編碼
        """
        try:
            with open(image_path, "rb") as image_file:
                encoded_string = base64.b64encode(image_file.read()).decode("utf-8")
            return encoded_string
        except Exception as e:
            print(f"圖片編碼為 Base64 時發生錯誤: {e}")
            return None

def to_base64(image):
    """將圖片轉換為Base64編碼"""
    buffered = io.BytesIO()
    image.save(buffered, format="JPEG")
    img_str = base64.b64encode(buffered.getvalue()).decode('utf-8')
    return img_str

def find_face(image_path, face_lib, threshold=0.93):
    # 將圖片轉換為 Base64 編碼
    img_data = image_to_base64(image_path)
    if not img_data:
        print("圖片無法轉換為 Base64,檢測失敗")
        return
    
    # 設置請求地址
    request_url = f"https://face.{SERVER_ID}.myhuaweicloud.com/v2/{PROJECT_ID}/face-sets/{face_lib}/search"
    
    # 設置數據提交格式及請求頭
    headers = {
        "Content-Type": "application/json",
        "X-Auth-Token": TOKEN
    }
    
    # 構造請求體
    payload = {
        "image_base64": img_data,
        "return_fields": ["face_name"],
        "threshold": threshold
    }
    
    # 發送POST請求
    response = requests.post(request_url, json=payload, headers=headers)
    
    # 檢查響應狀態碼
    if response.status_code == 200:
        print("人臉搜索成功:", response.json())
    else:
        print("人臉搜索失敗:", response.status_code, response.text)

# 調用函數
find_face("/home/developer/image/1.jpeg", "face_1")

替換'/home/developer/image/1.jpeg''face_1'為實際的圖片路徑和人臉庫名稱。確保在調用此腳本之前,已正確配置好token.txt文件,并且該文件位于與腳本相同的目錄下 [前面說了這個token怎么來的]。

【7】終端運行代碼測試

image-20241128171351539

返回的結果如下:

人臉搜索成功: {'faces': [{'face_id': '1cOqkdyg', 'external_image_id': 'JAHIqXTA', 'bounding_box': {'width': 148, 'top_left_x': 358, 'top_left_y': 428, 'height': 188}, 'external_fields': {'face_name': 'xiaolong'}, 'similarity': 1.0}]}

根據返回的JSON響應數據以及華為云人臉識別服務FRS的文檔,以下是JSON數據信息的總結:

  • faces :一個數組,包含了搜索到的人臉信息。
    • face_id :系統生成的唯一標識符,用于標識該人臉。這里的ID是1cOqkdyg
    • external_image_id :用戶指定的圖片外部ID,與當前圖像綁定。這里的ID是JAHIqXTA
    • bounding_box :描述了人臉在圖像中的位置。
      • width :矩形框的寬度。這里是148像素。
      • top_left_x :矩形框左上角的橫坐標。這里是358像素。
      • top_left_y :矩形框左上角的縱坐標。這里是428像素。
      • height :矩形框的高度。這里是188像素。
    • external_fields :用戶自定義字段的信息。
      • face_name :自定義字段face_name的值,這里是xiaolong
    • similarity :人臉搜索時的相似度分數。這里的值為1.0,表示完全匹配。

這個JSON響應表明成功搜索到了一張人臉,并且該人臉與人臉庫中的一張人臉完全匹配。

  • 人臉ID為1cOqkdyg
  • 圖片外部ID為JAHIqXTA
  • 人臉在圖片中的位置由矩形框表示,寬度為148像素,高度為188像素,左上角坐標為(358, 428)。
  • 自定義字段face_name的值為xiaolong
  • 相似度分數為1.0,表示完全匹配。

四、圖形化項目開發

4.1 安裝Tkinter庫

為了方便能直觀的展示項目的整體功能,接下來安裝 Tkinter ,完成人臉識別系列功能的設計。

在Python中, Tkinter用于創建圖形用戶界面(GUI)。這是Python的標準GUI庫。

下面是安裝方法:

image-20241128225204205

4.2 測試Tkinter環境

創建一個新的文件。

image-20241128225721768

編寫代碼:

import tkinter as tk  # 導入 Tkinter 模塊

# 創建主窗口
window = tk.Tk()

# 設置窗口標題
window.title("Hello Tkinter")

# 設置窗口大小(寬 x 高)
window.geometry("400x300")

# 顯示窗口并進入事件循環
window.mainloop()

運行效果如下:

image-20241128225832514

代碼解析

(1)導入 Tkinter

import tkinter as tk

tkinter 是 Python 的標準庫模塊,用于創建和管理 GUI 界面。

(2)創建主窗口

window = tk.Tk()

Tk() 方法創建了一個主窗口對象,稱為“頂級窗口”。

(3)設置窗口標題

window.title("Hello Tkinter")

title() 方法用來設置窗口標題。

(4)設置窗口大小

window.geometry("400x300")

geometry() 方法用來設置窗口的尺寸,這里是寬400像素,高300像素。

(5)運行窗口

window.mainloop()

mainloop() 方法啟動窗口的事件循環,程序會在這里等待用戶的操作(例如關閉窗口或點擊按鈕)。

4.3 設計界面

編寫代碼如下:

import tkinter as tk
from tkinter import filedialog, messagebox

# 全局變量,保存當前載入的圖片路徑
current_image_path = None

# 創建主窗口
window = tk.Tk()
window.title("人臉識別服務工具")
window.geometry("600x400")  # 增大窗口尺寸以顯示圖片

# 圖片顯示標簽
image_label = tk.Label(window, text="圖片顯示區域", width=50, height=20, relief="solid")
image_label.pack(pady=10)

# 定義功能函數
def load_image():
    global current_image_path
    file_path = filedialog.askopenfilename(
        title="選擇圖片文件",
        filetypes=[("圖片文件", "*.jpg *.jpeg *.png *.bmp")]
    )
    if file_path:
        current_image_path = file_path
        display_image(file_path)

def display_image(file_path):
    try:
        img = Image.open(file_path)
        img = img.resize((300, 300))  # 調整圖片尺寸
        img_tk = ImageTk.PhotoImage(img)
        image_label.config(image=img_tk, text="")  # 顯示圖片,清除文本
        image_label.image = img_tk  # 防止垃圾回收
    except Exception as e:
        messagebox.showerror("錯誤", f"無法載入圖片:{e}")

def face_detection():
    if not current_image_path:
        messagebox.showwarning("提示", "請先載入圖片!")
        return
    messagebox.showinfo("功能提示", f"人臉檢測功能待實現!當前圖片路徑:{current_image_path}")

def create_face_library():
    messagebox.showinfo("功能提示", "創建人臉庫功能待實現!")

def add_face_to_library():
    if not current_image_path:
        messagebox.showwarning("提示", "請先載入圖片!")
        return
    messagebox.showinfo("功能提示", f"向人臉庫添加人臉功能待實現!當前圖片路徑:{current_image_path}")

def search_face():
    if not current_image_path:
        messagebox.showwarning("提示", "請先載入圖片!")
        return
    messagebox.showinfo("功能提示", f"搜索匹配人臉功能待實現!當前圖片路徑:{current_image_path}")

# 創建按鈕
btn_load_image = tk.Button(window, text="載入圖片", command=load_image, width=20)
btn_face_detection = tk.Button(window, text="人臉檢測", command=face_detection, width=20)
btn_create_library = tk.Button(window, text="創建人臉庫", command=create_face_library, width=20)
btn_add_face = tk.Button(window, text="添加人臉到庫", command=add_face_to_library, width=20)
btn_search_face = tk.Button(window, text="搜索匹配人臉", command=search_face, width=20)

# 布局按鈕
btn_load_image.pack(pady=5)
btn_face_detection.pack(pady=5)
btn_create_library.pack(pady=5)
btn_add_face.pack(pady=5)
btn_search_face.pack(pady=5)

# 運行主事件循環
window.mainloop()

運行界面如下:

image-20241128231942259

五、總結

華為云人臉識別服務(FRS)及其開發者空間云主機為開發者提供了一個功能強的開發平臺,使得人臉識別技術的應用和實現變得更加簡單和便捷。通過調用開放的API接口,開發者可以輕松實現人臉檢測、人臉庫管理、人臉對比等關鍵功能,為考勤、簽到、門禁等場景提供智能化解決方案。

開發者空間云主機為用戶提供了預配置的云端開發環境,避免了繁瑣的本地配置過程,快速上手成為可能。結合CodeArts IDE以及預裝的開發工具鏈,開發者能夠專注于核心開發任務,提升效率。借助華為云豐富的資源,如云存儲、沙箱測試環境、技術培訓課程等,開發者不僅能快速驗證創意,還能通過學習和認證不斷提升技能。

此外,華為云開發者空間云主機深度整合了鯤鵬、昇騰和鴻蒙等生態資源,助力開發者在廣泛的技術領域展開創新,并與全球開發者社區互動交流,共同推動技術進步。這一平臺為云端開發提供了全面支持,涵蓋從開發到運維的全周期服務,是開發者實現技術突破和項目落地的重要助力。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5087

    文章

    19145

    瀏覽量

    306135
  • 華為云
    +關注

    關注

    3

    文章

    2607

    瀏覽量

    17481
收藏 人收藏

    評論

    相關推薦

    怎么用樹莓派做基于服務平臺的人臉識別

    怎么用樹莓派做基于服務平臺的人臉識別,大神求解,急!!
    發表于 08-07 23:17

    樹莓派做人臉識別

    基于服務平臺的人臉識別1、設備樹莓派2、USB攝像頭。2、要求l使用USB攝像頭抓拍(可以使用各種開源軟件,也可以自己編程)臉部照片;l使用人臉
    發表于 08-07 23:19

    奇谷人臉識別技術

    臉蛋吃飯的男人終于干了件"刷臉"的事兒。”正因為馬的這一舉動,對于人臉生物識別技術完成身份認證和支付的生活已經融入到國人生活中了。已經非常廣泛的人臉
    發表于 06-22 15:01

    淺談“人臉識別”的突破和創新

    企業展示了自己的人臉識別產品。其中既有大華股份、海康威視這樣的大安防廠商,也有漢王、銀晨這樣的智能化產商,還有像奇谷科技這樣的人臉識別開發和研究商。今年,馬
    發表于 08-26 12:44

      華為深度學習服務,讓企業智能從此不求人

    模型,訓練時往往需要至少百萬級別的訓練圖片。    但是,華為深度學習服務平臺,對企業場景的算法模型進行了大量的優化,使得針對企業特定場景的模型訓練數據需求大大降低。以企業特定場景的圖像識別
    發表于 08-02 20:44

    人臉識別在安防系統的應用研究

    子。通過智慧城市的高速數據傳輸鏈及結構化的數據篩選,可將人臉大數據與智慧城市中其它的大數據之間碰撞出火花,更加凸顯出人臉識別“用”的價值。  人臉
    發表于 11-07 10:38

    RV1126 適配 Debian10(搭建人臉識別服務器)

    前言 主要借助人臉識別服務器的應用來介紹 RV1126 的 Debian10 系統和 Rockx。 Debian10:Rockchip 官方只為 RV1126 適配了 Buildro
    發表于 07-12 10:13

    人臉識別模塊mini版【ESP32+百度在線識別】UART串口輸出方便連接使用

    人臉識別模塊mini版【ESP32+百度在線識別】UART串口輸出方便連接使用參數信息:供電電壓:3.3V供電電流:500mA以上通信接口:UART(波特率115200/停止位1/數
    發表于 12-19 16:03

    如何在Core-1126-JD4上搭建一套類似的服務完成人臉識別

    如何在Core-1126-JD4上搭建一套類似的服務完成人臉識別呢?
    發表于 02-21 07:19

    開發教程14】AI語音人臉識別(會議記錄儀-人臉打卡機)-AI人臉系統架構

    CC3200AI實驗教程——瘋殼·開發板系列AI人臉系統架構AI人臉識別系統由7大塊組成,分別是攝像頭、CC3200、串口調試助手、路由器、公網、
    發表于 06-10 14:32

    開發教程17】AI語音人臉識別(會議記錄儀-人臉打卡機)-AI人臉注冊認證與識別

    CC3200AI實驗教程——瘋殼·開發板系列AI人臉注冊認證與識別 使用IAR打開AI_OCR文件夾里面的工程,打開common.h頭文件,連接的路由器名稱及密碼如圖1.0.1所示,如需修改成需要
    發表于 06-15 19:17

    開發教程17】瘋殼·AI語音人臉識別(會議記錄儀-人臉打卡機)-AI人臉注冊認證與識別

    CC3200AI實驗教程——瘋殼·開發板系列AI人臉注冊認證與識別 使用IAR打開AI_OCR文件夾里面的工程,打開common.h頭文件,連接的路由器名稱及密碼如圖1.0.1所示,如需修改
    發表于 08-02 15:23

    高性能應用 + 安全可信丨華為人臉識別服務 FRS 保障企業提升智能業務效率與安全

    正如標題所示,作為國內某公司的技術服務提供商,今天我想和大家分享一下,為什么我推薦華為人臉識別服務
    的頭像 發表于 07-04 14:42 ?472次閱讀

    華為 API 人臉識別服務 FRS 的感知力—偷偷藏不住的你

    服務、API、SDK,調試,查看,我都行? 閱讀短文您可以學習到:人工智能 AI 人臉識別、檢測、搜索、比對 IntelliJ?IDEA?之 API 插件介紹 API 插件支持?V
    的頭像 發表于 10-12 10:58 ?534次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b> API <b class='flag-5'>人臉</b><b class='flag-5'>識別</b><b class='flag-5'>服務</b> <b class='flag-5'>FRS</b> 的感知力—偷偷藏不住的你

    ElfBoard開源項目|百度智能平臺的人臉識別項目

    百度智能平臺的人臉識別項目,旨在利用其強大的人臉識別服務實現自動
    的頭像 發表于 12-24 10:54 ?387次閱讀
    ElfBoard開源項目|百度智能<b class='flag-5'>云</b>平臺的<b class='flag-5'>人臉</b><b class='flag-5'>識別</b>項目
    主站蜘蛛池模板: 天天射天天爱天天干| 精品久久中文字幕有码| 星空无限传媒视频在线观看视频 | 久久AV亚洲精品一区无码网| YELLOW在线观看高清视频免费| 亚洲福利视频导航| 日本一本二本三区免费免费高清| 久久久无码AV精品亚洲A片软件| 国产国拍亚洲精品永久软件| 97超级碰碰人妻中文字幕| 亚洲精品国产高清不卡在线| 色AV色婷婷97人妻久久久| 麻生希快播在线| 精品久久久久久综合网| 国产精品私人玩物在线观看 | 亚洲 小说 欧美 激情 另类| 囚禁固定在调教椅上扩张H| 老阿姨才是最有味的一区二区| 国内精品久久久久影院老司 | 国自产精品手机在线视频| 成人免费视频在| yellow在线观看免费高清的日本| 87.6在线收听| 在线成人精品国产区免费| 亚洲人成人77777在线播放| 无限资源日本2019版| 色狗综合网| 日本日本熟妇中文在线视频| 欧美激情视频在线观看一区二区三区 | 无限资源网免费看| 日日日夜夜在线视频| 欧亚一卡二卡日本一卡二卡 | 亚洲精品天堂在线观看| 午夜剧场1000| 午夜福利免费0948视频| 十八禁啪啦啪漫画| 色AV色婷婷66人妻久久久| 日韩一区二区三区精品 | 秋霞最新高清无码鲁丝片| 欧美另类z0z000高清| 欧美成人性色生活18黑人|