[发疯毕设日志day6]火影结印使大疆tello起飞——数据集采集和yolov5模型训练

1.采集数据集

        根据day5(下)的代码采集了一组数据集,共有6个动作。最后一个动作我做了调整,因为tello摄像头的分辨率较低,动作6和动作2有可能会识别混乱。

 2.数据标注

        用那个著名的数据标注软件

3.训练自己的yolov5模型

进入yolo文件  进入data

进入coco128复制一份,改成自己的名字 

用vs or pycharm打开

path:#数据相对于yolov5那个文件所在的目录

最后训练的结果大概就是这个样子的

4.遇到的问题

ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。

解决方法参见

Python ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接.(就是链接数据库出现的问题自己连着断掉了)_connectionabortederror: [winerror 10053] 你的主机中的软件中-优快云博客

5.后续工作备忘

把自己的数据集训练的模型复制一份到课程附件里的模型中

### 使用YOLOv5实现大疆Tello无人机目标检测 #### 准备工作 对于使用YOLOv5进行大疆Tello无人机上的目标检测,准备工作至关重要。这不仅涉及软件环境的配置,还包括硬件设备的选择以及必要的飞行安全措施[^2]。 #### 软件安装与配置 要让YOLOv5能够在搭载于大疆Tello无人机上运行并完成目标检测的任务,需先设置好开发环境。推荐按照官方文档指导,在本地计算机上建立Python虚拟环境,并通过pip工具安装依赖库,包括但不限于`opencv-python`, `numpy` `torchvision`等机器学习框架支持包。此外,还需克隆YOLOv5 GitHub仓库至本地项目目录内以便后续调用其API接口来构建自定义的应用程序逻辑。 #### 数据收集与预处理 考虑到实际应用场景中的复杂性多样性,特别是当面对不同姿态下的物体时,应该专门创建一套适用于特定任务需求的数据集来进行模型训练前后的评估测试。具体来说就是利用Tello自带摄像头捕捉一系列带有标签信息的照片作为样本输入给神经网络学习;同时注意保持足够的代表性覆盖所有可能出现的情况,比如光照条件的变化、背景干扰因素的影响等等。在此基础上还可以考虑引入数据增强技术进一步扩充有效样本量以提高泛化能力[^3]。 #### 模型微调与优化 基于已有的YOLOv5架构基础之上做适当修改使之更贴合当前课题特点是非常有必要的一步操作。例如可以通过调整锚框尺寸参数适应新的比例关系;或是引入额外的正则项约束防止过拟合现象发生。另外值得注意的是如果想要获得更好的性能表现,则建议尝试更换更高阶别的GPU加速计算资源或者采用分布式训练的方式加快收敛速度缩短迭代周期[^1]。 #### 集成部署方案设计 最后阶段便是将经过充分验证过的最佳实践成果移植到真实世界里去发挥作用了。这里的关键在于找到一种既不影响原有功能又能顺利接入新特性之间的平衡点。一般情况下我们会选择把整个推理过程封装成RESTful API服务的形式对外暴露出来供其他业务模块按需调用;而对于实时性要求较高的场合而言也可以直接嵌入SDK内部成为原生组件的一部分共同运作起来。 ```python from tello import Tello import cv2 import numpy as np import torch from models.experimental import attempt_load from utils.general import non_max_suppression, scale_coords from utils.torch_utils import select_device def init_model(weights='yolov5s.pt', device=''): model = attempt_load(weights, map_location=device) # load FP32 model imgsz = 640 stride = int(model.stride.max()) # model stride names = model.module.names if hasattr(model, 'module') else model.names # get class names return model, imgsz, stride, names device = select_device(device='') model, imgsz, stride, names = init_model() drone = Tello() drone.connect() print(f"Battery: {drone.get_battery()}%") frame_read = drone.get_frame_read() while True: frame = frame_read.frame img = letterbox(frame, new_shape=imgsz, auto=True)[0] # Convert img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416 img = np.ascontiguousarray(img) img = torch.from_numpy(img).to(device) img = img.float() # uint8 to fp16/32 img /= 255.0 # 0 - 255 to 0.0 - 1.0 if img.ndimension() == 3: img = img.unsqueeze(0) pred = model(img, augment=False)[0] det = non_max_suppression(pred, conf_thres=0.25, iou_thres=0.45, classes=None, agnostic=False) for *xyxy, conf, cls in reversed(det[0]): label = f'{names[int(cls)]} {conf:.2f}' plot_one_box(xyxy, im0, label=label, color=colors(c), line_thickness=3) cv2.destroyAllWindows() drone.end() ```
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值