showlab / RingID

12 stars 0 forks source link

Some questions about your work #3

Closed Kuubrick closed 2 days ago

Kuubrick commented 2 months ago

Hello, I am very excited to see such an interesting job, I have read your paper and have the following uestions:

  1. What is the difference between Identification and Verification you mentioned? My understanding is that Verification is to determine whether the watermark is imprinted, while Identification is to determine which pre-defined key it comes from among multiple watermarked images (distribution of ℓ1-to-reference was shifted).
  2. You mentioned the numbers of keys, but did not give a definition.
  3. You mentioned in the paper that the tree-ring watermark discarded the imaginary part, but I did not find the corresponding code in the tree-ring watermark code. The specific embedding code is as follows:
    init_latents_w[watermarking_mask] = gt_patch[watermarking_mask].clone()

    May I ask where did they discard the imaginary part, or did I miss something?

zzzucf commented 1 month ago

I believe it's the inverse Fourier transform that will include the imaginary parts. And to make the inversed as an image(real only), the tree-ring authors drop the imaginary part. Check line 206 at https://github.com/YuxinWenRick/tree-ring-watermark/blob/main/optim_utils.py#L206.

Embracing commented 3 weeks ago

Hello, I am very excited to see such an interesting job, I have read your paper and have the following uestions:

  1. What is the difference between Identification and Verification you mentioned? My understanding is that Verification is to determine whether the watermark is imprinted, while Identification is to determine which pre-defined key it comes from among multiple watermarked images (distribution of ℓ1-to-reference was shifted).
  2. You mentioned the numbers of keys, but did not give a definition.
  3. You mentioned in the paper that the tree-ring watermark discarded the imaginary part, but I did not find the corresponding code in the tree-ring watermark code. The specific embedding code is as follows:

    init_latents_w[watermarking_mask] = gt_patch[watermarking_mask].clone()

    May I ask where did they discard the imaginary part, or did I miss something?

Hi Kuubrick. Sorry for the late reply.

  1. Yes, your understanding is correct.
  2. The number of keys is the total number of pre-defined keys that we distribute.
  3. zzzucf's comment is correct. Tree-Ring discard the imaginary part at line 206 to make the initial latent a real number.
Kuuuuubrick commented 2 weeks ago

Hello, I am very excited to see such an interesting job, I have read your paper and have the following uestions:

  1. What is the difference between Identification and Verification you mentioned? My understanding is that Verification is to determine whether the watermark is imprinted, while Identification is to determine which pre-defined key it comes from among multiple watermarked images (distribution of ℓ1-to-reference was shifted).
  2. You mentioned the numbers of keys, but did not give a definition.
  3. You mentioned in the paper that the tree-ring watermark discarded the imaginary part, but I did not find the corresponding code in the tree-ring watermark code. The specific embedding code is as follows:

    init_latents_w[watermarking_mask] = gt_patch[watermarking_mask].clone()

    May I ask where did they discard the imaginary part, or did I miss something?

Hi Kuubrick. Sorry for the late reply.

  1. Yes, your understanding is correct.
  2. The number of keys is the total number of pre-defined keys that we distribute.
  3. zzzucf's comment is correct. Tree-Ring discard the imaginary part at line 206 to make the initial latent real.

Thank you so much for your reply, it's an amazing work!