当前位置: 首页 > news >正文

FPGA VR摄像机-拍摄和拼接立体 360 度视频

1695bcc51c5dcb23600ff8750c8721c5.png

本文介绍的是 FPGA VR 相机的第二个版本,第一个版本是下面这样:

b9b6c63d07430bec07aa86aa3f242916.png

第一版地址:

https://hackaday.io/project/26974-vr-camera-fpga-stereoscopic-3d-360-camera

本文主要介绍第二版本,第二版本的 VR 摄像机,能够以 30fps 的速度拍摄 4k(3840 x 1920)立体 360 度视频,同时在摄像机上实时拼接和编码。除了最终的 H.264 编码将在 Nvidia Jetson TX2 上执行之外,所有图像处理功能都将在 FPGA 上执行。

硬件组成

  • 友晶DE10-Nano

  • 8×Aptina AR0330 摄像头模块,带 12 毫米镜头卡口

  • 2×四摄像头接口PCB

  • 1×NVIDIA Jetson TX2

下面显示的是相机的主数据流和硬件连接图。

0f4d10ac109827f6fc7ee6cd5f320c91.png

以下是迄今为止已成功实现的功能:

  • 相机I2C控制

  • 去马赛克模块

  • 相机图像变形矫正模块

  • 摄像头接口PCB

  • 灰度图像到单位像素

  • 3D 图像拼接/块匹配/光流

将灰度图像分成 3 个垂直部分:左、中、右。这三分之一都是完整 360 度水平图像的 45 度切片。因为我们有 8 个均匀分布的摄像机,这意味着我们的摄像机彼此之间的角度为 360/8 = 45 度。由此,我们知道,如果我们将摄像机 A、B、C 排列如下:

23a4521772ddbdad0151cb34f27b559f.png

那么摄像机 A 的右三分之一、摄像机 B 的中心和摄像机 C 的左三分之一必须都指向同一方向。如果他们都在看无限远的东西,那么所有三个切片都应该是完全相同的图像。然而,我们希望在输出图像中显示深度。因此,我们将使用摄像机 C 的左三分之一和摄像机 A 的右三分之一来分别提供当观看者面向该方向时的右眼和左眼的图像。当观看者将头转向左侧时,他们的右眼将从看到摄像机 C 的左侧三分之一转向摄像机 B 的左侧三分之一。

开源地址

https://github.com/colinpate

https://github.com/colinpate/fpga-vr-remap

CAD外形:

https://cad.onshape.com/documents/e230395963de661bfa5c14c7/w/05d75a95b60ee2972e714205/e/a708f4a0d0e872dd361e0a75

9988fb468ad4c31cb466ccd031d66ccb.png

相关文章:

FPGA VR摄像机-拍摄和拼接立体 360 度视频

本文介绍的是 FPGA VR 相机的第二个版本,第一个版本是下面这样: 第一版地址: ❝ https://hackaday.io/project/26974-vr-camera-fpga-stereoscopic-3d-360-camera ❞ 本文主要介绍第二版本,第二版本的 VR 摄像机,能够以…...

vue集成mars3d后,basemaps加不上去

首先&#xff1a; <template> <div id"centerDiv" class"mapcontainer"> <mars-map :url"configUrl" οnlοad"onMapload" /> </div> </template> <script> import MarsMap from ../component…...

油管视频直接生成PPT的AI工具!剖析c.ai和Pi的用户需求;独立创业者的操作指南;广告大佬的三个AI绘画实战 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 2023 CCF BDCI 数字安全公开赛&#xff0c;大模型安全竞赛等你「码」力全开 网站&#xff1a;https://www.datafountain.cn/special/B…...

WebSocket- 前端篇

官网代码 // 为了浏览器兼容websocketconst WebSocket window.WebSocket || window.MozWebSocket// 创建连接 this.socket new WebSocket(ws://xxx)// 连接成功this.socket.onopen (res)>{console.log(websocket 连接成功)this.socket.send(入参字段) // 传递的参数字段}…...

如何在 Python 中将图像转换为 PDF

一、说明 如何使得图像转化成pdf文件&#xff0c; 想要将一个或多个图像转换为 PDF 文档&#xff1f;看看img2pdf和PyPDF2软件包就是您的最佳选择。 二、需要哪些程序包&#xff1f; 首先&#xff0c;您只需要一个 Python 环境&#xff0c;最好是 3.10 或更高版本。本教程中的代…...

使用python编写脚本测试目标主机的TCP端口连通性

使用Python的Socket模块的connect()函数来尝试连接目标主机的特定端口。如果连接成功&#xff0c;则说明该端口是打开的&#xff1b;否则&#xff0c;该端口是关闭的。 下面是一个示例脚本&#xff0c;可以检测目标IP的22端口是否开启&#xff1a; import socket def check_po…...

