基于YOLOv5的儿童睡眠检测

这篇具有很好参考价值的文章主要介绍了基于YOLOv5的儿童睡眠检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意: 由于SOPHGO SE5微服务器的CPU是基于ARM架构,部分步骤将在 基于x86架构CPU的开发环境中完成
一、初始化开发环境(基于x86架构CPU的开发环境中完成)
二、模型转换 (基于x86架构CPU的开发环境中完成)
三、YOLOv5模型部署测试(在SOPHGO SE5微服务器上进行)

本实验代码和模型可在Connecting... 下载

一、初始化开发环境 (基于x86架构CPU的开发环境中完成)

1.1 初始化开发环境

1.2 配置Docker容器开发环境

以下步骤均在Docker容器中进行:
1. 安装nntc以及配置环境变量
# 切换成 root 权限
sudo -i
# 下载Docker镜像
wget https://sophon-file.sophon.cn/sophon-prod-s3/drive/22/07/19/10/x86_sophonsdk
_ubuntu18.04_py37_dev_22.06_docker.zip
# 确保环境安装unzip后解压
unzip x86_sophonsdk3_ubuntu18.04_py37_dev_22.06_docker.zip
# 进入文件夹并加载Docker镜像
cd x86_sophonsdk3_ubuntu18.04_py37_dev_22.06_docker
docker load -i x86_sophonsdk3_ubuntu18.04_py37_dev_22.06.docker
# 下载SOPHON SDK3.0.0
wget https://sophon-file.sophon.cn/sophon-prod-s3/drive/22/07/18/11/
sophonsdk_v3.0.0_20220716.zip
unzip sophonsdk_v3.0.0_20220716.zip
cd sophonsdk_v3.0.0
# 通过脚本文件创建并进入Docker容器
# 若您没有执行前述关于docker命令免root执行的配置操作,需在命令前添加sudo
./docker_run_sophonsdk.sh
cd /workspace/scripts/
./install_lib.sh nntc
# 设置环境变量-[有PCIe加速卡]
source envsetup_pcie.sh
# 设置环境变量-[无PCIe加速卡]
source envsetup_cmodel.sh

导出的环境变量只对当前终端有效,每次进入容器都需要重新执行一遍,或者可以将这些环境变量写入
~/.bashrc,这样每次登录将会自动设置环境变量

二、模型转换 (基于x86架构CPU的开发环境中完成)


由于BMNNSDK中的PyTorch模型编译工具BMNETP只接受PyTorchJIT模型(TorchScript模型),需要用户自行将训练好的Pytorch模型进行转换。JITJust-In-Time)是一组编译工具,用于弥合PyTorch研究与生产之间的差距。它允许创建可以在不依Python解释器的情况下运行的模型,并且可以更积极地进行优化。在已有PyTorchPython模型(基类为torch.nn.Module)的情况下,通过 torch.jit.trace 就可以得到JIT模型,如torch.jit.trace(python_model,torch.rand(input_shape)).save('jit_model') 。BMNETP暂时不支持带有控制流操作(如if语句或循环)的JIT模型,因此不能使用 torch.jit.script ,而要使用torch.jit.trace ,它仅跟踪和记录张量上的操作,不会记录任何控制流操作

2.1 将训练好的Pytorch模型转换为JIT模型  

2.1.1 直接获取转换好的 JIT 模型 

在sleep/sleep-aug-640.yolov5pytorch/yolov5s6/weights/best.trace.pt 为转换好的JIT模型

2.1.2 自行将训练好的Pytorch模型转换为JIT模型

下载ultralytics官方YOLOv5源码
# 在容器里, python3.7docker为例
cd ${YOLOv5}
# 下载yolov5源码
git clone https://github.com/ultralytics/yolov5.git yolov5_github
# 切换到yolov5工程目录
cd yolov5_github
# 使用tag从远程创建本地v6.1分支
git branch v6.1 v6.1
git checkout -v6.1
# 将下载好的sleep导入yolov5_github

修改models/yolo.pyDetect类的forward函数的最后return语句,实现不同的输出

