pano
全景图像拼接
原本是想解决网络遥控车的视角太小,不能有效观察周围情况问题,找到了广角镜头。 后来发现竟然可以用两个超过180°的摄像头拼接全景图片。
但是在网上没有找到效果好的实时全景传输项目,所以自己做一个。
我理解的全景图片生成应该主要是3个步骤 1、把图片摊平,这个步骤的学名未知。可能是将鱼眼原图(等角图片)展开成等距图片。 2、将两个鱼眼镜头的等距图分成3份,并进行水平拼接 3、拼接图按照给定的角度在还原成等角图
为了可以做到即时(30FPS),需要尽可能的提高效率。 目前最大的效率瓶颈是在拼接上。
调研拼接3张水平图片效率
技术上打算采用opencv 的 stitcher,先试试看。
opencv 用 4.X 吧,尽量用新一点的东西。
2023-05-24 进展
目前的拼接还是完全自己写的,原因是所有第三方提供的方案均不能有效的对我的图片进行拼接。 可能是我的参数有问题,但是我的需求相对简单并且我对拼接效率有要求,所以就自己写了。
写的过程还是挺顺利的,由于我的摄像头是背靠背绑在一起的,所以他们的水平同步和角度偏差是不大的,所以我放弃了拼接时进行旋转和扭曲。 拼接中对图片只有平移,这对图片首尾相连还是很有帮助的。
目前拼接的图片效果还是不错的,拼接效率上没有测试,从代码上看起来,应该是足够高效的。
封装思路
为了更加模块化,封装思路如下: 1、贯彻单视频流方案,虽然涉及拼装切分,单比起双倍的编码和解码,还是要好很多的。所以输入的视频流是两个摄像头的拼接视频流。 横向拼接,分辨率一致,帧率一致,编码一致,码率一致。 这里可以简化成输入两张(一张)图片,视频流的处理还是放到视频流的相关模块中。 2、校准主副镜头,由于目前的两个摄像头都是usb摄像头,usb的可插拔等特性导致,每次启动时,主副镜头的顺序都可能不一致,所以需要校准。 3、校准主副镜头的图像,即圆心+半径。这里由于是超级广角,所以图像是一个圆,但是随着镜头的物理位置不稳定,需要进行校准。这里会强制要求两个图片的半径一致,即获得的等距投影图分辨率一致。 4、拼接矫正,尝试用等距投影进行拼接。 以上校准全部保存校准结果至本地文件,当本地文件不存在,强制要求校准,否则不需要校准。如果有必要可以随时进行校准。 5、拼接输入图片,这是一个全流程,输入一张图片(横向拼接原图输入),输出一张图片(等距投影拼接)。
暂时封装成一个类。
2023-05-25 进展
基础功能完成,在比较合适的图片上表现还是挺好的,但是在一些特殊情况,比如校准时的距离与实际视频距离有较大变化的情况下,拼接效果就不好了。
所以可能需要手动或者自动进行不断的校准。
Metadata
Release files for u0-stitcher 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| u0_stitcher-0.1.6.tar.gz | 11.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| u0_stitcher-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / u0_stitcher-0.1.6.tar.gz
| Download URL | u0_stitcher-0.1.6.tar.gz |
|---|---|
| Size | 11.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b88c555a9f4632439c68254dea8c288954154131568684dd231a8e2f6b14a1d
|
|
BLAKE2b-256 checksum How to use checksums |
6cf33094b7b4bb12528d0cca370f07460a02f3c4ebc345a76d3301836f710fa4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.3
|
Release files / u0_stitcher-0.1.6-py3-none-any.whl
| Download URL | u0_stitcher-0.1.6-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f40e592a625ea1178e43f7530845986706326d5a98fd8038a44a7d48f919077b
|
|
BLAKE2b-256 checksum How to use checksums |
4ec8e1e4557e717246cfa1ffffe0838d5a8ba3073817d54295b3ea629865b0dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.3
|