Katkat

Design an image copyright-violation detection system

MetaMachine Learning Engineer · Onsite

Last updated

This problem evaluates your ability to design a scalable, end-to-end computer vision pipeline capable of identifying copyrighted content within user-uploaded images, including scenarios involving cropping, filters, and collages.

Problem Statement

Design a system for a social media platform that detects if a user-uploaded image infringes on copyrighted material stored in a reference database. The platform handles 10,000 image uploads per second.

Functional Requirements

  • Flag images that match copyrighted works stored in a database (e.g., movies, professional photography, art).
  • Handle image transformations including resizing, color filters, cropping, and minor edits.
  • Provide an API for internal moderation teams to review flagged content.

Non-Functional Requirements

  • Latency: The detection pipeline must complete within 500ms of upload.
  • Scale: Support a reference database containing 100 million copyrighted images.
  • Robustness: The system should be resistant to common adversarial attacks like adding noise or watermarks.

Your design should cover:

  1. Data Representation: How do you represent images to allow for fast similarity searches?
  2. Architecture: How do you handle the 10,000 requests/sec throughput?
  3. Retrieval Pipeline: Describe the two-stage approach: candidate retrieval (fast, low-precision) and candidate ranking (slower, high-precision).
  4. Handling Collages/Partial Matches: How does your system account for images that contain only a portion of the copyrighted content?
  5. Trade-offs: Discuss the balance between precision (avoiding false copyright claims) and recall (catching as many violations as possible).

Hints

Hint 1

Consider using perceptual hashing for an initial fast filtering layer to remove exact duplicates.

Hint 2

For partial matches and robustness, think about extracting deep learning embeddings and using an Approximate Nearest Neighbor (ANN) index like FAISS.

Hint 3

Implement a spatial pooling strategy or a 'sliding window' approach to detect if only a subset of the uploaded image matches a reference image.

Follow-up questions

  • How would you handle a sudden surge of traffic during a viral media event?
  • If the system identifies a false positive (a user's original work flagged as copyright), what mechanisms would you implement to resolve the dispute?
  • How would your architecture change if we needed to detect copyright violations in short-form video content?