Bernard_Yu
2022-05-21 02:16
VM算法平台

请问贵司否组织检查一下VisionMaster开发文档中的各种缺失Bug,并更新一下???

使用Qt做VM二次封装,按照chm文档的方案操作示范写了一个测试程序,debug时每逢关闭运行就提示线程报错。由于是基本照抄的文档案例,出错后排查完全抓瞎。求助贵司支持部门工程师,结果发现对面的兄弟同样一头雾水,最后帮我申请了今日贵司研发部门同事远程调试。最终判断是文档内容存在bug,按研发工程师的建议,我将当前遇到的文档问题复盘介绍如下:

0、出现的问题:

本人基本照抄《VisionMaster算法平台SDK开发指南V4.0.0》(C++)文档->“示例程序”->“方案操作交互功能”中介绍的程序代码,在Qt5.9平台下使用控制台程序做功能验证。控制台运行完毕关闭时,必弹出如图1所示的窗口。


图1:故障提示窗口。

观察如图2所示的异常弹出的层级变化,发现大概率是与VM算法平台本身有关。

图2:异常变化层级中,大量涉及到与VM相关的部分。

由于此类异常往往是关闭时指针指向的对象没有销毁释放引发的,猜测应该与代码中的所有指针对象有关。在排除了各种列表指针是报错源头后,只剩下方案加载所涉及的指针对象了。此时我想起如图3所示的VM关闭场景,是有提示要关闭方案的。

图3:VM平台关闭时的提示。

基于这种考虑,我开始了这次的踩坑之旅~

1、几乎被忽略的“DestroySolutionInstance”方法函数:

当有了上述的排查思路后,我重新阅读文档。一开始认为应该在《接口函数》->"方案"->"VMSolution"命名空间的相关介绍中寻找,结果一无所获。嗯,一定是我水平不够,所以我决定继续拜读文档。在《编程指引》->"方案操作相关结构流程"中,发现了如图4所示的图的局部。在这个图上,有一段英文文字(此时我还没意识到这个是功能方法)"DestroySolutionInstance",由于实在是找不到对应的说明,我如图5、图6的所示的方法,在文档中尝试搜索定位。然后~~~~

图4:流程介绍中显示的文字

图5:索引搜索结果

图6:搜索的尽头是没有~

它居然没有、没有、没有!在怀疑人生30秒后,我想到是不是再去海康自带的Qt例程里看看。如图7所示,果然看到了相关方法函数的调用形式。但新的问题来了,整个例程中不存在任何注释信息,用户去理解例程时必须去反查文档,但文档居然会存在没记录的情况,这就很魔幻了。

图7:例程中的使用,但没有任何注释信息~

在我参考例程增加了销毁**后,重新debug运行的结果还是如图1的报错状态,此时我再寻求帮助后,贵司的技术支持也晕了,表示需要研发支援,约定次日远程支持。

图8:懵圈中的支援工程师~

2、完全找不到的“CreateSolutionInstance”方法函数:

次日下午,我得到了贵司研发的远程支持,研发观察了大概1分钟左右,在我的测试程序起始部分增加了一句“CreateSolutionInstance();”,并再次debug后,问题解决~

此刻懵逼的我再次打开文档,尝试搜索是否有“CreateSolutionInstance”的对应介绍说明,然后得到了与“DestroySolutionInstance”完全一样的结果,搜索的尽头是没有~~

而在“方案操作相关接口流程”的介绍中,也不存在任何相关描述,也就是如果不出问题,我可能连去猜测的机会都没有,因为根本不知道这个方法的存在!


图9:“CreateSolutionInstance”在文档中完全不存在任何介绍信息。

接着在VM的Qt例程中,倒是找到了对应的调用,但同样处于没有注释、没有解释的情况,非常容易被忽略!

图10:例程中没有任何解释的调用

在此时,我已经为了这个问题浪费了大约17个小时,内心无比崩溃。

3、混乱的应用信息让客户一个头两个大:

在我表达了对VM文档坑太多之后,得到了如图11的答复,让我不知该作何表情。

图11:文档确实是用来查接口的,但查不到啊~

是啊,知道是用来查接口的,但函数方法的基本解释不也应该存在吗?函数方法的重载模式不也应该介绍吗?而且demo里面也是一句注释都没有,我连猜都费劲啊~

而接下来得到的信息让我彻底郁郁了!支持转述研发又说可以不用,但不用的话报错是怎么回事?而且到底什么情况需要用,什么情况不需要用?这不应该是在文档中介绍清楚的吗???

图12:到底要不要用啊!

这种情况下,我使用VM是心里打鼓的,要是我在现场的程序出了问题10多个小时解决不了,影响了客户的生产,我相信客户喷我的力度绝对比我现在对海康文档的控诉大10倍以上!这里还不提在VM一般的使用文档中,有多少没有介绍的内容!

我相信你们能够找到如Cognex和MVTec等国外机器视觉算法公司的软件说明文档,其文档的详细程度、结构化、以及引导式的例程教学,让使用者阅读文档时非常愉快,几乎大部分的问题都能够在他们的文档中得到详尽的解答。而当前文档遇到的各种问题,是我完全无法理解的,如果这是其他国产中小企业的产品,我可能也就忍了,但家大人多的海康威视搞成这个样子,实在是令人迷惑不解!


拜托丰富一下文档,用户在这么被坑下去,很容易弃坑跑路的~


下附康耐视与MVTec的文档以供对比:

图13:康耐视文档

图14:MVTec的Halcon文档


  • 602
  • 4
  • 分享

全部回答1

感谢反馈,目前VisionMaster算法平台SDK开发文档这块确实是我们的痛点,客观来说,VisionMaster处在深度开放的转型阶段,和国外友商比较,版本迭代更快,针对软件框架,开发API也会对应做优化升级,同时,二次开发相关文档的编写需要很大的资源和时间,在相对这么快的迭代节奏下,文档的开发确实出现了滞后的情况。这个问题在我司内部也没有被忽略,一直是我们非常关注的重心,在目前文档不够完善的情况下,我们给客户推出了二次开发视频指导,可参考V学院的,同时,也针对日常反馈的开发问题,整理了VM  FAQ手册,可供问题的查阅和答疑。

VM-FAQ:https://one.hikvision.com/#/link/eA0xHknXYkjUGA40N9be 提取密码:6nrY

V学院开发视频:http://www.v-club.com/vCollage

希望我们做的能让你继续保持对海康机器人的信心,愿海康和你共成长!

2022-05-21 14:51 未知地区
    |
  • 评论
  • |
  • 1

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器