| | |
| | | #include <THFaceProperty_i.h> |
| | | |
| | | FaceDetectServerI::FaceDetectServerI() { |
| | | long threadMax = appPref.getLongData("thread.max"); |
| | | long gpuIndex = appPref.getLongData("gpu.index"); |
| | | long threadMax = appPref.getIntData("thread.max"); |
| | | long gpuIndex = appPref.getIntData("gpu.index"); |
| | | for (int i = 0; i < threadMax; i++) { |
| | | detectResourcesManager.pushResource(i); |
| | | } |
| | |
| | | |
| | | FaceDetect::Faces FaceDetectServerI::faceDetect(Ice::Int width, Ice::Int height, const std::string &shareMemoryName, |
| | | const Ice::Current &) { |
| | | ClockTimer ct("FaceDetectServerI::faceDetect"); |
| | | INFO("Face Detect"); |
| | | // ClockTimer ct("FaceDetectServerI::faceDetect"); |
| | | // INFO("Face Detect"); |
| | | FaceDetect::Faces faces; |
| | | QSharedMemory shareMemory(QString(shareMemoryName.c_str())); |
| | | if (shareMemory.attach()) { |
| | |
| | | int channel = detectResourcesManager.getAvilableChannel(shareMemoryName); |
| | | int faceNum = THFI_DetectFace(channel, (BYTE *) data, 24, width, height, facesPos, 30, m_ampleSize); |
| | | if (faceNum > 0) { |
| | | DBG("Face num is :" << faceNum); |
| | | for (int i = 0; i < faceNum; i++) { |
| | | FaceDetect::FacePos face; |
| | | auto &pos = facesPos[i]; |
| | |
| | | faces.push_back(face); |
| | | } |
| | | } else { |
| | | DBG("Face num is 0"); |
| | | // DBG("Face num is 0"); |
| | | } |
| | | } else { |
| | | ERR("shareMemory error " << shareMemoryName); |
| | |
| | | } |
| | | return thftResult; |
| | | } else { |
| | | throw std::runtime_error("shareMemory attach faild"); |
| | | ERR("shareMemory error " << shareMemoryName); |
| | | // throw std::runtime_error("shareMemory attach faild"); |
| | | } |
| | | } |