加盟企业网站建设目的wordpress小工具音乐

news/2025/10/2 15:12:02/文章来源:
加盟企业网站建设目的,wordpress小工具音乐,WordPress dos漏洞,关键词查询工具1. 前言 上篇文章#xff0c;我们已经将人像分割的ncnn-android-yolov8-seg项目运行起来了#xff0c;后续文章我们会抽取出Demo中的核心代码#xff0c;在自己的项目中#xff0c;来接入人体识别和人像分割功能。 先来看下效果#xff0c;整个图像的是相机的原图#…1. 前言 上篇文章我们已经将人像分割的ncnn-android-yolov8-seg项目运行起来了后续文章我们会抽取出Demo中的核心代码在自己的项目中来接入人体识别和人像分割功能。 先来看下效果整个图像的是相机的原图左上角部分是我们进行人像识别、人像分割后处理得到的图像 (未做镜像处理所以暂时和原图左右是相反的) 那我们要怎么在自己的项目中实现人像分割功能呢 ? 我们看ncnn-android-yolov8-seg的源码可以发现 这个项目里的相机也是用c/c但是在我们项目中使用的Java层的Camera API来实现的。要想在自己项目里集成ncnn那就需要把ncnn-android-yolov8-seg里的核心代码给抽离然后对接到Java的Camera API中。 那需要怎么做呢 ? 接下来我们先来看一下它的源码 2. 源码分析 首先我们来分析一下 Digital2Slave/ncnn-android-yolov8-seg Demo 中的源码 2.1 加载模型 加载模型是在Java_com_tencent_yolov8ncnn_Yolov8Ncnn_loadModel方法中这里附上源码 JNIEXPORT jboolean JNICALL Java_com_tencent_yolov8ncnn_Yolov8Ncnn_loadModel(JNIEnv* env, jobject thiz, jobject assetManager, jint modelid, jint cpugpu) {if (modelid 0 || modelid 6 || cpugpu 0 || cpugpu 1){return JNI_FALSE;}AAssetManager* mgr AAssetManager_fromJava(env, assetManager);__android_log_print(ANDROID_LOG_DEBUG, ncnn, loadModel %p, mgr);const char* modeltypes[] {n,s,};const int target_sizes[] {320,320,};const float mean_vals[][3] {{103.53f, 116.28f, 123.675f},{103.53f, 116.28f, 123.675f},};const float norm_vals[][3] {{ 1 / 255.f, 1 / 255.f, 1 / 255.f },{ 1 / 255.f, 1 / 255.f, 1 / 255.f },};const char* modeltype modeltypes[(int)modelid];int target_size target_sizes[(int)modelid];bool use_gpu (int)cpugpu 1;// reload{ncnn::MutexLockGuard g(lock);if (use_gpu ncnn::get_gpu_count() 0){// no gpudelete g_yolo;g_yolo 0;}else{if (!g_yolo)g_yolo new Yolo;g_yolo-load(mgr, modeltype, target_size, mean_vals[(int)modelid], norm_vals[(int)modelid], use_gpu);}}return JNI_TRUE; }2.1.1 modelid : 选择某个模型 根据modelid来选择modeltypes中具体的某个模型。 const char* modeltypes[] {n,s, }; const char* modeltype modeltypes[(int)modelid];这里的模型类别是和项目中asserts文件夹下的模型对应的yolov8是个模型簇从小到大包括yolov8n、yolov8s、yolov8m、yolov8l、yolov8x等。 通常yolov8n速度最快具体见下表 2.1.2 cpugpu : 使用CPU或GPU 接着来看Java_com_tencent_yolov8ncnn_Yolov8Ncnn_loadModel方法 还有一个参数cpugpu是用来决定使用CPU还是GPU0为CPU1为GPU。 bool use_gpu (int)cpugpu 1;2.1.3 初始化模型 最后调用g_yolo-load()来初始化模型 g_yolo-load(mgr, modeltype, target_size, mean_vals[(int)modelid], norm_vals[(int)modelid], use_gpu);2.2 操作相机 ncnn-android-yolov8-seg Demo中的相机操作都是通过NDK的Camera API来完成的 static MyNdkCamera* g_camera 0;JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) {__android_log_print(ANDROID_LOG_DEBUG, ncnn, JNI_OnLoad);g_camera new MyNdkCamera;return JNI_VERSION_1_4; }2.2.1 打开相机 打开相机就是调用g_camera-open() JNIEXPORT jboolean JNICALL Java_com_tencent_yolov8ncnn_Yolov8Ncnn_openCamera(JNIEnv* env, jobject thiz, jint facing) {if (facing 0 || facing 1)return JNI_FALSE;__android_log_print(ANDROID_LOG_DEBUG, ncnn, openCamera %d, facing);g_camera-open((int)facing);return JNI_TRUE; }2.2.2 关闭相机 关闭相机是调用g_camera-close() JNIEXPORT jboolean JNICALL Java_com_tencent_yolov8ncnn_Yolov8Ncnn_closeCamera(JNIEnv* env, jobject thiz) {__android_log_print(ANDROID_LOG_DEBUG, ncnn, closeCamera);g_camera-close();return JNI_TRUE; }2.3 人体检测 人体检测是和NDK的Camera相关联的在相机回调的on_image_render方法中完成了人体检测 2.3.1 on_image_render : 进行人体检测 来看一下on_image_render的源码主要是通过g_yolo-detect()进行人体检测g_yolo-draw()标注人体位置用框框出来。 void MyNdkCamera::on_image_render(cv::Mat rgb) const {// nanodet{ncnn::MutexLockGuard g(lock);//cv::resize()if (g_yolo){__android_log_print(ANDROID_LOG_DEBUG, myncnn, g_yolo:true);auto start std::chrono::high_resolution_clock::now();std::vectorObject objects;g_yolo-detect(rgb, objects); //人体检测start std::chrono::high_resolution_clock::now();g_yolo-draw(rgb, objects); //标注人体位置用框框出来}else{__android_log_print(ANDROID_LOG_DEBUG, myncnn, g_yolo:false);draw_unsupported(rgb);}}draw_fps(rgb); //绘制当前多少帧率 }2.3.2 on_image_render 什么时候被调用 ? 那么on_image_render方法是什么时候被调用的呢 ? 来看ndkcamera.cpp中的on_image方法 可以看到这里会对NV21图像做裁剪和旋转操作再转成RGB格式然后才传递给on_image_render()方法处理 // crop and rotate nv21 cv::Mat nv21_croprotated(roi_h roi_h / 2, roi_w, CV_8UC1); {const unsigned char* srcY nv21 nv21_roi_y * nv21_width nv21_roi_x;unsigned char* dstY nv21_croprotated.data;ncnn::kanna_rotate_c1(srcY, nv21_roi_w, nv21_roi_h, nv21_width, dstY, roi_w, roi_h, roi_w, rotate_type);const unsigned char* srcUV nv21 nv21_width * nv21_height nv21_roi_y * nv21_width / 2 nv21_roi_x;unsigned char* dstUV nv21_croprotated.data roi_w * roi_h;ncnn::kanna_rotate_c2(srcUV, nv21_roi_w / 2, nv21_roi_h / 2, nv21_width, dstUV, roi_w / 2, roi_h / 2, roi_w, rotate_type); }// nv21_croprotated to rgb cv::Mat rgb(roi_h, roi_w, CV_8UC3); ncnn::yuv420sp2rgb(nv21_croprotated.data, roi_w, roi_h, rgb.data);on_image_render(rgb);2.3.3 人体检测的流程 也就是说从相机中得到的NV21数据会先进行旋转然后转成RGB格式再交由g_yolo-detect()进行人体检测通过g_yolo-draw()来标注人体位置。 到这里我们核心源码就分析的差不多了那我们怎么将该功能集成到自己的项目中呢 ? 我们在下一篇文章中来实现下 : Android 在自己的项目接入OpenCVYOLOv8NCNN实现人像分割-CSDN博客。 3. Android 人像识别 系列文章 OpenCV相关 Visual Studio 2022 cmake配置opencv开发环境_opencv visualstudio配置_氦客的博客-CSDN博客在Visual Studio上使用OpenCV实现人脸识别_氦客的博客-CSDN博客Android Studio 接入OpenCV并实现灰度图效果_氦客的博客-CSDN博客Android 使用OpenCV实现实时人脸识别并绘制到SurfaceView上_氦客的博客-CSDN博客 NCNNYOLO8相关 Android 导入ncnn-android-yolov8-seg : 实现人体识别和人像分割-CSDN博客Android ncnn-android-yolov8-seg源码解析 : 实现人像分割-CSDN博客Android 在自己的项目接入OpenCVYOLOv8NCNN实现人像分割-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

