基于可见光的巡航——目标检测+跟踪

该项目利用YOLOV8进行目标检测,SORT实现目标跟踪,应用于电力巡检中确保供电安全。代码可在AidLux平台上获取,支持手机等移动设备部署。用户需将tflite模型部署到设备上,进行摄像头或图片的目标识别与跟踪。
摘要由CSDN通过智能技术生成

基于可见光的巡航——目标检测+跟踪

项目简介

目录

基于可见光的巡航——目标检测+跟踪

项目简介

项目方案

作业要求

目标检测项目上传和运行

摄像头检测

图像检测

目标跟踪

电力巡检主要是对电力部件、异物进行巡检,保障电力系统的供电安全

项目方案

本次项目主要使用yolov8进行目标检测,使用sort进行目标跟踪

项目代码可从AidLux微信公众号获取

部署代码:AidLux_2304_electric_power/YOLOv8_AidLux at main · darwintk/AidLux_2304_electric_power · GitHub

部署模型:8086_best_float32.tflite

模型百度网盘链接:百度网盘 请输入提取码 提取码:zxoo

作业要求

  • 将提供的tflite模型部署在手机或其他移动设备端,读取本地图片或调用手机摄像头进行识别

目标检测项目上传和运行

摄像头检测

YOLOv8_AidLux代码对应着yolov8目标检测在AidLux上的部署代码

修改yolov8_cls48.py,中的model_path后,可以通过手机后置摄像头对目标进行识别

效果如下:

AidLux训练营

图像检测

yolov8_cls48.py的基础上修改出yolov8_cls48_img.py,并运行即可对本地图片进行检测,代码如下:

# aidlux相关
from cvs import *
import aidlite_gpu
from utils import detect_postprocess, preprocess_img, draw_detect_res, scale_boxes
import time
import cv2
​
# tflite模型
model_path = '/home/code/YOLOv8_AidLux/models/best_float32.tflite'
# 定义输入输出shape
in_shape = [1 * 640 * 640 * 3 * 4]  # HWC, float32
out_shape = [1 * 8400 * 52 * 4]  # 8400: total cells, 52 = 48(num_classes) + 4(xywh), float32
​
# AidLite初始化
aidlite = aidlite_gpu.aidlite()
# 载入模型
res = aidlite.ANNModel(model_path, in_shape, out_shape, 4, 0)
print(res)
​
''' 读取本地图片 '''
image_path = "/home/code/YOLOv8_AidLux/samples/000000.jpg"
image = cv2.imread(image_path)
''' 读取本地视频 '''
# cap = cvs.VideoCapture('/codes/Face_Rec/test/videos/Kuangbiao2.mp4')
''' 读取手机后置摄像头 '''
# cap = cvs.VideoCapture(0)
frame = image
time0 = time.time()
sz = frame.shape
print(sz)
# 预处理
img = preprocess_img(frame, target_shape=(640, 640), div_num=255, means=None, stds=None)
frame_id = 0
aidlite.setInput_Float32(img, 640, 640)
# 推理
aidlite.invoke()
preds = aidlite.getOutput_Float32(0)
preds = preds.reshape(1, 52, 8400)
preds = detect_postprocess(preds, frame.shape, [640, 640, 3], conf_thres=0.25, iou_thres=0.45)
print('1 batch takes {} s'.format(time.time() - time0))
if len(preds) != 0:
        preds[:, :4] = scale_boxes([640, 640], preds[:, :4], frame.shape)
        frame = draw_detect_res(frame, preds)
cvs.imshow(frame)
cv2.imwrite("./out/frame_best_float32.jpg",frame)

检测结果如下:

目标跟踪

目标跟踪需要安装依赖库,具体见YOLOv8_AidLux/sort/requirement.txt

其中lap可能会安装失败,建议使用lap源码安装,具体参考lap源码安装

配置好环境后,修改yolov8_cls48_sort.py文件中的模型路径并运行,可得到下面的结果:

 

AidLux4月训练营

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值