# 此模型为单输出
def forward(self, x):
    return x if self.training else (torch.cat(z, 1)) # 1个输出

#return x if self.training else x # 3个输出
# return x if self.training else (torch.cat(z, 1), x) # 4个输出

导出JIT模型

cd ${yolov5}/yolov5_github目录下

# 创建python虚拟环境virtualenv
pip3 install virtualenv
# 切换到虚拟环境
virtualenv -p python3 --system-site-packages env_yolov5
source env_yolov5/bin/activate
# 安装依赖
pip3 install -r requirements.txt
# 此过程遇到依赖冲突或者错误属正常现象
# 导出jit模型
python3 export.py --weights ${sleep}/ sleep-aug-640.yolov5pytorch/yolov5s6/weights/best.pt --include torchscript
# 退出虚拟环境
deactivate
# 将生成好的jit模型best.torchscript拷贝到${YOLOv5}/build文件夹下
mkdir ../build
cp best.torchscript ../build/sleep_best_1output.trace.pt
# 拷贝一份到${YOLOv5}/data/models文件夹下
mkdir ../data/models
cp best.torchscript ../data/models/sleep_best_1output.trace.pt

2.2 模型转换:生成FP32 BModel  

Python命令生成FP32 BModel

BMNETP是针对pytorch的模型编译器,可以把pytorch模型直接编译成BMRuntime所需的执行指令。
通过以下命令可以实现FP32 BModel模型的直接生成(确保生成的JIT模型拷贝至
${YOLOv5}/data/models 路径下):

cd ${YOLOv5}/data/models/
python3 -m bmnetp --mode="compile" \
--model=sleep_best_1output.trace.pt \
--outdir=sleep_best_1output \
--target="BM1684" \
--shapes=[[1,3,640,640]] \
--net_name=yolov5s_fp32_b1 \
--opt= 2 \
--dyn=False \
--cmp=True \
--enable_profile=True

上述脚本会在 ${YOLOv5}/data/models/sleep_best_1output 下生成 compilation.bmodel 文件

使用如下命令查看模型具体信息:
bm_model.bin –info compilation.bmodel

基于YOLOv5的儿童睡眠检测


bmrt_test --bmodel compilation.bmodel

基于YOLOv5的儿童睡眠检测

三、YOLOv5模型部署测试(在算能云开发平台进行)

3.1 准备示例程序  

以下步骤在基于x86架构CPU的开发环境中进行
一、初始化开发环境

https://cloud.sophgo.com/developer

基于YOLOv5的儿童睡眠检测

参考云开发平台手册学习使用

云空间文件系统对应命令行 /tmp 目录

二、模型转换处理好的YOLOv5项目文件拷贝至云开发平台上:

将sleep文件模型拷贝到云开发平台。

3.2 BModel测试(Python例程)

cd ${sleep}/bmodel/python
# BModel和图片路径名仅供参考,具体根据各自的路径进行修改

python3 yolov5_opencv.py --bmodel
../bmodels/sleep_best_1output/compilation.bmodel --input../../ sleep-aug-640.yolov5pytorch/test/images/

python3 yolov5_bmcv.py --bmodel
../bmodels/sleep_best_1output/compilation.bmodel --input../../ sleep-aug-640.yolov5pytorch/test/images/

输出结果

基于YOLOv5的儿童睡眠检测

基于YOLOv5的儿童睡眠检测基于YOLOv5的儿童睡眠检测文章来源地址https://www.toymoban.com/news/detail-440604.html

