Giter Site home page Giter Site logo

Regarding h36m image about evoskeleton HOT 5 OPEN

jenowary avatar jenowary commented on June 17, 2024
Regarding h36m image

from evoskeleton.

Comments (5)

Nicholasli1995 avatar Nicholasli1995 commented on June 17, 2024

Thank you for kindly providing 2D HRNet model. Please let me raise an issue about reproducing 2D detection results.

I could not reproduce Average Joint Localization Error at 4.4 pixel, and i found the example image you provided is different with mine. Red regions indicate inconsistent pixel value. image

How I extract image from original video is to use ffmpeg with arguments -hide_banner -loglevel error -nostats -i SrcVideoPath -q:v 1, and I don't know why the image inconsistency occurs.

Can you share how you do that? That means to me a lot, appreciate in advance.

Hi, I did not use the ffmpeg commands. I used the video functionality in OpenCV. Specifically, I used cv2.VideoCapture to initialize a video stream and read the frames:
import cv2
cap = cv2.VideoCapture(video_path)
while(cap.isOpened()):
ret, frame = cap.read()

from evoskeleton.

jenowary avatar jenowary commented on June 17, 2024

Thank you for providing the details. But I've tried it by the code clip below and still have difference:

def readFrames(videoFile, destination_dir, sequence_name):
  global image_size, frame_step, destination_format
  directory = os.path.join(destination_dir)
  if not os.path.exists(directory):
      os.makedirs(directory)
  image_counter = 1
  read_counter = 0
  cap = cv2.VideoCapture(videoFile)
  while(cap.isOpened()):
      ret,cv2_im = cap.read()
      if ret and read_counter % frame_step == 0:
              cv2.imwrite(os.path.join(destination_dir, sequence_name + '_%06d'%image_counter + '.' + destination_format), cv2_im)
              image_counter += 1
      elif not ret:
              break
      read_counter += 1
  cap.release()

image

Can you give more details, like using cv2.imwrite or PIL.Image.save?

Appreciate again for your patient reply.

from evoskeleton.

Nicholasli1995 avatar Nicholasli1995 commented on June 17, 2024

Thank you for providing the details. But I've tried it by the code clip below and still have difference:

def readFrames(videoFile, destination_dir, sequence_name):
  global image_size, frame_step, destination_format
  directory = os.path.join(destination_dir)
  if not os.path.exists(directory):
      os.makedirs(directory)
  image_counter = 1
  read_counter = 0
  cap = cv2.VideoCapture(videoFile)
  while(cap.isOpened()):
      ret,cv2_im = cap.read()
      if ret and read_counter % frame_step == 0:
              cv2.imwrite(os.path.join(destination_dir, sequence_name + '_%06d'%image_counter + '.' + destination_format), cv2_im)
              image_counter += 1
      elif not ret:
              break
      read_counter += 1
  cap.release()

image

Can you give more details, like using cv2.imwrite or PIL.Image.save?

Appreciate again for your patient reply.

Hi, which method you use to save the image should not cause the problem. Is it possible that the timestamp of the frame you used is different from the example image? In addition, how large is the error quantitatively? Is the error large enough to affect the produced 2D key-point predictions?

from evoskeleton.

jenowary avatar jenowary commented on June 17, 2024

Thank you for your analysis.
I think the timestamp are same. For example, 1002.jpg that this repo provided means the 1002th or 1003th frame, I tried both and it seems the 1003th frame.
The evaluated 2D error on S9&S11 is 5.76 pixel, significant deterioration in comparison to the reported 4.4 pixel.

But here are some updates.
I noticed that 12 video sequences of S9 subject have drifting problem of joint annotation. (ref: Human3.6M erroneous annotations)
After removing these samples from test set, the evaluation comes down to 4.6 pixel, similar to 4.4.

I wonder if this drifting-remove evaluation is same to yours?

from evoskeleton.

Nicholasli1995 avatar Nicholasli1995 commented on June 17, 2024

Thank you for your analysis. I think the timestamp are same. For example, 1002.jpg that this repo provided means the 1002th or 1003th frame, I tried both and it seems the 1003th frame. The evaluated 2D error on S9&S11 is 5.76 pixel, significant deterioration in comparison to the reported 4.4 pixel.

But here are some updates. I noticed that 12 video sequences of S9 subject have drifting problem of joint annotation. (ref: Human3.6M erroneous annotations) After removing these samples from test set, the evaluation comes down to 4.6 pixel, similar to 4.4.

I wonder if this drifting-remove evaluation is same to yours?

It was similar. The wrong ground truth annotations indeed need some extra processing. Instead of removing them, the ground truth keypoints were moved to the centroid of the predicted keypoints for evaluation.

from evoskeleton.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.