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__); } }