深度估计 双目深度估计+单目深度估计 ONNX运行程序

news/2024/5/19 8:33:04/文章来源:https://blog.csdn.net/ResumeProject/article/details/125227801

双目深度估计ONNX Practical Stereo Matching via Cascaded Recurrent Network with Adaptive Correlation https://github.com/ibaiGorordo/ONNX-CREStereo-Depth-Estimation

  • 双目深度估计需要从dataset读取左右两个view的图片。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 使用模型进行深度图的估计

model_path = f'models/crestereo_{version}_iter{iters}_{shape[0]}x{shape[1]}.onnx'
depth_estimator = CREStereo(model_path)
disparity_map = depth_estimator(left_img, right_img)
CREStereo model: https://github.com/megvii-research/CREStereo
CREStereo - Pytorch: https://github.com/ibaiGorordo/CREStereo-Pytorch
PINTO0309's model zoo: https://github.com/PINTO0309/PINTO_model_zoo
PINTO0309's model conversion tool: https://github.com/PINTO0309/openvino2tensorflow
Driving Stereo dataset: https://drivingstereo-dataset.github.io/
Depthai library: https://pypi.org/project/depthai/
Original paper: https://arxiv.org/abs/2203.11483

单目深度估计monocular

GLPDepth

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 下载github代码(稍微修改一下,用本地读取替换在线读取)
    在这里插入图片描述

  • 去PINTO0309’s model zoo: https://github.com/PINTO0309/PINTO_model_zoo下载模型

  • 运行bash
    在这里插入图片描述
    在这里插入图片描述

monodepth2 https://github.com/nianticlabs/monodepth2

python test_simple.py --image_path assets/test_image.jpg --model_name mono+stereo_640x192

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

    with torch.no_grad():for idx, image_path in enumerate(paths):if image_path.endswith("_disp.jpg"):print('don t try to predict disparity for a disparity image!')continue# Load image and preprocessinput_image = pil.open(image_path).convert('RGB')original_width, original_height = input_image.sizeinput_image = input_image.resize((feed_width, feed_height), pil.LANCZOS)input_image = transforms.ToTensor()(input_image).unsqueeze(0)# PREDICTIONinput_image = input_image.to(device)features = encoder(input_image)outputs = depth_decoder(features)disp = outputs[("disp", 0)]# 还原大小  torch.Size([1, 1, 235, 638])disp_resized = torch.nn.functional.interpolate(disp, (original_height, original_width), mode="bilinear", align_corners=False)# Saving numpy fileoutput_name = os.path.splitext(os.path.basename(image_path))[0]scaled_disp, depth = disp_to_depth(disp, 0.1, 100)if args.pred_metric_depth:name_dest_npy = os.path.join(output_directory, "{}_depth.npy".format(output_name))metric_depth = STEREO_SCALE_FACTOR * depth.cpu().numpy()np.save(name_dest_npy, metric_depth)else:name_dest_npy = os.path.join(output_directory, "{}_disp.npy".format(output_name))np.save(name_dest_npy, scaled_disp.cpu().numpy())# Saving colormapped depth imagedisp_resized_np = disp_resized.squeeze().cpu().numpy()vmax = np.percentile(disp_resized_np, 95)normalizer = mpl.colors.Normalize(vmin=disp_resized_np.min(), vmax=vmax)mapper = cm.ScalarMappable(norm=normalizer, cmap='magma')colormapped_im = (mapper.to_rgba(disp_resized_np)[:, :, :3] * 255).astype(np.uint8)im = pil.fromarray(colormapped_im)name_dest_im = os.path.join(output_directory, "{}_disp.jpeg".format(output_name))im.save(name_dest_im)print("   Processed {:d} of {:d} images - saved predictions to:".format(idx + 1, len(paths)))print("   - {}".format(name_dest_im))print("   - {}".format(name_dest_npy))print('-> Done!')

有时没有网络的情况下运行报错urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>

# download_model_if_doesnt_exist(args.model_name)

参考与更多

单目深度估计总结
深入研究自监督单目深度估计:Monodepth2
consistent-video-deprh-estimation:github上的一个有趣的应用
效果惊艳!ONNX-CREStereo深度估计!

