回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

【灵感数字组】看那片浪花,是AI独有的快乐 简单

头像 _深蓝_ 2026.04.14 16 0

一、项目介绍

1.项目背景

打开https://elgoog.hk/dinosaur-game/surfing/ 网址我们简单上手恐龙小游戏,这里有多种场景,如恐龙马术,恐龙游泳还有我们今天的的场景恐龙冲浪版本,他们都来自Google Chrome的断网小游戏(打开Google Chrome浏览器,地址栏输入 chrome://dino)。

我打算使用mind+ v2的目标识别训练模型,让小恐龙拥有自己的视觉,观察到来的礁石并跳跃躲避。

2.成果视频

3.项目设计

为了达到我们的目标,本项目首先收集足够多的数据,每个需要识别的标签数据不能少于50张,接着需要清洗图片,将无用或者没有拍全,不符合要求的图片清洗掉,标注目标图片中出现的标签,之后训练模型,训练结果可以通过训练工具中的校验查看训练模型的识别效果和泛化能力。最后通过mind+ v2部署该模型,让小恐龙识别礁石并完成躲避。因此本项目需要以下三个部分的知识储备才能完成。综合以上步骤我们总结如下

a.数据采集与清洗:我们采用录屏,并使用播放工具截屏或者微信截屏的方法采集照片,也可以使用python脚本制作图片采集器,无论哪一种必须要满足图片数据采集的要求,务必多采集几个,在图片清洗中会删去。

b.标注数据:将清洗后的数据标注好目标内容,需要标注全部图片。

c.训练模型:使用mind+ v2的模型训练工具(目标检测工具)将标注的内容训练后导出,也可以通过校验,验证训练模型的好坏。

d.部署模型到电脑:使用mind+ python 积木模式使用训练好的模型,编写代码,让小恐龙识别冲浪中的礁石。

4.项目实现流程

图片.png

二、数据训练过程

1.采集图片

打开网址,并手动玩游戏,期间打开office自带的powerpoint,使用录屏功能录制玩游戏的过程。并另存为.mp4文件备用。

图片.png

使用win+shift+q键停止录制,再次使用播放器自带截图工具,或者是微信截图工具截取有小恐龙、礁石和白云的图片,图片尺寸尽量选择正方形如224×224px或者320×320px,为了使样本尺寸多样性,也可以使用其他尺寸,但是后期的训练过程中很难训练出好的模型。或者使用python写的脚本批量截取读片,后期可以进行编辑,以适用图片数据的要求。

如果是现实拍摄的物品,请参照如下规则

图片.png

2.筛选图片数据

预处理采集的数据,避免后期重复返工。首先将图片尺寸和范围进行编辑,将出现的多种目标多角度进行采集。接着删除没有目标的图像,避免标注错误。

图片.png

3.上传数据

将处理好的数据上传到mind+ v2 目标检测工具中。

图片.png
图片.png

图片.png

图片.png

选择无标注数据——点击选择文件——打开的窗口中选择即可——点击上传数据后的返回标志,接下来标注数据。

4.数据标注

4.1.点击数据标注,打开数据标注窗口。

4.2.创建小恐龙(dino)、白云(cloud)、礁石(rock)的标签。

4.3.分别点击小恐龙等标签,框选小恐龙等元素的位置。

4.4.如果画面有其他标签的动物,选择标签后,框选出小动物的位置。

标注后关闭标注窗口

图片.png
图片.png

5.数据训练

点击训练即可训练模型,其中参数按照默认即可,如下是关于高级设置的内容介绍

图片大小:需要32px的倍数

批大小:一次送入模型里训练的数据样本数量。当数据很多时,一次把数据都送进去,计算机算不过来,因此就分成一批一批来学习。例如,默认批大小为16,每次训练用16张图片。

