提交 2061ec24 编写于 作者: G gineshidalgo99

Fixed 3D triangulation bug (#980)

上级 0872e9b4
......@@ -17,6 +17,7 @@ OpenPose - Frequently Asked Question (FAQ)
12. [How to Measure the Latency Time?](#how-to-measure-the-latency-time)
13. [Zero People Detected](#zero-people-detected)
14. [3D OpenPose Returning Wrong Results: 0, NaN, Infinity, etc.](#3d-openpose-returning-wrong-results-0-nan-infinity-etc)
15. [Protobuf Clip Param Caffe Error](#protobuf-clip-param-caffe-error)
......@@ -120,3 +121,16 @@ COCO model will eventually be removed. BODY_25 model is faster, more accurate, a
**Q: 3D OpenPose is returning wrong results.**
**A**: 99.99% of the cases, this is due to wrong or poor calibration. Repeat the calibration making sure that the final reprojection error is about or less than 0.1 pixels.
### Protobuf Clip Param Caffe Error
**Q: Runtime error similar to:**
```
[libprotobuf ERROR google/protobuf/message_lite.cc:123] Can't parse message of type "caffe.NetParameter" because it is missing required fields: layer[0].clip_param.min, layer[0].clip_param.max
F0821 14:26:29.665053 22812 upgrade_proto.cpp:97] Check failed: ReadProtoFromBinaryFile(param_file, param) Failed to parse NetParameter file: models/pose/body_25/pose_iter_584000.caffemodel
```
**A**: This error only happens in some Ubuntu machines. Following #787, compile your own Caffe with an older version of it. The hacky (quick but not recommended way) is to follow [#787#issuecomment-415476837](https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/787#issuecomment-415476837), the elegant way (compatible with future OpenPose versions) is to build your own Caffe independently, following [doc/installation.md#custom-caffe-ubuntu-only](./installation.md#custom-caffe-ubuntu-only).
Note that OpenPose uses a [custom fork of Caffe](https://github.com/CMU-Perceptual-Computing-Lab/caffe) (rather than the official Caffe master), which it is only updated if it works on our machines. Currently, this version works on a newly formatted machine (Ubuntu 16.04 LTS) and in all our machines (CUDA 8 and 10 tested). The default GPU version is the master branch, which it is also compatible with CUDA 10 without changes (official Caffe version requires some changes for it). We also use the OpenCL and CPU tags if their CMake flags are selected.
......@@ -313,6 +313,7 @@ OpenPose Library - Release Notes
4. Function `scaleKeypoints2d` was not working if any of the scales was 1 (e.g., fail if scaleX = 1 but scaleY != 1, or if any offset was not 0).
5. Fixed bug in `KeepTopNPeople` that could provoke segmentation fault for `number_people_max` > 1.
6. Camera parameter reader can now take folder paths even if they are not finished in `/` (e.g., `~/Desktop/` worked but `~/Desktop` did not).
7. 3D module: If the image area was smaller than HD resolution image area, the 3D keypoints were not properly estimated.
......
......@@ -385,7 +385,7 @@ namespace op
}
}
// 3D reconstruction
const auto imageRatio = std::sqrt(imageSizes[0].x * imageSizes[0].y / 1310720);
const auto imageRatio = std::sqrt(imageSizes[0].x * imageSizes[0].y / 1310720.);
const auto reprojectionMaxAcceptable = 25 * imageRatio;
std::vector<double> reprojectionErrors(xyPoints.size());
keypoints3D.reset({ 1, numberBodyParts, 4 }, 0);
......
......@@ -786,7 +786,7 @@ namespace op
{
try
{
return (poseModel != PoseModel::BODY_25B && poseModel != PoseModel::BODY_95);
return (POSE_BODY_PART_MAPPING[(int)poseModel].size() != POSE_NUMBER_BODY_PARTS[(int)poseModel]);
}
catch (const std::exception& e)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册