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| 91亚洲精品第一| 思思热精品在线8| 久久福利网| 国外欧美一区另类中文字幕| 高潮毛片免费观看| 五月丁香在线视频| 国产自在自线午夜精品视频| 国产十八禁在线观看免费| 免费国产好深啊好涨好硬视频| 亚洲三级成人| 国产国语一级毛片在线视频| 国产成本人片免费a∨短片| 久久99国产精品成人欧美| 91亚瑟视频| 国产第一页第二页| 国产欧美性爱网| 久久一级电影| 中国国产一级毛片| 五月激情综合网| 日韩久草视频| 亚洲天堂网视频| 欧美色亚洲| 97视频在线观看免费视频| 国产女人喷水视频| 亚洲AⅤ综合在线欧美一区| 97se亚洲综合在线韩国专区福利| 国国产a国产片免费麻豆| 久久午夜夜伦鲁鲁片不卡| 国产人成乱码视频免费观看| 国产麻豆精品久久一二三| 欧美不卡视频在线| 国产香蕉在线视频| 国产欧美在线| 久久人搡人人玩人妻精品一| 国产中文一区二区苍井空| 国产精品xxx| 亚洲欧美日韩成人高清在线一区| 国产欧美视频一区二区三区| 欧美一区二区啪啪| 精品视频一区在线观看| 国产靠逼视频| 国产精品不卡永久免费| 91麻豆精品视频| 91亚瑟视频| 中文无码毛片又爽又刺激| 国产三级成人| 亚洲国产精品一区二区高清无码久久| 91精品啪在线观看国产60岁| 四虎影视国产精品| 日韩精品无码免费专网站| 伊人色综合久久天天| 国产特级毛片aaaaaa| 99热这里只有精品久久免费| 午夜视频在线观看免费网站| 9cao视频精品| 99成人在线观看| 久久网综合| 国产精品丝袜视频| 国产成人禁片在线观看| 丁香婷婷久久| 亚洲人成色77777在线观看| 免费看美女自慰的网站| 国产成人综合久久精品下载| 亚洲成人黄色网址| 国产成人精品2021欧美日韩| av一区二区无码在线| 国产真实乱人视频| 国产精品任我爽爆在线播放6080| 亚洲精品桃花岛av在线| 99久久性生片| 福利在线不卡| 国产网站免费观看| 午夜老司机永久免费看片| 国产h视频在线观看视频| 国产欧美视频一区二区三区| 波多野结衣二区| 久久永久精品免费视频| 中文字幕人成乱码熟女免费| 国产高清自拍视频|