【笔记】移植ezSIFT顺手搭建个全景照片合成器

某人最近出去游玩,问我可有工具把多张照片拼接在一起成大图的;答曰,没有;但是可以几小时给写一个出来。以前网上查过,没有好用的直接的拼接全景的js库,要么就是完整的一个网站,我要npm install多久哦…要么就是port了opencv,我就要个SIFT匹配算法这也太重了吧,谢谢不用。找到一个独立的C++库可以使用,正好最近有全套的emsdk,port也方便。

照着GNUGO.js的经验,再重复劳动一下:https://github.com/dna2ai/panorama

  • ezSIFT的文件很少;所以直接照着它的例子写ezsiftwrapper.cpp弄一个开发简单省事的API
  • 编译ezsift.js;就是把几个文件拼凑一起emcc出来就好了,没啥技术
  • test.html要费事一些,因为API是为了API的开发简单,用起来还是有点绕。得到2张图片的pixel级data,然后运行extract feature和match keypoints再dump出来,最后根据这个匹配的列表画出2张图的匹配示意图。只要大家clone github的repo,创个local文件夹放2图片进去,用python或node启动一个简易文件server去浏览器打开就可以看到效果啦。

在这里插入图片描述

ezSIFT是移植好了,后面就是做全景匹配算法了。这个等整理好了再上传到github。先简单说一下思路,就是

  • 第一阶段:处理平移,算一个2张图的平均位移,比如(1, 1) -> (2, 2), (1, 2) -> (2, 3),平均平移就是 (1, 1);也就是第一张图和第二张图先重合再移动另一个图到平均平移的位置,就基本拼接了。这里当然是基本拼接。因为会有很多误匹配,所以算一次平均,剔除一次匹配点,等所有点的平均平移都合理(很玄乎是吧),匹配成功。
  • 第二阶段:计算缩放,这个稍微就有点复杂,其实可以根据匹配点2 2的微比就能稍微算出缩放关系。也可以通过keypoint的scale和ori去估计模型。
  • 第三阶段:计算仿射矩阵。这个就麻烦了,现在还懒得去想,但是慢慢去实现吧,让图片拼接更丝滑…

有人问为什么不用机器学习;答,我几个小时就能完成的事情,用机器学习先帮我买个GPU再帮我标定各种案例,这种烧钱烧时间的方法还是让大公司雇人去弄吧。现在的机器学习已经变成了商家赚钱的幌子。虽然GPT-3的模型让人觉得它能写几千亿个if很赞,但是算法上还是存在方向上的问题。

就到这吧,有时间再完整公布所有全景拼接的细节。

Enjoy!

高估了自己的智商,赶紧肯书学习!想全景,慢慢做吧:https://courses.engr.illinois.edu/cs498dwh/fa2010/lectures/Lecture%2017%20-%20Photo%20Stitching.pdf
最少代码案例:https://github.com/kupiakos/image-stitcher/blob/master/stitcher.py

最后完败给了:https://github.com/latsic/imgalign clone, npm install, npm run serve就能用,我在干啥?好好学习去……
fork一份 https://github.com/dna2fork/imgalign 然后干掉google analytics,把workbox-sw去网络就是本地化把storage.googleapis.com换成local的文件形式;opencv.js都已经准备好了,省了很多事;搭建好,可以了,所有平台可用。微信和手机浏览器,第一次加载opencv我的红米note7用了1分钟;后面因为有sw所有几秒就好了。想得到类似照片的平整全景图,打开settings,在image面板把crop max rect点上就好了。其他参数就自己调吧。话说,base on这个site,是不是都可以直接去开发网页版美图秀秀或者photoshop了……

Enjoy!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值