秦皇岛网站制作微商城建设邀请专家集体会诊网站建设

Authorization 对于很多应用,出于安全考虑我们的接口并不希望对外公开。这个时候就需要使用授权(Authorization)机制。 授权过程验证您是否具有访问服务器所需数据的权限。 当发送请求时,通常必须包含参数,以确保请求具有访问和返回所需数据…

0.机器人的URDF文件修改

0.URDF简介 URDF全称(United Robotics Description Format)统一机器人描述格式,是一个XML语法框架下用来描述机器人的语言格式。URDF文件可以导入ROS或者Matlab进行仿真,但是事实不一定只能使用URDF,在Isaac gym …

网站怎么看是什么程序做的换服务器wordpress升级

接上篇,根据脚本可将coco128的128张图片,按照比例划分成训练集、测试集、验证集,同时生成相应的标注的labels文件夹,最近再看实例分离比较火的mask rcnn模型,准备进行调试但由于实验室算力不足,网上自己租的…

中小企业网站建设 论文旅游景区网站建设规划

文章目录 前言一、cubemx配置二、代码1.引入库bsp_hal_ps2.cbsp_hal_ps2.h 2.主函数 前言 本文讲解使用cubemx配置PS2手柄实现对手柄的按键和模拟值的读取。 很简单,库已经封装好了,直接就可以了。 文件 一、cubemx配置 这个很简单,不需要…

