release_notes.md 15.4 KB
Newer Older
1 2 3 4 5
OpenPose Library - Release Notes
====================================



G
gineshidalgo99 已提交
6
## OpenPose 1.0.0rc1 (Apr 24, 2017)
7
1. Initial version, main functionality:
8
    1. Body keypoint detection and rendering in Ubuntu 14 and 16.
9 10 11 12 13
    2. It can read an image directory, video or webcam.
    3. It can display the results or storing them on disk.



G
gineshidalgo99 已提交
14
## OpenPose 1.0.0rc2 (May 10, 2017)
15 16 17
1. Main improvements:
    1. Rendering max resolution from 720p to >32k images.
    2. Highly improved documentation.
G
gineshidalgo99 已提交
18
2. Functions or parameters renamed:
19 20 21 22 23 24
    1. Demo renamed from rtpose to openpose.
3. Main bugs fixed:
    1. Demo uses exec instead of start, so it works with more OpenCV custom compiled versions.



G
gineshidalgo99 已提交
25
## OpenPose 1.0.0rc3 (Jun 8, 2017)
26 27
1. Main improvements:
    1. Added face keypoint detection.
G
gineshidalgo99 已提交
28
    2. Added Windows 10 compatibility.
29 30 31 32
    3. Auto-detection of the number of GPUs.
    4. MPI visualization more similar to COCO one.
    5. Rendering max resolution from 720p to >32k images.
    6. GUI info adder working when the worker TDatum has more than 1 Datum.
G
gineshidalgo99 已提交
33
    7. It prints out the error description before throwing the exception (so that it is written on the Windows cmd).
34
    8. Highly improved documentation.
G
gineshidalgo99 已提交
35
2. Functions or parameters renamed:
36 37 38
    1. Flag `--write_pose` renamed as `--write_keypoint` and it also applies to face and/or hands.
    2. Flag `--write_pose_json` renamed as `--write_keypoint_json` and it also applies to face and/or hands.
    3. Flag `--write_pose_format` renamed as `--write_keypoint_format` and it also applies to face and/or hands.
39 40 41 42 43
    4. PoseSaver and its JSON variant renamed as KeypointSaver.
    5. PoseJsonCocoSaver renamed as CocoJsonSaver.
3. Main bugs fixed:
    1. All visualization functions moved to same thread, so it works with most OpenCV custom compiled versions.
    2. Fixed error on debug mode: `Too many resources requested for launch`.
44 45 46



G
gineshidalgo99 已提交
47
## OpenPose 1.0.0 (Jul 8, 2017)
48
1. Main improvements:
G
gineshidalgo99 已提交
49 50 51 52 53 54 55 56 57
    1. Added hand keypoint detection.
    2. Windows branch merged to master branch.
    3. Face and hands use `Maximum` instead of `Nms`, since there is only 1 person / detection.
    4. Increased accuracy on multi-scale (added `Datum::scaleRatios` to save the relative scale ratio when multi-scale).
    5. Increased speed ~5% by adding CPU rendering (but GPU is the default rendering).
    6. Rendering colors modified, visually better results.
    7. Rendering threshold for pose, face and hands becomes user-configurable.
    8. Check() functions give more feedback.
    9. WCocoJsonSaver finished and removed its 3599-image limit.
58
    10. Added `--camera_fps` so generated video will use that frame rate.
G
gineshidalgo99 已提交
59 60 61 62
    11. Reduced the number of printed information messages. Default logging priority threshold increased to Priority::Max.
    12. Google flags to OpenPose configuration parameters reader moved from each demo to utilities/flagsToOpenPose.
    13. Nms classes do not use `numberParts` for `Reshape`, they deduce the value.
    14. Improved documentation.
G
gineshidalgo99 已提交
63 64
2. Functions or parameters renamed:
    1. Render flags renamed in the demo in order to incorporate the CPU/GPU rendering.
65 66 67
    2. Keypoints saved in JSON files (`--write_keypoint_json`) are now saved as `pose_keypoints`, `face_keypoints`, `hand_left_keypoints`, and `hand_right_keypoints`. They all were previously saved as `body_parts`.
    3. Flag `--num_scales` renamed as `--scale_number`.
    4. All hand and pose flags renamed such as they start by `--hand_` and `--face_` respectively.
68 69 70
3. Main bugs fixed:
    1. Fixed bug in Array::getConstCvMat() if mVolume=0, now returning empty cv::Mat.
    2. Fixed bug: `--process_real_time` threw error with webcam.
G
gineshidalgo99 已提交
71 72
    3. Fixed bug: Face not working when input and output resolutions are different.
    4. Fixed some bugs that prevented debug version to run.
