1、VS下调用算子分类算子 ApplyDlClassifier 时,提示“Halcon error#7718:For this operation the cuDNN library needs to be available(see installation guide)”,但是Hdevelop环境下运行没有任何问题
此时应该是启用了GPU,会调用Cudnn第三方库,该报错应该是Cudnn版本的问题。确认下电脑是否安装多个Cudnn版本
最简单的解决办法:将Halcon18安装目录下的第三方库(D:Program FilesMVTecHALCON-18.05-Progressinx64-win64 hirdparty)拷贝到当前程序的运行路径下,就可以解决这个问题。
2、VS下设置分类在CPU下执行,即调用算子:SetDlClassifierParam(hDLHandler, "runtime", "cpu"),提示“CPU based inference is not supported on this platform”,但是Hdevelop环境下运行没有任何问题
因为从Halcon18.11开始,是支持CPU上进行深度学习分类或检测的,那么首先要确认下电脑Halcon安装版本是否误装成17版本的?
解决办法:我出现这种错误是版本没有问题,但是因为电脑安装版本众多,所以为了怕出问题,用助手工具更新了下环境变量。但是将halcon的dll文件放到运行目录下还是存在这个问题(删除运行目录下文件,则不会出现该问题)
最终定位为运行目录下放的dll不完整导致的,依赖的dll库有:halcon.dll halconcpp.dll hcpudnn.dll。关键的是最后一个!
另:测试了下同样的数据,CPU和GPU分类的时间,GPU一张图为5-6ms,CPU一张图为15-16ms!
3、Halcon18.11版本,默认不支持中文路径(Hdevelop环境下没问题,VS下会报异常),可通过调用下面算子来进行设置支持中文解析
HalconCpp::SetHcppInterfaceStringEncodingIsUtf8(false);