为了账号安全,请及时绑定邮箱和手机立即绑定

当我将图像提供给经过训练的模型时,它为未在模型中训练的对象提供了 80% 以上的准确度

当我将图像提供给经过训练的模型时,它为未在模型中训练的对象提供了 80% 以上的准确度

C#
胡说叔叔 2022-11-21 21:56:11

我正在研究识别手势的Unity-Android应用程序。我用来训练模型的图像是50x50 黑白图像,手部通过HSV 值进行分割。现在,在测试模型时也进行了同样的操作,但问题是:当相机中没有手时,它仍然会检测到某些东西(任何东西 - 通过移动相机),因为 HSV 不准确,并且当图像(没有手) ) 被提供给模型,它仍然给出了80%+ 的准确率,并为其确定了一个随机类。

训练模型的图像和代码被链接下来。

我正在使用TensorflowSharp加载我的模型。对于 openCV,我使用OpenCV for Unity 我有4 个手势(4 个类),其中每个类有 4-4.5k 个图像,总共 17k 个图像。样本图片

1级

http://img3.sycdn.imooc.com/637b83940001532b02360316.jpg

2级


http://img1.sycdn.imooc.com/637b83a00001c79702350316.jpg

3级

http://img1.sycdn.imooc.com/637b83ad0001e67402370316.jpg

4级

http://img4.sycdn.imooc.com/637b83b700011c6402350313.jpg

如果您需要任何其他信息,请告诉我,我们将不胜感激。

  • 我已经尝试过手部检测模型,因此它可以检测到什么时候没有手,但它们并不准确。

  • 我已经尝试从用户输入触摸他的手所在的位置,它工作正常但是当手被移开时它再次开始随机检测,因为 HSV。

  • 我尝试通过 SIFT 等进行特征匹配,但它们非常昂贵。

  • 我尝试了模板匹配,从我的角度来看,它应该有效,但给出了一些奇怪的结果。


查看完整描述

1 回答

?
慕仙森

TA贡献1561条经验 获得超7个赞

根据我的说法,基本问题是您无法检测图像中是否存在手。你需要定位手。

  1. 首先,我们需要检测手是否存在。您可以尝试Siamese 网络来完成这些任务。我已经成功地使用它们来检测皮肤异常。您可以参考这个 -> Harshall Lamba https://link.medium.com/xrCQOD8ntV“使用 Keras 的 Siamese 网络的一次性学习”和 Harshvardhan Gupta 的“PyTorch 中的 Siamese 网络的面部相似性” https://link.medium .com/htBzNmUCyV

  2. 网络将给出二进制输出。如果手存在,则将看到更接近 1 的值。否则,将看到接近零的值。

其他,像 YOLO 这样的 ML 模型用于对象定位,但 Siamese 网络简单而清醒。

Siamese 网络实际上使用相同的 CNN,因此它们是 siamese 或 conjoined。他们测量图像嵌入之间的绝对误差,并尝试近似图像之间的相似度函数。

之后,进行适当的检测,就可以进行分类。


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 7 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信