73
    5. Face saved in JSON files were called `--body_parts`. Now they are called `--face_keypoints`.
G
gineshidalgo99 已提交
74 75 76



G
gineshidalgo99 已提交
77
## OpenPose 1.0.1 (Jul 11, 2017)
G
Gines 已提交
78 79 80 81 82 83 84 85
1. Main improvements:
    1. Windows library turned into DLL dynamic library (i.e. portable).
    2. Improved documentation.
2. Functions or parameters renamed:
    1. `openpose/utilities/macros.hpp` moved to `openpose/utilities/macros.hpp`.



G
gineshidalgo99 已提交
86
## OpenPose 1.0.2 (Sep 3, 2017)
G
Gines 已提交
87
1. Main improvements:
88 89 90 91 92 93 94 95 96 97 98
    1. Added OpenCV 3.3 compatibility.
    2. Caffe turned into DLL library.
    3. OpenPose is now completely portable across Windows 10 computers (with Nvidia graphic card).
    4. Added OpenPose 1.0.1 portable demo.
    5. Removed Python and some unnecessary boost dependencies on the VS project.
    6. Replaced all double quotes by angle brackets in include statements (issue #61).
    7. Added 3-D reconstruction demo.
    8. Auto-detection of the camera index.
    9. Speed up of ~30% in op::floatPtrToUCharCvMat.
    10. COCO extractor now extracts image ID from the image name itslef (format "string_%d"). Before, only working with validation test, now applicable to e.g. test sets.
    11. Changed display texts, added `OpenPose` name.
G
Gines 已提交
99 100
2. Main bugs fixed:
    1. Pycaffe can now be imported from Python.
101
    2. Fixed `Tutorial/Wrapper` VS linking errors.
G
gineshidalgo99 已提交
102 103 104



G
gineshidalgo99 已提交
105
## OpenPose 1.1.0 (Sep 19, 2017)
G
gineshidalgo99 已提交
106
1. Main improvements:
107 108 109
    1. Added CMake installer for Ubuntu.
    2. Added how to use keypoint data in `examples/tutorial_wrapper/`.
    3. Added flag for warnings of type `-Wsign-compare` and removed in code.
G
gineshidalgo99 已提交
110
    4. Slightly improved accuracy by considering ears-shoulder connection (e.g. +0.4 mAP for 1 scale in validation set).
G
gineshidalgo99 已提交
111
2. Main bugs fixed:
112
    1. Windows version crashing with std::map copy.
G
gineshidalgo99 已提交
113 114 115



G
gineshidalgo99 已提交
116
## OpenPose 1.2.0 (Nov 3, 2017)
G
gineshidalgo99 已提交
117
1. Main improvements:
118 119 120 121 122
    1. Speed increase when processing images with different aspect ratios. E.g. ~20% increase over 3.7k COCO validation images on 1 scale.
    2. Huge speed increase and memory reduction when processing multi-scale. E.g. over 3.7k COCO validation images on 4 scales: ~40% (~770 to ~450 sec) speed increase, ~25% memory reduction (from ~8.9 to ~6.7 GB / GPU).
    3. Slightly increase of accuracy given the fixed mini-bugs.
    4. Added IP camera support.
    5. Output images can have the input size, OpenPose able to change its size for each image and not required fixed size anymore.
123 124 125
        1. FrameDisplayer accepts variable size images by rescaling every time a frame with bigger width or height is displayed (gui module).
        2. OpOutputToCvMat & GuiInfoAdder does not require to know the output size at construction time, deduced from each image.
        3. CvMatToOutput and Renderers allow to keep input resolution as output for images (core module).
126 127 128 129 130 131
    6. New standalone face keypoint detector based on OpenCV face detector: much faster if body keypoint detection is not required but much less accurate.
    7. Face and hand keypoint detectors now can return each keypoint heatmap.
    8. The flag `USE_CUDNN` is no longer required; `USE_CAFFE` and `USE_CUDA` (replacing the old `CPU_ONLY`) are no longer required to use the library, only to build it. In addition, Boost, Caffe, and its dependencies have been removed from the OpenPose header files. Only OpenCV include and lib folders are required when building a project using OpenPose.
    9. OpenPose successfully compiles if the flags `USE_CAFFE` and/or `USE_CUDA` are not enabled, although it will give an error saying they are required.
    10. COCO JSON file outputs 0 as score for non-detected keypoints.
    11. Added example for OpenPose for user asynchronous output and cleaned all `tutorial_wrapper/` examples.
132
    12. Added `-1` option for `--net_resolution` in order to auto-select the best possible aspect ratio given the user input.
133 134
    13. Net resolution can be dynamically changed (e.g. for images with different size).
    14. Added example to add functionality/modules to OpenPose.
135
    15. Added `--disable_multi_thread` flag in order to allow debug and/or highly reduce the latency (e.g. when using webcam in real-time).
136
    16. Allowed to output images without any rendering.
137
2. Functions or parameters renamed:
138
    1. OpenPose able to change its size and initial size dynamically:
139
        1. Flag `--resolution` renamed as `--output_resolution`.
140 141 142
        2. FrameDisplayer, GuiInfoAdder and Gui constructors arguments modified (gui module).
        3. OpOutputToCvMat constructor removed (core module).
        4. New Renders classes to split GpuRenderers from CpuRenderers.
143
        5. Etc.
144 145 146
    2. OpenPose able to change its net resolution size dynamically:
        1. Changed several functions on `core/`, `pose/`, `face/`, and `hand/` modules.
    3. `CPU_ONLY` changed by `USE_CUDA` to keep format.
147
3. Main bugs fixed:
148 149 150
    1. Scaling resize issue fixed: ~1-pixel offset due to not considering 0-based indexes.
    2. Ubuntu installer script now works even if Python pip was not installed previously.
    3. Flags to set first and last frame as well as jumping frames backward and forward now works on image directory reader.
G
gineshidalgo99 已提交
151 152 153



G
gineshidalgo99 已提交
154
## OpenPose 1.2.1 (Jan 9, 2018)
G
gineshidalgo99 已提交
155 156
1. Main improvements:
    1. Heatmaps can be saved in floating format.
157 158
    2. More efficient non-processing version (i.e., if all keypoint extractors are disabled, and only image extraction and display/saving operations are performed).
    3. Heat maps scaling: Added `--heatmaps_scale` to OpenPoseDemo, added option not to scale the heatmaps, and added custom `float` format to save heatmaps in floating format.
159
    4. Detector of the number of GPU also considers the initial GPU index given by the user.
160 161
    5. Added `--write_json` as new version of `--write_keypoint_json`. It includes the body part candidates (if enabled), as well as any extra information added in the future (e.g. person ID).
    6. Body part candidates can be retrieved in op::Datum and saved with `--write_json`.
162 163 164
2. Functions or parameters renamed:
    1. `PoseParameters` splitted into `PoseParameters` and `PoseParametersRender` and const parameters turned into functions for more clarity.
3. Main bugs fixed:
G
Gines 已提交
165
    1. Render working on images > 4K (#324).
166
    2. Cleaned redundant arguments on `getAverageScore` and `getKeypointsArea`.
167
    3. Slight speed up when heatmaps must be returned to the user (not doing a double copy anymore).
G
gineshidalgo99 已提交
168 169 170



G
gineshidalgo99 已提交
171
## OpenPose 1.3.0 (Mar 24, 2018)
172 173
1. Main improvements:
    1. Output of `--write_json` uses less hard disk space (enters and tabs removed).
G
gineshidalgo99 已提交
174
    2. Removed Boost dependencies.
G
gineshidalgo99 已提交
175
    3. Caffe added as submodule.
176 177
    4. CMake installer compatible with Windows.
    5. Added freeglut download script (3-D reconstruction demo for Windows).
G
gineshidalgo99 已提交
178 179 180
    6. Added Debug version for Windows (CMake).
    7. Runtime verbose about average speed configurable by user with `PROFILER_ENABLED` option (CMake/Makefile.config) and `--profile_speed` flag.
    8. Lighter Caffe version compiled by CMake in Ubuntu: disabled Caffe extra support (e.g., OpenCV, Python) and doc.
181
    9. Renamed CMake binaries (Ubuntu) to match old Makefile format: `_bin` by `.bin`.
G
gineshidalgo99 已提交
182
    10. 3-D reconstruction demo cleaned, implemented in Ubuntu too, and now defined as module of OpenPose rather than just a demo.
G
Gines 已提交
183
    11. CMake as default installer in documentation.
G
gineshidalgo99 已提交
184 185
    12. Added flag: number_people_max to optionally select the maximum number of people to be detected.
    13. 3-D reconstruction module forces the user to set `number_people_max 1` to avoid errors (as it assumes only 1 person per image).
186
    14. Removed old `windows/` version. CMake is the only Windows version available.
187
    15. Camera parameters (flir camera) are read from disk at runtime rather than being compiled.
188
    16. 3-D reconstruction module can be implemented with different camera brands or custom image sources.
189
    17. Flag `--write_json` includes 3-D keypoints.
190
    18. 3-D reconstruction module can be used with images and videos. Flag `--3d_views` added to allow `--image_dir` and `--video` allow loading stereo images.
G
gineshidalgo99 已提交
191
    19. Flag `--camera_resolution` applicable to `--flir_camera`.
G
gineshidalgo99 已提交
192
    20. Throw error message if requested GPU IDs does not exist (e.g. asking for 2 GPUs starting in ID 1 if there is only 2 GPUs in total).
193
    21. VideoSaver (`--write_video`) compatible with multi-camera setting. It will save all the different views concatenated.
G
gineshidalgo99 已提交
194 195
    22. OpenPose small GUI rescale the verbose text to the displayed image, to avoid the text to be either too big or small.
    23. OpenPose small GUI shows the frame number w.r.t. the original producer, rather than the frame id. E.g., if video is started at frame 30, OpenPose will display 30 rather than 0 in the first frame.
G
gineshidalgo99 已提交
196 197
    24. OpenPose GUI: 'l' and 'k' functionality swapped.
    25. 3-D reconstruction module: Added flag `--3d_min_views` to select minimum number of cameras required for 3-D reconstruction.
198
    26. Flag `--camera_fps` also applies to recorded video (`--write_video`).
G
gineshidalgo99 已提交
199
    27. Flir camera producer `n` times faster for `n` cameras (multi-threaded). If the number of cameras is greater than the number of the computer threads, the speed up might not be exactly `n` times.
200 201
2. Functions or parameters renamed:
    1. Flag `no_display` renamed as `display`, able to select between `NoDisplay`, `Display2D`, `Display3D`, and `DisplayAll`.
202
    2. 3-D reconstruction demo is now inside the OpenPose demo binary.
G
gineshidalgo99 已提交
203
    3. Renamed `*_keypoints` by `*_keypoints_2d` to avoid confusion with 3d ones in `--write_json` output file.
204
    4. CvMatToOpInput requires PoseModel to know the normalization to be performed.
G
gineshidalgo99 已提交
205
    5. Created `net/` module in order to reduce `core/` number of classes and files and for future scalability.
206
3. Main bugs fixed:
207
    1. Slight speed up (~1%) for performing the non-maximum suppression stage only in the body part heatmaps channels, and not also in the PAF channels.
208
    2. Fixed core-dumped in PoseRenderer with GUI when changed element to be rendered to something else than skeleton.
209
    3. 3-D visualizer does not crash on exit anymore.
G
gineshidalgo99 已提交
210
    4. Fake pause ('m' key pressed) works again.
211 212 213



G
gineshidalgo99 已提交
214 215
## Current version - future OpenPose 1.3.1
1. Main improvements:
216
    1. Flir cameras: Added software trigger and a dedicated thread to keep reading images to remove latency (analogously to webcamReader).
217
    2. 3-D reconstruction: Added non-linear minimization to further improve 3-D triangulation accuracy by ~5% (Ubuntu only).
G
gineshidalgo99 已提交
218 219
    3. CMake: All libraries as single variable (simpler to add/remove libraries).
    4. Datum includes extrinsic and intrinsic camera parameters.
G
gineshidalgo99 已提交
220 221
    5. Function `scaleKeypoints(Array<float>& keypoints, const float scale)` also accepts 3D keypoints.
    6. 3D keypoints and camera parameters in meters (instead of millimeters) in order to reduce numerical errors.
222
    7. New `PoseExtractor` class to contain future ID and tracking algorithms as well as the current OpenPose keypoint detection algorithm.
G
gineshidalgo99 已提交
223
2. Functions or parameters renamed:
224
    1. Removed scale parameter from hand and face rectangle extractor (causing wrong results if custom `--output_resolution`).
G
gineshidalgo99 已提交
225
    2. Functions `scaleKeypoints`, other than `scaleKeypoints(Array<float>& keypoints, const float scale)`, renamed as `scaleKeypoints2d`.
226
    3. `(W)PoseExtractor` renamed to `(W)PoseExtractorNet` to distinguish from new `PoseExtractor`. Analogously with `(W)FaceExtractorNet` and `(W)HandExtractorNet`.
G
gineshidalgo99 已提交
227
3. Main bugs fixed:
228
    1. Fixed hand and face extraction and rendering scaling issues when `--output_resolution` is not the default one.
229
    2. Part candidates (`--part_candidates`) are saved with the same scale than the final keypoints itself.
230
    3. Fixed bug in keepTopNPeople.hpp (`--number_people_max`) that provoked core dumped if lots of values equal to the threshold.
G
gineshidalgo99 已提交
231 232 233



234 235
## All OpenPose Versions
Download and/or check any OpenPose version from [https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases](https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases).