使用OpenPose从视频中提取姿势数据时,我会得到很多抖动.这看起来不自然,我的结果看起来并不自然和人性化.
我从OpenPose模型获得的数据是我必须使用的,我无法提高模型的质量.处理整个视频剪辑并将15个解剖关键点存储在数据库中.我想使用一些信号处理来平滑这些数据.如何摆脱这种抖动?
免责声明:这个问题是关于OpenPose 的,但这里的关键实际上是弄清楚如何使用输出(存储在 JSON 中的坐标)而不是如何使用 OpenPose,所以请考虑读到底。
我有一段视频,内容是一个人骑自行车的侧面(他坐着的侧面影像,这样我们就可以看到右侧)。我使用 OpenPose 来提取骨架的坐标。OpenPose 提供 JSON 文件中的坐标,如下所示(请参阅文档以获取解释):
{
"version": 1.3,
"people": [
{
"person_id": [
-1
],
"pose_keypoints_2d": [
594.071,
214.017,
0.917187,
523.639,
216.025,
0.797579,
519.661,
212.063,
0.856948,
539.251,
294.394,
0.873084,
619.546,
304.215,
0.897219,
531.424,
221.854,
0.694434,
550.986,
310.036,
0.787151,
625.477,
339.436,
0.845077,
423.656,
319.878,
0.660646,
404.111,
321.807,
0.650697,
484.434,
437.41,
0.85125,
404.13,
556.854,
0.791542,
443.261,
319.801,
0.601241,
541.241,
370.793,
0.921286,
502.02,
494.141,
0.799306,
592.138,
198.429,
0.943879,
0,
0,
0,
562.742,
182.698, …Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试构建一个运行 openpose 的 docker 映像。一切顺利,直到我必须编译我提供的源代码......
我运行下面的 Dockerfile 并抛出以下错误:
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find Protobuf (missing: PROTOBUF_LIBRARY PROTOBUF_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.5/Modules/FindProtobuf.cmake:308 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:388 (find_package)
Run Code Online (Sandbox Code Playgroud)
我尝试执行以下操作:找不到 PROTOBUF 编译器 并通过 apt-get 安装 protobuf 但它不起作用。有时候是这样的:
After this operation, 2321 kB of additional disk space will be used.
Do you want to continue? [Y/n] Abort.
The command '/bin/sh -c apt-get update && apt-get install protobuf-compiler' returned a non-zero code: 1
Run Code Online (Sandbox Code Playgroud)
这是我的 Dockerfile:
FROM ubuntu:16.04
RUN …Run Code Online (Sandbox Code Playgroud) 我无法理解 openpose 文档。如何安装和运行。我有 Windows 10 笔记本电脑。请各位大侠告诉我怎么用。CMU-感知计算实验室/openpose
我在docker 容器中使用openpose。以下命令创建图像,其中检测到的关键点打印在原始图像上。
openpose -display=0 -image_dir=/data -write_images=/data -face=true -hand=true
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在尝试安装一个开源软件“openpose”,为此我需要安装 cuda、cudnn 和 nvidia 驱动程序。nvidia-smi 的输出是:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.59 Driver Version: 440.59 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 940MX Off | 00000000:01:00.0 Off | N/A |
| N/A 47C P8 N/A / N/A | 107MiB / 2004MiB | 7% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name …Run Code Online (Sandbox Code Playgroud) 我正在开发一个虚拟着装平台。我想从图像中获取一个人的尺寸。我已经实现了 OpenPose 并且能够获得一个人的骨骼,但是我不知道如何获得各个身体部位的测量值?
这是使用 OpenPose、OpenCV 获取 Skeleton 的代码
获取骨架op.py
import cv2
import time
import numpy as np
protoFile = "pose/coco/pose_deploy_linevec.prototxt"
weightsFile = "pose/coco/pose_iter_440000.caffemodel"
nPoints = 18
POSE_PAIRS = [[1, 0], [1, 2], [1, 5], [2, 3], [3, 4], [5, 6], [6, 7],
[1, 8], [8, 9], [9, 10], [1, 11], [11, 12], [12, 13],
[0, 14], [0, 15], [14, 16], [15, 17]]
frame = cv2.imread("./fatguy.jpg")
frameCopy = np.copy(frame)
frameWidth = frame.shape[1]
frameHeight = frame.shape[0]
threshold = 0.1
net = cv2.dnn.readNetFromCaffe(protoFile, …Run Code Online (Sandbox Code Playgroud)