重力落球法-手指指根检测-缺陷检测

Isaac Sim最新特性和在缺陷检测上的一些思考和应用 提供了强大的自定义环境与任务支持,让研究人员能够根据具体需求创建独特的实验场景和任务。无论是模拟一个复杂的工业环境,还是设计一个全新的机器人任务,Isaac Lab 2.0 都能提供所需的工具和灵活性。这就像是为你的机器人学习实验提供了一个“无限画布”,让你可以尽情发挥创意。通过这些新特性,不仅简化了机器人学习的研究工作流程,还为未来的创新打开了无限可能。无论是模块化设计、模仿学习、多GPU支持,还是自定义环境,Isaac Lab 2.0 都在为下一波机器人浪潮奠定坚实的基础。 阅读详情

前言:最近写一份代码要对手指指根进行检测,即如下图标出指根:
在这里插入图片描述用了多种方法,效果均不佳,最终自己想了个方法,私命名为重力落球法。

1.手指指根检测的常用方法

1.1凸缺陷检测(找凸包)

<<本部分代码引自:引用一>>
opencv函数原型:

//get hull
vector<int>hull;
vector<vector<Point>>hullS(2);
// Convexity defects
vector<vector<Vec4i>> defects(2);
convexHull( Mat(contours[maxIndex]), hullS[0],false);
convexHull( Mat(contours[maxIndex]), hull,false,false);
//注意convexityDefects中要求hull为vector<int>类型
convexityDefects(Mat(contours[maxIndex]),hull, defects[0]);
vector<Vec4i>::iterator d =defects[0].begin();
while( d!=defects[0].end() ) 
{
	Vec4i& v=(*d);
    int startidx=v[0];
    Point ptStart( contours[maxIndex][startidx] ); // point of the contour where the defect begins
    int endidx=v[1];
    Point ptEnd( contours[maxIndex][endidx] ); // point of the contour where the defect ends
    int faridx=v[2];
    Point ptFar( contours[maxIndex][faridx] );// the farthest from the convex hull point within the defect
    int depth = v[3] / 256; // distance between the farthest point and the convex hull
    if(depth > 2)
    {
    line( dstImage, ptStart, ptFar, CV_RGB(255,255,255), 2 );
    line( dstImage, ptEnd, ptFar, CV_RGB(255,255,255), 2 );
	circle( dstImage, ptStart,   4, Scalar(255), 2 );
	circle( dstImage, ptEnd,   4, Scalar(255), 2 );
    circle( dstImage, ptFar,   4, Scalar(100), 2 );
    }
d++;
}

结果:对于图像较为规整的效果好

在这里插入图片描述

图像不规整的效果则不好:

在这里插入图片描述

结果分析:在图像不规整中最初找凸包时出现了问题,手指上部分为平的,未能找到凸包的点,所以部分指根找不全。

1.2径向距离函数
  • 方法:找到手掌中心,得到手掌中心到手掌边缘距离的曲线,之后求得四个极小值点就是手指指根所在。
  • 问题:该方法的前提要保证手掌轮廓为光滑的,不能有小的缺陷,不然会找出许多极小值点。

比如下面的图片就存在许多锯齿点:
在这里插入图片描述

2.重力落球法

2.1分析

以上问题总结:

  • 求图像凸包不准确
  • 图像外边缘存在许多小的缺陷,而我们想要的是指关节间的缺陷

于是我们就联想到解决问题的方法类似于现实世界的重力:

  • 在三座山峰中,在天上每隔一定距离扔下一个小球,那么最终这些小球都会落在山坡的谷底。我们这个问题就变成了模拟题。
    在这里插入图片描述
    在这里插入图片描述
  • 在手指指根检测中,我们也可以运用相同的方法,我们只需要检测最终球的落地就可以知道手指根部在哪里.

问:对于小的缺陷如何解决?

答:增大球的"半径";

问:用什么来代替一个小球?

答:用一个像素点代表球心,保证半径范围内没有轮廓点;

问:每个小球的间距如何定?

答:小于最小缺陷间距离的1/2;

问:如何模拟小球在重力下的运动?

答:执行循环,判断半径范围外下方,右下方,左下方是否有轮廓点,没有则向那个方向移动。

