使用Tensorflow+OpenCV構(gòu)建會(huì)玩石頭剪刀布的AI
我已經(jīng)使用DenseNet121模型進(jìn)行特征提取,其輸出最終將輸入到我自己的Dense神經(jīng)網(wǎng)絡(luò)中。
densenet = DenseNet121(include_top=False, weights='imagenet', classes=3,input_shape=(300,300,3))
densenet.trainable=True
def genericModel(base):
model = Sequential()
model.a(chǎn)dd(base)
model.a(chǎn)dd(MaxPool2D())
model.a(chǎn)dd(Flatten())
model.a(chǎn)dd(Dense(3,activation='softmax'))
model.compile(optimizer=Adam(),loss='categorical_crossentropy',metrics=['acc'])
return model
dnet = genericModel(densenet)
history = dnet.fit(
x=imgData,
y=labels,
batch_size = 16,
epochs=8,
callbacks=[checkpoint,es],
validation_split=0.2
)
關(guān)鍵點(diǎn) :由于我們的圖片尺寸為300x300,因此指定的輸入形狀也為3x300x300,3代表RGB的維度信息,因此該層具有足夠的神經(jīng)元來(lái)處理整個(gè)圖像。我們將DenseNet層用作第一層,然后使用我們自己的Dense神經(jīng)網(wǎng)絡(luò)。我已將可訓(xùn)練參數(shù)設(shè)置為True,這也會(huì)重新訓(xùn)練DenseNet的權(quán)重。盡管花了很多時(shí)間,但是這給了我更好的結(jié)果。我建議你在自己的實(shí)現(xiàn)中嘗試通過(guò)更改此類參數(shù)(也稱為超參數(shù))來(lái)嘗試不同的迭代。由于我們有3類Rock-Paper-Scissor,最后一層是具有3個(gè)神經(jīng)元和softmax激活的全連接層。最后一層返回圖像屬于3類中特定類的概率。如果你引用的是GitHub repo(https://github.com/HOD101s/RockPaperScissor-AI-) 的train.py,則要注意數(shù)據(jù)準(zhǔn)備和模型訓(xùn)練!至此,我們已經(jīng)收集了數(shù)據(jù),建立并訓(xùn)練了模型,剩下的部分是使用OpenCV進(jìn)行部署OpenCV實(shí)現(xiàn):此實(shí)現(xiàn)的流程很簡(jiǎn)單:?jiǎn)?dòng)網(wǎng)絡(luò)攝像頭并讀取每個(gè)幀將此框架傳遞給模型進(jìn)行分類,即預(yù)測(cè)類用電腦隨意移動(dòng)計(jì)算分?jǐn)?shù)def prepImg(pth):
return cv2.resize(pth,(300,300)).reshape(1,300,300,3)
with open('model.json', 'r') as f:
loaded_model_json = f.read()
loaded_model = model_from_json(loaded_model_json)
loaded_model.load_weights("modelweights.h5")
print("Loaded model from disk")
for rounds in range(NUM_ROUNDS):
pred = ""
for i in range(90):
ret,frame = cap.read()
# Countdown
if i//20 < 3 :
frame = cv2.putText(frame,str(i//20+1),(320,100),cv2.FONT_HERSHEY_SIMPLEX,3,(250,250,0),2,cv2.LINE_AA)
# Prediction
elif i/20 < 3.5:
pred = arr_to_shape[np.a(chǎn)rgmax(loaded_model.predict(prepImg(frame[50:350,100:400])))]
# Get Bots Move
elif i/20 == 3.5:
bplay = random.choice(options)
print(pred,bplay)
# Update Score
elif i//20 == 4:
playerScore,botScore = updateScore(pred,bplay,playerScore,botScore)
break
cv2.rectangle(frame, (100, 150), (300, 350), (255, 255, 255), 2)
frame = cv2.putText(frame,"Player : {} Bot : {}".format(playerScore,botScore),(120,400),cv2.FONT_HERSHEY_SIMPLEX,1,(250,250,0),2,cv2.LINE_AA)
frame = cv2.putText(frame,pred,(150,140),cv2.FONT_HERSHEY_SIMPLEX,1,(250,250,0),2,cv2.LINE_AA)
frame = cv2.putText(frame,"Bot Played : {}".format(bplay),(300,140),cv2.FONT_HERSHEY_SIMPLEX,1,(250,250,0),2,cv2.LINE_AA)
cv2.imshow('Rock Paper Scissor',frame)
if cv2.waitKey(1) & 0xff == ord('q'):
break
上面的代碼片段包含相當(dāng)重要的代碼塊,其余部分只是使游戲易于使用,RPS規(guī)則和得分。所以我們開始加載我們訓(xùn)練過(guò)的模型,它在開始程序的預(yù)測(cè)部分之前顯示倒計(jì)時(shí),預(yù)測(cè)后,分?jǐn)?shù)會(huì)根據(jù)球員的動(dòng)作進(jìn)行更新。
我們使用cv2.rectangle()顯式地繪制目標(biāo)區(qū)域,使用prepImg()函數(shù)預(yù)處理后,只有幀的這一部分傳遞給模型進(jìn)行預(yù)測(cè)。
結(jié)論:我們已經(jīng)成功地實(shí)現(xiàn)并學(xué)習(xí)了這個(gè)項(xiàng)目的工作原理,所以請(qǐng)繼續(xù)使用我的實(shí)現(xiàn)進(jìn)行其它實(shí)驗(yàn)學(xué)習(xí)。我做的一個(gè)主要的改進(jìn)可能是增加了手部檢測(cè),所以我們不需要顯式地繪制目標(biāo)區(qū)域,模型將首先檢測(cè)手部位置,然后進(jìn)行預(yù)測(cè)。我鼓勵(lì)你改進(jìn)這個(gè)項(xiàng)目,并給我你的建議。精益求精!

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車研發(fā)中心重磅落地,寶馬家門口“搶人”
最新活動(dòng)更多
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 【限時(shí)下載】ADI中國(guó)三十周年感恩回饋助力企業(yè)升級(jí)!
推薦專題
- 1 阿里首位程序員,“掃地僧”多隆已離職
- 2 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 3 宇樹機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 5 踢館大廠和微軟,剖析WPS靈犀的AI實(shí)用主義
- 6 特朗普要求英特爾首位華人 CEO 辭職
- 7 AI版“四萬(wàn)億刺激”計(jì)劃來(lái)了
- 8 騰訊 Q2 財(cái)報(bào)亮眼:AI 已成第二增長(zhǎng)曲線
- 9 谷歌吹響AI沖鋒號(hào),AI還有哪些機(jī)會(huì)
- 10 騰訊米哈游押寶的中國(guó)AI應(yīng)用,正在海外悶聲發(fā)財(cái)