示例#1
0
 void WCocoJsonSaver<TDatums>::workConsumer(const TDatums& tDatums)
 {
     try
     {
         if (checkNoNullNorEmpty(tDatums))
         {
             // Check tDatums->size() == 1
             if (tDatums->size() > 1)
                 error("Function only ready for tDatums->size() == 1", __LINE__, __FUNCTION__, __FILE__);
             // Debugging log
             dLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
             // Profiling speed
             const auto profilerKey = Profiler::timerInit(__LINE__, __FUNCTION__, __FILE__);
             // T* to T
             const auto& tDatum = tDatums->at(0);
             // Record json in COCO format
             const std::string stringToRemove = "COCO_val2014_";
             const auto stringToRemoveEnd = tDatum.name.find(stringToRemove) + stringToRemove.size();
             const auto imageId = std::stoull(tDatum.name.substr(stringToRemoveEnd, tDatum.name.size() - stringToRemoveEnd));
             // Record json in COCO format if file within desired range of images
             spCocoJsonSaver->record(tDatum.poseKeypoints, imageId);
             // Profiling speed
             Profiler::timerEnd(profilerKey);
             Profiler::printAveragedTimeMsOnIterationX(profilerKey, __LINE__, __FUNCTION__, __FILE__, Profiler::DEFAULT_X);
             // Debugging log
             dLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
         }
     }
     catch (const std::exception& e)
     {
         this->stop();
         error(e.what(), __LINE__, __FUNCTION__, __FILE__);
     }
 }
 void WJointAngleEstimation<TDatums>::work(TDatums& tDatums)
 {
     try
     {
         if (checkNoNullNorEmpty(tDatums))
         {
             // Debugging log
             dLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
             // Profiling speed
             const auto profilerKey = Profiler::timerInit(__LINE__, __FUNCTION__, __FILE__);
             // Input
             auto& datum = tDatums->at(0);
             const auto& poseKeypoints3D = datum.poseKeypoints3D;
             const auto& faceKeypoints3D = datum.faceKeypoints3D;
             const auto& handKeypoints3D = datum.handKeypoints3D;
             // Running Adam model
             spJointAngleEstimation->adamFastFit(
                 datum.adamPose, datum.adamTranslation, datum.vtVec, datum.j0Vec,
                 datum.adamFaceCoeffsExp, poseKeypoints3D, faceKeypoints3D, handKeypoints3D);
             // Profiling speed
             Profiler::timerEnd(profilerKey);
             Profiler::printAveragedTimeMsOnIterationX(profilerKey, __LINE__, __FUNCTION__, __FILE__);
             // Debugging log
             dLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
         }
     }
     catch (const std::exception& e)
     {
         this->stop();
         tDatums = nullptr;
         error(e.what(), __LINE__, __FUNCTION__, __FILE__);
     }
 }