当前位置: 首页 > news >正文

网站推广渠道动漫制作专业学校前十名

网站推广渠道,动漫制作专业学校前十名,当当网网站开发计划和预算,怎么做cc网站目录 1. 前言 2.人体关键点检测方法 (1)Top-Down(自上而下)方法 (2)Bottom-Up(自下而上)方法#xff1a; 3.人体关键点检测模型训练 4.人体关键点检测模型Android部署 #xff08;1#xff09; 将Pytorch模型转换ONNX模型 #xff08;2#xff09; 将ONNX模型转换…目录 1. 前言 2.人体关键点检测方法 (1)Top-Down(自上而下)方法 (2)Bottom-Up(自下而上)方法 3.人体关键点检测模型训练 4.人体关键点检测模型Android部署 1 将Pytorch模型转换ONNX模型 2 将ONNX模型转换为TNN模型 3 Android端上部署模型 4 Android测试效果  5 运行APP闪退dlopen failed: library libomp.so not found 5.Android项目源码下载 6.C实现人体关键点检测 1. 前言 人体关键点检测Human Keypoints Detection又称为人体姿态估计2D Pose是计算机视觉中一个相对基础的任务是人体动作识别、行为分析、人机交互等的前置任务。一般情况下可以将人体关键点检测细分为单人/多人关键点检测、2D/3D关键点检测同时有算法在完成关键点检测之后还会进行关键点的跟踪也被称为人体姿态跟踪。 项目将实现人体关键点检测算法其中使用YOLOv5模型实现人体检测(Person Detection)使用HRNetLiteHRNet和Mobilenet-v2模型实现人体关键点检测。为了方便后续模型工程化和Android平台部署项目支持高精度HRNet检测模型轻量化模型LiteHRNet和Mobilenet模型训练和测试并提供Python/C/Android多个版本项目分为数据集说明模型训练和C/Android部署等多个章节本篇是项目《人体关键点检测(人体姿势估计)》系列文章之Android实现人体关键点检测主要分享将Python训练好的模型移植到Android平台搭建一个可实时的人体关键点检测Android Demo且支持多人关键点检测。 轻量化Mobilenet-v2模型在普通Android手机上可以达到实时的检测效果CPU(4线程)约50ms左右GPU约30ms左右 基本满足业务的性能需求。下表格给出HRNet以及轻量化模型LiteHRNet和Mobilenet的计算量和参数量以及其检测精度。 模型input-sizeparams(M)GFLOPsAPHRNet-w32192×25628.48M5734.05M0.7585LiteHRNet18192×2561.10M182.15M0.6237Mobilenet-v2192×2562.63M529.25M0.6181 【尊重原创转载请注明出处】 https://blog.csdn.net/guyuealian/article/details/134881797 Android人体关键点检测APP Demo体验(下载)https://download.csdn.net/download/guyuealian/88610359 Android人体关键点检测APP Demo体验 更多项目《人体关键点检测(人体姿势估计)》系列文章请参考 人体关键点检测1人体姿势估计数据集(含下载链接) https://blog.csdn.net/guyuealian/article/details/134703548人体关键点检测2Pytorch实现人体关键点检测(人体姿势估计)含训练代码和数据集 https://blog.csdn.net/guyuealian/article/details/134837816人体关键点检测3Android实现人体关键点检测(人体姿势估计)含源码 可实时检测 https://blog.csdn.net/guyuealian/article/details/134881797人体关键点检测4C/C实现人体关键点检测(人体姿势估计)含源码 可实时检测 https://blog.csdn.net/guyuealian/article/details/134881797手部关键点检测1手部关键点(手部姿势估计)数据集(含下载链接)https://blog.csdn.net/guyuealian/article/details/133277630手部关键点检测2YOLOv5实现手部检测(含训练代码和数据集)https://blog.csdn.net/guyuealian/article/details/133279222手部关键点检测3Pytorch实现手部关键点检测(手部姿势估计)含训练代码和数据集https://blog.csdn.net/guyuealian/article/details/133277726手部关键点检测4Android实现手部关键点检测(手部姿势估计)含源码 可实时检测https://blog.csdn.net/guyuealian/article/details/133931698手部关键点检测5C实现手部关键点检测(手部姿势估计)含源码 可实时检测https://blog.csdn.net/guyuealian/article/details/133277748 2.人体关键点检测方法 目前主流的人体关键点检测(人体姿势估计)方法主要两种一种是Top-Down自上而下方法另外一种是Bottom-Up自下而上方法 (1)Top-Down(自上而下)方法 将人体检测和人体关键点检测(人体姿势估计)检测分离在图像上首先进行人体目标检测定位人体位置然后crop每一个人体图像再估计人体关键点这类方法往往比较慢但姿态估计准确度较高。目前主流模型主要有CPNHourglassCPMAlpha PoseHRNet等。 (2)Bottom-Up(自下而上)方法 先估计图像中所有人体关键点然后在通过Grouping的方法组合成一个一个实例因此这类方法在测试推断的时候往往更快速准确度稍低。典型就是COCO2016年人体关键点检测冠军Open Pose。 通常来说Top-Down具有更高的精度而Bottom-Up具有更快的速度就目前调研而言 Top-Down的方法研究较多精度也比Bottom-Up自下而上方法高。本项目采用Top-Down(自上而下)方法先使用YOLOv5模型实现人体检测然后再使用HRNet进行人体关键点检测(人体姿势估计) 本项目基于开源的HRNet进行改进关于HRNet项目请参考GitHub HRNet: https://github.com/leoxiaobin/deep-high-resolution-net.pytorch 3.人体关键点检测模型训练 本项目采用Top-Down(自上而下)方法使用YOLOv5模型实现人体检测并基于开源的HRNet实现人体关键点检测(人体姿态估计)为了方便后续模型工程化和Android平台部署项目支持轻量化模型LiteHRNet和Mobilenet模型训练和测试并提供Python/C/Android多个版本轻量化Mobilenet-v2模型在普通Android手机上可以达到实时的检测效果CPU(4线程)约50ms左右GPU约30ms左右 基本满足业务的性能需求 本篇博文主要分享Android版本的模型部署不包含Python版本的训练代码和相关数据集关于人体关键点检测的训练方法和数据集说明可参考 :  人体关键点检测2Pytorch实现人体关键点检测(人体姿势估计)含训练代码和数据集 https://blog.csdn.net/guyuealian/article/details/134837816 下表格给出HRNet以及轻量化模型LiteHRNet和Mobilenet的计算量和参数量以及其检测精度AP 高精度检测模型HRNet-w32AP可以达到0.7585但其参数量和计算量比较大不合适在移动端部署LiteHRNet18和Mobilenet-v2参数量和计算量比较少合适在移动端部署虽然LiteHRNet18的理论计算量和参数量比Mobilenet-v2低但在实际测试中发现Mobilenet-v2运行速度更快。轻量化Mobilenet-v2模型在普通Android手机上可以达到实时的检测效果CPU(4线程)约50ms左右GPU约30ms左右 基本满足业务的性能需求 模型input-sizeparams(M)GFLOPsAPHRNet-w32192×25628.48M5734.05M0.7585LiteHRNet18192×2561.10M182.15M0.6237Mobilenet-v2192×2562.63M529.25M0.6181 HRNet-w32参数量和计算量太大不适合在Android手机部署本项目Android版本只支持部署LiteHRNet和Mobilenet-v2模型C版本可支持部署HRNet-w32LiteHRNet和Mobilenet-v2模型  4.人体关键点检测模型Android部署 目前CNN模型有多种部署方式可以采用TNNMNN,NCNN以及TensorRT等部署工具鄙人采用TNN进行Android端上部署。部署流程可分为四步训练模型-将模型转换ONNX模型-将ONNX模型转换为TNN模型-Android端上部署TNN模型。 1 将Pytorch模型转换ONNX模型 训练好Pytorch模型后我们需要先将模型转换为ONNX模型以便后续模型部署。 原始Python项目提供转换脚本你只需要修改model_file和config_file为你模型路径即可 convert_torch_to_onnx.py实现将Pytorch模型转换ONNX模型的脚本 python libs/convert_tools/convert_torch_to_onnx.py This code is used to convert the pytorch model into an onnx format model.import os import torch.onnx from pose.inference import PoseEstimation from basetrainer.utils.converter import pytorch2onnxdef load_model(config_file, model_file, devicecuda:0):pose PoseEstimation(config_file, model_file, devicedevice)model pose.modelconfig pose.configreturn model, configdef convert2onnx(config_file, model_file, devicecuda:0, onnx_typekp)::param model_file::param input_size::param device::param onnx_type::return:model, config load_model(config_file, model_file, devicedevice)model model.to(device)model.eval()model_name os.path.basename(model_file)[:-len(.pth)]onnx_file os.path.join(os.path.dirname(model_file), model_name .onnx)# dummy_input torch.randn(1, 3, 240, 320).to(cuda)input_size tuple(config.MODEL.IMAGE_SIZE) # w,hinput_shape (1, 3, input_size[1], input_size[0])pytorch2onnx.convert2onnx(model,input_shapeinput_shape,input_names[input],output_names[output],onnx_fileonnx_file,opset_version11)print(input_shape)if __name__ __main__:config_file ../../work_space/person/mobilenet_v2_17_192_256_custom_coco_20231124_090015_6639/mobilenetv2_192_192.yamlmodel_file ../../work_space/person/mobilenet_v2_17_192_256_custom_coco_20231124_090015_6639/model/best_model_158_0.6181.pthconvert2onnx(config_file, model_file)2 将ONNX模型转换为TNN模型 目前CNN模型有多种部署方式可以采用TNNMNN,NCNN以及TensorRT等部署工具鄙人采用TNN进行Android端上部署 TNN转换工具 1将ONNX模型转换为TNN模型请参考TNN官方说明TNN/onnx2tnn.md at master · Tencent/TNN · GitHub2一键转换懒人必备一键转换 Caffe, ONNX, TensorFlow 到 NCNN, MNN, Tengine   (可能存在版本问题这个工具转换的TNN模型可能不兼容建议还是自己build源码进行转换2022年9约25日测试可用) ​​ 3 Android端上部署模型 项目实现了Android版本的人体检测和人体关键点检测Demo部署框架采用TNN支持多线程CPU和GPU加速推理在普通手机上可以实时处理。项目Android源码核心算法均采用C实现上层通过JNI接口调用。 如果你想在这个Android Demo部署你自己训练的模型你可将训练好的Pytorch模型转换ONNX 再转换成TNN模型然后把TNN模型代替你模型即可。  HRNet-w32参数量和计算量太大不适合在Android手机部署本项目Android版本只支持部署LiteHRNet和Mobilenet-v2模型C版本可支持部署HRNet-w32LiteHRNet和Mobilenet-v2模型  这是项目Android源码JNI接口 Java部分 package com.cv.tnn.model;import android.graphics.Bitmap;public class Detector {static {System.loadLibrary(tnn_wrapper);}/**** 初始化检测模型* param dets_model 检测模型不含后缀名* param pose_model 识别模型不含后缀名* param root模型文件的根目录放在assets文件夹下* param model_type模型类型* param num_thread开启线程数* param useGPU是否开启GPU进行加速*/public static native void init(String dets_model, String pose_model, String root, int model_type, int num_thread, boolean useGPU);/**** 返回检测和识别结果* param bitmap 图像bitmapARGB_8888格式* param score_thresh置信度阈值* param iou_thresh IOU阈值* param pose_thresh 关键点阈值* return*/public static native FrameInfo[] detect(Bitmap bitmap, float score_thresh, float iou_thresh, float pose_thresh); }这是Android项目源码JNI接口 C部分 #include jni.h #include string #include fstream #include src/yolov5.h #include src/pose_detector.h #include src/Types.h #include debug.h #include android_utils.h #include opencv2/opencv.hpp #include file_utils.husing namespace dl; using namespace vision;static YOLOv5 *detector nullptr; static PoseDetector *pose nullptr;JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) {return JNI_VERSION_1_6; }JNIEXPORT void JNI_OnUnload(JavaVM *vm, void *reserved) {}extern C JNIEXPORT void JNICALL Java_com_cv_tnn_model_Detector_init(JNIEnv *env,jclass clazz,jstring dets_model,jstring pose_model,jstring root,jint model_type,jint num_thread,jboolean use_gpu) {if (detector ! nullptr) {delete detector;detector nullptr;}std::string parent env-GetStringUTFChars(root, 0);std::string dets_model_ env-GetStringUTFChars(dets_model, 0);std::string pose_model_ env-GetStringUTFChars(pose_model, 0);string dets_model_file path_joint(parent, dets_model_ .tnnmodel);string dets_proto_file path_joint(parent, dets_model_ .tnnproto);string pose_model_file path_joint(parent, pose_model_ .tnnmodel);string pose_proto_file path_joint(parent, pose_model_ .tnnproto);DeviceType device use_gpu ? GPU : CPU;LOGW(parent : %s, parent.c_str());LOGW(useGPU : %d, use_gpu);LOGW(device_type: %d, device);LOGW(model_type : %d, model_type);LOGW(num_thread : %d, num_thread);YOLOv5Param model_param YOLOv5s05_320;//模型参数detector new YOLOv5(dets_model_file,dets_proto_file,model_param,num_thread,device);PoseParam pose_param POSE_MODEL_TYPE[model_type];//模型类型pose new PoseDetector(pose_model_file,pose_proto_file,pose_param,num_thread,device); }extern C JNIEXPORT jobjectArray JNICALL Java_com_cv_tnn_model_Detector_detect(JNIEnv *env, jclass clazz, jobject bitmap,jfloat score_thresh, jfloat iou_thresh, jfloat pose_thresh) {cv::Mat bgr;BitmapToMatrix(env, bitmap, bgr);int src_h bgr.rows;int src_w bgr.cols;// 检测区域为整张图片的大小FrameInfo resultInfo;// 开始检测if (detector ! nullptr) {detector-detect(bgr, resultInfo, score_thresh, iou_thresh);} else {ObjectInfo objectInfo;objectInfo.x1 0;objectInfo.y1 0;objectInfo.x2 (float) src_w;objectInfo.y2 (float) src_h;objectInfo.label 0;resultInfo.info.push_back(objectInfo);}int nums resultInfo.info.size();LOGW(object nums: %d\n, nums);if (nums 0) {// 开始检测pose-detect(bgr, resultInfo, pose_thresh);// 可视化代码//classifier-visualizeResult(bgr, resultInfo);}//cv::cvtColor(bgr, bgr, cv::COLOR_BGR2RGB);//MatrixToBitmap(env, bgr, dst_bitmap);auto BoxInfo env-FindClass(com/cv/tnn/model/FrameInfo);auto init_id env-GetMethodID(BoxInfo, init, ()V);auto box_id env-GetMethodID(BoxInfo, addBox, (FFFFIF)V);auto ky_id env-GetMethodID(BoxInfo, addKeyPoint, (FFF)V);jobjectArray ret env-NewObjectArray(resultInfo.info.size(), BoxInfo, nullptr);for (int i 0; i nums; i) {auto info resultInfo.info[i];env-PushLocalFrame(1);//jobject obj env-AllocObject(BoxInfo);jobject obj env-NewObject(BoxInfo, init_id);// set bbox//LOGW(rect:[%f,%f,%f%f] label:%d,score:%f \n, info.rect.x,info.rect.y, info.rect.w, info.rect.h, 0, 1.0f);env-CallVoidMethod(obj, box_id, info.x1, info.y1, info.x2 - info.x1, info.y2 - info.y1,info.label, info.score);// set keypointfor (const auto kps : info.keypoints) {//LOGW(point:[%f,%f] score:%f \n, lm.point.x, lm.point.y, lm.score);env-CallVoidMethod(obj, ky_id, (float) kps.point.x, (float) kps.point.y,(float) kps.score);}obj env-PopLocalFrame(obj);env-SetObjectArrayElement(ret, i, obj);}return ret; } 4 Android测试效果  Android Demo在普通手机CPU/GPU上可以达到实时检测效果CPU(4线程)约50ms左右GPU约30ms左右 基本满足业务的性能需求。 Android版本的人体关键点检测APP Demo体验 Android人体关键点检测APP Demo体验(下载)https://download.csdn.net/download/guyuealian/88610359 5 运行APP闪退dlopen failed: library libomp.so not found 参考解决方法解决dlopen failed: library “libomp.so“ not found_PKing666666的博客-CSDN博客_dlopen failed Android SDK和NDK相关版本信息请参考  5.Android项目源码下载 Android项目源码下载地址 Android人体关键点检测APP Demo体验(下载)https://download.csdn.net/download/guyuealian/88610359 整套Android项目源码内容包含 Android Demo源码支持YOLOv5人体检测Android Demo源码支持轻量化模型LiteHRNet和Mobilenet-v2人体关键点检测(人体姿态估计)Android Demo在普通手机CPU/GPU上可以实时检测CPU约50msGPU约30ms左右Android Demo支持图片视频摄像头测试所有依赖库都已经配置好可直接build运行若运行出现闪退请参考dlopen failed: library “libomp.so“ not found 解决。 6.C实现人体关键点检测 人体关键点检测4C/C实现人体关键点检测(人体姿势估计)含源码 可实时检测 https://blog.csdn.net/guyuealian/article/details/134881797
文章转载自:
http://www.morning.krkwp.cn.gov.cn.krkwp.cn
http://www.morning.qljxm.cn.gov.cn.qljxm.cn
http://www.morning.crrjg.cn.gov.cn.crrjg.cn
http://www.morning.qllcp.cn.gov.cn.qllcp.cn
http://www.morning.zrkws.cn.gov.cn.zrkws.cn
http://www.morning.dqrpz.cn.gov.cn.dqrpz.cn
http://www.morning.hpprx.cn.gov.cn.hpprx.cn
http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn
http://www.morning.rfhmb.cn.gov.cn.rfhmb.cn
http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn
http://www.morning.zdqsc.cn.gov.cn.zdqsc.cn
http://www.morning.mmosan.com.gov.cn.mmosan.com
http://www.morning.ffdyy.cn.gov.cn.ffdyy.cn
http://www.morning.mxtjl.cn.gov.cn.mxtjl.cn
http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com
http://www.morning.cfhwn.cn.gov.cn.cfhwn.cn
http://www.morning.jfmyt.cn.gov.cn.jfmyt.cn
http://www.morning.qxnlc.cn.gov.cn.qxnlc.cn
http://www.morning.zbqry.cn.gov.cn.zbqry.cn
http://www.morning.qggcc.cn.gov.cn.qggcc.cn
http://www.morning.kzrg.cn.gov.cn.kzrg.cn
http://www.morning.2d1bl5.cn.gov.cn.2d1bl5.cn
http://www.morning.fnczn.cn.gov.cn.fnczn.cn
http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn
http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn
http://www.morning.rszyf.cn.gov.cn.rszyf.cn
http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn
http://www.morning.xnnxp.cn.gov.cn.xnnxp.cn
http://www.morning.qncqd.cn.gov.cn.qncqd.cn
http://www.morning.sfcfy.cn.gov.cn.sfcfy.cn
http://www.morning.qpqb.cn.gov.cn.qpqb.cn
http://www.morning.byshd.cn.gov.cn.byshd.cn
http://www.morning.bpcf.cn.gov.cn.bpcf.cn
http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn
http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn
http://www.morning.brlgf.cn.gov.cn.brlgf.cn
http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn
http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn
http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn
http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn
http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn
http://www.morning.jhzct.cn.gov.cn.jhzct.cn
http://www.morning.eviap.com.gov.cn.eviap.com
http://www.morning.bwttj.cn.gov.cn.bwttj.cn
http://www.morning.ytnn.cn.gov.cn.ytnn.cn
http://www.morning.hbxnb.cn.gov.cn.hbxnb.cn
http://www.morning.glwyn.cn.gov.cn.glwyn.cn
http://www.morning.lwyqd.cn.gov.cn.lwyqd.cn
http://www.morning.mcwgn.cn.gov.cn.mcwgn.cn
http://www.morning.sqhlx.cn.gov.cn.sqhlx.cn
http://www.morning.ckcjq.cn.gov.cn.ckcjq.cn
http://www.morning.skkmz.cn.gov.cn.skkmz.cn
http://www.morning.pzss.cn.gov.cn.pzss.cn
http://www.morning.btlsb.cn.gov.cn.btlsb.cn
http://www.morning.wkmyt.cn.gov.cn.wkmyt.cn
http://www.morning.bqpgq.cn.gov.cn.bqpgq.cn
http://www.morning.jmspy.cn.gov.cn.jmspy.cn
http://www.morning.mjzgg.cn.gov.cn.mjzgg.cn
http://www.morning.ylrxd.cn.gov.cn.ylrxd.cn
http://www.morning.txzmy.cn.gov.cn.txzmy.cn
http://www.morning.ssqrd.cn.gov.cn.ssqrd.cn
http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn
http://www.morning.qznkn.cn.gov.cn.qznkn.cn
http://www.morning.mjqms.cn.gov.cn.mjqms.cn
http://www.morning.dbfp.cn.gov.cn.dbfp.cn
http://www.morning.yrjfb.cn.gov.cn.yrjfb.cn
http://www.morning.ykwqz.cn.gov.cn.ykwqz.cn
http://www.morning.gtbjc.cn.gov.cn.gtbjc.cn
http://www.morning.qxycf.cn.gov.cn.qxycf.cn
http://www.morning.kjnfs.cn.gov.cn.kjnfs.cn
http://www.morning.knwry.cn.gov.cn.knwry.cn
http://www.morning.xnpj.cn.gov.cn.xnpj.cn
http://www.morning.zgdnd.cn.gov.cn.zgdnd.cn
http://www.morning.ldwxj.cn.gov.cn.ldwxj.cn
http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn
http://www.morning.tnktt.cn.gov.cn.tnktt.cn
http://www.morning.mdgpp.cn.gov.cn.mdgpp.cn
http://www.morning.flxgx.cn.gov.cn.flxgx.cn
http://www.morning.dgsx.cn.gov.cn.dgsx.cn
http://www.morning.dfqmy.cn.gov.cn.dfqmy.cn
http://www.tj-hxxt.cn/news/269094.html