2.2模拟规则
  • 小球:中心为一像素点,保证小球半径内无轮廓点,最初小球中心在图像上边界,小球中心到达图像左右下边界即判断为出界;
  • 小球初始排布:n个小球均匀分布在图像上边界;球间距离小于最小缺陷间距离的1/2;
  • 重力规则:小球可以往左,右,下移动,不可以往上移动。
  • 移动次序:只要下方可容纳小球,小球向下移动,否则向右移动,若到达右边界不可移动,则向左移动,到左边界不可移动则小球停止移动;
2.3结果

在这里插入图片描述

所有图片检测成功

KinectV2手指检测识别 KinectSDK2.0手指检测判断,完成相应识别操作,判断手指是否进行操作 立即下载

相关推荐

halcon 深度学习标注_Halcon deep learning之目标检测笔记(一)

设置输入输出的路径输入路径有两个,一个是图像路径HalconImageDir,一个是Json文件路径PillBagJsonFile。这两个参数用于后续在图像路径中读取coco文件。输出路径首先定义一个新的文件夹路径,用于存放样本和模型文件等数据。设置基于深度学习的目标检测模型的路径,该模型文件以.hdl结尾。设置样本数据文件夹ExampleDataDir:'detect_pills_data'数据...

weixin_27885313的博客 2699

指尖检测 & 手掌检测 & 手指弯曲程度检测

检测手指指尖,方法是首先阈值分割后检测指尖的曲率,找到符合要求的点,然后聚类,找出符合要求的在指尖上的点,最后得到指尖,得到指尖后,根据指尖的到手掌心的中心的距离程度,判断弯曲的程度。相应的截图如下所示: 原始图像: CrCb图像 阈值分割图像: 指尖检测图像: 提取边缘和手掌心: 计算指尖到手掌心的距离,进行评级:

卖火柴的小男孩 7221

保姆级教程:用CST 2023一步步复现一个1-8GHz Vivaldi天线(含参数优化与结果分析)

本文提供了一份详细的CST 2023教程,指导读者如何从零开始设计并优化1-8GHz Vivaldi天线。内容涵盖工程设置、参数化建模、仿真加速技巧以及性能优化策略,特别适合需要实现宽带天线设计的工程师和研究人员。通过实战案例,帮助用户掌握Vivaldi天线的核心设计要点和CST高级功能应用。

weixin_30800987的博客 618

基于OpenCV的手指只数检测

