In this paper we present Percival, a browser-embedded, lightweight, deep
learning-powered ad blocker. Percival embeds itself within the browser's image
rendering pipeline, which makes it possible to intercept every image obtained
during page execution and to perform blocking based on applying machine
learning for image classification to flag potential ads. Our implementation
inside both Chromium and Brave browsers shows only a minor rendering
performance overhead of 4.55%, demonstrating the feasibility of deploying
traditionally heavy models (i.e. deep neural networks) inside the critical path
of the rendering engine of a browser. We show that our image-based ad blocker
can replicate EasyList rules with an accuracy of 96.76%. To show the
versatility of the Percival's approach we present case studies that demonstrate
that Percival 1) does surprisingly well on ads in languages other than English;
2) Percival also performs well on blocking first-party Facebook ads, which have
presented issues for other ad blockers. Percival proves that image-based
perceptual ad blocking is an attractive complement to today's dominant approach
of block lists