其他
送书 10 本丨敢跟我 PK 接球游戏吗?让你两只手!
点击左上方蓝字关注我们
项目效果
项目使用工具简介
项目开发过程介绍
01
安装PaddleX
02
准备训练数据集
path1 = 'jpg/'
path2 = 'xml/'
# 获取dir
dir1 = os.listdir(path1)
f_train = open('train_list.txt', 'w')
f_val = open('val_list.txt', 'w')
for i in dir1:
if int(i.split('.')[0])%30 == 0:
f_val.write(path1+i.split('.')[0]+'.jpg '+path2+i.split('.')[0]+'.xml'+'\n')
else:
f_train.write(path1+i.split('.')[0]+'.jpg '+path2+i.split('.')[0]+'.xml'+'\n')
f_train.close()
f_val.close()
03
导入PaddleX并指定0号GPU卡
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
import paddlex as pdx
04
数据预处理
train_transforms = transforms.Compose([
transforms.MixupImage(mixup_epoch=250),
transforms.RandomDistort(),
transforms.RandomExpand(),
transforms.RandomCrop(),
transforms.Resize(target_size=608, interp='RANDOM'),
transforms.RandomHorizontalFlip(),
transforms.Normalize(),
])
eval_transforms = transforms.Compose([
transforms.Resize(target_size=608, interp='CUBIC'),
transforms.Normalize(),
])
data_dir='dataset',
file_list='dataset/train_list.txt',
label_list='dataset/labels.txt',
transforms=train_transforms,
shuffle=True)
eval_dataset = pdx.datasets.VOCDetection(
data_dir='dataset',
file_list='dataset/val_list.txt',
label_list='dataset/labels.txt',
transforms=eval_transforms)
05
定义YOLOv3网络并开始炼丹
model=pdx.det.YOLOv3(num_classes=num_classes, backbone='DarkNet53')
model.train(
num_epochs=100,
train_dataset=train_dataset,
train_batch_size=8,
eval_dataset=eval_dataset,
learning_rate=0.0001,
warmup_steps=500,
lr_decay_epochs=[50,90],
save_interval_epochs=20,
save_dir='output/yolov3_darknet53')
06
对模型进行测试
result = model.predict(image_name)
pdx.det.visualize(image_name,result, threshold=0.5, save_dir='PrePicture')
07
对游戏进行控制
# 定义参数
distance = 1 # 鼠标移动distance距离,可以调整
image_name = '0.jpg' # 截屏得到的图片
# 启动火狐浏览器
driver = selenium.webdriver.Firefox()
while True:
window_capture(image_name)
result = model.predict(image_name)
# 计算球的中心和板子的中心
center_x1 = result[0]['bbox'][0]+result[0]['bbox'][2]/2
center_y1 = result[0]['bbox'][1]+result[0]['bbox'][3]/2
center_x2 = result[1]['bbox'][0]+result[1]['bbox'][2]/2
center_y2 = result[1]['bbox'][1]+result[1]['bbox'][3]/2
# 实现控制
if(center_x1>center_x2):
driver.execute(Command.MOVE_TO,{'xoffset':distance,'yoffset':0})
else:
driver.execute(Command.MOVE_TO,{'xoffset':-distance,'yoffset':0})
项目小结
·飞桨PaddleX 项目地址·GitHub: https://github.com/PaddlePaddle/PaddleX Gitee: https://gitee.com/paddlepaddle/PaddleX
·PaddleX官方文档·
https://paddlex.readthedocs.io/zh_CN/develop/index.html
·PaddleX官网地址·
https://www.paddlepaddle.org.cn/paddle/paddlex
END
福利:本周,开源中国 联合 华章 为大家带来 2 本关于 Kotlin 的书籍,可以送 10 本给大家,快来目睹一下这 2 本书的风采吧!
1
Kotlin编程实践
本书基于成熟的Kotlin 1.3版编写,是开发者可以快速入门 Kotlin 的超棒资源,为常见的开发任务提供了简明实用的指南,同时指出了从Java过渡到Kotlin面临的困难。由携程机票移动端高级工程师、Kotlin中文社区成员、Kotlin官方文档译者乔禹昂翻译。
2
深入理解Kotlin协程
这是一部从工作机制、实现原理、应用场景、使用方法、实践技巧、标准库、框架、应用案例等多个维度全面讲解Kotlin协程的专著,它同时提供了多语言视角,亦可通过本书了解其他语言的协程。本书作者是腾讯高级工程师、国内知名Kotlin开发者和布道师、“Kotlin”公众号作者。
送书大福利
2020.8.27—2020.8.29
参与方式:留言送 10 本书
1、留言话题 1:说说 Kotlin 主要优势及应用场景
2、留言话题 2:你是如何学习 Kotlin 的?&其他和 Kotlin 相关的话题
3、留言点赞数排名第1,3,5,7,9,11,13,15,17,19。可获得以上任意一本正版图书,先到先得。
4、开奖时间:2020.8.29 20:00
▼ 往期精彩回顾 ▼两个月新增 80 万行代码,Linux 内核维护为什么不会崩?
TypeScript 4.0 发布
被盯上了?美国知名媒体 TechCrunch 关注中国建设独立开源平台 Gitee以假乱真?加州伯克利分校的学生用 GPT-3 生成伪文章成功骗得 26000 访问
2019 年 Dota2 比赛中,AI 战胜世界冠军的最强算法在这里!
觉得不错,请点个在看呀