文章目录

  • ZED相机 C# api环境配置
    • 为什么要配置ZED相机在C#的Api环境
    • 基础环境
    • 环境配置
      • 基础条件
      • 配置过程
        • Cmake生成工程文件
        • 构建Stereolabs.zed
        • 构建tutorials
        • deomo
    • 问题记录
      • 构建tutorials时出现找不到Stereolabs.zed的错误
        • ~~添加引用 sl_zed_interface.dll时报错,不是有效的程序集或者COM组件~~
    • Update
      • 2020/8/26 配置3.2版本
      • 2020/8/26 卒

ZED相机 C# api环境配置

目前ZED相机官方提供的api主要针对的是C++和python。

为什么要配置ZED相机在C#的Api环境

任务需求:

  1. 想要用Python中的pytourch对zed的彩色图像进行预测
  2. 预策的结果需要和zed的点云匹配
  3. 匹配的结果要在unity中实时透视显示 (增强现实)

这就引入了问题:

1.Unity中的zed插件可以获得彩色图像但是没有点云接口。
2. Python能够同时获得两者,但是无法实时把图像传递给Unity(即使用UDP多线程也无法顺畅,最后的结果肯定是实时性的坑)。
3. ZED提供的SDK不像Kinect那样可以同时在不同的程序里面读取相近时刻的图像。(就是两个程序同时读取图像)

考虑到Python中的网络要求输入的图像尺寸并不是很大,因此还是考虑在Unity中运行ZED相机,然后把图像数据压缩后用UDP实时传递给Python,Python再把识别的结果传回Unity。目前查看的博客内容能够了解到压缩后的图像可以一次性实时发给python(65535个字节以内)。 所以要解决的另外一个问题就是识别的结果如何和点云匹配。
只有两种方法可行了,一种是在C#中完成双目立体视觉的算法,另外一种是看看C#中能否有Api直接调用zed的SDK了。 后来发现在ZED官方的github中还真有这个东西,但是是测试版,文档和环境配置没有C++和Python那么方便,因此记录一下。
另外,考虑到后面用开发Hololens2,而主要的程序也是unity和C#上,所以也顺便多学习一下C#语言。

这真是一个心累何以概括。 本来很简单的一个环境配置问题。 结果因为官方的工程文件里面的一个小毛病整了一天。

基础环境

系统版本:win 10 专业版
VS版本:VS2019
Unity版本:8.0

环境配置

主要参考: zed C# api 工程

