首页 > 其他分享 >如何使用YOLOv5进行玩手机和打电话检测,并提供详细的步骤和代码示例玩手机或者打电话进行识别 有数据集,已打好标框,10000张

如何使用YOLOv5进行玩手机和打电话检测,并提供详细的步骤和代码示例玩手机或者打电话进行识别 有数据集,已打好标框,10000张

时间:2024-12-08 12:30:46浏览次数:10  
标签:示例 detection phone train path images 手机 打电话 dir

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
yolov5玩手机打电话检测
pytorch框架
可以对图片或视频中的人物是否玩手机或者打电话进行识别
有数据集,已打好标框,10000张,在这里插入图片描述
在这里插入图片描述
好的,让我们继续细化如何使用YOLOv5进行玩手机和打电话检测,并提供详细的步骤和代码示例。

1. 数据集准备

1.1. 数据集结构

确保你的数据集按照以下结构组织:

phone_detection/
│
├── images/
│   ├── train/
│   ├── val/
│   └── test/
│
├── labels/
│   ├── train/
│   ├── val/
│   └── test/
│
└── data.yaml
1.2. 创建数据配置文件 (data.yaml)
train: ./phone_detection/images/train
val: ./phone_detection/images/val
test: ./phone_detection/images/test

nc: 2  # 类别数量(2类)
names: ['using_phone', 'calling']  # 类别名称

# 下载数据集
download: ''

2. 安装YOLOv5

确保你已经安装了YOLOv5。YOLOv5是YOLO系列的最新版本之一,可以从Ultralytics的GitHub仓库中获取。

git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt

3. 训练模型

3.1. 配置训练

使用YOLOv5进行玩手机和打电话检测。以下是一个示例命令:

python train.py --data ./phone_detection/data.yaml --img 640 --batch 16 --epochs 100 --name yolov5_custom_phone_detection --weights yolov5s.pt

4. 评估模型

4.1. 运行评估

在验证集上评估训练好的模型:

python val.py --data ./phone_detection/data.yaml --weights runs/train/yolov5_custom_phone_detection/weights/best.pt
4.2. 可视化结果

你可以使用val命令的--save标志来可视化结果:

python val.py --data ./phone_detection/data.yaml --weights runs/train/yolov5_custom_phone_detection/weights/best.pt --save

5. 示例代码

5.1. 数据预处理示例
import cv2
import os

