Python 中的摄影测量2024 年 8 月 29 日 | 阅读 6 分钟 引言在本文中,我们讨论了使用 Python 进行光摄影测量。你是否曾经想过我们如何理解我们看到的事物?就像我们看到有人走路一样,无论我们是否意识到,凭借先验知识,我们的大脑会理解正在发生的事情并将其存储为事实。考虑一下我们观察某物然后一片空白。陷入遗忘。可怕,对吧?那么,大脑如何解释我们看到的快照背后的游戏名称一直让我着迷。将人类智能和直觉赋予计算机的想法似乎相当有用。也许是因为非常年幼的孩子也能解决这个问题,所以我们倾向于忘记计算机相对于我们生物能力所存在的局限性。在人类本身的情况下,想象力的复杂性无穷无止境且不断动态变化,更不用说计算机智能了。 我们的大脑可以识别物体、处理信息并决定如何行动,在一瞬间完成一项复杂的任务。目标是让计算机也能做到同样的事情。因此,这是一个可以称为人工智能和机器学习的融合的主题,它涉及学习算法和专业技术来解释计算机所看到的内容。最初,科技巨头仍在思考的复杂概念是,由人工智能的先驱者们构思的、足以完成本科暑期项目的简单想法。回到 1966 年,麻省理工学院人工智能团队的 Seymour Paper 和 Marvin Minsky 开始了一个项目,其目标是构建一个能够观察场景并识别其对象的系统。 深度学习计算机视觉背后的科学围绕着人工神经网络。简单来说?受人脑启发的算法利用大量数据集进行分析,以便尽可能准确地复制人类直觉。这些算法具有更高的准确性,在某些任务上甚至超越了人类水平。深度视觉只是深度学习的一个子集,它驱动着计算机的想象力和视觉能力。 1. 像素提取OpenCV(开源计算机视觉),一个跨平台且免费使用的功能库,基于实时计算机视觉,支持深度学习框架,可用于图像和视频处理。在计算机视觉中,提取图像像素以观察对象并理解其包含的内容是关键要素。以下是计算机视觉在图像中寻求理解的一些关键方面:
应用和未来计算机视觉涵盖了广阔的领域,其应用无止境。由于计算机视觉在我们日常使用的设备中发挥着作用,它经常被我们忽略。 智能手机和网络:Google Lens、QR 码、Snapchat 滤镜(面部跟踪)、夜景模式、面部和表情检测、镜头模糊、人像模式、Google Photos(人脸、对象和场景识别)、Google Maps(图像拼接)。
计算机视觉是一个不断发展的领域,拥有专门的自定义任务和技术来针对应用领域。我设想它的市场价值将与其能力一样迅速增长。凭借我们的人工智能和兴趣,我们可以很快将我们的能力与计算机视觉相结合,达到新的高度。拍照只需点击一下,所以为什么还要在代码行上玩弄它呢?似乎 Python 并非如此。Python 中有一些很棒的库可以处理图像,例如 open-cv、Pillow 等。本文将使用 OpenCV,一个用于计算机视觉的开源库。 Python 光摄影测量工具箱Python 光摄影测量工具箱 (PPT)19 实现了一个管道,用于从一组图像执行 3D 重建。其设计遵循传统的重建方法。它以图像为输入,并自动为可进行 3D 配准的图像执行 3D 重建。PPT 向用户隐藏了数据转换和文件列表的繁琐任务,这些任务需要与链的各个软件组件进行通信。已选择开源软件来执行重建管道的密集计算部分,Bundler 用于相机姿态估计,CMVS/PMVS 用于密集点云计算。最初,Bundler 和 CMVS/PMVS 提供了一些自动化启动任务的 shell 脚本,但 shell 的一个主要缺点是它需要跨平台。它不能在 Windows 下使用。这些软件的编译不通过相同的基本接口(Linux 上的 Makefile 和 Windows 上的 vcproj)进行管理,因此需要双重维护才能在两个平台上顺利编译。PPT 的设计使其具有跨平台性。
多级应用程序使维护更加容易。每个底层模块都可以更新,因为它尊重设计的高级 API。这使得接口易于扩展。例如,Python 包装器使用设计模式接口来实现图像匹配步骤的多样化特征检测/描述算法(用户可以使用 David Lowe SIFT23 或开源实现 VLFEAT24)。数据工作流组织在一个在系统开始时创建的临时目录中。所有处理 3D 重建所需的数据都放置在该目录中。 数据通过工具链的卓越细节进行更新,并通过目录弹出窗口向最终用户显示。主要工作流程在图 10 中说明。仔细查看两步流程工作流(RunBundler 和 RunCMVS)以更好地了解 Python 脚本的任务很有意义。 应用考古现场活动主要是挖掘过程,在大多数情况下会导致遗址的完全破坏。通常,会挖掘地层以研究下层。在缺乏专用昂贵设备(激光扫描仪、校准相机)或软件(摄影测量程序)的情况下,现场文档通过照片(数码或胶片)、手动绘图、全站仪测量和二维图像马赛克组成。最后,所有数据都链接到地理信息系统 (GIS) 中。近几年来,计算机视觉的进步开辟了新的视野,让每个人都能记录三维数据。这项技术的好处是独一无二的:
以下文章将介绍不同尺度的软件示例:从宏观(层、结构)到微观(遗迹)。 结论在本文中,我们讨论了使用 Python 进行光摄影测量。在人类本身的情况下,想象力的复杂性无穷无止境且不断动态变化,更不用说计算机智能了。 我们的大脑可以识别物体、处理信息并决定如何行动,在一瞬间完成一项复杂的任务。目标是让计算机也能做到同样的事情。 下一个主题使用 Python 进行采购分析项目 |
本教程将演示如何使用 PyQt5 构建计时器应用程序。计时器确实是一种特殊类型的时钟,用于测量某些时间间隔;要使用它,请从提供的时间开始倒计时,直到它等于零。实现 GUI 的步骤:制作...
阅读 3 分钟
这是面试中最常被问到的编程问题。我们可以使用不同的方法在 Python 中反转整数。在这里,我们将编写一个程序,该程序接受输入的数字并将其反转。让我们了解以下反转整数的方法。使用 while...
阅读 3 分钟
在本教程中,我们将学习如何使用 Python math 模块的 floor() 和 ceil() 函数。floor() 函数:floor() 函数用于获取 "X" 的整数向下取整值,即小于或等于 "X" 的最大整数值...
阅读 2 分钟
Selenium 是一个用于自动化 Web 浏览器的强大工具,广泛用于 Web 应用程序测试。Web 测试中的一项基本功能是导航到不同页面。Selenium 中的 back() 方法允许您模拟点击“后退”按钮的操作...
阅读 4 分钟
在本教程中,我们将讨论类型提示概念,这有助于提高代码的可读性并增强代码结构。我们将讨论一些类型提示技巧,这些技巧将使 Python 程序更具可读性。众所周知,Python 是一种动态类型编程语言……
阅读9分钟
在本教程中,我们将学习 toolz 模块、其功能以及它如何解决复杂的编程语言问题。Toolz 包提供了许多用于处理列表、函数和字典的函数。它为常规 Python 库提供的库添加了更多功能...
14 分钟阅读
Selenium 是一个强大的自动化工具,广泛用于网络应用程序测试和网络抓取。虽然 Selenium 提供了与 Web 元素交互和导航网页的各种策略,但有时您需要更高级的功能来执行特定任务。其中一项此类高级功能是...
阅读 4 分钟
你是否做过打字测试来衡量你的准确性和速度?通过定期练习,你可以测试自己并提高打字水平。构建自己的打字测试会很有趣,不是吗?在这个项目中,我们将创建一个Python打字测试项目。让我们开始吧!打字...
14 分钟阅读
在原始 pandas 手册中,空值被描述为缺失值。由于大多数程序员都这样做,我们可以将 pandas 中的空值或缺失数据指定为 NaN。NaN,意思是“非数字”,是表示值缺失的常用方法之一...
5 分钟阅读
在本教程中,我们将学习如何为给定值编写。在开始编写程序之前,让我们首先了解复利的基础知识。复利是指将利息添加到存款或贷款的给定本金值中...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India