华为云云服务器评测|基于华为云云耀云服务器L实例开展性能评测,例如 MySQL、Clickhouse、Elasticsearch等等

在当今云计算时代&#xff0c;越来越多的企业和个人开始选择将应用部署在云服务器上&#xff0c;以便更好地满足高性能、可靠性和可扩展性等需求。而华为云云耀云服务器L实例不仅提供了高性能和可靠性的计算和存储资源&#xff0c;而且具有灵活和高效的成本控制&#xff0c;深受…...

Git分布式版本控制系统与github

第四阶段提升 时 间&#xff1a;2023年8月29日 参加人&#xff1a;全班人员 内 容&#xff1a; Git分布式版本控制系统与github 目录 一、案例概述 二、版本控制系统 &#xff08;一&#xff09; 本地版本控制 &#xff08;二&#xff09;集中化的版本控制系统 &…...

基于Java+SpringBoot+Vue前后端分离中国陕西民俗网设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

CSS3D+动画

CSS3D 1.css3D 给父元素设置 perspective:景深:近大远小的效果900-1200px这个范围内 transform-style:是否设置3D环境 flat 2D环境 默认值 perserve-3D环境 3D功能函数 1.位移: translateZ()translate3D(x,y,z) <!DOCTYPE html> <html lang"en"><h…...

list对象中如何根据对象中某个属性去重使用Java8流实现

list对象中如何根据对象中某个属性去重使用Java8流实现? 在 Java 8 的流操作中&#xff0c;可以使用 distinct 方法来对一个对象流进行去重&#xff0c;但是默认情况下它会使用对象的 equals() 方法来判断重复。如果你希望根据对象的某个属性进行去重&#xff0c;则可以使用 …...

2023 在Windows上的安装Faiss-GPU(使用anaconda)

该方法安装完 faiss-gpu 之后&#xff0c;不仅会装这个库&#xff0c;还会装很多依赖库。为了防止自己本地一些同名库的版本被修改&#xff0c;建议新建一个虚拟环境来安装。如果本地库版本修改对自己没影响&#xff0c;也可以忽略。 你好&#xff0c;我是悦创。 登录网站&…...

HTML及CSS入门及精通

前言 HTML&#xff08;超文本标记语言&#xff09;和CSS&#xff08;层叠样式表&#xff09;是构建网页的两个基本技术。HTML用于定义网页的结构和内容&#xff0c;而CSS用于控制网页的样式和布局。本教程将介绍HTML和CSS的入门知识&#xff0c;并逐步引导您掌握更高级的技巧和…...

frp实现二级代理

kali是攻击机 &#xff08;192.168.0.106&#xff09; windows server2012是边界服务器&#xff0c;拥有两个网卡&#xff0c;作为一级代理&#xff0c; &#xff08;192.168.0.108&#xff0c;10.10.10.136&#xff09; ad01是内网机器&#xff0c;不出网 &#xff08;10.10.1…...

Vue组件设置背景色

vh&#xff1a;浏览器视区高度百分值 wh&#xff1a;浏览器视区宽度百分值 min-height&#xff1a;最小高度&#xff0c;其他时候自适应 给组件根标签设置&#xff1a;min-height&#xff1a;100vh&#xff0c;就可以正常添加背景色&#xff0c;而且背景色随内容展开而自适…...

Java+Github+Jenkins部署

Java项目—Jenkins部署笔记 一&#xff0c;准备 一台服务器操作系统&#xff0c;示例为ubuntu 22.0.4 可运行lsb_release -a查看 二&#xff0c;安装 docker 更新软件包列表&#xff1a; sudo apt update安装必要的软件包&#xff0c;以便使用HTTPS通过APT下载软件包&#x…...

vue使用命令npm install 报错 cb() never called!

一.错误说明,npm本身下载就慢&#xff0c;有可能是网络的问题。 二.解决方案,把npm设置成淘宝镜像后,再重新npm install npm config set registry https://registry.npm.taobao.org 三.还是不行&#xff0c;还会出现同样的问题&#xff0c;那接下来先清理一下npm缓存 npm cache…...

什么是LatexEasy及其在数学排版中的作用

LatexEasy是一种强大的排版系统&#xff0c;特别擅长处理数学公式和科技文档。它基于 TeX&#xff0c;是由计算机科学家 Donald Knuth 开发的。LaTeX 可以让你专注于内容&#xff0c;而不必过多关心排版细节&#xff0c;特别适用于数学家、工程师和科学研究者。 什么是 LaTeX&…...

axios 和fetch的取舍,以及比较

