国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        使用Tensorflow+OpenCV構建會玩石頭剪刀布的AI

        2020-06-09 11:37
        磐創AI
        關注

        我已經使用DenseNet121模型進行特征提取,其輸出最終將輸入到我自己的Dense神經網絡中。

        densenet = DenseNet121(include_top=False, weights='imagenet', classes=3,input_shape=(300,300,3))

        densenet.trainable=True

        def genericModel(base):

        model = Sequential()

        model.add(base)

        model.add(MaxPool2D())

        model.add(Flatten())

        model.add(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

        關鍵點 :由于我們的圖片尺寸為300x300,因此指定的輸入形狀也為3x300x300,3代表RGB的維度信息,因此該層具有足夠的神經元來處理整個圖像。我們將DenseNet層用作第一層,然后使用我們自己的Dense神經網絡。我已將可訓練參數設置為True,這也會重新訓練DenseNet的權重。盡管花了很多時間,但是這給了我更好的結果。我建議你在自己的實現中嘗試通過更改此類參數(也稱為超參數)來嘗試不同的迭代。由于我們有3類Rock-Paper-Scissor,最后一層是具有3個神經元和softmax激活的全連接層。最后一層返回圖像屬于3類中特定類的概率。如果你引用的是GitHub repo(https://github.com/HOD101s/RockPaperScissor-AI-) 的train.py,則要注意數據準備和模型訓練!至此,我們已經收集了數據,建立并訓練了模型,剩下的部分是使用OpenCV進行部署OpenCV實現:此實現的流程很簡單:啟動網絡攝像頭并讀取每個幀將此框架傳遞給模型進行分類,即預測類用電腦隨意移動計算分數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.argmax(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

        上面的代碼片段包含相當重要的代碼塊,其余部分只是使游戲易于使用,RPS規則和得分。所以我們開始加載我們訓練過的模型,它在開始程序的預測部分之前顯示倒計時,預測后,分數會根據球員的動作進行更新。

        我們使用cv2.rectangle()顯式地繪制目標區域,使用prepImg()函數預處理后,只有幀的這一部分傳遞給模型進行預測。

        結論:我們已經成功地實現并學習了這個項目的工作原理,所以請繼續使用我的實現進行其它實驗學習。我做的一個主要的改進可能是增加了手部檢測,所以我們不需要顯式地繪制目標區域,模型將首先檢測手部位置,然后進行預測。我鼓勵你改進這個項目,并給我你的建議。精益求精!

        <上一頁  1  2  3  
        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 色99999| 精品熟女999| 影音先锋资源在线| 午夜被窝网| 欧美丰满少妇猛烈进入A片蜜桃| 69堂在线观看线无码视频一| 中阳县| 五月婷婷影院| 手游| 亚洲AV熟女| 靖边县| 久久av高潮av| AV色综合| 色婷婷色| 欧美射图| 亚州成人AV| 成人A在线播放| 欧美Aⅴ| 69人妻人人澡人人爽人人精品| 亚洲第1色电影。| 欧美午夜福利| 岛国在线无码| 文安县| 91资源在线观看| 日本99视频| 古蔺县| 美女成人网站| 男人天堂一区二区| 观塘区| 丰县| 久久精品| 郯城县| 怀柔区| 狼人久久乐| 亚洲精品一区中文字幕乱码| 色婷久久| 大足县| 伊人网视频| 天海翼一区| 岛国在线视频| 色窝视频|