999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python編程實現拍照辨顏值

2021-06-24 04:52:32牟曉東
電腦報 2021年3期
關鍵詞:百度程序

牟曉東

Python之所以越來越強大和流行的原因之一,便是其不斷發展壯大的各種標準庫和第三方擴展庫模塊。在導入庫之后,我們可以直接使用其中已經編寫好的各種函數,有時僅需很少的十幾行甚至是幾行代碼就能實現非常強大的功能。人臉識別是人工智能的重要應用方向,通過本例我們將編寫一段不太復雜的Python程序實現人臉識別的一些功能,包括調用攝像頭進行拍照,數據上傳至百度AI(“人工智能”)接口進行年齡、顏值等的辨識和信息返回輸出。掃碼下載程序源代碼,下面對照代碼我將為您講解代碼中的要點。

1.第三方庫模塊的安裝準備工作

以Anaconda開源Python版本為例,首先進入其PowershellPrompt命令行界面,使用“pip install xxx”命令分別安裝OpenCV計算機視覺庫和requests,注意OpenCV的安裝命令是“pip install opencv-python”(如圖1)。如果安裝不成功,可嘗試更換國內的鏡像源(如清華、阿里云等)。在程序的開始部分使用import命令將三個庫模塊導入:import cv2、import requests、import base64,base64是Python內置的模塊無需安裝。

2.調用攝像頭進行“抓拍”

首先建立變量camera,其值為“cv2.VideoCapture(0)”,即調用OpenCV中的VideoCapture()函數,其中的參數0是指當前計算機的攝像頭編號,該語句完成的功能是將攝像頭拍攝到的畫面保存至變量camera中;接著建立一個“while True:”永遠為真的循環結構,在循環體的第一個“ret,img = camera.read()”語句中,前面的ret即“return”邏輯布爾值,為真的話則執行后面的“讀取camera中保存的一幀畫面并賦值給變量img”,這樣可以有效過濾掉攝像頭剛剛被調用啟動時無法讀取到數據的“報錯”異常情況;語句“cv2.imshow('Look here:',img)”的作用是開啟一個名為“Look here:”的新窗口,其內容是顯示變量img中所保存的攝像頭畫面;語句“key = cv2.waitKey(10)”的作用是讓程序等待10毫秒,這樣可以有效地獲取攝像頭所拍攝的畫面(因為這是在一個“死循環”中);然后使用一個if條件判斷:“if key == ord('s'):”,判斷我們是否已經在攝像頭前調整好自己的狀態,是的話則按s鍵(注意一定是將輸入法切換至英文半角狀態),s即“Save”(保存拍照文件的意思);當程序檢測到s鍵被按下后則執行三個語句:

一是“cv2.imwrite('capture.jpg',img)”,作用是將變量img中保存的一幀拍攝畫面內容寫至capture.jpg圖片文件中,注意它的保存位置默認是與本Python程序在同一目錄中;二是執行“cv2.destroyAllWindows()”,作用是關閉當前攝像頭的“Look here:”拍攝窗口;三是“break”語句,作用是跳出當前的“while True:”循環。

運行該段程序,在彈出的攝像頭拍照窗口前稍作調整后按下s鍵,我們就得到了capture.jpg圖片文件(如圖2)。

3.獲取百度AI的AccessToken

在瀏覽器中訪問https://ai.baidu.com/,登錄自己的百度賬號后點擊“控制臺”進入“百度智能云”;接著在左側的項目欄中點擊選擇“人臉識別”,按照提示一步步填寫信息建立自己的一個“人臉識別”應用;然后點擊查看該應用的詳情,將其中的三處關鍵信息的內容分別復制保存至本地(如圖3):

APIKey(簡稱AK):srLfBxDdL1MXDMXDA4b

p5Iv9(此Key無效,需自行申請)

SecretKey(簡稱SK):apW7N6QIyPNvLvk5FW

B53cMXDMXDGbXc(此Key無效,需自行申請)

請求地址:https://aip.baidubce.com/rest/2.0/

face/v3/detect

再次返回至Python編程環境中,將AK和SK的值分別賦給變量ApiKey和SecretKey,注意其類型為str字符串型,兩側均要添加引號;接著按照百度的提示建立變量host,賦值為“'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_creden

tials&client_id=' + ApiKey + '&client_secret=' + SecretKey”,將AK和SK的值通過字符串連接進行“構造”,目的是獲取百度API的AccessToken“訪問令牌”;然后建立變量response,通過requests中的get方法賦值為“requests.get(host)”;如果有返回值(if response:),則通過語句“print(response.json())”將json數據打印輸出。

單獨運行該段程序,從返回的json數據中找到“'access_token':”,后面的“24.7c1cd7018cec7572

698388888888438a.2592000.1612133454.282335-

17598582” (已做改寫處理)便是我們想要得到的Access Token值(如圖4),其有效訪問期限是一個月。

4.測試本地圖片文件

獲取到Access Token值后,APIKey和SecretKey便暫時退出“舞臺”,刪除本段程序,開始構建本地圖片文件的上傳檢測程序:

