梗图搜索神器来了,还能搜视频,网友:六年没找到的梗图这里两分钟找到了
重度互聯(lián)網(wǎng)愛好者們福利來了!
你是否遇到過這種情況:一個(gè)梗圖尋遍全網(wǎng)都還沒找到。
現(xiàn)在外網(wǎng)一位小哥搞出了一個(gè)互聯(lián)網(wǎng)規(guī)模的 Meme 搜索引擎,庫里有近兩千萬個(gè)梗圖,涵蓋各種小眾文化。
檢索關(guān)鍵詞,或者上傳相似圖片,結(jié)果就能秒出!
若遇到 Meme 庫里沒有的梗圖,還可共享上傳。
網(wǎng)友六年都沒找到的梗圖,在這個(gè)小哥的網(wǎng)站上 2 分鐘就找到了。
然鵝這樣一個(gè)秒秒鐘出梗圖的背后的裝置確實(shí)醬嬸兒的:
(這不會(huì)有點(diǎn)太簡陋了吧)
這時(shí)候可能就有盆友好奇,這個(gè)粗糙的裝置是如何做到快速檢索梗圖的?
那不妨一起來看看這個(gè)“Meme 搜索引擎”是如何搭建的~
靈感來自 iPhone 圖片識(shí)別
要編寫一個(gè) Meme 搜索引擎,最重要也是最先面臨的一個(gè)問題就是:如何準(zhǔn)確識(shí)別梗圖中的文字信息?
用專業(yè)一點(diǎn)的話來講就是:如何擁有一個(gè)可伸縮的 OCR(光學(xué)字符識(shí)別 )?
OCR 的解決方案倒是有現(xiàn)成的,不過現(xiàn)有的要么就是遇到比較抽象的梗圖識(shí)別效果不太好,要么就是太貴。
舉個(gè)簡單的栗子
,比如說用 Tesseract OCR 來提取圖像中的文字,測(cè)試時(shí),只能用非常標(biāo)準(zhǔn)的字體和配色方案識(shí)別 Meme 圖,不然的話就會(huì)出現(xiàn)下面這種情況。
這是原圖:
這是識(shí)別出來的文字:
30 BLUE man41;? S4-5?’?ew/ — V [IL ‘ . “,2; g” .’Sj /B”f;T”EArmDand [red] mvslmunlm: sawmills
emmmmmm
不過靈感很快就來了,小哥偶然間在 iPhone 給別人發(fā)一個(gè)驗(yàn)證碼圖片時(shí)。
這是驗(yàn)證碼圖片:
這是復(fù)制過來的文字:
并且 iPhone 的這個(gè)功能已經(jīng)在 iOS Vision 框架中公開了,可伸縮 OCR 的問題這不就有解決辦法了嘛~
不過關(guān)于 Vision 框架目前還沒有現(xiàn)成的開源代碼插件,只能自己寫了,具體代碼小哥目前還沒公布。
BUT,小哥還是總結(jié)了一下自己寫代碼時(shí)的方法經(jīng)驗(yàn),而且是針對(duì)一個(gè)從未用 Swift 寫過任何正經(jīng)東西的小白:
遇事不決 Google 之
Github 上逆向工程各種 Swift 回購協(xié)議
請(qǐng)教懂 iOS 的朋友解決 Xcode 問題
……
最終東拼西湊,搞出了一個(gè)可行的解決方案:iOS Vision OCR 服務(wù)器,僅在一部 iPhone 上就能運(yùn)行。
識(shí)別文字信息這趴搞定了,接下來就輪到搜索環(huán)節(jié)了,相較于上一趴,這部分就簡單多了。
小哥用的是 ElasticSearch(已開源)和 Postgres。
ElasticSearch 擁有多節(jié)點(diǎn)能夠有效避免故障的發(fā)生,并且能夠在保證速度的情況下容納數(shù)百萬個(gè) Meme,不過這都是在犧牲了可靠性之后得到的。
而 Postgres 能夠保證搜索結(jié)果的可靠性,但在超過一百萬張圖片的范圍時(shí),就會(huì)變得特別慢。
一個(gè)能保證速度,一個(gè)能保證質(zhì)量,那……
Done!
在這其中,小哥用到了 PGSync,它是一件中間件,可以用于同步從 Postgres 到 Elasticsearch / OpenSearch 的數(shù)據(jù),具體的搜索流程如下:
到這里,整個(gè)搜索引擎的搭建已初見雛形,但還沒結(jié)束……
視頻 Meme 也能支持
因?yàn)?Meme 不僅僅靠梗圖來傳遞,有時(shí)候還會(huì)有視頻。
這倒也簡單,直接將視頻分割成截圖集,之后就能像普通的 Meme 圖一樣被識(shí)別了。
具體來說,小哥編寫了一個(gè)小型微服務(wù),通過 ffmpeg(它可以執(zhí)行音頻和視頻多種格式的錄影、轉(zhuǎn)換、串流功能),從視頻中截取 10 個(gè)均勻間隔的圖片。
然后將截圖文件發(fā)送到 iPhone OCR 服務(wù),最終視頻文件中會(huì)有每個(gè)屏幕截圖 OCR 后的結(jié)果集。
不過擁有視頻檢索功能后,毫無疑問 OCR 服務(wù)的負(fù)載就重了,一個(gè)視頻 OCR 的工作量幾乎是一般梗圖的 10 倍。
雖然說 OCR 應(yīng)用服務(wù)器的速度很快,但也禁不住這樣薅,于是 iOS OCR 服務(wù)升級(jí)了(多加幾臺(tái)手機(jī)),于是最終的裝置就變開頭圖中的那樣了。
最終具體的流程圖小哥也貼心地給出來了:
小哥的這個(gè) Meme 搜索引擎出來之后,網(wǎng)友們也都直呼太棒了。
當(dāng)然也有網(wǎng)友給出了一些建議,認(rèn)為當(dāng)前的搜索引擎太文本化了,而很多 Meme 圖本身就沒多少文字,更多時(shí)候都是“意會(huì)”。
對(duì)此,小哥本人也作出了回應(yīng),稱之后還會(huì)繼續(xù)優(yōu)化搜索引擎:
考慮將圖像轉(zhuǎn)換為描述的文本……
不過值得一提的是,目前這個(gè)搜索引擎還不太支持中文,中文的梗圖搜索效果不是很好,但既然小哥已經(jīng)將構(gòu)建方法給出來了,就期待一波萬能的網(wǎng)友吧。(手動(dòng)狗頭)
如果你對(duì)這個(gè)項(xiàng)目感興趣的話,可以戳下文鏈接~
傳送門:
https://findthatmeme.com/
參考鏈接:
-
https://findthatmeme.com/blog/2023/01/08/image-stacks-and-iphone-racks-building-an-internet-scale-meme-search-engine-Qzrz7V6T.html
本文來自微信公眾號(hào):量子位 (ID:QbitAI),作者:Pine
總結(jié)
以上是生活随笔為你收集整理的梗图搜索神器来了,还能搜视频,网友:六年没找到的梗图这里两分钟找到了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 房贷利率上浮30%利息太高吃不消,如何让
- 下一篇: 联想发布四款 2023 Chromebo