【问题标题】:Fingers movement tracing in a video视频中的手指运动跟踪
【发布时间】:2018-08-20 09:33:14
【问题描述】:

拜托,我正在尝试检测视频中手指的移动。首先,我想应用肤色检测来将手与背景分开,然后我会找到手计数器,然后计算凸点来检测手指。我现在想要从这个视频中得到一个新视频,只显示两个敲击手指的运动(或它们的轮廓),如图所示。

我用这段代码检测肤色:

  function OutImg=Skin_Detect(I)
  % clear
  % I=imread('D:\New Project\Movie Frames from RLC_L_FTM_IP60\Frame     
  0002.png');
  I=double(I);
  [hue,s,v]=rgb2hsv(I);
  cb =  0.148* I(:,:,1) - 0.291* I(:,:,2) + 0.439 * I(:,:,3) + 128;
  cr =  0.439 * I(:,:,1) - 0.368 * I(:,:,2) -0.071 * I(:,:,3) + 128;
  [w h]=size(I(:,:,1));
  for i=1:w
     for j=1:h            
         if  138<=cr(i,j) && cr(i,j)<=169 && 136<=cb(i,j) && cb(i,j)<=200 && 
            0.01<=hue(i,j) && hue(i,j)<=0.2     
           segment(i,j)=1;            
       else       
            segment(i,j)=0;    
       end    
    end
  end

 % imshow(segment);
 OutImg(:,:,1)=I(:,:,1).*segment;   
 OutImg(:,:,2)=I(:,:,2).*segment; 
 OutImg(:,:,3)=I(:,:,3).*segment; 
 % figure,imshow(uint8(im));

当我将相同的代码应用到图像时,它运行良好,但当我将它应用到视频时,我什么也没检测到,如下所示:

 videoFReader = vision.VideoFileReader('RLC_L_FT_IP60.m4v');
 % Create a video player object for displaying video frames.
 videoPlayer = vision.DeployableVideoPlayer;

 % Display the original video
 while ~isDone(videoFReader)
       videoFrame = step(videoFReader);
       % Track using the Hue channel data
        Out=Skin_Detect(videoFrame);
        step(videoPlayer,Out);
 end

请问有什么解决这个问题的建议和想法吗?

如果有人能提供帮助,即使使用不同的代码,我将不胜感激。 提前谢谢你。

【问题讨论】:

    标签: matlab opencv image-processing computer-vision image-segmentation


    【解决方案1】:

    我遇到了类似的问题。我认为正确的方法是使用分类器,即使它是一个“简单”的分类器......这是我在解决方案中遵循的步骤:

    1) 我使用了 RGB 颜色空间和马氏距离作为肤色模型。它速度快,效果很好。

    2) 连接的组件:一个简单的形态学关闭操作与一个小的结构元素可用于连接在不完美的阈值处理期间可能断开的区域,例如手的手指。

    3) 特征提取:例如面积、周长和面积与周长的比率。

    4)分类:使用SVM分类器进行最终分类。我希望你已经为这个过程标记了训练数据。

    我并没有完全解决你的具体问题,但也许它可以给你一些想法...... :)

    【讨论】:

    • 亲爱的 Arritmic 非常感谢您的回答,但这并不能解决问题。我设法正确检测到图像中的皮肤,但我不知道为什么它不适用于视频。
    【解决方案2】:

    如果您不坚持自己书写,可以使用 Google 的 MediaPipe 进行手部和手指追踪。

    信息:

    https://ai.googleblog.com/2019/08/on-device-real-time-hand-tracking-with.html

    桌面和 Android 示例:

    https://github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_mobile_gpu.md

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      相关资源
      最近更新 更多