提示:本项目是由微信公众号:小白学视觉,中Opencv视觉实战项目里为源文,等下也会分享链接。有兴趣的小伙伴们可以关注哦,里面还有很多的基础视觉项目,我个人觉得还是很有意思的。 文章目录前言一、手指检测流程二、使用步骤1.引入库2.检测皮肤肤色Mask3.轮廓线绘制4.凸包缺陷检测5.余弦定理手指个数计算6.完整代码总结 前言 例如:非常感谢微信公众号:小白学视觉,提供的开源的openCV视觉项目。链接:小白学视觉 有兴趣的小伙伴赶紧去关注吧。 一、手指检测流程 打开摄像头或一张图片(如果是图片.

weixin_43422072的博客 1573

MacX DVD Ripper Pro for Mac(DVD解码器) 6.2.120190416免激活版

只需要5分钟即可转档一张DVD光碟!并允许我们在编码之前预览、编辑、裁剪、修剪或扩展视频。第一款也是唯一一款能够支持DVD到MP4,H.264,MOV,FLV,MPEG4等所有格式DVD(新DVD,99-标题DVD,损坏和无法播放的DVD)和翻录DVD / ISO映像的工具,AVI,QT,MP3等。借助350多种预设配置文件MacX DVD Ripper Pro for Mac(DVD解码器) 6...

llhf688的博客 890

【跳频通信】基于MATLAB的跳频通信系统仿真

同时,跳频通信也具有良好的抗干扰能力,即使有部分频点被干扰,仍能在其他未被干扰的频点上进行正常的通信。由于跳频通信系统是瞬时窄带系统,它易于与其他的窄带通信系统兼容,也就是说,跳频电台可以与常规的窄带电台互通,有利于设备的更新。跳频是最常用的扩频方式之一,其工作原理是指收发双方传输信号的载波频率按照预定规律进行离散变化的通信方式,也就是说,通信中使用的载波频率受伪随机变化码的控制而随机跳变。从通信技术的实现方式来说,“跳频”是一种用码序列进行多频频移键控的通信方式,也是一种码控载频跳变的通信系统。

FPGA/MATLAB学习教程/源码/项目合作开发 6265

制作手指检测数据集

将所有手指图片统一尺寸 import os from PIL import Image import sys sys.path.append('/home/xm/桌面/finger_detection') from utils import parse_voc_xml,mkdir_if_not_exist class_names = ['finger'] os.environ['data_ro...

shouhan6396的博客 1720

YOLOv8自动驾驶系统 —— 夜间低光照条件 详细说明和完整代码

本文提出一种针对夜间低光照优化的自动驾驶车道保持系统方案,基于YOLOv8模型改进,包含三大核心技术:1.采用Retinex理论的多尺度低光增强算法,结合自适应伽马校正;2.改进YOLOv8的车道检测模型,通过夜间专用数据集训练,增加抗眩光处理;3.多传感器融合框架,整合可见光与红外图像。系统实现动态逆透视变换和参数调整,在Jetson Orin硬件上达到30ms级实时性能。测试显示在无照明、眩光干扰等极端场景下保持稳定,代码已开源。扩展方向包括V2X协同定位和自适应大灯联动控制。

u010117029的博客 598

检测手指的好方法!思路

<br />codebook+肤色过滤->得到手的二值图像<br /> <br />用连通域,找到最大连通域。连通域边缘是一定精度的端点构成,查找折线的角度,在3个点内转过90度的为手指端点。

darkread的专栏 1579

符合DO-178C和DO-331的机载软件研制体系

DO-178C的核心要求软件开发生命周期:DO-178C定义了软件开发的生命周期过程,包括需求获取、设计、实现、验证和确认等。它为机载软件开发提供了一套系统化的指导,确保在开发过程中考虑安全性和可靠性。安全等级(DAL):根据系统的重要性,DO-178C将软件划分为不同的开发保障等级(DAL A到E),DAL A的要求最为严格,适用于关键安全功能,而DAL E的要求较低,适用于非关键功能。DO-178C在非基于模型软件开发中的应用。

qq_41854911的博客 979

3060台式机 Ubuntu 双系统部署 LingBot-Map 完整指南

摘要: 本文详细介绍了在配备RTX 3060显卡的台式机上部署Ubuntu双系统并安装LingBot-Map 3D重建模型的完整流程。LingBot-Map作为蚂蚁灵波科技开源的Transformer架构模型,在流式3D场景重建中展现出高效性能(20 FPS)和卓越精度(ATE仅6.42米)。指南涵盖关键准备步骤、UEFI分区原理、Ubuntu安装流程(推荐150GB空间及手动分区方案),以及后续驱动配置说明,特别强调RTX 3060需12GB显存支持,并提供了数据备份、Secure Boot处理等实用建议

huanghm88的专栏 309

液体渗透检测方法检测锻件的表面缺陷,原理是利用的毛细现象。难道不是因为水往低处流导致缺陷中充满液体的吗,这里和毛细现象有什么关系。液体在锻件缺陷中,向上升高能升高多少呢?没有缺陷的锻件位置会充满液体吗

这个过程中,液体在缺陷中上升的高度是由毛细管法则决定的。毛细管法则表达了液体在细毛细管中上升的高度与液体的表面张力、接触角、液体密度、重力加速度和毛细管半径的关系。没有缺陷的锻件位置通常不会充满液体,因为毛细作用主要发生在缺陷或细小的孔洞中。液体会在表面张力的作用下,被吸引到缺陷处,并在缺陷中上升,形成可视化的迹象。总体来说,液体渗透检测中的毛细作用使得液体能够进入细小的缺陷中,帮助检测和显示材料表面的缺陷。渗透剂在缺陷处停留一段时间后,通过清除表面上多余的渗透剂,只留下被吸入缺陷中的渗透剂。

weixin_43501408的博客 735

3.摄像头组件- CVP (ISP)

本文介绍 车载摄像头组件-ISP

2401_83458819的博客 1617

【单悬臂梁】基于梯度缺陷ANCF梁单元的单悬臂梁在重力作用下的弯曲MATLAB仿真,采用显式时间步进算法研究(Matlab代码实现)

💥💥💞💞❤️❤️💥💥博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️行百里者,半于九十。📋📋📋🎁🎁🎁。

m0_73647931的博客 833

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: python淘宝商品信息爬取2020
下一篇: 2021年豆瓣图书爬取-根据ISBN爬取图书信息
爱安敝之
博客等级 码龄8年 64粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值