小白初入Python人工智能

想要了解人工智能首先要知道「百度大腦」(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

    這就是本篇我所說的內容,若是對你有幫助,點點支持,謝謝。設計

相關文章
相關標籤/搜索