YOLOv8(You Only Look Once)是YOLO系列中的最新版本,在目标检测任务中表现出色,其高效的速度和优秀的检测性能使其成为许多应用场景中的首选工具。YOLOv8可以用于“找图”任务,即图像检索或图像识别任务中的目标检测环节。
yolov8可以实现哪些任务
yolov8可以实现如下等任务:
找图
通常情况下一般使用opencv的模板匹配来实现找图,但是准确度和效率都太低了,很难完成比较复杂的任务,比如:在游戏中找图,由于游戏是动态的,进一步增加了找图的难度,此时使用yolov8就可以很容易解决。再比如匹配短视频app中的某些按钮图片等,由于视频是动态的,所以opencv出错的概率比较大,使用yolov8效果非常出色。
匹配滑块
我们在使用各种app中,有时候会遇到各种各样的滑块验证,很麻烦,需要手工滑到指定的匹配位置。此时使用yolov8,大量采集这些滑块,用于模型训练,最后使用训练出来的数据来识别滑块位置,可以直接实现自动化匹配,效率非常高
Yolo在冰狐中使用的例子
在冰狐中使用yolov8,非常简单,具体代码如下所示:
例子:使用yolo识别当前手机的界面
function main() {
requestLockScreen();
var yolo = new YoloV8();
// model_name替换成自己的模型名,class1,class2为目标的类别名
var b = yolo.init('/sdcard/model_name', ['class1', 'class2'])
console.log('b:', b)
// 会自动截屏,然后检测截图,识别目标
var r = yolo.detect();
console.log('r', r)
}
Yolov8的开发文档
YoloV8
YoloV8构造函数。
参数:
init
初始化,返回boolean。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
modelName | string | 必填 | 模型名字,可以带路径,注意不要加后缀名。支持全路径、相对路径和资源文件。文件全路径,比如:/sdcard/model_name。相对路径,是相对手机外部存储目录,比如:model_name,该文件存储在手机外部存储目录下。资源路径,打包时把文件添加到apk,使用asset:来访问,比如:asset:model_name。点击这里查看如何训练模型 |
categoryList | 数组 | 必填 | 训练模式时,训练的目标类别名数组,比如['苹果','橘子'],注意顺序。 |
detect
检测目标。返回数组,比如:[{left:10, top:10, width:99, height: 100, prob:0.98, label: '苹果'}],prob表示识别出苹果的概率为98%。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
probThreshold | float | 选填 | 概率阈值,低于了这个阈值不返回。默认为0.45 |
nmsThreshold | float | 选填 | nms阈值,低于了这个阈值不返回。默认为0.65 |
bitmap | Bitmap | 选填 | 位图,默认为null。如果为null,则使用截图识别 |
总结
YoloV8在找图任务中具有显著的优势和广泛的应用前景。通过充分利用其高效的速度和优秀的检测性能,我们可以实现更加准确和快速的图像检索或图像识别任务。