更新时间:2023-06-15 GMT+08:00

示例-资源管理

资源管理示例如下所示

#include <cstdio>
#include <hilens.h>
#include <string>

using namespace hilens;
using namespace cv;

void ResourceManage() {
  // 获得技能工作区目录的路径(末尾带"/")
  auto skill_path = hilens::GetWorkspacePath();

  // 获得技能模型所在目录的路径(末尾带"/")
  auto model_path = hilens::GetModelDirPath();

  // 获得技能配置。如果没有成功获取则返回None
  auto skill_config = hilens::GetSkillConfig();
  // 假设技能配置中有名为face_dataset的配置项,其值为obs中的人脸库文件face_dataset.zip的地址
  // 设置技能配置参数可参考《用户指南》相关操作
  auto face_dataset_url = skill_config["face_dataset"]["value"].asString();
  // 从OBS下载该文件到技能工作区目录,并通过返回值判断是否下载成功
  auto ret =
      hilens::DownloadFileFromOBS(face_dataset_url, hilens::GetWorkspacePath());
  if (ret != hilens::OK) {
    hilens::Error("Failed to download from obs");
  }

  // 在技能工作区目录新建文件夹并解压
  std::string cmd = "mkdir " + hilens::GetWorkspacePath() + "face_dataset";
  auto result = system(cmd.c_str());
  if (result != 0) {
    hilens::Error("Failed to mkdir");
  }

  cmd = "unzip " + hilens::GetWorkspacePath() + "face_dataset.zip  -d " +
        hilens::GetWorkspacePath() + "face_dataset/";
  result = system(cmd.c_str());
  if (result != 0) {
    hilens::Error("Failed to unzip");
  }
}

int main() {
  auto ret = hilens::Init("hello");
  if (ret != hilens::OK) {
    hilens::Error("Failed to init");
    return -1;
  }

  ResourceManage();

  hilens::Terminate();
  return 0;
}