相关文章:

  • 承德网站设计公司物联网网络架构由 和 组成
  • 做网站用什么语言简单小工厂如何找外贸公司合作
  • 珠海有什么好的网站推广公司系统难还是网站设计难做
  • 长垣有做网站设计的吗国外浏览器
  • 开发外包网站做详情页生成代码的网站
  • 网站做好了如何发布用织梦做的公司网站 经常被攻击
  • 商洛网站建设公司wordpress简码
  • 淘宝网站上的图片是怎么做的外贸在线网站建站
  • 常州网站建设智博像wordpress
  • 做网站卖钱入门编程软件
  • 网站的建设费用预算大二网络营销实训报告
  • 当当网的网站建设目标是wordpress设置文章页关键词
  • 溧阳网站设计网络营销的营销方式
  • 织梦xml网站地图线上商城的推广方案
  • 高中生自己做网站网站开发的需求分析书
  • 如何在网站页面添加代码百度指数网址是什么
  • 免费个人logo设计网站免费app网站下载大全
  • 网站建设哪里最好接单子网页设计网站开发教程
  • 织梦技术网站模版成都app开发制作
  • wordpress发送文章链接过期快速排名生客seo
  • 贺州同城购物网站建设校园网自助网站
  • 网站开发维护求职信什么是网站域名?
  • c 做网站session用法做优秀企业网站
  • 拖鞋设计网站推荐wordpress文章表
  • 网站申请专利网站推广员能力要求
  • 网站工程师培训wordpress 随机标签
  • 万网域名注册官网的阿里云嘉兴网站制作优化
  • 过期的网站域名万能网页编辑器
  • 临沂建设大型网站建设国家企业信息系统公示查询
  • 深圳建站定制公司网页制作app手机版