TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Building an Internet Scale Meme Search Engine

785 pointsby whoisburbanskyover 2 years ago

66 comments

CobrastanJorjiover 2 years ago
This title really undersells the absolute insanity of the described solution. This is a beautiful example of &quot;if it&#x27;s stupid, but it works, it&#x27;s not stupid.&quot; The justification is very convincing.<p>One thing I&#x27;m curious about: how did you build your corpus of meme images and videos?
评论 #34336889 未加载
评论 #34335977 未加载
评论 #34336743 未加载
merpkzover 2 years ago
Nice project, I wanted to build meme search engine myself one day, but figured Tesseract will fail at most of the memes because of how stylized those have become. So I tuned down my meme source to only &#x2F;r&#x2F;bertstrips as those contain sane looking text and it&#x27;s working quite alright - project has no frontend yet, I search from cli and click links.<p>&gt; Initial testing with the Postgres Full Text Search indexing functionality proved unusably slow at the scale of anything over a million images, even when allocated the appropriate hardware resources.<p>I can guarantee you that correctly setup PostgreSQL text search will be faster than ES with much, much less hardware resources needed, it&#x27;s just a matter of correctly creating tsvector column and creating GIN index on it (and ofc asking right queries so it&#x27;s actually used). I can help you out setting postgres schema up and debugging queries if you are interested, for testing purposes at least.
评论 #34336339 未加载
评论 #34338569 未加载
CiceroCiceronisover 2 years ago
This is really brilliant to see, and I&#x27;ve been surprised for quite a long time that nothing similar exists. I think it&#x27;s a real shame that few people with interest in memes have interest in building solutions like this that help us engage with them.<p>People in the 21st century know a lot about the mistakes of the past century that led to much popular culture of the time being lost (especially terminally online people who&#x27;ve watched lots of Youtube documentaries about lost Dr. Who episodes and so on), so it surprises me how little we try and avoid those same mistakes with today&#x27;s ephemeral pop culture in the form of memes. People like yourself who want to help make the internet&#x27;s huge corpus of memes tractable are part of the solution in terms of meme archival and cultural memory.<p>(There&#x27;s a good meme metadiscussion group on Discord, &quot;The Philosopher&#x27;s Meme,&quot; which you might be interested in joining. People there would be very keen to discuss what you&#x27;ve made.)
评论 #34347084 未加载
评论 #34337416 未加载
iamflimflam1over 2 years ago
Love the hackiness of this - however, the vision framework is available on Desktop macs as well - <a href="https:&#x2F;&#x2F;developer.apple.com&#x2F;documentation&#x2F;vision" rel="nofollow">https:&#x2F;&#x2F;developer.apple.com&#x2F;documentation&#x2F;vision</a><p>and specifically:<p><a href="https:&#x2F;&#x2F;developer.apple.com&#x2F;documentation&#x2F;vision&#x2F;vnrecognizetextrequest" rel="nofollow">https:&#x2F;&#x2F;developer.apple.com&#x2F;documentation&#x2F;vision&#x2F;vnrecognize...</a>
评论 #34338217 未加载
评论 #34344537 未加载
评论 #34339198 未加载
yakubinover 2 years ago
The photo under <i>Upgrading the iPhone OCR Service Into An OCR Cluster</i>. In the future, data centres are going to host racks of iPhones.
评论 #34343333 未加载
评论 #34336362 未加载
评论 #34336297 未加载
评论 #34336901 未加载
aabajianover 2 years ago
I had a friend in med school who wrote a very early note-taking app for the iPad. Turns out that there was no way to render PowerPoint files when the iPad first came out. He realized that the iOS&#x2F;Mac OS &quot;quick preview&quot; function could be used to take screenshots of each PowerPoint slide. For a brief time, his was the only app that could display PowerPoints (albeit, they were just screenshots!). There&#x27;s a lot of hidden utility in Apple libraries.
ksdme9over 2 years ago
Love the inventiveness.<p>My question is about the image distribution costs. All the memes on the site seem to be coming straight off an object storage, all that bandwidth consumption has got to add up(?). Some sort of a CDN might help depending on the search patterns.
memeatlasover 2 years ago
Although not as elegant a solution as this I&#x27;ve also tried my hand as well at indexing and categorizing memes. I wanted to save a very specific type of meme though since there are, in my mind, 2 main categories of memes. The first category are what I call &quot;story&quot; memes, they are standalone and typically what you see being shared on Facebook. They usually have text and are able to tell a story on their own with no additional context and can be presented as a single post, story, etc, (think 4 panel comics). The second type are reaction memes. These are used to respond to people and usually convey a feeling towards a post or tweet. They can also be standalone so they should probably be considered a subset of the &quot;story&quot; memes. I&#x27;ve gravitated towards the reaction memes as I see more utility in them and can be used in a more universal way. My site if anyone is interested (its still a work in progress):<p><a href="https:&#x2F;&#x2F;www.memeatlas.com" rel="nofollow">https:&#x2F;&#x2F;www.memeatlas.com</a>
评论 #34344000 未加载
评论 #34450115 未加载
lormaynaover 2 years ago
If you don&#x27;t need advanced search features, you can use Sonic (<a href="https:&#x2F;&#x2F;github.com&#x2F;valeriansaliou&#x2F;sonic">https:&#x2F;&#x2F;github.com&#x2F;valeriansaliou&#x2F;sonic</a>). It&#x27;s blazing fast and you can save lot of money on servers.
评论 #34353120 未加载
philsnowover 2 years ago
I sat down literally last night and started sketching out the scratch-my-own-itch solution to more or less exactly this problem, because I too have meme-aphasia where I <i>know</i> there exists a meme that fits perfectly in a conversation, but I have about 5 seconds to find it before the moment passes.<p>I&#x27;m so, so glad to see that I&#x27;m not the only person in the world with the same &quot;problem&quot;. Well done, mandatory.<p><i>edit: holy crap you even index videos, nice</i>
csande17over 2 years ago
I wonder how the performance of Vision.framework on desktop Mac hardware compares to a cluster of phones. (The author mentions that it was &quot;fairly slow&quot;, but it sounds like they were running an iOS app in the simulator and not a macOS app.)
评论 #34337053 未加载
评论 #34336344 未加载
Fabricio20over 2 years ago
Does the Vision API call back to apple servers in any fashion? Like how google on-device voice recognition APIs will call back to Google when you are online (unless you explicitly pass flags to force it in offline mode).<p>If so, is there any risk in getting your account suspended or ip range banned somehow because of this, for example?
评论 #34339844 未加载
tomw1808over 2 years ago
Absolutely amazing on the tech side!!!<p>Now, after reading the article, I gave your search engine a try. I was looking for that futurama its a trap meme (pretty much pops up on any image search here <a href="https:&#x2F;&#x2F;www.google.com&#x2F;search?q=futurama+its+a+trap" rel="nofollow">https:&#x2F;&#x2F;www.google.com&#x2F;search?q=futurama+its+a+trap</a>)<p>The problem is, the search engine you built is now very text-heavy, which seems to be usually very unconnected to the actual meme. So, searching for &quot;its a trap&quot; did not yield the results I was actually hoping for, but made total sense looking at how the search was implemented.<p>Are you planning to implement an actual tagging of the content of some sorts? Maybe a clustering of similar objects (like iphone clusters similar peoples faces in the gallery) and then tag those clusters with keywords somehow?
评论 #34340239 未加载
mseidlover 2 years ago
Do you use mongodb to make it web scale? You turn it on and it scales right up.
评论 #34339474 未加载
Arbortheusover 2 years ago
This is great, I particularly like the part about using compute from old unwanted iPhones. Quite an inventive way to reuse&#x2F;recycle otherwise obsolete hardware!
permo-wover 2 years ago
I have absolutely no experience in this area and I&#x27;m curious:<p>is there really no open-source text recognition software that&#x27;s on-par with or close to Apple&#x27;s (presumably proprietary) implementation? the article mentions Tesseract. is that the current best open-source option?
评论 #34357952 未加载
MrGilbertover 2 years ago
This is remarkable. I&#x27;d love to see that combined with some kind of sentiment analysis like Microsoft offers, just to see if something useful comes out of it.<p>Sometimes, I don’t know the exact words when looking for a meme, but once I see it, I know that’s the one.
评论 #34336073 未加载
评论 #34347267 未加载
oefrhaover 2 years ago
&gt; My preliminary speed tests were fairly slow on my Macbook. However, once I deployed the app to an actual iPhone the speed of OCR was extremely promising (possibly due to the Vision framework using the GPU). I was then able to perform extremely accurate OCR on thousands of images in no time at all, even on the budget iPhone models like the 2nd gen SE.<p>I suppose that’s an old Intel MacBook? I’d be very surprised if the Vision framework performs better on a 2nd gen iPhone SE than even the first M1 MacBook Air.
评论 #34338048 未加载
komali2over 2 years ago
Would love to see that load balancer implementation, as I&#x27;m a scrub and this project fascinates me.
评论 #34335972 未加载
andaiover 2 years ago
I have a &quot;hackish but works for me&quot; meme database: I use my Telegram &quot;self chat&quot; to send memes I like to myself, and I tag them with the kind of words I&#x27;m likely to search for when looking for them later.<p>Works great for me.<p>It&#x27;s kind of like trying to come up with a good Google search phrase, based on how other people must have phrased something, but relying on knowledge of how <i>you</i> phrase things instead.
评论 #34340186 未加载
lysecretover 2 years ago
Wait what this is absolutely brilliant. Actually insane it works so well using a stack of iPhones as an ocr server. My deepest respect.
Thorentisover 2 years ago
IaaS - iPhone as a Service, coming soon to AWS.
marginalia_nuover 2 years ago
Now this is the sort of disgusting pile of jank I love to see.
JustARandomGuyover 2 years ago
Very inventive. Admittedly when I read the first few paragraphs, I was thinking “he’s got to have $40K of iPhones doing image processing” but you made a good point about being able to use iPhones with screen and other damage.<p>What was your average price per iPhone, if you don’t mind disclosing?
eknsover 2 years ago
Last time I looked into OCR stuff I came to a similar conclusion (though I didn&#x27;t implement anything back thne). It would be really nice to have &quot;open source&quot; models that had similar performance, without having to deal with the iphone cluster hackery.
nysvover 2 years ago
If only there was a way to filter out ifunny results, I absolutely detest that watermark.
Freak_NLover 2 years ago
&gt; Better yet, I don’t even want to use them as phones, so even iPhones that are IMEI banned or are locked to unpopular networks are perfectly fine for my use.<p>Fences worldwide will be overjoyed to hear of this novel application.
suave_dudeover 2 years ago
I have a question what do you guys think is the best back end for a video search engine app?
dirtyidover 2 years ago
Outrageous effort! So far japanese, mandarin returning results as well.<p>Do you have list of sources where memes are ingested from?<p>Would be nice to have some option to explore memes by category.
lookiover 2 years ago
Very cool project! I&#x27;ll try to remember it the next time I&#x27;m looking for a specific image. I noticed that repeated appearances of the search term are ranked higher, which isn&#x27;t necessarily productive. Also, some kind of duplicate detection would be nice. Searching for &quot;SpongeBob&quot; yields many copies of the same images that mentions &quot;SpongeBob&quot; several times.
baradhiren07over 2 years ago
<a href="https:&#x2F;&#x2F;findthatmeme.com&#x2F;?search=take+my+money" rel="nofollow">https:&#x2F;&#x2F;findthatmeme.com&#x2F;?search=take+my+money</a>
petesergeantover 2 years ago
I was hoping this would help me find the Database Iceberg meme that shows different levels of database insanity. It didn’t. Anyone have a link?
评论 #34336616 未加载
2Gkashmiriover 2 years ago
Are you going to open source the &quot;app&quot; part of it ?<p>I would love to replicate this setup for my own project....<p>I am thinking, load balanced, multi location redundant &quot;iOS machines&quot; with 3-4 phones in with power backup and internet dongle.<p>We could use something like zerotier&#x2F;tailscale to get internet access from outside your local network
ipsum2over 2 years ago
This is amazing. Out of curiosity, why not try deep learning OCR software instead of Tesseract? PaddleOCR is popular.
评论 #34336426 未加载
solarkraftover 2 years ago
That&#x27;s a fun way to do OCR. Next up: Classifying memes by subjects and themes to build something like KnowYourMeme&#x27;s gallery, but <i>for every meme</i>.<p>Bonus: Index from a lot of sources to help track a meme&#x27;s origin.<p>This type of thing is on my long list of &quot;can somebody else please do this already&quot;.
schappimover 2 years ago
Pretty insane. If you don’t want to use iPhones, I made macOCR a while back. It uses the same vision APIs, with a very simple CLI interface. See: <a href="https:&#x2F;&#x2F;github.com&#x2F;schappim&#x2F;macOCR">https:&#x2F;&#x2F;github.com&#x2F;schappim&#x2F;macOCR</a>
petercooperover 2 years ago
You can do it on macOS as well, it has the same API for fast high quality OCR. I used it to create an OCR system to detect secrets or credentials in screencasts: <a href="https:&#x2F;&#x2F;github.com&#x2F;peterc&#x2F;videocr">https:&#x2F;&#x2F;github.com&#x2F;peterc&#x2F;videocr</a>
kgbciaover 2 years ago
That&#x27;s genius. I realized the cost advantage of text to speech on an old android versus Google cloud
sneakover 2 years ago
Don&#x27;t you have to re-sign and re-deploy tour iOS app every 7 days to keep it running on the iPhones?
paulmdover 2 years ago
Is there a pgsync equivalent for Oracle? Spent some time building replication from a source-of-truth to a search engine at a previous job.<p>Wish we could have used postgres but the tools were dictated rather than letting the requirements drive the tooling.
spuzover 2 years ago
I&#x27;m curious how well the iPhone OCR actually works. How do you deal with errors? Is the error rate low enough that you can accept the output from the iPhone OCR as is or do you also run it through a cleaning process (e.g. spell check)?
评论 #34336697 未加载
yregover 2 years ago
This is absolutely brilliant.<p>I believe I will actually use it a lot if you keep the site up.<p>Minor feedback for the blog post: It deserves a better meta description (for link previews). The first paragraph doesn&#x27;t advertise how good the article is going to be.
causality0over 2 years ago
I tried a few memes. The results were quite poor, and vastly inferior to just using Google. In the case of text searches I had to scroll through dozens of results before finding the original meme images.
nowaheover 2 years ago
Out of curiosity, how does your Image Similarity Search works ? Are you also using some feature of Apple&#x27;s Vision framework, or running some ML model on your linode instance ?
评论 #34340194 未加载
Liquidorover 2 years ago
Brilliant! :-)<p>Maybe a dumb question, but could you use your data to train a new OCR model so you wouldn&#x27;t have to rely on iOS?<p>I don&#x27;t know much about ML&#x2F;AI so maybe not feasible.
gerdesjover 2 years ago
&quot;It looked like it was time to bite the bullet and write an OCR iOS server in Swift.&quot;<p>Quite a large bullet required, one with plenty of chewing left in it.
joshuover 2 years ago
Heh, this finds a bunch of copies of a video I made. If you are going to cache them and repost them, you probably need to have a DMCA process.
komeover 2 years ago
you are a genius. also, the Search Engine works so well
surumeover 2 years ago
Thank you for building this! It&#x27;s so much fun. I looked for memes that I saw years ago and found them in seconds. Excellent work!!
Scaevolusover 2 years ago
Looks like you&#x27;ve solved the OCR problem, now to solve the duplication problem and use it as a ranking hint. :-)
1wskover 2 years ago
Could you not extract the model and run it on a server? Its probably not as easy but i know it has been done with NeuralHash
nisegamiover 2 years ago
Is this the person on &#x2F;r&#x2F;hardwareswap who&#x27;s been looking for semi-functional, even IMEI banned, iPhones?
the_arunover 2 years ago
Nice hack. But doesn&#x27;t Google&#x2F;(any public search engine) image search do this for us already?
kevmo314over 2 years ago
Could you expose your iPhone cluster as an OCR API? Seems like it would be competitive with the GCP API.
评论 #34336578 未加载
francis-ioover 2 years ago
Would be great if the images had a unique name so I could save them without having to rename them.
mateuszbudaover 2 years ago
Great project! With your DIY attitude, if you need to build your own infrastructure for web scraping, here is a tutorial for mobile proxy setup which might be helpful: <a href="https:&#x2F;&#x2F;scrapingfish.com&#x2F;blog&#x2F;byo-mobile-proxy-for-web-scraping" rel="nofollow">https:&#x2F;&#x2F;scrapingfish.com&#x2F;blog&#x2F;byo-mobile-proxy-for-web-scrap...</a>
9devover 2 years ago
This is the single bestest thing I have read in a long while. Absolute madness. Pure bliss.
fuzzygroupover 2 years ago
This is utterly fantastic and you are to be commended for your Crazy Mad Scientist genius!
julianeonover 2 years ago
This makes me wonder what other cool things I can do with an old iPhone.
Tade0over 2 years ago
I wonder how it fares against deep-fried &quot;E&quot; or Opossum memes?
skizmover 2 years ago
Where did the original set of meme images, gifs, and videos come from?
coayerover 2 years ago
I love the iPhone cluster so much!
danbruderover 2 years ago
this is very clever. I wonder what other use cases could leverage this approach
ariehkovlerover 2 years ago
This is mad and I love it.
geek_atover 2 years ago
really amazing! I love the solution and the project in general
transitivebsover 2 years ago
My #1 recommendation for anyone thinking about the convoluted OCR solution: use a cheap OCR API and save yourself months of time &#x2F; hassle &#x2F; upkeep. Google&#x27;s OCR API is a good place to start, but AWS has one too and dozens of others out there.
评论 #34335985 未加载
评论 #34336359 未加载
评论 #34336354 未加载
评论 #34336102 未加载