monodepth https://github.com/mrharicot/monodepth

https://github.com/nianticlabs/monodepth2
Digging Into Self-Supervised Monocular Depth Estimation
https://arxiv.org/abs/1806.01260

  • https://www.bilibili.com/video/BV1HZ4y1c7nC
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_4810.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2022年0902Maven的依赖学习<第四课>

本博客学习的目标图目录 第一部分 Maven的依赖的学习内容介绍 第一点 依赖的范围 1 依赖范围 Scope 2 一张表告诉你Scope的范围介绍 3 总结: 4 观察 5 测试 ①验证 compile 范围对 main 目录有效 ②验证test范围对main目录无效 ③验证test和provided范围不参与服务器…

这份 Github 下载量高达 76.9W 次的《Java 系列面试宝典》,足以吊打各个大厂面试官

前言: 之前有看过很多的 Java 知识点资料&#xff0c;但是很多资料都是零零散散的并且不全面&#xff0c;像这样一整份 PDF 文档&#xff0c;分知识点整理好的资料并不多了&#xff0c;所以我觉得我是捡到宝了&#xff0c;所以特意分享给大家&#xff0c;需要的人可以自取&…

基数排序(学习)

一、基数排序描述 基数排序(radix sort)属于分配式排序,又被称为桶子法,它是通过键值的各个位的值,将要排序的元素分配至某些桶中,达到排序的作用基数排序法属于稳定的排序,基数排序法的是效率高的稳定性排序法基数排序是桶排序的扩展 二、基数排序描述 将所有待比较数值统一为…

Vulnhub靶场 ICA: 1

环境准备 靶机地址&#xff1a;ICA: 1 ~ VulnHub 漏洞复现 arp-scan -l IP信息收集 nmap进行IP服务扫描&#xff0c;发现开放80&#xff0c;22&#xff0c;3306端口 访问80端口&#xff0c;可以看到是qdPM 9.2的框架 kali进行漏洞搜索&#xff0c;发现存在 查看该文件的目录…

电子学会2022年6月青少年软件编程(图形化)等级考试试卷(一级)

青少年软件编程青少年软件编程&#xff08;图形化&#xff09;一级 一、单选题(共25题&#xff0c;共50分) 广场中有声控喷泉&#xff0c;当声音的音量大于60的时候&#xff0c;喷泉就会喷出水&#xff0c;现在的音量为30&#xff0c;下列哪个选项可以让喷泉喷出水&#xff1f;…

【Vue 基础知识】keep-alive是什么?怎么用?

提示&#xff1a;前端查漏补缺&#xff0c;仅代表个人观点&#xff0c;不接受任何批评 文章目录一、keep-alive是什么&#xff1f;二、使用步骤1. 基本使用2. 允许组件有条件地缓存3. 缓存组件实例数量限制三、注意事项提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面…

【编程题】【Scratch四级】2021.06 从小到大排序

从小到大排序 小猴子询问输入5个数&#xff0c;存入列表后&#xff0c;将这些数字从小到大排列后重新存入列表。 1. 准备工作 &#xff08;1&#xff09;保留舞台默认白色背景&#xff1b; &#xff08;2&#xff09;删除小猫角色&#xff0c;添加Monkey角色。 2. 功能实现…

新库上线 | CnOpenData房地产业工商注册企业基本信息数据

房地产业工商注册企业基本信息数据 一、数据简介 房地产业是指&#xff1a;以土地和建筑物为经营对象&#xff0c;从事房地产开发、建设、经营、管理以及维修、装饰和服务的集多种经济活动为一体的综合性产业&#xff0c;是具有先导性、基础性、带动性和风险性的产业。 房地产…

SpringBoot_11_整合MyBatis

SpringBoot_11_整合MyBatis整合MyBatis整合测试整合MyBatis 官方文档&#xff1a;http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/ Maven仓库地址&#xff1a;https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-…

Vue——整理一些开源管理平台项目

【VUE2】 vue-element-admin Git代码仓库&#xff1a;https://github.com/PanJiaChen/vue-element-admin.git Gitee代码仓库&#xff1a;https://gitee.com/wry-vue-demo/vue-element-admin-wry &#xff08;不定期同步&#xff09; 官方文档&#xff1a;https://panjiachen.g…

