当前位置: 首页 > news >正文

免费网站推广优化网站注册页面怎么做数据验证码

免费网站推广优化,网站注册页面怎么做数据验证码,佛山市研发网站建设哪家好,北京到广州的机票目录 3.1.1 环境配置:CSharp算子SDK开发环境配置方法3.1.2 算子封装:使用C封装算子SDK的方法3.1.3 异常中断:算子SDK软件运行报错“托管调试助手”中断的解决方法3.1.4 深度学习:GPU运行深度学习算子引发StackOverFlow异常的方法 …

目录

  • 3.1.1 环境配置:CSharp算子SDK开发环境配置方法
  • 3.1.2 算子封装:使用C++封装算子SDK的方法
  • 3.1.3 异常中断:算子SDK软件运行报错“托管调试助手”中断的解决方法
  • 3.1.4 深度学习:GPU运行深度学习算子引发StackOverFlow异常的方法

3.1.1 环境配置:CSharp算子SDK开发环境配置方法

描述
环境:MVDAlgrithm SDK3.4及以上 + VS2013及以上
现象:WinForm下的算子SDK开发环境配置方法
解答
WinForm下进行算子SDK开发的环境配置分为三步
第一步,使用VS新建一个窗体类项目
第二步,为该项目添加算子的dll引用,将该路径C:\Program Files (x86)\MVDAlgorithmSDK\ReferencedAssemblies\Algorithms下的所有dll文件添加到项目中,将该路径C:\Program Files (x86)\MVDAlgorithmSDK\ReferencedAssemblies
Common下的引用除了第一个和第二个其他全部引用都加到项目中,第一个和第二个不能添加,否则引用会报错。
第三步,此时,我们会在工具箱内看到一些封装好的控件,将这些控件拉到窗体上生成并启动即可。注意,所有的控件都在C:\Program Files (x86)\MVDAlgorithmSDK
\ReferencedAssemblies\Control文件夹下的,只有一个控件在Common文件夹下,这个控件叫MvRenderActiveX.Net.dll,是一个图形处理的渲染控件,大家需要单独将这个控件添加到工具箱中。
第一步
在这里插入图片描述

第二步
在这里插入图片描述
在这里插入图片描述

第三步
在这里插入图片描述

问题原因
缺少引用或者缺少控件

3.1.2 算子封装:使用C++封装算子SDK的方法

描述
环境:MVDAlgrithm SDK 3.4及以上 + VS2013及以上
问题:有的用户在使用算子SDK开发时,为了使各个算法模块更加的统一和抽象,将不同的算子工具抽象出共同的接口,例如:
初始化-Initialize,
加载配置-LoadConfiguration,
训练模型-Trian,
加载模型-LoadModel,
执行算法-Run。
解答
我们的算子SDK已经是封装程度比较高的了,算子工具的程序调用是完全面向对象的,通过操作对象的方法和属性就能实现特定的算法流程,可能有些客户需要对算子做进一步的抽象,将算子工具的内部属性的赋值,参数的保存与加载,模型的加载与保存,结果的获取都抽象为共同的几个接口函数,如上描述的那样。使用C++是很容易做到的,使用虚函数将上面提到的提到的几个接口抽象,然后在具体的类中实现接口即可。我们用代码来说明,如下:

C++
class IVisionTool
{
public:IVisionTool() = default;virtual ~IVisionTool() = default;//使用参数文件初始化配置virtual int Initilize(std::string& paramFilePath = "") = 0;//导入数据,数据可以是训练好的模型文件、标定文件、参数配置文件等等virtual int ImportData(int &fileType,const std::string &inputPath) = 0;//导出数据,数据可以是训练的模型文件、标定文件、参数配置文件等等virtual int ExportData(int &fileType,const std::string &inputPath) = 0;//训练模型virtual int Train(IMVdImage& image,IMvdShape* roi,IMvdShape* mask) = 0;//执行算法工具
virtual int Run(IMVdImage &image,IMvdShape* roi,IMvdShape* mask[],int maskCount) = 0;
//获取算法工具运行结果virtual int GetResult(AlgToolResult &result) = 0;
};

接着,我们通过具体的算法工具类,实现一个特定的算法工具,以直线查找工具为例,我们可以设计一个LineFindTool继承IVisionTool, 代码如下:

C++
class FindLineTool:public IVisionTool
{
public:FindLineTool();~FindLineTool();int Initilize(const std::string& paramFilePath = "") override;int ImportData(const int &fileType,const std::string &inputPath) override;int ExportData(const int &fileType,const std::string &inputPath) override;int Train(const IMVdImage& image,IMvdShape* roi,IMvdShape* mask) override;int Run(const IMVdImage &image,IMvdShape* roi,IMvdShape* mask[],int maskCount) override;int GetResult(AlgToolResult &result) override;
private:ILineFindTool* pLineFindTool;
};

这里篇幅所限,就不将FindLineTool的所有接口全部实现罗列在这里了,这里将重要的构造函数,析构函数,Initialize和Run方法实现罗列出来,代码如下:

