From a68c6a57bf65754881f6824e6ffc8f23de7d845a Mon Sep 17 00:00:00 2001 From: Jasper Date: Fri, 28 May 2021 12:32:10 +0200 Subject: [PATCH] [EDIT] edited file --- src/computervision/OpenPoseImage.cpp | 149 --------------------------- wk2_fps.vcxproj | 2 + wk2_fps.vcxproj.filters | 6 ++ 3 files changed, 8 insertions(+), 149 deletions(-) delete mode 100644 src/computervision/OpenPoseImage.cpp diff --git a/src/computervision/OpenPoseImage.cpp b/src/computervision/OpenPoseImage.cpp deleted file mode 100644 index 9e6578a..0000000 --- a/src/computervision/OpenPoseImage.cpp +++ /dev/null @@ -1,149 +0,0 @@ -#include "OpenPoseImage.h" - -using namespace std; -using namespace cv; -using namespace cv::dnn; - -namespace computervision -{ -#define MPI - - -#ifdef MPI - const int POSE_PAIRS[14][2] = - { - {0,1}, {1,2}, {2,3}, - {3,4}, {1,5}, {5,6}, - {6,7}, {1,14}, {14,8}, {8,9}, - {9,10}, {14,11}, {11,12}, {12,13} - }; - - string protoFile = "res/pose/mpi/pose_deploy_linevec_faster_4_stages.prototxt"; - string weightsFile = "res/pose/mpi/pose_iter_160000.caffemodel"; - - int nPoints = 15; -#endif - -#ifdef COCO - const int POSE_PAIRS[17][2] = - { - {1,2}, {1,5}, {2,3}, - {3,4}, {5,6}, {6,7}, - {1,8}, {8,9}, {9,10}, - {1,11}, {11,12}, {12,13}, - {1,0}, {0,14}, - {14,16}, {0,15}, {15,17} - }; - - string protoFile = "pose/coco/pose_deploy_linevec.prototxt"; - string weightsFile = "pose/coco/pose_iter_440000.caffemodel"; - - int nPoints = 18; -#endif - - void OpenPoseImage::movementSkeleton(Mat inputImage) { - - - cout << "USAGE : ./OpenPose " << endl; - cout << "USAGE : ./OpenPose " << endl; - - string device = "cpu"; - - //string imageFile = "single.jpeg"; - // Take arguments from commmand line - /* if (argc == 2) - { - if ((string)argv[1] == "gpu") - device = "gpu"; - else - imageFile = argv[1]; - } - else if (argc == 3) - { - imageFile = argv[1]; - if ((string)argv[2] == "gpu") - device = "gpu"; - }*/ - - - - int inWidth = 368; - int inHeight = 368; - float thresh = 0.1; - - Mat frame = inputImage; - Mat frameCopy = frame.clone(); - int frameWidth = frame.cols; - int frameHeight = frame.rows; - - double t = (double)cv::getTickCount(); - Net net = readNetFromCaffe(protoFile, weightsFile); - - if (device == "cpu") - { - cout << "Using CPU device" << endl; - net.setPreferableBackend(DNN_TARGET_CPU); - } - else if (device == "gpu") - { - cout << "Using GPU device" << endl; - net.setPreferableBackend(DNN_BACKEND_CUDA); - net.setPreferableTarget(DNN_TARGET_CUDA); - } - - Mat inpBlob = blobFromImage(frame, 1.0 / 255, Size(inWidth, inHeight), Scalar(0, 0, 0), false, false); - - net.setInput(inpBlob); - - Mat output = net.forward(); - - int H = output.size[2]; - int W = output.size[3]; - - // find the position of the body parts - vector points(nPoints); - for (int n = 0; n < nPoints; n++) - { - // Probability map of corresponding body's part. - Mat probMap(H, W, CV_32F, output.ptr(0, n)); - - Point2f p(-1, -1); - Point maxLoc; - double prob; - minMaxLoc(probMap, 0, &prob, 0, &maxLoc); - if (prob > thresh) - { - p = maxLoc; - p.x *= (float)frameWidth / W; - p.y *= (float)frameHeight / H; - - circle(frameCopy, cv::Point((int)p.x, (int)p.y), 8, Scalar(0, 255, 255), -1); - cv::putText(frameCopy, cv::format("%d", n), cv::Point((int)p.x, (int)p.y), cv::FONT_HERSHEY_COMPLEX, 1, cv::Scalar(0, 0, 255), 2); - - } - points[n] = p; - } - - int nPairs = sizeof(POSE_PAIRS) / sizeof(POSE_PAIRS[0]); - - for (int n = 0; n < nPairs; n++) - { - // lookup 2 connected body/hand parts - Point2f partA = points[POSE_PAIRS[n][0]]; - Point2f partB = points[POSE_PAIRS[n][1]]; - - if (partA.x <= 0 || partA.y <= 0 || partB.x <= 0 || partB.y <= 0) - continue; - - line(frame, partA, partB, Scalar(0, 255, 255), 8); - circle(frame, partA, 8, Scalar(0, 0, 255), -1); - circle(frame, partB, 8, Scalar(0, 0, 255), -1); - } - - t = ((double)cv::getTickCount() - t) / cv::getTickFrequency(); - cout << "Time Taken = " << t << endl; - imshow("Output-Keypoints", frameCopy); - imshow("Output-Skeleton", frame); - imwrite("Output-Skeleton.jpg", frame); - } -} \ No newline at end of file diff --git a/wk2_fps.vcxproj b/wk2_fps.vcxproj index fe5e71a..62e66d6 100644 --- a/wk2_fps.vcxproj +++ b/wk2_fps.vcxproj @@ -21,6 +21,7 @@ + @@ -38,6 +39,7 @@ + diff --git a/wk2_fps.vcxproj.filters b/wk2_fps.vcxproj.filters index 54a06e5..9e83634 100644 --- a/wk2_fps.vcxproj.filters +++ b/wk2_fps.vcxproj.filters @@ -57,6 +57,9 @@ Source Files + + Source Files + @@ -104,6 +107,9 @@ Header Files + + Header Files +