Comments (2)
That happens in the _find_kpt_errors
function. In particular:
-
Lines 326-346: The different type of localization error is identified for each individual keypoint in the specific detection being analyzed. Issue #2 contains additional details that might help you further understand.
-
Lines 348-376: Based on the type of error identified for each keypoint an update is performed to its
x
andy
coordinates so that theKS
of that keypoint is increased.
A few key observations:
-
For a specific keypoint (i.e.
left-eye
,right-knee
, etc.), theKS
between a predicted keypoint location and the ground-truth location is the same over all possible coordinates with a fixed radial distance from the ground-truth location. I.e. if a predictionx
is 5 pixels away from the ground-truth locationo
, it doesn't matter if it's to its left (x-o
) or right (o-x
), theKS
will be the same. For that reason, when correcting a keypoint, I only adjust itsx
coordinate and leave they
coordinate the same as in the original prediction. This is arbitrary, and has no bearing whatsoever on the final result. -
A keypoint can be in one and only one category between
miss
,swap
,inversion
,jitter
, andgood
. This is fundamental for the working of the analysis because the corrected location must be unique. The variablesgood_kpts
,jitt_kpts
,miss_kpts
,swap_kpts
,inv_kpts
are masks with dimension 17 (total number of keypoints) and never have overlap. -
If a keypoint prediction is
good
its coordinates are not corrected. In fact, the maskgood_kpts
multiplies the originalx
coordinates of the detection and those values are assigned to the new corrected keypoint coordinates. -
If a keypoint prediction is
miss
its coordinates are corrected by putting the new coordinates at a distance from the ground-truth location that hasKS=0.5
. -
If a keypoint prediction is
jitter
its coordinates are corrected by putting the new coordinates at a distance from the ground-truth location that hasKS=0.85
. -
If a keypoint prediction is
inversion
orswap
its coordinates have aKS>=0.5
but with the wrong ground-truth (belonging to the same person in the case ofinversion
, or a different one in the case ofswap
). These errors are corrected by putting the new coordinates at a distance from the correct ground-truth location that has the sameKS
value that the previous prediction had with the wrong ground-truth.
Feel free to re-open the issue if you have further questions.
from coco-analyze.
Thank you very much.
from coco-analyze.
Related Issues (20)
- Missing figures within the generated latex file HOT 3
- Error analysis for object detection HOT 5
- Assertion Error for Pose Estimation in COCO Validation 2017 HOT 3
- Replacing attribute 'set_axis_bgcolor' with 'set_facecolor' HOT 1
- Undetected keypoint confused with the point of (0, 0) HOT 8
- When analyze coco2017,this code ap is a little higher than original ap? HOT 12
- OPt Score HOT 1
- image id of the COCO Benchmarks HOT 2
- Using Train Data For Benchmarks Confusion HOT 1
- About Histogram Plot of False Positive Scores HOT 4
- about Python 2 and 3 compatibility(unicode issue) HOT 1
- Big difference between COCOEvaluator and coco_analyze.evaluate on custom dataset HOT 1
- Requirements and update to cocoeval.py
- 2D bounding box analysis? HOT 2
- TypeError: 'numpy.float64' object cannot be interpreted as an integer HOT 1
- Key error raised when running code. HOT 8
- ValueError: cannot convert float NaN to integer HOT 3
- how to get the _results.json HOT 2
- Special characters in team name 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 coco-analyze.