C++
//构造函数
FindLineTool::FindLineTool()
{try{int nRet = CreateLineFindToolInstance(&pLineFindTool);if (nRet != 0){throw std::exception("Create FindLineTool instance failed");}}catch (IMVDException& ex){throw std::exception(ex);}}
//析构函数
FindLineTool::~FindLineTool()
{if (pLineFindTool != nullptr){DestroyLineFindToolInstance(pLineFindTool);}
}
//初始化
int FindLineTool::Initilize(const std::string& paramFilePath = "")
{//加载参数文件unsigned char* paramBuffer = new unsigned char[1024 * 100];try{FILE* pFile;errno_t err = fopen_s(&pFile, inputPath.c_str(), "rb");fseek(pFile, 0, SEEK_END);long bytes = ftell(pFile);fseek(pFile, 0, SEEK_SET);fread(paramBuffer, 1, bytes, pFile);pLineFindTool->LoadConfiguration(paramBuffer, bytes);fclose(pFile);delete[] paramBuffer;paramBuffer = nullptr;return 0;}catch (IMVDException&ex){if (paramBuffer != nullptr)delete[] paramBuffer;return ex.GetErrorCode();}
}
//运行一次
int Run(const IMVdImage &image, IMvdShape* roi, IMvdShape* mask[], int maskCount)
{try{//1.设置输入图像pLineFindTool->SetInputImage(image);//2.设置ROIpLineFindTool->SetROI(roi);//3.设置屏蔽区//设置屏蔽区之前先移除vMaskShapes所有元素pLineFindTool->ClearMasks();for (int i = 0; i < maskCount; i++){pLineFindTool->AddMask(mask[i]);}//4.运行算子pLineFindTool->Run();return 0;}catch (IMVDException&ex){return ex.GetErrorCode();}
}

需要注意的地方:算子SDK大部分输入都是指针,因此一定要记得释放指针占用的内存,否则会内存泄漏,上面的例子中,指针的释放放在了调用层,由调用者负责释放,因此调用的时候,记得在调用结束后释放作为函数参数传入的IMvdImage*,IMvdShape*等指针所占用的内存,需要显式调用DestroyImageInstance,DestroyShapeInstance等API函数。
问题根因
不了解C++ 中虚函数的用法
不熟悉算子SDK的常用接口函数

3.1.3 异常中断:算子SDK软件运行报错“托管调试助手”中断的解决方法

描述
环境:MVDAlgrithm SDK3.4及以上 + VS2013及以上
现象:运行算子SDK 软件Demo时,Visual Studio软件出现“托管调试助手”中断。
解答
运行算子SDK 软件Demo时,Visual Studio软件出现“托管调试助手”中断,如下图所示。
在这里插入图片描述

解决办法:打开异常设置,取消勾选【ContextSwitchDeadlock】和【DisconnectedContext】。
在这里插入图片描述

问题根因
不熟悉Visual Studio软件的异常设置。

3.1.4 深度学习:GPU运行深度学习算子引发StackOverFlow异常的方法

描述
环境:MVDAlgrithm SDK3.4及以上 + VS2013及以上
现象:深度学习算子运行报StackOverFlow异常,如何解决?
在这里插入图片描述

解答
第一步,深度学习算子需要在×64平台下运行,检查平台是否为×64,win32则需改为x64;
第二步,第一步修改后仍然报StackOvreFlow异常,则需调大堆栈提交大小;
在这里插入图片描述

问题根因
不熟悉内存环境配置。

http://www.yayakq.cn/news/141830/

相关文章:

  • 免费效果图网站青岛营销型网站建设
  • 网站建设第一品牌 网站设计网站备案注销流程
  • 深圳自助建站系统番禺核酸检测点在哪
  • 网站招工费怎么做会计分录宁波人流多少钱
  • 做二手房又做网站的微信平台网站开发
  • 做代理需要交钱吗网站推广优化趋势
  • 东莞专业拍摄做网站照片美图网
  • 用华为云建立Wordpress网站企业网站推广案例
  • 陕西住房和城乡建设部网站搜索引擎推广的简称是
  • 网站程序如何制作站长工具2023最新国产
  • 油漆网站设计业务推广网站
  • 成都网站维护多少钱做商业地产常用的网站
  • 白人与黑人做爰网站网站建设主体是什么
  • 自适应网站开发河南国正建设集团公司网站
  • 企业网站建设要求互联网保险发展现状
  • 关于集团网站建设的网站建设方案 备案
  • 全国工程建设信息网站做的比较唯美的网站有哪些
  • 网站接口设置做我的世界壁纸的网站
  • 太原市住房和城乡建设部网站2345网址导航下载安装到桌面
  • 公司网站设计网络公司重庆工程招投标交易信息网
  • 网站收录低德阳网站制作
  • 2021好心人给个开车的网站上海电商网站设计
  • 网站登录接口怎么做网站的落地页
  • 网站规划建设与管理维护答案wordpress 多用户模式
  • 广东省建设监理协会网站 首页台州网站建设优化案例
  • 做网站可以用php免费个人主页注册
  • 网站关键词可以做几个百度推广和网站建设
  • 网站策划书1000字江苏建设招投标网
  • 网站app开发价格纪检监察机关网站建设方案
  • 宁波网站建设费用是多少钱黑龙江省建设局网站首页