python实现人工智能识别水果
生活随笔
收集整理的這篇文章主要介紹了
python实现人工智能识别水果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1) 需求分析
1.水果數據處理:對水果(蘋果,香蕉)數據集進行處理轉化為標簽和圖像,并轉化為one-hot碼。
2.卷積模型搭建:采用keras搭建模型,卷積層、池化層、Dropout層、全連接層、輸出層
3.模型訓練把數據集在建立的模型上進行訓練,并把最好的模型保存到h5文件中,便于直接對模型進行測試。
4.模型測試:打開攝像頭,使用通用物體進行測試。測試結果將錄制成視頻展示。
2) 概要設計
3)詳細設計
改進為可以把文字由英文轉中文的代碼: import cv2 from keras.applications.resnet50 import ResNet50 from keras.preprocessing import image from keras.applications.resnet50 import preprocess_input,decode_predictions import numpy as np from translate import Translator from PIL import Image, ImageDraw, ImageFont #調用攝像頭 img_path='capyure.jpg' def capture_camera_pic(): cv2.namedWindow('capture_pic') cp=cv2.VideoCapture(0) #//指定攝像頭,默認0指向第一個 while cp.isOpened(): #//檢測攝像頭是否打開,如果攝像頭能成功打開,則進行循環的視頻拍照顯示ok,frame=cp.read() #讀取一幀數據if not ok: #如果拍照失敗,退出breakcv2.imwrite(img_path,frame) #保存圖像#cv2.putText(frame,jieguo(),(30,50),cv2.FONT_HERSHEY_COMPLEX,1,(255,0,0),4)#cv2.putText(frame,jieguo(),(30,50), cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,1,(255,0,0),4)change()# change_cv2_draw(frame, jieguo(), (0,0), 20, (255, 0, 0))# cv2ImgAddText(frame, "封", 10, 65, (255, 0, 0), 20)#//cv2.imshow('capture_pic',frame) #顯示圖像c=cv2.waitKey(5)if c & 0xff == ord('q'):break cp.release() cv2.destroyAllWindows()def jieguo():model = ResNet50(weights='imagenet')img_path = 'capyure.jpg'img = image.load_img(img_path, target_size=(224, 224))x = image.img_to_array(img)x = np.expand_dims(x, axis=0)x = preprocess_input(x)preds = model.predict(x)translator = Translator(to_lang='chinese')str =decode_predictions(preds, top=3)[0][0][1]translation = translator.translate(str.replace('_', ' '))return translation;def change(): # 讀取文件 pil_img = Image.open('capyure.jpg',) # 讀取cv2文件 #frame = Image.fromarray(cv2.cvtColor(img_path, cv2.COLOR_BGR2RGB)) # pil_img.show() # 生成畫筆 draw = ImageDraw.Draw(pil_img) # 第一個參數是字體文件的路徑,第二個是字體大小 font = ImageFont.truetype('msyh.ttc', 30, encoding='utf-8') # 第一個參數是文字的起始坐標,第二個需要輸出的文字,第三個是字體顏色,第四個是字體類型 draw.text((30,50), jieguo(), (0, 0, 0), font=font)# PIL圖片轉cv2 img = cv2.cvtColor(np.array(pil_img), cv2.COLOR_RGB2BGR) # 變得可以拉伸 winname 必須要一樣,且設置可以拉伸在前面 cv2.namedWindow('capture_pic', cv2.WINDOW_NORMAL) # 顯示 cv2.imshow("capture_pic", img) # 等待 cv2.waitKey(10)if __name__=='__main__':總結
以上是生活随笔為你收集整理的python实现人工智能识别水果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络字节序与主机字节序的相互转换
- 下一篇: nginx proxy_pass匹配路径