Comments (5)
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.
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.
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()
Can you give more details, like using cv2.imwrite
or PIL.Image.save
?
Appreciate again for your patient reply.
from evoskeleton.
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()
Can you give more details, like using
cv2.imwrite
orPIL.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.
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.
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)
- training input size and inference input size not match HOT 32
- Location of the hip/pelvis joint? HOT 6
- camera params in cameras.npy HOT 2
- generating other poses from a known pose HOT 7
- ImportError: No module named libs.hhr.config HOT 3
- AttributeError: module 'libs.utils' has no attribute 'utils' HOT 5
- 2d poses from 3d pose HOT 11
- 2D to 3D with own data HOT 6
- weird 3D Pose
- Input of the plot_distribution in anglelimits.py HOT 4
- Inconsistency between pretrained HRNet 2D detector and twoDPose_HRN.npy HOT 7
- Data Preprocessing when test on 3dhp dataset HOT 3
- Obtain 3D skeleton with 2D key-points as inputs using SMPLify by own data HOT 3
- Source of 2D keypoints when eval on 3dhp dataset HOT 1
- Preprocessed npz file of HRNet HOT 1
- About 2D anchor of the cropped image HOT 3
- 模型下载问题 HOT 1
- annotate_3D.py
- Fine-tuning of HRNet HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from evoskeleton.