Answers.Body: <p>You could indeed try pix2pix or cycle gans. Considering that you already found an available dataset you could just clone the original <a href="https://github.com/junyanz/CycleGAN" rel="nofollow noreferrer">CycleGAN repo</a>, plug the dataset in and see how it does. Of course at the end you'll have 2 generators, one that map real signatures to forged ones and vice versa, but that's how image translation works, at the end of the training you can just discard the second one.</p>
  <p><a href="https://i.sstatic.net/7CVBz.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/7CVBz.png" alt="enter image description here" /></a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-23T10:06:38.803Z
Answers.Text: thanks for your reply, I already took a look at CycleGan, the ovjective here is to generate forgery signature from the real signature,
  i can find a data forgery for the model like the exemples are from cedar dataset, 
  but in production when i will use the model to generate a forged signature to my real one, i have just reals, do i will not need the forged one as input?
Answers.UserDisplayName: Mohamed Yahyaoui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-23T10:32:52.623Z
Answers.Text: a cycle gan train effectively 2 models. $G_{rf}$ and $G_{fr}$ in the drawing. Each model take a single image as input, $G_{rf}$ takes a real signature and generate the correspondent forged one and $G_{fr}$ takes a forged signature and try to generate the real version of it. You need both models only during training. But in production you can simply use just $G_{rf}$, feed it to it the new real signatures you'll collect and generate the unknown forged ones.
Answers.UserDisplayName: Edoardo Guerriero
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-23T13:18:07.027Z
Answers.Text: i clearly understand , thank you very much , 
  is there any implementation close to my use case or some resources can facilitate this task for me?
Answers.UserDisplayName: Mohamed Yahyaoui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-23T13:49:08.090Z
Answers.Text: well as I wrote in the answer I think the best way is to clone the official cycle gan implementation from github. The training scripts and config file are well written and documented so it will be as simple as typing in the terminal python train.py --dataroot path_to_your_dataset. Of course you'll need to download the cedar dataset yourself and rename the folders accordingly to the repo expecte format, which is trainA trainB testA testB where A in your case will contain real signatures and B forged ones.
Answers.UserDisplayName: Edoardo Guerriero
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-23T13:59:42.903Z
Answers.Text: Okey ,i will try this one , thank you verry much.
Answers.UserDisplayName: Mohamed Yahyaoui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-25T10:28:13.553Z
Answers.Text: i tried the suggested solution and the output is like this : [![enter image description here](https://i.sstatic.net/YLmbF.png)](https://i.sstatic.net/YLmbF.png) it's too semilare, how can i deforme the signature please?
Answers.UserDisplayName: Mohamed Yahyaoui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-23T08:36:25.803Z
Answers.LastActivityDate: 2022-03-23T08:36:25.803Z
Answers.UserDisplayName: Edoardo Guerriero
Body: <p>I am in internship period and I'm working on a signature verification problem.</p>
  <p>This process needs real and forged signatures. All I have are the real signatures (like 30 signatures per person), and I have to generate fake signatures (forged) from those real ones in order to augment data and balance it for the main purpose, which is signature verification.</p>
  <p>During my search, I found amazing videos explaining GANs and conditional GANs, pix2pix, etc.</p>
  <p>I'm wondering if you have an idea on how to fit this model or an other approach to generate forged signature close to the real one but not as much as real.</p>
  <p>Here is an example to clear the view a little bit. Those are the 3 images real for person 8 (img1,9,17)</p>
  <img src="https://i.sstatic.net/Hvwug.png" width="200" />
  <img src="https://i.sstatic.net/NjoM7.png" width="200" />
  <img src="https://i.sstatic.net/PbeoP.png" width="200" />
  <p>and those are the forged one :</p>
  <img src="https://i.sstatic.net/aufQI.png" width="200" />
  <img src="https://i.sstatic.net/z8Ghs.png" width="200" />
  <img src="https://i.sstatic.net/0WW82.png" width="200" />
  <p>Those examples are token from cedar dataset.</p>
  
Tags: <tensorflow><keras><generative-adversarial-networks><pytorch><model-request>
Title: Which approach can I use to generate forged signatures from real ones?
UserDisplayName: Mohamed Yahyaoui
ThreadText: # Which approach can I use to generate forged signatures from real ones?
  
  (Asked by: username_0 on 2022-03-18)
  
  I am in internship period and I'm working on a signature verification problem.
  
  This process needs real and forged signatures. All I have are the real signatures (like 30 signatures per person), and I have to generate fake signatures (forged) from those real ones in order to augment data and balance it for the main purpose, which is signature verification.
  
  During my search, I found amazing videos explaining GANs and conditional GANs, pix2pix, etc.
  
  I'm wondering if you have an idea on how to fit this model or an other approach to generate forged signature close to the real one but not as much as real.
  
  Here is an example to clear the view a little bit. Those are the 3 images real for person 8 (img1,9,17)
  
  ![](https://i.sstatic.net/Hvwug.png)
  ![](https://i.sstatic.net/NjoM7.png)
  ![](https://i.sstatic.net/PbeoP.png)
  
  and those are the forged one :
  
  ![](https://i.sstatic.net/aufQI.png)
  ![](https://i.sstatic.net/z8Ghs.png)
  ![](https://i.sstatic.net/0WW82.png)
  
  Those examples are token from cedar dataset.
  
  **Tags:** tensorflow, keras, generative-adversarial-networks, pytorch, model-request
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2022-03-23. Score: 1 | Accepted answer
  
  You could indeed try pix2pix or cycle gans. Considering that you already found an available dataset you could just clone the original [CycleGAN repo](https://github.com/junyanz/CycleGAN), plug the dataset in and see how it does. Of course at the end you'll have 2 generators, one that map real signatures to forged ones and vice versa, but that's how image translation works, at the end of the training you can just discard the second one.
  
  [![enter image description here](https://i.sstatic.net/7CVBz.png)](https://i.sstatic.net/7CVBz.png)
  
  > **Comments:**
  > **username_0**: thanks for your reply, I already took a look at CycleGan, the ovjective here is to generate forgery signature from the real signature, i can find a data forgery for the model like the exemples are from cedar dataset,  but in production when i will use the model to generate a forged signature to my real one, i have just reals, do i will not need the forged one as input?  
  > **username_1**: a cycle gan train effectively 2 models. $G_{rf}$ and $G_{fr}$ in the drawing. Each model take a single image as input, $G_{rf}$ takes a real signature and generate the correspondent forged one and $G_{fr}$ takes a forged signature and try to generate the real version of it. You need both models only during training. But in production you can simply use just $G_{rf}$, feed it to it the new real signatures you'll collect and generate the unknown forged ones.  
  > **username_0**: i clearly understand , thank you very much ,  is there any implementation close to my use case or some resources can facilitate this task for me?  
  > **username_1**: well as I wrote in the answer I think the best way is to clone the official cycle gan implementation from github. The training scripts and config file are well written and documented so it will be as simple as typing in the terminal python train.py --dataroot path_to_your_dataset. Of course you'll need to download the cedar dataset yourself and rename the folders accordingly to the repo expecte format, which is trainA trainB testA testB where A in your case will contain real signatures and B forged ones.  
  > **username_0**: Okey ,i will try this one , thank you verry much.  
  > **username_0**: i tried the suggested solution and the output is like this : [![enter image description here](https://i.sstatic.net/YLmbF.png)](https://i.sstatic.net/YLmbF.png) it's too semilare, how can i deforme the signature please?  
  
  ---
  
  