重度互联网爱好者的福利来了!
你有没有遇到过这样的情况:一张梗图找遍了全网也没找到。
现在,外网的一个小哥哥开发了一个互联网规模的模因搜索引擎,数据库里有近2000万的梗,涵盖了各种少数民族文化。
如果遇到Meme库中没有的梗图,也可以分享上传。
网友六年都没找到的梗图,在这个小哥哥的网站上,2分钟就找到了。
但是,这样一张一秒的鹅图背后的装置真的是酱:
这时候可能会有盆友好奇这个粗糙的设备是怎么快速检索到梗图的。
来看看这个模因搜索引擎是怎么搭建的吧~
要编写一个模因搜索引擎,最重要也是首要的问题是:如何准确识别词干图中的文本信息。
用专业术语来说就是:如何拥有一个可扩展的OCR。
有现成的OCR解决方案,但是现有的在遇到比较抽象的词干图识别时,要么不是很有效,要么太贵。
举个简单的栗子。
例如,Tesseract OCR用于提取图像中的字符测试时,只能使用非常标准的字体和配色来识别迷因图,否则会出现以下情况
这是原图:
这是已识别的文本:
30蓝人41,S4五号
emmmmmm
这是复制的文本:
而且iPhone的这个功能已经在iOS Vision框架中公开了,所以有解决可扩展OCR问题的办法~
但是Vision框架没有现成的开源代码插件,只能自己写了具体代码还没有公布
但是,小哥哥还是总结了自己写代码的经验,而且是针对一个从来没有用Swift写过什么正经东西的小白:
不要决定用谷歌做什么
在Github上逆向工程各种Swift回购协议
求懂iOS的朋友解决Xcode问题。
。
最终我们拼凑出一个可行的方案:iOS Vision OCR server,只能在一台iPhone上运行。
识别出文字信息后,就轮到搜索链接了,比上一个简单多了。
小哥哥用的是ElasticSearch和Postgres。
ElasticSearch有多个节点,可以有效避免故障,在保证速度的同时可以容纳数百万个Meme,但这是以牺牲可靠性为代价实现的。
一个能保证速度,一个能保证质量,所以...
搞定了。
其中小哥用的是PGSync,这是一个中间件,可以用来同步Postgres到Elasticsearch/OpenSearch的数据。具体搜索过程如下:
至此,整个搜索引擎已经成型,但还没有结束...
视频迷因也可以支持
因为Meme不仅仅是茎图传递的,有时候还有视频。
也很简单直接把视频分成一组截图,然后就可以像普通的模因图一样识别了
然后将截图文件发送到iPhone OCR服务,最终的视频文件会有每个截图经过OCR后的结果集。
但是有了视频检索功能,毫无疑问OCR服务的负载很重,一个视频OCR的工作量几乎是一般stem图的10倍。
虽然OCR应用服务器的速度很快,但还是忍不住崩溃,于是升级了iOS OCR服务,最终设备会如第一张图所示发生变化。
最后,还贴心地给出了具体流程图:
小哥的Meme搜索引擎出来后,网友们也是大呼厉害。
当然,也有网友给出了一些建议,认为现在的搜索引擎过于文字化,而很多模因图本身文字很少,更多时候是心照不宣。
对此,小哥本人也做出了回应,表示会继续优化搜索引擎:
考虑将图像转换成描述性文本...
不过值得一提的是,目前这个搜索引擎还不支持中文,中文词干图的搜索效果也不是很好,不过既然哥哥给了构造方法,我估计会有一波万能的网友。
如果对这个项目感兴趣,可以戳下面的链接~
门户网站:
参考链接:
。声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。