task1_1.c

include <stdio.h> int main() { printf(" o \n"); printf("\n"); printf("I I\n"); printf(" o \n"); printf("\n"); printf("I I\n"); return 0…

解码AVL树

为什么要关注二叉树的平衡性?—— 从 BST 的缺陷说起 二叉搜索树(BST)的核心优势是 “高效搜索”:利用 “左子树所有节点值<根节点值<右子树所有节点值” 的特性,能从根节点开始快速定位目标节点。但 BST 有个致…

服务发现与注册中心设计:从Eureka到Nacos的CAP权衡——AP与CP的边界,藏在服务列表的一致性里 - 教程

服务发现与注册中心设计:从Eureka到Nacos的CAP权衡——AP与CP的边界,藏在服务列表的一致性里 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…

LinuxWindows环境下Nacos3.1.0详细安装部署指南:从零到生产就绪

Linux&Windows环境下Nacos3.1.0详细安装部署指南:从零到生产就绪pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

商务网站创建流程是什么宿州哪家做网站不做

1月16号 MySQL 官方发布 8.3 创新版 和 8.0.36 长期支持版本 (该版本 没有新增功能&#xff0c;更多是修复bug )&#xff0c;本文基于 官方文档 说一下 8.3 版本带来的变化。 一 增加的特性 1.1 GTID_NEXT 支持增加 TAG 选项。 之前的版本中 GTID_NEXTUUID:number &#xff…

哪个网站有律师做的案件有没有资源免费的

应该是挺简单的代码, 记录一下分享. 首先最直接的想法就是使用循环, 用局部变量记录已选的checkbox, 达到最大值就将余下的checkbox都禁止选择, 例如以下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> <html xmlns"…

交通建设集团网站但无法选择(select)wordpress数据库.

文章目录 JAVA13概述语法层面特性switch表达式(预览)文本块(预览) API层次特性重新实现旧版套接字API 其他变化ZGC取消未使用的内存增加废弃和移除增加项移除项废弃项 JAVA13概述 2019年9月17日&#xff0c;国际知名的OpenJDK开源社区发布了Java编程语言环境的最新版本OpenJDK…

JAVA SE 基础语法 —— A / 初识 - 指南

JAVA SE 基础语法 —— A / 初识 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

2025年掘进机厂家权威推荐榜:实力品牌与技术创新深度解析

2025年掘进机厂家权威推荐榜:实力品牌与技术创新深度解析在基础设施建设与矿山开采行业高速发展的今天,掘进机作为核心工程装备,其性能优劣直接关系到工程进度与施工安全。随着技术的不断革新,掘进机市场呈现出智能…

2025机械加工供货厂家权威口碑排行:实力与服务深度解析!

2025机械加工供货厂家权威口碑排行:实力与服务深度解析!行业背景在当今制造业蓬勃发展的大背景下,机械加工行业作为制造业的核心支柱之一,扮演着至关重要的角色。随着科技的不断进步和市场需求的日益多样化,机械加…

NOIP 集训日记 2.0

yuanshen,qidong!111

重庆网站seo搜索引擎优化常用的搜索引擎有哪些?

我们是否充分意识到云端所面临的网络安全威胁&#xff1f; 在当今互联互通的世界中&#xff0c;维护安全的环境至关重要。云的出现扩大了潜在威胁的范围&#xff0c;因为它催生了机器身份&#xff08;称为非人类身份 (NHI)&#xff09;及其秘密。随着组织越来越多地转向云原生…

2025舒适轮胎权威推荐榜:静音科技与驾乘体验口碑之选

2025舒适轮胎权威推荐榜:静音科技与驾乘体验口碑之选随着汽车工业的持续发展和消费者对驾乘体验要求的不断提升,舒适轮胎市场正迎来新一轮技术革新与产品升级。根据行业数据显示,2024年全球舒适轮胎市场规模已突破千…

2025七水硫酸锌厂家权威推荐榜:优质供应与专业定制首选

2025七水硫酸锌厂家权威推荐榜:优质供应与专业定制首选随着现代农业和工业的快速发展,七水硫酸锌作为重要的微量元素肥料和工业原料,其市场需求持续增长。在环保要求日益严格、产品质量标准不断提升的背景下,选择合…

深圳网站建设公司权威推荐榜:专业定制与创新设计口碑之选

深圳网站建设公司权威推荐榜:专业定制与创新设计口碑之选在数字化转型浪潮席卷各行各业的今天,企业网站已从简单的信息展示窗口升级为品牌形象展示、业务拓展和客户服务的重要平台。作为中国科技创新前沿阵地的深圳,…

UV面光源实力厂家权威推荐:专业制造与品质保障口碑之选

UV面光源实力厂家权威推荐:专业制造与品质保障口碑之选在精密制造、电子组装、医疗设备等高端工业领域,UV面光源作为关键固化设备,其性能优劣直接关系到产品质量和生产效率。随着产业升级和技术进步,市场对UV面光源…