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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python,人工智能,水果识别

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

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

2) 概要設(shè)計(jì)

1. 測(cè)試前代碼: from keras.applications.resnet50 import ResNet50 #//導(dǎo)入AI軟件平臺(tái)keras 里的AI模型 ResNet50 from keras.preprocessing import image#//導(dǎo)入圖像處理庫(kù) image from keras.applications.resnet50 import preprocess_input, decode_predictions import numpy as np#//載入模型 model = ResNet50(weights='imagenet') #//使model指向ResNet50模型 img_path = '鳥(niǎo).jpg' #//等待識(shí)別的圖像(可用車(chē),水果等),注:需把圖片放該代碼的同目錄下 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(行)擴(kuò)展 -> 多維數(shù)組 x = preprocess_input(x) #//做輸入預(yù)處理#//預(yù)測(cè) preds = model.predict(x) #//運(yùn)行模型進(jìn)行預(yù)測(cè) print('Predicted:', decode_predictions(preds, top=3)[0]) #//解碼預(yù)測(cè),輸出結(jié)果2. 主程序: 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) # //指定攝像頭,默認(rèn)0指向第一個(gè)while cp.isOpened(): # //檢測(cè)攝像頭是否打開(kāi),如果攝像頭能成功打開(kāi),則進(jìn)行循環(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'):breakcp.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)詳細(xì)設(shè)計(jì) 改進(jìn)為可以把文字由英文轉(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) #//指定攝像頭,默認(rèn)0指向第一個(gè)while cp.isOpened(): #//檢測(cè)攝像頭是否打開(kāi),如果攝像頭能成功打開(kāi),則進(jìn)行循環(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'):breakcp.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()# 生成畫(huà)筆draw = ImageDraw.Draw(pil_img)# 第一個(gè)參數(shù)是字體文件的路徑,第二個(gè)是字體大小font = ImageFont.truetype('msyh.ttc', 30, encoding='utf-8')# 第一個(gè)參數(shù)是文字的起始坐標(biāo),第二個(gè)需要輸出的文字,第三個(gè)是字體顏色,第四個(gè)是字體類(lèi)型draw.text((30,50), jieguo(), (0, 0, 0), font=font)# PIL圖片轉(zhuǎn)cv2img = 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__':capture_camera_pic()

總結(jié)

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

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