def resize_images(input_dir, output_dir, size=(640, 640)):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    for filename in os.listdir(input_dir):
        if filename.endswith(('.jpg', '.png', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            img = cv2.imread(img_path)
            img_resized = cv2.resize(img, size)
            output_path = os.path.join(output_dir, filename)
            cv2.imwrite(output_path, img_resized)

# 示例用法
resize_images('./phone_detection/images/train', './phone_detection/images/train_resized')
resize_images('./phone_detection/images/val', './phone_detection/images/val_resized')
resize_images('./phone_detection/images/test', './phone_detection/images/test_resized')
5.2. 训练模型
import torch

# 确保YOLOv5路径正确
YOLO_PATH = 'path/to/yolov5'

# 加载YOLOv5模型
model = torch.hub.load(YOLO_PATH, 'custom', path='runs/train/yolov5_custom_phone_detection/weights/best.pt')

# 训练模型
model.train()
model.fit(data='phone_detection/data.yaml', imgsz=640, batch=16, epochs=100)
5.3. 评估模型
# 加载训练好的模型
model = torch.hub.load(YOLO_PATH, 'custom', path='runs/train/yolov5_custom_phone_detection/weights/best.pt')

# 评估模型
results = model.val(data='phone_detection/data.yaml', weights='runs/train/yolov5_custom_phone_detection/weights/best.pt', save=True)
print(results.metrics)

6. 其他建议

  • 数据增强:使用数据增强技术来提高模型的鲁棒性。YOLOv5支持多种数据增强方法,如翻转、旋转、裁剪等。
  • 模型集成:集成多个模型以提高性能。
  • 模型量化:量化模型以适应边缘设备。

7. 示例代码

7.1. 数据预处理示例
import cv2
import os

def resize_images(input_dir, output_dir, size=(640, 640)):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    for filename in os.listdir(input_dir):
        if filename.endswith(('.jpg', '.png', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            img = cv2.imread(img_path)
            img_resized = cv2.resize(img, size)
            output_path = os.path.join(output_dir, filename)
            cv2.imwrite(output_path, img_resized)

# 示例用法
resize_images('./phone_detection/images/train', './phone_detection/images/train_resized')
resize_images('./phone_detection/images/val', './phone_detection/images/val_resized')
resize_images('./phone_detection/images/test', './phone_detection/images/test_resized')

8. 运行和调试

确保你的环境配置正确,并且所有依赖项都已安装。运行模型训练和评估时,确保模型文件路径正确,并且数据集路径正确。

标签:示例,detection,phone,train,path,images,手机,打电话,dir
From: https://blog.csdn.net/QQ_1309399183/article/details/144285057

相关文章

  • ThreeJS入门(185):THREE.OrbitControls 知识详解,示例代码
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,webgl,ThreeJS,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第185篇入门文章......
  • ThreeJS入门(182):THREE.FirstPersonControls 知识详解,示例代码
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,webgl,ThreeJS,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第182篇入门文章......
  • 基于微信小程序的手机销售商城系统的设计与实现
    随着社会的发展和科学技术的不断进步,以计算机为基础的信息自动化处理变得越来越普及。信息技术的普及给人们工作生活带来了极大的便利。在各个领域中,计算机信息技术的应用已经变得非常的广泛化。在国内互联网市场的蓬勃发展中,线上销售商城已经逐渐成为了一个非常重要的电子商......
  • 当你更换手机号后新号还是收到类似骚然电话
    这个问题前提是,你使用的时安卓手机,手机不变的情况下,更换了手机号,依旧收到类似的骚扰电话或者类似的骚扰短信找到手机里的手机管家 以上是魅族手机,现在的手机里面都是有撤回隐私同意的选项的,各位可以找找因为本人在手机号更换手机没换的情况下,新手机号收到类似的营销短信,就是......
  • 实现手机和PC文件同步 GitLab和Termux
    整理文档发现好多文件在多个终端设备上都有存档,整理起来费劲。希望所有文件可以多设备同步,频繁编辑的文件最好还兼具版本管理的功能。从有限的个人经验里想到先搭建个GitLab在个人局域网里,把频繁编辑文件的同步和管理解决掉。目前的同步都在局域网内,安装过程(需网络),配置和同步......
  • BlueLM-V-3B:在手机上实现高性能多模态大型语言模型的创新路径
    目录一、前言二、方案概述三、技术创新1、动态图像分辨率优化2、硬件感知的系统优化3、令牌下采样4、模型量化与整体框架优化四、方案亮点五、性能展示1、宽松纵横比匹配效果2、不同基准测试中的表现3、部署效率评估六、应用场景1、智能语音助手2、图像识别与理解3、多......
  • 最新多项目必备:最强苹果iOS免越狱手机群控系统在多个应用场景中的优势
    随着移动设备管理需求的不断增长,如何高效管理和优化多个iPhone或iPad设备成为了企业和个人用户面临的共同挑战。最新的苹果iOS免越狱手机群控系统提供了一种安全、便捷且高效的解决方案,适用于从自媒体运营到跨境电商等多个领域。本章将详细介绍这款系统的强大功能及其在不同应用场......
  • 最强iOS手机免越狱群控系统:最新高清镜像投屏与多设备管理的新工具
    随着移动设备管理需求的不断增长,如何高效管理和优化多个iPhone或iPad设备成为了企业和个人用户面临的共同挑战。最新的苹果iOS免越狱手机群控系统提供了一种安全、便捷且高效的解决方案,适用于从自媒体运营到跨境电商等多个领域。本章将详细介绍这款系统的强大功能及其在不同应用场......
  • 揭秘苹果手机群控技术:一键掌控多台iPhone
    苹果手机群控技术是一种通过集中化的管理系统,实现对多台苹果设备(如iPhone、iPad等)进行远程监控、配置、更新及应用分发等功能的技术。这一技术的出现极大地提高了设备管理和操作的效率,广泛应用于企业、教育、商业等领域。以下是对苹果手机群控技术的主要操作功能的详细介绍:1.......
  • TikTok群控轻松上手iOS手机群控,效率翻倍秘籍!
    TikTok群控手机:提升运营效率与流量的新利器TikTok群控手机,作为一种新兴的运营策略,正逐渐成为众多企业和个人提升运营效率与流量的新利器。通过一台电脑同时控制多个手机,实现批量操作,TikTok群控手机不仅提高了运营效率,还为跨境电商独立站、电商平台等提供了有效的引流手段。......