/ Модель

Характеристики

Лицензия
CC BY 4.0
Библиотека
pytorch
Опубликована
1 окт 2026

Coverlock

Эмбеддинги изображенийИзображение → embedding

CoverLock извлекает признаки изображения с помощью DINOv2 и связывает с ними бинарную водяную метку для исследований защиты изображений.

0скачиваний за 30 дней0лайковвеса обновлены1 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

CoverLock — набор официальных чекпойнтов для метода привязки бинарной водяной метки к изображению-носителю. Модель использует замороженные признаки DINOv2 и лёгкую обученную голову, чтобы получить зависящий от изображения код и применить его к битам сообщения операцией XOR. Доступны варианты с backbone ViT-S/14, ViT-B/14 и ViT-L/14; указанные размеры файлов чекпойнтов составляют 3,2–5,8 МБ. Для работы соответствующий backbone DINOv2 загружается отдельно через PyTorch Hub.

CoverLock предназначен для исследований нейросетевой водяной маркировки, переноса остаточных искажений и привязки данных к содержимому изображения. Он работает как обёртка над существующими двоичными кодировщиком и декодировщиком водяных знаков, которые остаются замороженными, поэтому сам по себе не является полноценным кодеком водяных знаков. Для корректной привязки и восстановления длины сообщений должны совпадать; для кодеков с сообщениями короче 256 бит на стороне отправителя и получателя требуется использовать один и тот же фиксированный набор битов CoverLock. Лицензия — CC BY 4.0.

Сценарии применения

  • привязка бинарного сообщения водяного знака к изображению-носителю
  • проверка соответствия декодированной водяной метки исходному изображению
  • исследование подделки изображений переносом остаточных искажений
  • формирование зависящего от изображения кода из признаков DINOv2

Ограничения

CoverLock — обёртка, требующая существующего бинарного кодировщика и декодировщика водяных знаков, а не самостоятельный кодек. Длина сообщения должна соответствовать длине битового кода; для сообщений короче 256 бит нужен одинаковый фиксированный поднабор битов на обеих сторонах.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

CoverLock

Official checkpoints for Residual Transferability in Neural Image Watermarking.

Project page · GitHub · Paper

CoverLock is a plug-and-play defense that binds a binary watermark payload to its cover image. It derives a robust image-dependent code from frozen DINOv2 features and applies that code to the payload through XOR. The original watermark encoder and decoder remain frozen and unmodified.

Checkpoints

FileDINOv2 backboneFeature layerSize
coverlock_s.ptViT-S/14113.2 MB
coverlock_b.ptViT-B/14114.7 MB
coverlock_l.ptViT-L/14235.8 MB
coverlock_g.ptViT-G/14397.9 MB

The checkpoint contains the lightweight CoverLock head and its configuration. The corresponding frozen DINOv2 backbone is downloaded through PyTorch Hub on first use.

Installation

pip install "git+https://github.com/holdrain/Coverlock.git"
pip install huggingface_hub

Load a checkpoint

from huggingface_hub import hf_hub_download
from coverlock import CoverLock

checkpoint = hf_hub_download(
    repo_id="zipingdong123/Coverlock",
    filename="coverlock_s.pt",
)

model = CoverLock.from_checkpoint(checkpoint, device="cuda")

Use coverlock_b.pt, coverlock_l.pt, or coverlock_g.pt to select a larger DINOv2 backbone.

Bind and recover a watermark payload

CoverLock wraps an existing binary watermark codec. The sender binds the message to the cover image before embedding; the receiver repeats the operation after watermark decoding.

import torch

# Sender
cover_code = model.encode_pil(cover_image)
bound_message = torch.logical_xor(message.bool(), cover_code)
watermarked_image = watermark_encoder(cover_image, bound_message)

# Receiver
decoded_message = watermark_decoder(received_image)
received_code = model.encode_pil(received_image)
recovered_message = torch.logical_xor(decoded_message, received_code)

message, bound_message, and decoded_message must have the same bit length. For watermark codecs with fewer than 256 message bits, use the same fixed subset of CoverLock bits at the sender and receiver.

Command line

After installing the package, generate an image-conditioned code with:

coverlock encode \
  --checkpoint coverlock_s.pt \
  --image path/to/image.jpg \
  --device cuda

Intended use

CoverLock is intended for research on neural image watermarking, residual-transfer forgery, and content-bound payloads. It is a wrapper around an existing binary watermark encoder and decoder, not a standalone watermark codec.

Citation

@misc{dong2026residual,
  title         = {Residual Transferability in Neural Image Watermarking},
  author        = {Dong, Ziping and Li, Qi and Wang, Xinchao},
  year          = {2026},
  eprint        = {2609.32241},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CR},
  url           = {https://arxiv.org/abs/2609.32241}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · pytorch · image-feature-extraction

Нельзя запустить

В репозитории нет config.json: не понять архитектуру модели.

Ревизия весов
4a3e524

0 моделей