优雅的实现EasyPoi动态导出列的两种方式

文章目录前言一、基于Excel的 isColumnHidden 属性1.1 实现原理1.2 实现步骤1.3 实现效果二. 基于List< ExcelExportEntity > 的导出2.1 实现效果总结前言 嗨&#xff0c;大家好&#xff0c;我是希留。 项目里使用的是EasyPoi来处理导入导出功能的。近日因业务需求调整…

基于springboot+vue的游戏交流论坛系统 elementui

随着时代的发展&#xff0c;人们对手机和电脑的依赖越来越严重。很多时候人们会在下班之后或者下课之后和寝室以及朋友们来一盘游戏。以度过这些空闲时间。但是对于更多的人来说&#xff0c;他们可能是在孤军奋战&#xff0c;并没有更多的朋友和同学去进行交流&#xff0c;这个…

【目标检测算法】YOLO-V1~V3原理梳理

文章目录one-stage 与 tow-stage评价指标YOLO算法整体思路解读YOLO-V1YOLO-V2YOLO-V3one-stage 与 tow-stage 本篇博客主要介绍经典检测方法中的one-stage&#xff08;单阶段&#xff09;&#xff0c;在这里给自己埋个坑&#xff0c;整理完Yolo再去搞tow-stage。 one-stage:tow…

x64dbg 插件开发环境配置

x64dbg 是一款开源的应用层反汇编调试器,旨在对没有源代码的可执行文件进行恶意软件分析和逆向工程,同时 x64dbg 还允许用户开发插件来扩展功能,插件开发环境的配置非常简单,如下将简单介绍x64dbg是如何配置开发环境以及如何开发插件的。x64dbg 是一款开源的应用层反汇编调…

计算机网络——传输层の选择题整理

传输层提供的服务 1、可靠传输协议中&#xff0c;可靠指的是&#xff08;&#xff09; A、使用面向连接的会话 B、使用尽力而为的传输 C、使用滑动窗口来维持可靠性 D、使用确认机制来确保传输的数据不丢失 解析&#xff1a;选D 对于A&#xff0c;使用面向连接的会话&#xff…

hadoop学习使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、hadoop的作用&#xff1f; hadoop是什么&#xff1f;hadoop能做什么&#xff1f;搭建HadoopHA高可用集群 1普通集群配置文件2 高可用集群配置 整理和记录搭建…

Hadoop伪分布式搭建

搭建环境&#xff1a; centos6.5 vm16 jdk1.8 hadoop 2.6.5 1.先设置静态ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 #HWADDR00:0C:29:42:15:C2 TYPEEthernet ONBOOTyes NM_CONTROLLEDyes BOOTPROTOstatic IPADDR192.168.90.11 NETMASK255.255.255.0 GA…

单分散亚微米聚苯乙烯—聚乙酸乙烯酯(P(St-VAc))聚合物微球/聚苯乙烯塑料微球聚乙烯醇相关知识

单分散亚微米聚苯乙烯—聚乙酸乙烯酯(P(St-VAc))聚合物微球相关研究&#xff1a; 互贯聚合物网络( the interpenetrating polymernetworks,简称IPNs)是由两种或两种以上的交联聚合物互相贯穿而形成的一种聚合物合金体系["。由于形成IPNs时两网之间的互贯和缠结&#xff0…

阿里巴巴按关键字搜索商品 API 返回值说明

请求参数 请求参数&#xff1a;q眼镜&start_price0&end_price0&page1&cat0&discount_only&sort&page_size40&seller_infono&nick&seller_info&nick&ppath&imgid&filter 参数说明&#xff1a;q:搜索关键字 cat:分类I…

天花板级别的python读取文件方法,真的香.......

嗨害大家好鸭&#xff01; 我是小熊猫❤ 咱今天来了解一下 fileinput 说到fileinput&#xff0c;可能90%的码农表示没用过&#xff0c;甚至没有听说过。 这不奇怪&#xff0c;因为在python界&#xff0c;既然open可以走天下&#xff0c;何必要fileinput呢&#xff1f; 但是…