使用Tensorflow+OpenCV构建会玩石头剪刀布的AI

本文介绍了如何利用深度学习和图像分类技术创建一个石头剪刀布游戏AI。通过收集和处理数据,使用迁移学习建立模型,特别是DenseNet121,然后使用OpenCV进行实时部署。项目代码可在作者的Github上找到。
摘要由CSDN通过智能技术生成

这个项目的代码可以在我的Github上找到

  • https://github.com/HOD101s/RockPaperScissor-AI-

简介

这个项目的基础是深度学习和图像分类,目的是创建一个简单而有趣的石头剪刀布游戏。首先,这个项目是我在5月份的COVID19隔离期中无聊的产物,希望当你读到这个时,一切都恢复正常了。我的目的是通过这篇文章用简单的术语向初学者解释这个项目的基本原理。让我们开始吧!

在构建任何类型的深度学习应用程序时,有三个主要步骤:

  1. 收集和处理数据

  2. 建立一个合适的人工智能模型

  3. 部署使用

整个项目都引用了我的Github repo,并与之携手并进,所以请做好参考准备。

项目地址:https://github.com/HOD101s/RockPaperScissor-AI-

收集我们的数据

任何深度学习模型的基础都是数据,任何一位机器学习工程师都会同意这一点,在ML中,数据远比算法本身重要。我们需要收集石头,布和剪刀的符号图像,我没有下载别人的数据并在上面进行训练,而是制作了自己的数据集,鼓励你也建立自己的数据集。之后尝试更改数据并重新训练模型,以查看数据对深度学习模型究竟有怎样的影响。

PATH = os.getcwd()+'\\'
cap = cv2.VideoCapture(0)

label = sys.argv[1]

SAVE_PATH = os.path.join(PATH, label)

try:
    os.mkdir(SAVE_PATH)
except FileExistsError:
    pass

ct = int(sys.argv[2])
maxCt = int(sys.argv[3])+1
print("Hit Space to Capture Image")

while True:
    ret, frame = cap.read()
    cv2.imshow('Get Data : '+label,frame[50:350,100:450])
    if cv2.waitKey(1) & 0xFF == ord(' '):
        cv2.imwrite(SAVE_PATH+'\\'+label+'{}.jpg'.format(ct),frame[50:350,100:450])
        print(SAVE_PATH+'\\'+label+'{}.jpg Captured'.format(ct))
        ct+=1
    if ct >= maxCt:
        break

cap.release()
cv2.destroyAllWindows()

我使用了Python的OpenCV库进行所有与相机相关的操作,所以这里的label指的是图像属于哪个类,根据标签,图像保存在适当的目录中。ct和maxCt是用来保存图像的起始索引和最终索引,剩下的是标准的Ope

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值