基础条件

  1. 下载Zed的 SDK 重新更新了下自己的,发现8月12号出了3.2版本。
    注意要和自己的CUDA版本匹配,CUDA版本和Python中的Pytourch所需的版本也要匹配。我的CUDA是10.2的. 后来发现官方Github-APi暂时还没有升级到3.2版本,在分叉的仓库中有他们的工作人员新提交了,但是还没有被整合进去。 这边最好还是下载3.1版本的SDK 下面图片就不修改了。
    所以我下载的是以下版本:

  2. VS2017带C#拓展的, 我自己的是2019版本的,先试试看吧。

  3. 相应CUDA,这个是英伟达显卡的驱动软件,自己倒腾着下载吧, 记得要和python深度学习框架的版本结合起来,不要这边可以用了 那边不能用。我记得我的是V10的。

  4. Cmake3.8 最新的(支持C#的) 下载传送门
    自己下载了最新的3.18版本

  5. 下载github 上 C# api的工程资源 下载传送门

配置过程

Cmake生成工程文件

  1. 把下载下来的Api工程文件解压缩,放置到C盘ZED SDK的根目录下(C:\Program Files (x86)\ZED SDK)(路径不是必须的,自己习惯而已)

2 用管理员身份打开Cmake
第一个路径指向资源的文件夹,主要为了查找CMakeLists.txt文件,所以要选择以下的路径
第二个路径指向生成代码的路径,最好也是这个路径,我试过放在根目录下不好使

  1. 点击下面的Congigure,选择 X64模式

  1. 选择后提示 配置done ,然后点击生成,提示生成done。
  2. 查看该路径会发现多了很多文件

构建Stereolabs.zed

  1. 右键以管理员的权限打开刚刚生成的工程文件,Stereolabs.zed.sln。用VS打开
  2. 点成生成,生成解决方案

  3. 点选解决方案资源管理器的INSTALL,然后再右键 生成 选择生成INSTALL。这样会在bin文件夹中添加Sterolabs.zed.dll 和sl_zed_interface.dll文件

构建tutorials

按照上面 的构建流程构建这个工程。
这边有一个很大的坑。
Sterolabs.zed.dll 和sl_zed_interface.dll是两个代码相同的文件,但是是不同的动态链接库,前者是托管类型的,就是也.net类型的。可以直接在C#中被引用;后者是C语言生成的,非托管的,不能直接被C# 引用。 前面构建的过程实际上是把后者生成前者,让C# 能够直接调用。
然后这边构建tutorials的过程 实际上是生成几个调用了这个Sterolabs.zed.dll的案例供我们参考。 但是坑爹的是,官方的解决方案中,在Image_Capture中误引用了sl_zed_interface.dll这个文件,导致一再生成解决方案都是报错。 折腾了一天才明白这里面的道理,由于这个版本是内测的版本,官方人员也还没意识到这里面的小问题。 解决办法很简单,就是把里面的那个引用项移除,添加生成后的Sterolabs.zed.dll就可以。

deomo



问题记录

构建tutorials时出现找不到Stereolabs.zed的错误

这个问题处理了好久,在构建这个zed项目的时候就发现生成的东西在调试的时候,显示拒绝访问。
后来仔细看了一下官方github的分叉请求,发现官方的这个GitHub似乎还不支持3.2版本的。因此重新装了3.1版本SDK。 真是自己给自己挖坑。


重新换了3.1版本的SDK后仍然存在同样的问题。最终找到了解决方案。
在打开的项目中,发现之前构建的那两个DLL文件都无法在引用中正常加载进来,可能原本的初始配置文件有问题。

解决办法,就是把这几个文件中含有那两个DLL文件的引用全都删除掉,

然后右键添加引用

在SDK的bin文件夹中,添加进去就可以,记得不要添加sl_zed_interface.dll,每个子项目里面添加一次Sterolabs.zed.dll就可以

添加引用 sl_zed_interface.dll时报错,不是有效的程序集或者COM组件

错误如下图~~

这是因为这个文件并没有经过.net重新构建,不是一个托管代码,属于C、C++的动态库。 需要对他进行注册。

Update

2020/8/26 配置3.2版本

配置3.2版本的过程与3.1相差不大。
3.2 Api github
3.2 Api 下载传送门
需要注意的是,

  1. 在构建tutorials工程的时候需要把所有引用里面的sl_zed_interface.dll删掉。确保子工程里面添加了Stereolabs.zed。
  2. 在depth_sensing中的program.cs文件中,找到主函数,在第20行的代码的参数入口添加 0. 例如下图,

    我记得一共两处,编译的时候如果报下面错误就修改相应的地方就可以。
  3. 里面的object_detection 和positional_tracking虽然编译通过了,但是跑不起来,因为是测试版本的,估计是代码还不够稳定。 不影响,这边只是给我们提供了应用案例而已。

2020/8/26 卒

25号配置了一天的API,26白天准备修改unity的插件,下午发现unity的插件能满足自己的需求。 一口老血喷出。

ZED相机 C# Api环境配置相关推荐

  1. 【Phase One SDK】飞思相机SDK的环境配置及调用

    一.环境说明 操作系统:win 10 开发环境:visual studio 2019 参考资料-官方文档:Welcome to the Phase One Software Development K ...

  2. File pyzed\sl.pyx, line 1, in init pyzed.sl ZED相机python API安装错误

    zed-pythonAPI安装报错,import pyzed.sl报错 这个博主的链接非常好的解决了问题,pyzed对于python3.8及3.8以上的环境支持不好,所以最好装python3.7,用a ...

  3. python UI/API 环境配置

    python3.4 + pycharm 环境安装: https://www.cnblogs.com/Simple-Small/p/9179061.html python pip升级报错解决:https ...

  4. 【ZED】从零开始使用ZED相机(二):打开相机+捕获图像

    引言 关于ZED相机的安装和配置可以先参考[ZED]从零开始使用ZED相机(一):windows下的安装配置与测试,接下来开始二次开发ZED相机. 阅读ZED API文档,选择自己使用的语言,学会相机 ...

  5. 【ZED】从零开始使用ZED相机(一):windows下的安装配置与测试

    引言 笔者通过在一台重装windows系统的笔记本上,从安装开始一步步使用ZED,希望用一系列笔记的方式完成一个比较完善的ZED使用专栏,笔者整理思路的同时,也能给读者一定的参考. 电脑配置说明 目前 ...

  6. ZED相机学习笔记1——安装与配置(Win10 + Python)

    系列文章目录 ZED相机学习笔记1--安装与配置(Win10 + Python) 文章目录 系列文章目录 前言 一.ZED2 相机 二.配置ZED相机环境 1.安装CUDA 2.安装ZED-SDK 3 ...

  7. ZED 相机 ORB-SLAM2安装环境配置与ROS下的调试

    注:1. 对某些地方进行了更新(红色标注),以方便进行配置. 2. ZED ROS Wrapper官方github已经更新,根据描述新的Wrapper可能已经不适用与Ros Indigo了,如果大家想 ...

  8. vs联合torch,ZED相机api,opencv建立C++项目

    ZED相机api下载及cmake教程 generate产生工程文件后打开,配置如下: 将ZED项目作为启动项 然后在main.cpp中写入自己的工程代码即可,运行也在release X64下进行 注: ...

  9. ubuntu下ZED相机开发环境安装

    ubuntu下ZED相机开发环境安装 安装设置ROS 安装NVIDIA显卡驱动 安装CUDA 安装ZED SDK(SDK和CUDA的版本需要对应) 安装ZED ROS包 前三步的话在我拿到的机子上已经 ...

最新文章

  1. 怎么简单的锁定文件夹_简单性与鲁棒性–在锁定文件处理中展示
  2. android的ui怎么做到流畅,android提高UI的流畅度
  3. Springboot项目启动:报错The last packet sent successfully to the server was 0 milliseconds ago
  4. Android studio 插件安装
  5. impala的详细介绍--图文描述
  6. 《ETL原理及应用》学习笔记 ·002【需求和数据建模】
  7. keybd_event()使用方法
  8. 如何设置硬盘安装linux,linux用硬盘安装时所设置选项
  9. 服务端客户端均采用epoll模式,建立3万TCP连接对内存的影响。
  10. 根据印刷行业的特点,整理出MES管理系统解决方案
  11. helm安装cert-manager自动化Https(1.8)
  12. 国嵌,够欠!---ARM在线教育误区
  13. CTFshow-Web入门writeup
  14. Navicat使用技巧
  15. 后缀为.ec的文件如何打开后默认用c语言的高亮
  16. unity创建一个6面体的3D模型,确保它每一个面都是不同的。能旋转每一个面唤醒不同的物品
  17. 浙江人在非洲是怎么学法语的
  18. Cisco Packet Tracer 三层交换机与两层交换机的配置
  19. oracle 查询日期最大值,sql语句查询每天数据中的最大值
  20. java导出pdf_一次java导出pdf的经历

热门文章

  1. c程序设计语言 kindle,C语言程序设计(第3版)
  2. 3-4 3.4编程计算一元二次方程的根
  3. 课件如何PDF编辑和转换?用迅读PDF大师,简单易上手
  4. 地理信息系统(ArcGIS)在水文水资源、水环境中的实践
  5. 物联网架构演进和微信智能设备平台开发
  6. 中文稀疏GPT大模型落地 — 通往低成本高性能多任务通用自然语言理解的关键里程碑
  7. 【MATLAB项目实战】:基于WOA和LSTM的化工过程故障诊断模型
  8. c语言中for语句的用法及规则,C语言中for语句用法详解
  9. windows 下编译使用 deepin DTK
  10. 理论联系实践:机械臂视觉抓取之eye to hand