废话不多说&#xff0c;直接直捣黄龙&#xff1a; 区别 相同点 都是一种基于promise的异步解决方案。都可以解决回调地狱问题 不同点 axios是一个封装好的库&#xff0c;需要npm进行安装&#xff0c;fetch是es6新增的api 语法&#xff1a; fetch(url, { method: GET, // o…...

K-Means(K-均值)聚类算法理论和实战

目录 K-Means 算法 K-Means 术语 K 值如何确定 K-Means 场景 美国总统大选摇争取摆选民 电商平台用户分层 给亚洲球队做聚类 ​编辑 其他场景 K-Means 工作流程 K-Means 开发流程 K-Means的底层代码实现 K-Means 的评价标准 K-Means 算法 对于 n 个样本点来说&am…...

【蛋糕层数组合数量】2024-8-4

缘由求解这一道c问题_编程语言-CSDN问答 很简单&#xff0c;最小数是1&#xff0c;最大数分别乘以比例即得一个数循环乘以比例直到1&#xff0c;那么&#xff0c;有几个数就有多少规律的结合就是数量。 荔枝分析&#xff1a;5可得3 2 1则5、53、52、51、532、531、521、5321。…...

Zotero插件安装失败?手把手教你解决版本兼容问题(以better-notes为例)

Zotero插件安装失败&#xff1f;手把手教你解决版本兼容问题&#xff08;以better-notes为例&#xff09; 学术研究离不开文献管理工具&#xff0c;Zotero作为开源免费的文献管理神器&#xff0c;凭借其强大的功能和丰富的插件生态&#xff0c;成为众多科研工作者的首选。然而…...

nlp_structbert_sentence-similarity_chinese-large部署教程:模型量化INT8可行性分析

nlp_structbert_sentence-similarity_chinese-large部署教程&#xff1a;模型量化INT8可行性分析 1. 项目背景与模型介绍 StructBERT中文句子相似度分析工具是基于阿里达摩院开源的大规模预训练模型开发的本地化语义匹配解决方案。这个工具专门针对中文文本理解进行了优化&am…...

responder使用教程

Responder是Kali Linux中一款强大的网络欺骗工具&#xff0c;主要用于在局域网中捕获各种网络协议的认证信息&#xff0c;特别是NTLM哈希。它通过响应LLMNR&#xff08;链路本地多播名称解析&#xff09;、NBT-NS&#xff08;NetBIOS名称服务&#xff09;和mDNS&#xff08;多播…...

Parallax三线LCD Arduino驱动库详解

1. 项目概述 Parallax LCD 是一个专为驱动 Parallax 公司三线制串行 LCD 模块设计的轻量级 Arduino 库。该库不依赖标准 HD44780 并行接口协议&#xff0c;而是针对 Parallax 自研的 3 线串行通信协议&#xff08;TX、GND、VDD&#xff09;进行底层适配&#xff0c;显著降低 GP…...

GSM-Playground:面向SIM800L硬件深度优化的Arduino蜂窝通信库

1. 项目概述GSM-Playground 是一款面向 Arduino 平台的 GSM 通信扩展库&#xff0c;专为配套硬件模块GSM Playground Shield设计。该库并非通用 AT 指令封装器&#xff0c;而是针对特定 PCB 硬件拓扑、电平转换逻辑、电源管理时序及外设复用约束进行深度适配的固件层抽象。其核…...

深度解析Wiki.js操作日志系统:构建企业级安全监控的完整方案

深度解析Wiki.js操作日志系统&#xff1a;构建企业级安全监控的完整方案 【免费下载链接】wiki- Wiki.js | A modern and powerful wiki app built on Node.js 项目地址: https://gitcode.com/GitHub_Trending/wiki78/wiki- 当团队协作编辑Wiki内容时&#xff0c;你是否…...

避坑指南:TDengine开源版taosdump备份恢复,这些性能问题和‘缺口’你得知道

TDengine开源版备份恢复实战&#xff1a;taosdump性能瓶颈与数据缺口深度解析 1. 当开源版遇上生产环境&#xff1a;taosdump的真实表现 去年夏天&#xff0c;我们团队在新能源监控项目中首次尝试用TDengine开源版构建时序数据库集群。当系统运行三个月后&#xff0c;客户突然…...

Python量化投资数据接口实战指南:通达信数据获取与策略开发全流程

Python量化投资数据接口实战指南&#xff1a;通达信数据获取与策略开发全流程 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化投资领域&#xff0c;数据获取的效率与质量直接决定了策略的有…...

OpenUSD终极渲染器切换指南:Storm vs Prman性能深度对比

OpenUSD终极渲染器切换指南&#xff1a;Storm vs Prman性能深度对比 【免费下载链接】OpenUSD Universal Scene Description 项目地址: https://gitcode.com/GitHub_Trending/ope/OpenUSD OpenUSD&#xff08;Universal Scene Description&#xff09;作为强大的3D场景描…...