建立變量request_url,為其賦值為之前從百度智能云中復制的“請求地址”:“https://aip.baidubce.com/rest/2.0/face/v3/detect”,這便是Python程序與百度間進行數據通信的檢測“入口”;接著建立變量filename,賦值為“Liu.jpg”(搜索下載的劉德華圖片);語句“img = cv2.imread(filename)”的作用是將讀取到的測試圖片文件信息保存至變量img中,然后通過語句“f = open(filename,'rb')”,以只讀二進制的方式打開該文件并存入文件變量f中;建立變量img_test,其值為讀取文件變量f的值并進行Base64編碼:str(base64.b64encode(f.read()),encoding='utf-8');接著建立字典型的參數變量params,其值包括三個“鍵值對”,即:“image”:img_test,“image_type”:“BASE64”,“face_field”:“age,beauty”,最后的“face_field”鍵所對應的值“age,beauty”是可自定義的,在此僅以檢測年齡age和顏值beauty為例,還可以檢測是否戴眼鏡glasses、人種race和熱情度emotion等等。

Base64編碼是網絡上最常見、也是最基本的用于傳輸8bit字節代碼的二進制編碼方式,用來將非ASCII字符的數據如中文、圖片、視頻等文件轉換成ASCII字符便于安全傳輸的方法,學好它有利于你對應用底層的理解,我們將在以后對這種編碼進行詳細的講解和編寫專門的實例。

根據剛剛獲取的access_token,構建變量request_url,按照百度API幫助文檔所提供的信息為其賦值為“request_url + "?access_token=" + access_token”;然后建立變量headers和response,均按照百度要求進行賦值(可直接從幫助文檔中進行代碼的復制改寫);最后可以先通過“print (response.json())”將百度AI判斷的json數據信息打印輸出(如圖5),發現該數據包含的信息比較多,但我們最關心的是其中的age和beauty值,需要仔細查看其結構(類似于Python的字典與列表的相互嵌套),最后不難構造出兩個語句:

print('劉德華的年齡是:',response.json()['result']['face_list'][0]['age'])

print('劉德華的顏值打分是:',response.json()['result']['face_list'][0]['beauty'])

這樣,就可以將“print (response.json())”語句前面添加#進行過濾,我們只要最終的結果:“劉德華的年齡是:38,劉德華的顏值打分是:69.95”。

5.將本地圖片更換為攝像頭抓拍圖片進行檢測

現在,將調用攝像頭進行圖像的“抓拍”程序段與測試本地圖片程序段進行組合,注意要將第二段程序中的變量filename賦值為“capture.jpg”(之前值為“Liu.jpg”),最后的print語句提示信息也修改為“我的”。

運行程序,調用攝像頭拍照(擺好POSE后按下s鍵)生成自己的capture.jpg圖片文件后上傳至百度智能云進行分析,最終返回結果:“我的年齡是:41,我的顏值打分是:33.5”。

猜你喜歡
百度程序
Robust adaptive UKF based on SVR for inertial based integrated navigation
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
百度年度熱搜榜
青年與社會(2018年2期)2018-01-25 15:37:06
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
做一個“百度”不知道的老師
學周刊(2016年26期)2016-09-08 09:02:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
百度遭投行下調評級
IT時代周刊(2015年8期)2015-11-11 05:50:22
百度醫生
主站蜘蛛池模板: 九九热免费在线视频| 超碰91免费人妻| 国产视频大全| 午夜一区二区三区| 精品1区2区3区| 午夜福利亚洲精品| 日韩精品欧美国产在线| 91小视频在线观看| 四虎永久在线视频| 香蕉久久国产精品免| 四虎永久免费地址| 欧美区国产区| 国产欧美日韩另类| 热思思久久免费视频| 国产在线91在线电影| 操操操综合网| 九月婷婷亚洲综合在线| 无码精油按摩潮喷在线播放 | 啪啪永久免费av| 天堂网国产| 欧美激情综合| 91久久精品日日躁夜夜躁欧美| 色综合五月婷婷| 99九九成人免费视频精品 | 狠狠亚洲婷婷综合色香| 国产欧美高清| 曰韩人妻一区二区三区| 国产成人毛片| 国产网站在线看| 国产精品无码影视久久久久久久 | 国产在线一区视频| 无码久看视频| 国产91精品调教在线播放| 超清无码熟妇人妻AV在线绿巨人| 98超碰在线观看| 欧美精品伊人久久| 2020国产在线视精品在| 激情無極限的亚洲一区免费| 亚洲综合精品香蕉久久网| 啊嗯不日本网站| 国产永久在线观看| a级毛片免费网站| 91久久国产综合精品| 亚洲美女一级毛片| 一区二区理伦视频| 青青青草国产| 福利小视频在线播放| 四虎成人精品在永久免费| 首页亚洲国产丝袜长腿综合| 亚洲欧洲自拍拍偷午夜色无码| 国产黄色视频综合| www.日韩三级| 婷婷五月在线视频| 国产成年女人特黄特色大片免费| 国产亚卅精品无码| 色婷婷天天综合在线| 欧洲日本亚洲中文字幕| 亚洲精品无码日韩国产不卡| 国产99久久亚洲综合精品西瓜tv| 综合天天色| 久久先锋资源| 亚洲91在线精品| 国模视频一区二区| 欧美一区二区福利视频| 国产不卡一级毛片视频| 国产一级α片| V一区无码内射国产| 欧美精品成人一区二区视频一| 亚洲精品福利视频| 日韩国产高清无码| 亚洲精品大秀视频| 欧美国产成人在线| 国产乱人乱偷精品视频a人人澡| 国产99免费视频| 69av免费视频| 91青青草视频在线观看的| 国产一区亚洲一区| 丁香综合在线| 国产福利拍拍拍| 日韩在线1| 亚洲成人精品在线| 华人在线亚洲欧美精品|