想要了解人工智能首先要知道「百度大腦」(https://ai.baidu.com/?track=cp:aipinzhuan|pf:pc|pp:AIpingtai|pu:title|ci:|kw:10005792),「百度大腦」是國內作人工智能比較前端的了,有不少功能都是開源的,咱們這些小白能夠直接拿來用。這篇主要說一下我本身學到的東西和後面作的一個小程序。前端
要點:python
一、須要在CMD中導入兩個python第三方包【pip install pillow】、【pip install baidu-aip】canvas
二、須要本身註冊一個百度帳號API登陸到百度大腦來獲取下面小程序用的【AppID】、【API Key】、【Secret Key】小程序
三、百度搜索「百度大腦」進入首頁→開放功能→(須要使用的模塊,這裏要用的是人臉識別)人臉識別→當即使用→建立應用(輸入一些東西) 就建立完成了,上面會有要點2裏所須要獲取的三樣東西函數
四、返回到人臉識別首頁,進入技術文檔界面點擊人臉識別模塊點擊SDK文檔點擊REST API SDK下面會有python SDK點擊進去,這個上面都有用法就很少說了oop
五、把上面的代碼複製到pycharm新建的項目中代碼以下:ui
#小小小小小小小小小白出品 #這個代碼只顯示了年齡、性別和顏值分數 from aip import AipFace import base64 """ 你的 APPID AK SK """ APP_ID = '你的APP_ID' API_KEY = '你的API_KEY' SECRET_KEY = '你的SECRET_KEY' client = AipFace(APP_ID, API_KEY, SECRET_KEY) image = 'dili.jpg' def set_image(file): with open(file, 'rb')as f: res = base64.b64encode(f.read()) return res.decode('utf-8') imageType = "BASE64"#須要將圖片轉換成BASE64類型 # image = set_image('你須要用的圖片') """ 調用人臉檢測 """ options = {'face_field': 'age,gender,beauty'} """ 帶參數調用人臉檢測 """ def face_score(image): results = client.detect(set_image(image), imageType, options) age = results['result']['face_list'][0]['age'] gender = results['result']['face_list'][0]['gender']['type'] beauty = results['result']['face_list'][0]['beauty'] return age,gender,beauty # print(results) print(face_score(image))
六、再建立一個py文件,裏面放的是小程序的代碼,代碼以下:人工智能
1 """ 2 pip install pillow 3 pip install baidu-aip 4 pip install tkinter 5 """ 6 import PIL 7 import time 8 import base64 9 import tkinter as tk 10 from PIL import Image 11 from PIL import ImageTk 12 from aip import AipFace 13 from tkinter.filedialog import askopenfilename 14 15 # 配置百度aip參數 16 APP_ID = '你的APP_ID' 17 API_KEY = '你的API_KEY' 18 SECRET_KEY = '你的SECRET_KEY' 19 a_face = AipFace(APP_ID, API_KEY, SECRET_KEY) 20 image_type = 'BASE64' 21 22 options = {'face_field': 'age,gender,beauty'} 23 24 25 def get_file_content(file_path): 26 """獲取文件內容""" 27 with open(file_path, 'rb') as fr: 28 content = base64.b64encode(fr.read()) 29 30 return content.decode('utf8') 31 32 33 def face_score(file_path): 34 """臉部識別分數""" 35 result = a_face.detect(get_file_content(file_path), image_type, options) 36 print(result) 37 age = result['result']['face_list'][0]['age'] 38 beauty = result['result']['face_list'][0]['beauty'] 39 gender = result['result']['face_list'][0]['gender']['type'] 40 41 return age, beauty, gender 42 43 44 class ScoreSystem(): 45 """打分系統類""" 46 root = tk.Tk() 47 48 # 修改程序框的大小 49 root.geometry('800x500') 50 51 # 添加程序框標題 52 root.title('女神顏值打分系統') 53 54 # 修改背景色 55 canvas = tk.Canvas(root, 56 width=800, # 指定Canvas組件的寬度 57 height=500, # 指定Canvas組件的高度 58 bg='#E6E6FA') # 指定Canvas組件的背景色 59 canvas.pack() 60 61 def start_interface(self): 62 """主運行函數""" 63 self.title() 64 self.time_component() 65 66 # 打開本地文件 67 tk.Button(self.root, text='打開文件', command=self.show_original_pic).place(x=50, y=150) 68 # 進行顏值評分 69 tk.Button(self.root, text='運行程序', command=self.open_files2).place(x=50, y=230) 70 # 顯示幫助文檔 71 tk.Button(self.root, text='幫助文檔', command=self.show_help).place(x=50, y=310) 72 # 退出系統 73 tk.Button(self.root, text='退出軟件', command=self.quit).place(x=50, y=390) 74 # 顯示圖框標題 75 tk.Label(self.root, text='原圖', font=10).place(x=380, y=120) 76 # 修改圖片大小 77 self.label_img_original = tk.Label(self.root) 78 # 設置顯示圖框背景 79 self.cv_orinial = tk.Canvas(self.root, bg='white', width=270, height=270) 80 # 設置顯示圖框邊框 81 self.cv_orinial.create_rectangle(8, 8, 260, 260, width=1, outline='red') 82 # 設置位置 83 self.cv_orinial.place(x=265, y=150) 84 # 顯示圖片位置 85 self.label_img_original.place(x=265, y=150) 86 87 # 設置評分標籤 88 tk.Label(self.root, text='性別', font=10).place(x=680, y=150) 89 self.text1 = tk.Text(self.root, width=10, height=2) 90 tk.Label(self.root, text='年齡', font=10).place(x=680, y=250) 91 self.text2 = tk.Text(self.root, width=10, height=2) 92 tk.Label(self.root, text='評分', font=10).place(x=680, y=350) 93 self.text3 = tk.Text(self.root, width=10, height=2) 94 95 # 填裝文字 96 self.text1.place(x=680, y=175) 97 self.text2.place(x=680, y=285) 98 self.text3.place(x=680, y=385) 99 100 # 開啓循環 101 self.root.mainloop() 102 103 def show_original_pic(self): 104 """放入文件""" 105 self.path_ = askopenfilename(title='選擇文件') 106 # 處理文件 107 img = Image.open(fr'{self.path_}') 108 img = img.resize((270, 270), PIL.Image.ANTIALIAS) # 調整圖片大小至270*270 109 # 生成tkinter圖片對象 110 img_png_original = ImageTk.PhotoImage(img) 111 # 設置圖片對象 112 self.label_img_original.config(image=img_png_original) 113 self.label_img_original.image = img_png_original 114 self.cv_orinial.create_image(5, 5, anchor='nw', image=img_png_original) 115 116 def open_files2(self): 117 # 獲取百度API接口得到的年齡、分數、性別 118 age, score, gender = face_score(self.path_) 119 120 # 清楚text文本框內容並進行插入 121 self.text1.delete(1.0, tk.END) 122 self.text1.tag_config('red', foreground='RED') 123 self.text1.insert(tk.END, gender, 'red') 124 125 self.text2.delete(1.0, tk.END) 126 self.text2.tag_config('red', foreground='RED') 127 self.text2.insert(tk.END, age, 'red') 128 129 self.text3.delete(1.0, tk.END) 130 self.text3.tag_config('red', foreground='RED') 131 self.text3.insert(tk.END, score, 'red') 132 133 def show_help(self): 134 """顯示幫助""" 135 pass 136 137 def quit(self): 138 """退出""" 139 self.root.quit() 140 141 def get_time(self, lb): 142 """獲取時間""" 143 time_str = time.strftime("%Y-%m-%d %H:%M:%S") # 獲取當前的時間並轉化爲字符串 144 lb.configure(text=time_str) # 從新設置標籤文本 145 self.root.after(1000, self.get_time, lb) # 每隔1s調用函數 get_time自身獲取時間 146 147 def time_component(self): 148 """時間組件""" 149 lb = tk.Label(self.root, text='', fg='blue', font=("黑體", 15)) 150 lb.place(relx=0.75, rely=0.90) 151 self.get_time(lb) 152 153 def title(self): 154 """標題設計""" 155 lb = tk.Label(self.root, text='女神顏值打分系統', 156 bg='#6495ED', 157 fg='lightpink', font=('華文新魏', 32), 158 width=20, 159 height=2, 160 # relief=tk.SUNKEN 161 ) 162 lb.place(x=200, y=10) 163 164 165 score_system = ScoreSystem() 166 score_system.start_interface()
七、運行結果以下圖spa
這就是本篇我所說的內容,若是對你有幫助,點點支持,謝謝。設計