到了这里,关于基于YOLOv5的儿童睡眠检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv7改进注意力机制系列:最新结合即插即用CA(Coordinate attention) 注意力机制(适用于YOLOv5),CVPR 2021 顶会助力分类检测涨点!

    💡统一使用 YOLOv5、YOLOv7 代码框架, 结合不同模块来构建不同的YOLO目标检测模型。 论文所提的 Coordinate注意力 很简单,可以灵活地插入到经典的移动网络中,而且几乎没有计算开销。大量实验表明,Coordinate注意力不仅有益于ImageNet分类,而且更有趣的是,它在下游任务(如

    2024年02月05日
    浏览(48)
  • YOLOv5改进 | 一文汇总:如何在网络结构中添加注意力机制、C3、卷积、Neck、SPPF、检测头

    本篇文章的内容是在大家得到一个改进版本的C3一个新的注意力机制、或者一个新的卷积模块、或者是检测头的时候如何替换我们YOLOv5模型中的原有的模块,从而用你的模块去进行训练模型或者检测。因为最近开了一个专栏里面涉及到挺多改进的地方,不能每篇文章都去讲解

    2024年02月19日
    浏览(42)
  • 基于YOLOv5的WiderFace人脸检测检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于YOLOv5的WiderFace人脸检测系统可用于日常生活中检测与定位人脸目标,利用深度学习算法可实现图片、视频、摄像头等方式的人脸目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用Pysdie6库来搭建页面展

    2024年02月15日
    浏览(46)
  • 基于YOLOV5的钢材缺陷检测

            数据集使用的是东北大学收集的一个钢材缺陷检测数据集,需要检测出钢材表面的6种划痕。同时,数据集格式是VOC格式,需要进行转化 ,上传的源码中的数据集是经过转换格式的版本。         在数据集目录下,train文件夹下有训练集数据及YOLO标签,valid文件夹下

    2024年02月06日
    浏览(40)
  • 基于Yolov5的目标检测(以口罩检测为例)

    口罩数据集:GitHub - X-zhangyang/Real-World-Masked-Face-Dataset: Real-World Masked Face Dataset,口罩人脸数据集 yolov5 源码: GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch ONNX CoreML TFLite 1.  基于区域提取的两阶段目标检测 1.1 SPP-Net 1.2 R-CNN  1.3 FAST R-CNN  1.4 FASTER-CNN 2.  基于回归的单阶段为目标检测

    2024年02月08日
    浏览(38)
  • 基于YOLOv5的水下海洋目标检测

    摘要:水下海洋目标检测技术具有广泛的应用前景,可以用于海洋环境监测、海洋资源开发、海洋生物学研究等领域。本文提出了一种基于 YOLOv5 的水下海洋目标检测方法,使用数据增强方法进行了大量实验,并与其他方法进行了对比,实现了在检测各种不同的海洋环境和水

    2023年04月15日
    浏览(36)
  • YoloV5+ECVBlock:基于YoloV5-ECVBlock的小目标检测训练

    目录 1、前言 2、数据集 3、添加ECVBlock  4、BackBone+ECVBlock 5、Head+ECVBlock 6、训练结果 6.1 Backbone 6.2 Head   视觉特征金字塔在广泛的应用中显示出其有效性和效率的优越性。然而,现有的方法过分地集中于层间特征交互,而忽略了层内特征规则,这是经验证明是有益的。尽管一些

    2024年02月05日
    浏览(48)
  • Yolov5涨点神器:注意力机制---多头上下文集成(Context Aggregation)的广义构建模块,助力小目标检测,暴力涨点

    目录  1.数据集性能验证 2.Context Aggregation介绍  3. Yolov5引入ContextAggregation 3.1 修改common.py 3.2 注册yolo.py模块

    2024年02月07日
    浏览(41)
  • 基于yolov5的车辆行人道路检测

      本实验使用自动驾驶的公开数据集BDD100K。   数据格式:BDD100K 数据集包含10万段高清视频,每个视频约40秒720p30 fps,总时间超过1,100小时。视频序列还包括GPS位置、IMU数据和时间戳;视频带有由手机记录的GPS/IMU信息,以显示粗略的驾驶轨迹,这些视频分别是从美国不

    2024年02月08日
    浏览(35)
  • 基于YOLOV5的道路损伤(GRDDC‘2020)检测

    GRDDC\\\'2020 数据集是从印度、日本和捷克收集的道路图像。包括三个部分:Train, Test1, Test2。训练集包括带有 PASCAL VOC 格式 XML 文件标注的道路图像。 缺陷类型:D00、D01、D11、D10、D20、D40、D43、D44、D50、D0w0  通过split_train_val.py得到trainval.txt、val.txt、test.txt   2.2.1 修改road_crack.y

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包