PII Image Redactor
находит приватные данные на скриншотах
Модель от screenpipe для детекции PII-регионов прямо на изображениях: скриншотах, кадрах computer-use и интерфейсах приложений, которые видит AI-агент. Это ONNX-файл примерно на 109 МБ, который возвращает пиксельные bbox для 12 категорий приватных данных.
🤓 Ключевые особенности
- 🫡 Один и тот же файл работает на macOS, Windows и Linux через CoreML, DirectML, CUDA или CPU; провайдер выбирается при загрузке, вендорные GPU SDK не нужны.
- 😎 Детектит 12 категорий: private_person, private_email, private_phone, private_address, private_url, private_company, private_repo, private_handle, private_channel, private_id, private_date и secret — пароли, API-ключи, JWT и т.п.
- 🤓 На ScreenLeak при IoU ≥ 0.30: region zero-leak 98.9%, oversmash 0.0%.
- 😐 Около 120 мс p50 на Apple Silicon через CoreML.
- 🤫 Для редакции советуют сплошной чёрный прямоугольник, а не блюр: блюр можно обратить super-resolution-атакой.
- 🫤 Лицензия CC BY-NC 4.0 — только некоммерческое использование; для коммерции указан контакт louis@screenpi.pe.
😎 Пример
import numpy as np, onnxruntime as ort
from PIL import Image
sess = ort.InferenceSession('rfdetr_v11.onnx', providers=['CPUExecutionProvider'])
img = Image.open('screenshot.png').convert('RGB')
arr = np.asarray(img.resize((512, 512), Image.BILINEAR), np.float32) / 255.0
arr = ((arr - [0.485,0.456,0.406]) / [0.229,0.224,0.225]).transpose(2,0,1)[None]
boxes, logits = sess.run(None, {sess.get_inputs()[0].name: arr.astype(np.float32)})
# boxes/logits → фильтр по score и закраска bbox
Подробнее
Бенчмарк: 98.9% region zero-leak и 0.0% oversmash на held-out split ScreenLeak при IoU ≥ 0.30; это верхняя граница для условий обучения, а не гарантия на реальных экранах.Класс региона ненадёжен вне распределения — закрашивайте все найденные bbox, не фильтруйте по label.
Обучение только на синтетике; оценка на английском/латинице, CJK, арабика и кириллица не проверялись.
Не security boundary: противник может подобрать layout для обхода.








Комментарии