日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实现人工智能识别水果

發(fā)布時間:2024/1/8 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现人工智能识别水果 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1) 需求分析

1.水果數(shù)據(jù)處理:對水果(蘋果,香蕉)數(shù)據(jù)集進行處理轉(zhuǎn)化為標簽和圖像,并轉(zhuǎn)化為one-hot碼。
2.卷積模型搭建:采用keras搭建模型,卷積層、池化層、Dropout層、全連接層、輸出層
3.模型訓(xùn)練把數(shù)據(jù)集在建立的模型上進行訓(xùn)練,并把最好的模型保存到h5文件中,便于直接對模型進行測試。
4.模型測試:打開攝像頭,使用通用物體進行測試。測試結(jié)果將錄制成視頻展示。

2) 概要設(shè)計

  • 測試前代碼:
  • from keras.applications.resnet50 import ResNet50 #//導(dǎo)入AI軟件平臺keras 里的AI模型 ResNet50 from keras.preprocessing import image#//導(dǎo)入圖像處理庫 image from keras.applications.resnet50 import preprocess_input, decode_predictions import numpy as np#//載入模型 model = ResNet50(weights='imagenet') #//使model指向ResNet50模型 img_path = '鳥.jpg' #//等待識別的圖像(可用車,水果等),注:需把圖片放該代碼的同目錄下 img = image.load_img(img_path, target_size=(224, 224)) #//載入圖像#//-圖像的預(yù)處理 x = image.img_to_array(img) #//把圖像轉(zhuǎn)換為數(shù)組 x = np.expand_dims(x, axis=0) #//沿軸0(行)擴展 -> 多維數(shù)組 x = preprocess_input(x) #//做輸入預(yù)處理#//預(yù)測 preds = model.predict(x) #//運行模型進行預(yù)測 print('Predicted:', decode_predictions(preds, top=3)[0]) #//解碼預(yù)測,輸出結(jié)果
  • 主程序:
  • 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 npimg_path = 'capyure.jpg'def capture_camera_pic(): cv2.namedWindow('capture_pic') cp = cv2.VideoCapture(0) # //指定攝像頭,默認0指向第一個 while cp.isOpened(): # //檢測攝像頭是否打開,如果攝像頭能成功打開,則進行循環(huán)的視頻拍照顯示ok, frame = cp.read() # 讀取一幀數(shù)據(jù)if not ok: # 如果拍照失敗,退出breakcv2.imwrite(img_path, frame) # 保存圖像# 翻譯# translator = Translator(to_lang='chinese')# translation = translator.translate(jieguo())cv2.putText(frame, jieguo(), (30, 50), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 0, 0), 4)cv2.imshow('capture_pic', frame) # 顯示圖像c = cv2.waitKey(10)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)return decode_predictions(preds, top=3)[0][0][1];if __name__ == '__main__': capture_camera_pic() }

    3)詳細設(shè)計

    改進為可以把文字由英文轉(zhuǎn)中文的代碼: 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 #調(diào)用攝像頭 img_path='capyure.jpg' def capture_camera_pic(): cv2.namedWindow('capture_pic') cp=cv2.VideoCapture(0) #//指定攝像頭,默認0指向第一個 while cp.isOpened(): #//檢測攝像頭是否打開,如果攝像頭能成功打開,則進行循環(huán)的視頻拍照顯示ok,frame=cp.read() #讀取一幀數(shù)據(jù)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) # 第一個參數(shù)是字體文件的路徑,第二個是字體大小 font = ImageFont.truetype('msyh.ttc', 30, encoding='utf-8') # 第一個參數(shù)是文字的起始坐標,第二個需要輸出的文字,第三個是字體顏色,第四個是字體類型 draw.text((30,50), jieguo(), (0, 0, 0), font=font)# PIL圖片轉(zhuǎn)cv2 img = cv2.cvtColor(np.array(pil_img), cv2.COLOR_RGB2BGR) # 變得可以拉伸 winname 必須要一樣,且設(shè)置可以拉伸在前面 cv2.namedWindow('capture_pic', cv2.WINDOW_NORMAL) # 顯示 cv2.imshow("capture_pic", img) # 等待 cv2.waitKey(10)if __name__=='__main__':

    總結(jié)

    以上是生活随笔為你收集整理的python实现人工智能识别水果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。