ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

人脸检测和行人检测4:Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测(含源码,可实时检测)

人脸检测和行人检测4:Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测(含源码,可实时检测) 人脸检测和行人检测4Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测(含源码可实时检测)目录人脸检测和行人检测4Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测(含源码可实时检测)1. 前言2. 人脸检测和行人检测数据集说明3. 人脸检测和人体检测检测模型1模型训练2将Pytorch模型转换ONNX和MNN模型4.人脸检测和行人检测模型Android部署​​1 Android端上部署模型2 一些异常错误解决方法5. 人脸检测和行人检测效果6.项目源码下载1. 前言这是项目《人脸检测和行人检测》系列之《Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测》本篇主要分享将Python训练后的YOLOv8 YOLO11 YOLO26的人脸和行人(人体)检测模型移植到Android平台。我们将开发一个简易的、可实时运行的人脸人体(行人)检测Android Demo。Android版本的人脸检测和行人检测模型推理支持CPU和GPU加速在GPU(OpenCL)加速下可以达到实时的检测效果CPU(4线程)约40ms左右GPU约20ms左右 基本满足业务的性能需求。下表格给YOLOv8n / YOLO11n / YOLO26n计算量和参数量以及其人脸检测和行人检测精度:模型input-sizeparams(M)GFLOPsmAP_0.5mAP_0.5:0.95YOLOv8n416×4163.15M3.70.970460.79315YOLO11n416×4162.62M2.70.970010.79531YOLO26n416×4162.41M2.30.970020.79009先展示一下Android Demo人脸检测和行人(人体)检测的效果Android人脸和行人(人体)APP Demo体验https://download.csdn.net/download/guyuealian/93441570【尊重原创转载请注明出处】https://blog.csdn.net/guyuealian/article/details/164629596更多项目《人脸检测和行人检测》系列文章请参考人脸检测和人体检测(行人检测)1人脸检测和人体检测数据集(含下载链接)人脸检测和行人检测2YOLOv8 YOLO11 YOLO26 实现人脸检测和行人检测(含数据集和训练代码) https://blog.csdn.net/guyuealian/article/details/164620332人脸检测和行人检测3C/C实现YOLOv8 YOLO11 YOLO26 人脸检测和人体检测(含源码可实时检测) https://blog.csdn.net/guyuealian/article/details/164629582人脸检测和行人检测4Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测(含源码可实时检测) https://blog.csdn.net/guyuealian/article/details/164629596如果需要进行人像分割实现一键抠图效果请参考文章《一键抠图Portrait Matting人像抠图 (C和Android源码)》2.人脸检测和行人检测数据集说明目前收集VOCCOCO和MPII数据集总数据量约10W左右可用于人体(行人)检测模型算法开发。这三个数据集都标注了人体检测框但没有人脸框考虑到很多项目业务需求需要同时检测人脸和人体框故已经将这三个数据都标注了person和face两个标签以便深度学习目标检测模型训练。关于人脸人体检测数据集使用说明和下载详见另一篇博客说明请参考《人脸检测和人体检测(行人检测)1人脸检测和人体检测数据集(含下载链接)》人脸检测和人体检测(行人检测)1人脸检测和人体检测数据集(含下载链接)3. 人脸检测和人体检测检测模型1模型训练人脸检测和人体检测训练过程请参考《人脸检测和行人检测2YOLOv8 YOLO11 YOLO26 实现人脸检测和行人检测(含数据集和训练代码)》https://blog.csdn.net/guyuealian/article/details/164620332下表格给YOLOv8n / YOLO11n / YOLO26n计算量和参数量以及其人脸检测和行人检测精度:模型input-sizeparams(M)GFLOPsmAP_0.5mAP_0.5:0.95YOLOv8n416×4163.15M3.70.970460.79315YOLO11n416×4162.62M2.70.970010.79531YOLO26n416×4162.41M2.30.970020.790092将Pytorch模型转换ONNX和MNN模型训练好模型后你需要将Pytorch模型转换为ONNX和MNN模型转换脚本工具export.py需要安装依赖库 pip install onnx onnxsim onnxruntime mnn# -*- coding: utf-8 -*- import os import argparse import numpy as np from ultralytics import YOLO def export_model(weights, formatmnn, imgsz640, dynamicFalse, halfFalse, int8False): https://docs.ultralytics.com/modes/export/ :param format: onnx,ncnn,mnn,rknn :return: model YOLO(weights) kwargs {dynamic: dynamic, half: half, int8: int8, name: , imgsz: imgsz} if format in [mnn, rknn]: kwargs[dynamic] False # argument dynamic is not supported for formatmnn if format in [rknn]: file model.model_name dirn, name os.path.dirname(file), os.path.basename(file).split(.)[0] os.makedirs(os.path.join(f{name}_rknn_model, dirn), exist_okTrue) # 创建rknn模型目录 # TODO RKNN默认float16,所以halfFalse可支持int8但validate_args会报错需要修改源码不检查 kwargs.update(halfFalse, int8True, namerk3588, source./images.txt) print(export format :{}, kwargs:{}.format(format, kwargs)) file model.export(formatformat, simplifyTrue, opset15, **kwargs) print(export file :{}.format(file)) return file def parse_opt(): # weights data/model/pretrained/yolov8n.pt weights data/model/pretrained/yolo11n.pt # weights data/model/pretrained/yolo26n.pt parser argparse.ArgumentParser() parser.add_argument(--weights, typestr, defaultweights, helpmodel file) parser.add_argument(--imgsz, typeint, default416, helpinput image size) parser.add_argument(--format, typestr, defaultonnx, helpsave result image) opt parser.parse_args() return opt if __name__ __main__: python libs/export.py --weights data/model/pretrained/yolo11n.pt --imgsz 416 --format onnx opt parse_opt() export_model(opt.weights, formatopt.format, imgszopt.imgsz)在终端运行执行命令转换ONNX和MNN模型# TODO 转换为onnx模型 python libs/export.py --weights data/model/pretrained/yolo11n.pt --imgsz 416 --format onnx # TODO 转换为mnn模型 python libs/export.py --weights data/model/pretrained/yolo11n.pt --imgsz 416 --format mnn4.人脸检测和行人检测模型Android部署​​1 Android端上部署模型项目实现了Android版本的人脸检测和行人检测Demo部署框架采用MNN支持多线程CPU和GPU加速推理在普通手机上可以实时处理。Android源码核心算法部分均采用C实现上层通过JNI接口调用package com.cv.dl.model; import android.graphics.Bitmap; public class Detector { static { System.loadLibrary(cvdl-lib); } /*** * 初始化检测模型 * param root模型文件的根目录放在assets文件夹下 * param det_model 检测模型 * param rec_model 识别模型(可选) * param model_type模型类型 * param num_thread开启线程数 * param useGPU是否开启GPU进行加速 */ public static native void init(String root, String det_model, String rec_model, int model_type, int num_thread, boolean useGPU); /*** * 进行检测(用于静态图) * param bitmap 图像bitmapARGB_8888格式 * param score_thresh置信度阈值 * param iou_thresh IOU阈值 * return */ public static native FrameInfo[] detect(Bitmap bitmap, float score_thresh, float iou_thresh); }如果你想在这个Android Demo部署你自己训练的YOLO模型你可将训练好的Pytorch模型转换成TNN模型然后把TNN模型代替你模型即可。2 一些异常错误解决方法项目开发常见的问题请参考Android项目常见问题解决办法5.人脸检测和行人检测效果【Android APP体验】https://download.csdn.net/download/guyuealian/93441570APP在普通Android手机上可以达到实时的人脸检测和行人检测效果CPU(4线程)约30ms左右GPU约25ms左右 基本满足业务的性能需求。6.项目源码下载【Android APP体验】https://download.csdn.net/download/guyuealian/93441570如需下载项目源码请关注【AI吃大瓜】回复【人脸检测和人体检测】即可下载Android项目源码内容包含提供YOLOv8n / YOLO11n / YOLO26n版本的人脸检测和人体检测模型(MNN)Android Demo源码支持CPU和GPU运行CPU(4线程)YOLO26n 约40ms左右GPU OpenCL约20ms左右Android Demo支持图片视频摄像头测试OpenCVbase-utilsMNN所有依赖库都已经配置好可直接build构建APP运行
返回列表