训练轮次:所有训练数据完整地送入模型学习一遍,叫做一轮。学习一遍可能会不够牢固,要重复多次训练才能记住规律。例如,默认训练轮次为100,模型会将数据集从头到尾学习100遍。推荐训练轮次为 20 次以上。若为小数据集(每类样本 20-50 张),可适当减小至 15-20 次,以避免过拟合;关于什么是过拟合,由米菲爸爸制作的帖子有详细的说明。(Mind+ V2 模型训练中的目标检测训练图怎么看 https://makelog.dfrobot.com.cn/article-319188.html)

优化器:优化器时用于决定模型在训练过程中如何更新参数,也就是每次学习之后,要往哪个方向走,走多少步。优化器决定了模型训练的效率和效果。默认为:auto

图片.png

6.学会观察可视化训练结果参数

我们除了等待训练外,还可以训练下方的深入了解,可视化训练的过程。

图片.png

了解如下内容可以训练有效的模型。

训练损失(train loss):训练损失是模型在 训练数据 上的预测误差,损失越小,说明模型对训练数据的预测越准确。

验证损失(val loss):验证损失是模型在 验证数据(未用于训练的数据)上的预测误差,验证损失持续下降,模型泛化能力在提升。

验证集平均精度(Val mAP50):表示在验证集上,当预测框和真实框的重叠率大于一半(50%)时,预测才算正确。数值越高,说明模型识别得越准。

图片.png

直到训练完成后我们就可以看到训练已完成的提示,接着我们先验证训练的模型的效果,

7.模型校验

7.1训练模型自带校验工具:

选择一张非数据集的图片,上传即可看到使用我们训练的模型检测到的目标,以及可信度,

如果训练的模型是可用的,点击导出模型,解压模型中的文件备用。解压文件如下所示:

图片.png

7.2 使用mind+图形化python程序检验模型:

除了使用模型自带的工具检测模型之外我们还可以使用mind+编辑一个图片识别的程序,验证我们模型的目标识别结果。

程序如下:

代码
#  -*- coding: UTF-8 -*-
#  MindPlus V2
#  python-block
from model_mp_io import IO_Windows
from model_mp_io import ImageReader
from model_mp_io import ImageWriter
from model_mp_core import ObjectDetectionInference

# 主程序开始
detection_img_output = ImageWriter()
windows_name = IO_Windows()
inference = ObjectDetectionInference(get_asset_path_by_name("best.onnx"), get_asset_path_by_name("data.yaml"))
image_reader = ImageReader(source=get_asset_path_by_name("image.png"))

while True:
    img = image_reader.read_frame()
    result_output = inference.inference(img)
    img = detection_img_output.draw(img, result_output)
    windows_name.open_window("windows1")
    windows_name.show(img, "windows1")
    windows_name.wait_key()
    if len(result_output['result']) > 0:
        print(len(result_output['result']))
        print(result_output['result'][0]["bbox"][0])

运行程序前,点击资源文件,并上传资源所需的训练文件和测试图片。

图片.png
图片.png

运行后如下图所示,将框选出画面中的目标,并标注可信度,可信度越高识别越准确。

图片.png

就可以部署到电脑或者硬件如行空板上了。

三、编写程序并调试运行

(一)程序运行流程

这里我们修改了部分云天大佬的程序,以适应我的模型要求。整个程序的运行流程如下

图片.png

(二)主要代码解释

1.导入各种依赖工具

代码
import cv2
import numpy as np
import time
import pyautogui
from PIL import ImageGrab 
from model_mp_io import IO_Windows, ImageWriter
from model_mp_core import ObjectDetectionInference 

2.游戏可调参数

代码
DINO_X = 182             # 小恐龙固定的X坐标
JUMP_DISTANCE = 350      # 障碍物离恐龙多远时跳
JUMP_COOLDOWN_MS = 500   # 跳跃冷却(防止连跳)
SCREEN_REGION = None     # 截图范围(全屏)
DEBUG = True             # 开启调试打印

3.加载训练的模型

代码
inference = ObjectDetectionInference(
    get_asset_path_by_name("best.onnx"),
    get_asset_path_by_name("data.yaml")
)

4.创建窗口工具

代码
windows_name = IO_Windows()
detection_img_output = ImageWriter()
WINDOW_TITLE = "Dino Auto Jump"
cv2.namedWindow(WINDOW_TITLE, cv2.WINDOW_NORMAL)

5.截屏并检测所有目标

代码
windows_name = IO_Windows()
detection_img_output = ImageWriter()
WINDOW_TITLE = "Dino Auto Jump"
cv2.namedWindow(WINDOW_TITLE, cv2.WINDOW_NORMAL)
result_output = inference.inference(img)

6.只找到离恐龙最近的礁石,并获取x值

代码
cactus_detected = False
closest_x1 = float('inf')
if class_name.lower() in ['rock', '礁石']:
x1 = bbox[0]

7.重点是小恐龙跳跃条件(当礁石与小恐龙的距离小于跳跃距离且已过冷却时间)

代码
distance = closest_x1 - DINO_X
if distance <= JUMP_DISTANCE and (current_time - last_jump_time) > JUMP_COOLDOWN_MS:
pyautogui.press('space')

15.gif

 

四、遇到的问题及项目迭代

 

在训练个人项目时,我遇到了许多问题,在这里感谢df技术支持,主要有如下问题,供网友填坑。

 

1.运行程序时,小黑窗提示没有pyautogui模块

图片.png

解决方法:打开mind+扩展,搜索pyautogui,下载即可后台安装。

图片.png

2.使用模型,将恐龙识别为仙人掌或者纯粹没有识别。

 

图片.png
图片.png

解决方法:使用与训练模型相同大小的图片进行测试,本图片是长条形状,经过处理后形成扁平的形状与仙人掌是类似的。没有识别也是图片大小不同的缘故。

 

3.游戏窗口大小改变了游戏界面像素,需要调整恐龙位置和触发跳跃的距离才能正确运行。

 

图片.png
图片.png

解决方法:通过打开调试信息,得到小恐龙的位置信息。并且通过多次尝试确定最稳定的跳跃距离。

 

4.通过调试信息,我发现同一个礁石被识别到的间距是100-300像素,也就是从就是说从上一次识别到同一块礁石到本次识别,礁石移动了约100-300像素的距离。这个距离对于跳跃距离很重要,对于程序也很重要。如果触发跳跃距离小于100,那永远不会触发跳跃。

调试信息如下所示:

 

 

 

代码
检测项字段: dict_keys(['bbox', 'class_id', 'class_name', 'score', 'result_id'])
检测到 rock,置信度 0.7471,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.747,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7472,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7472,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7472,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7472,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.747,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7465,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7475,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7477,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7471,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7472,左边缘 X=655
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7814,左边缘 X=659
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7051,左边缘 X=846
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8042,左边缘 X=897
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.538,左边缘 X=907
检测到 rock,置信度 0.2946,左边缘 X=696
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6482,左边缘 X=908
检测到 rock,置信度 0.3577,左边缘 X=698
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7924,左边缘 X=914
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7961,左边缘 X=921
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8112,左边缘 X=922
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7811,左边缘 X=922
检测到 rock,置信度 0.2529,左边缘 X=702
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7723,左边缘 X=922
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7724,左边缘 X=922
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7716,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.597,左边缘 X=961
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6416,左边缘 X=1020
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6379,左边缘 X=1019
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6377,左边缘 X=1019
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6381,左边缘 X=1019
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6381,左边缘 X=1019
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6929,左边缘 X=1278
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5171,左边缘 X=1125
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6844,左边缘 X=982
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.526,左边缘 X=826
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4158,左边缘 X=680
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6196,左边缘 X=1146
检测到 rock,置信度 0.4059,左边缘 X=485
   → 跳跃!距离=303 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8032,左边缘 X=899
检测到 rock,置信度 0.5544,左边缘 X=231
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8422,左边缘 X=706
检测到 rock,置信度 0.4693,左边缘 X=33
   → 跳跃!距离=-149 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8338,左边缘 X=417
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8267,左边缘 X=223
   → 跳跃!距离=41 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3613,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3605,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3613,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3643,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3668,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3646,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.364,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3648,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3643,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3643,左边缘 X=920
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5641,左边缘 X=1363
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4037,左边缘 X=1206
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7646,左边缘 X=1049
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6159,左边缘 X=892
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8286,左边缘 X=734
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6341,左边缘 X=579
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7094,左边缘 X=420
   → 跳跃!距离=238 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.427,左边缘 X=143
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.624,左边缘 X=1285
检测到 rock,置信度 0.5117,左边缘 X=513
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7563,左边缘 X=328
   → 跳跃!距离=146 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5537,左边缘 X=841
检测到 rock,置信度 0.449,左边缘 X=60
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4849,左边缘 X=666
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3975,左边缘 X=483
   → 跳跃!距离=301 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6941,左边缘 X=1110
检测到 rock,置信度 0.3823,左边缘 X=225
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6904,左边缘 X=951
检测到 rock,置信度 0.2867,左边缘 X=65
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5354,左边缘 X=764
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6782,左边缘 X=612
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4545,左边缘 X=466
   → 跳跃!距离=284 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3627,左边缘 X=176
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7925,左边缘 X=756
检测到 rock,置信度 0.6469,左边缘 X=2
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.2885,左边缘 X=580
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7829,左边缘 X=419
   → 跳跃!距离=237 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4178,左边缘 X=838
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5108,左边缘 X=1346
检测到 rock,置信度 0.3205,左边缘 X=637
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5385,左边缘 X=1151
检测到 rock,置信度 0.4884,左边缘 X=434
   → 跳跃!距离=252 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4696,左边缘 X=182
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3146,左边缘 X=3
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7269,左边缘 X=1104
检测到 rock,置信度 0.3446,左边缘 X=535
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.541,左边缘 X=384
   → 跳跃!距离=202 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7509,左边缘 X=1280
检测到 rock,置信度 0.5279,左边缘 X=698
检测到 rock,置信度 0.4063,左边缘 X=132
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6723,左边缘 X=1105
检测到 rock,置信度 0.2872,左边缘 X=526
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6154,左边缘 X=343
   → 跳跃!距离=161 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5555,左边缘 X=663
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7757,左边缘 X=510
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5793,左边缘 X=337
   → 跳跃!距离=155 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6667,左边缘 X=793
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7103,左边缘 X=626
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6672,左边缘 X=471
   → 跳跃!距离=289 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6195,左边缘 X=203
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6486,左边缘 X=891
检测到 rock,置信度 0.585,左边缘 X=5
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.594,左边缘 X=701
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4909,左边缘 X=557
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6117,左边缘 X=388
   → 跳跃!距离=206 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4714,左边缘 X=122
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4087,左边缘 X=812
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5389,左边缘 X=1303
检测到 rock,置信度 0.5073,左边缘 X=639
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7182,左边缘 X=1143
检测到 rock,置信度 0.4277,左边缘 X=484
   → 跳跃!距离=302 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8691,左边缘 X=900
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5448,左边缘 X=72
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8216,左边缘 X=558
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.3888,左边缘 X=1242
检测到 rock,置信度 0.3692,左边缘 X=401
   → 跳跃!距离=219 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6183,左边缘 X=997
检测到 rock,置信度 0.2825,左边缘 X=154
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4575,左边缘 X=1
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4597,左边缘 X=1426
检测到 rock,置信度 0.3271,左边缘 X=658
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5081,左边缘 X=1272
检测到 rock,置信度 0.4014,左边缘 X=504
   → 跳跃!距离=322 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7056,左边缘 X=1005
检测到 rock,置信度 0.5363,左边缘 X=240
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4927,左边缘 X=75
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6093,左边缘 X=671
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.686,左边缘 X=1301
检测到 rock,置信度 0.41,左边缘 X=512
   → 跳跃!距离=330 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4633,左边缘 X=1065
检测到 rock,置信度 0.4568,左边缘 X=271
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6822,左边缘 X=880
检测到 rock,置信度 0.5896,左边缘 X=88
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8645,左边缘 X=704
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7404,左边缘 X=1284
检测到 rock,置信度 0.6462,左边缘 X=547
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7123,左边缘 X=1124
检测到 rock,置信度 0.3456,左边缘 X=393
   → 跳跃!距离=211 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5237,左边缘 X=840
检测到 rock,置信度 0.3908,左边缘 X=97
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7561,左边缘 X=646
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7612,左边缘 X=453
   → 跳跃!距离=271 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.4625,左边缘 X=184
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.6838,左边缘 X=23
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8062,左边缘 X=1141
检测到 rock,置信度 0.3728,左边缘 X=531
   → 跳跃!距离=349 像素
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.8308,左边缘 X=853
检测到 rock,置信度 0.3307,左边缘 X=244
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.5537,左边缘 X=686
检测到 rock,置信度 0.5483,左边缘 X=83
[Detection] Original image shape: (1080, 1920)
检测到 rock,置信度 0.7693,左边缘 X=507
   → 跳跃!距离=325 像素

解决方法:我认为这个跟电脑运行速度有关系,使用更高速的计算机,可以加快程序截图的和推理的时间,从而减小每次检测到礁石的时间间隔,可以更密集的检测礁石的运动。

五、附件

1.采集训练用图片

2.训练后的模型

3.训练模型文件

4.程序文件

评论

user-avatar