{
  "id": 122603,
  "title": "Is actually FaceForensics++ working well?",
  "url": "/competitions/deepfake-detection-challenge/discussion/122603",
  "author_name": "",
  "post_date": "2019-12-21T11:32:08.538223600Z",
  "votes": 8,
  "comment_count": 2,
  "views": 0,
  "content": "<p>I found this GitHub repo questioning the ability of FaceForensics++ to \"generalize to real-life videos randomly collected from Youtube\" or \"detect real-life face manipulation techniques\": <a href=\"https://github.com/dessa-public/DeepFake-Detection\">https://github.com/dessa-public/DeepFake-Detection</a></p>\n\n<p>I don't have time for now to make it work locally or on Kaggle, therefore I'm sharing this repo hoping someone has time to do so and share a working kernel with the community, as done by Rob for FaceForensics++: <a href=\"https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet\">https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet</a>\n(Discussion on FaceForensics++ here: <a href=\"https://www.kaggle.com/c/deepfake-detection-challenge/discussion/121716\">https://www.kaggle.com/c/deepfake-detection-challenge/discussion/121716</a>)</p>\n\n<p>I also create this topic to discuss the relevance of what's described in Dessa Deepfake Detection repository for this competition or other matters linked to this repo.</p>",
  "messages": [
    {
      "id": "700057",
      "postDate": "12/21/2019 11:32:08",
      "content": "<p>I found this GitHub repo questioning the ability of FaceForensics++ to \"generalize to real-life videos randomly collected from Youtube\" or \"detect real-life face manipulation techniques\": <a href=\"https://github.com/dessa-public/DeepFake-Detection\">https://github.com/dessa-public/DeepFake-Detection</a></p>\n\n<p>I don't have time for now to make it work locally or on Kaggle, therefore I'm sharing this repo hoping someone has time to do so and share a working kernel with the community, as done by Rob for FaceForensics++: <a href=\"https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet\">https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet</a>\n(Discussion on FaceForensics++ here: <a href=\"https://www.kaggle.com/c/deepfake-detection-challenge/discussion/121716\">https://www.kaggle.com/c/deepfake-detection-challenge/discussion/121716</a>)</p>\n\n<p>I also create this topic to discuss the relevance of what's described in Dessa Deepfake Detection repository for this competition or other matters linked to this repo.</p>",
      "rawMarkdown": "I found this GitHub repo questioning the ability of FaceForensics++ to \"generalize to real-life videos randomly collected from Youtube\" or \"detect real-life face manipulation techniques\": https://github.com/dessa-public/DeepFake-Detection\n\nI don't have time for now to make it work locally or on Kaggle, therefore I'm sharing this repo hoping someone has time to do so and share a working kernel with the community, as done by Rob for FaceForensics++: https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet\n(Discussion on FaceForensics++ here: https://www.kaggle.com/c/deepfake-detection-challenge/discussion/121716)\n\nI also create this topic to discuss the relevance of what's described in Dessa Deepfake Detection repository for this competition or other matters linked to this repo.",
      "votes": null
    },
    {
      "id": "700073",
      "postDate": "12/21/2019 12:14:36",
      "content": "<p>I have studied a bit of the FaceForensics paper, I don't believe that the pre-trained models will work well in this competition.</p>\n\n<p>The main reason is the distribution of the dataset that was proposed/used in the FaceForensics paper. Most of the videos (if not all) in the FaceForensics dataset is of journalists talking directly to the camera, this has some big implications when building a pipeline for fake detection. The dataset is much less noisy and diverse than the one proposed here.</p>\n\n<p>But, the models that were benchmarked could work well if trained on this competition dataset with clever data processing. </p>",
      "rawMarkdown": "I have studied a bit of the FaceForensics paper, I don't believe that the pre-trained models will work well in this competition.\n\nThe main reason is the distribution of the dataset that was proposed/used in the FaceForensics paper. Most of the videos (if not all) in the FaceForensics dataset is of journalists talking directly to the camera, this has some big implications when building a pipeline for fake detection. The dataset is much less noisy and diverse than the one proposed here.\n\nBut, the models that were benchmarked could work well if trained on this competition dataset with clever data processing.",
      "votes": null
    },
    {
      "id": "700135",
      "postDate": "12/21/2019 14:10:05",
      "content": "<p>I don't think using an a pretrained model like these will work well for this competition, but it is a useful as a benchmark, and also useful to examine their approach and code for training these types of model. It also might be possible to do some sort of transfer learning from their model to this dataset.</p>\n\n<p>So far I've gotten a score of <code>0.69111</code> LB using only the FaceForensics++ model using some crude posprocessing. It's not great, but slightly better than the naive solution predicting all 0.5. I think I could get a better score with some more sophisticated postprocessing.</p>\n\n<p>In my kernel which you referenced above You can see that their model is at least picking up on some signal. The average and max prediction per image using only 4 frames per video on 40 random training examples does show predicting fakes higher than real videos on average. The postprocessing I've found useful is clipping the lower end of the prediction to 0.5 since it does have many false negatives </p>\n\n<p><a href=\"https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet\">https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet</a></p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F644036%2F71654328feb21061cb9554d3e846b7cb%2F__results___46_0.png?generation=1576936717019163&amp;alt=media\" alt=\"\"></p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F644036%2F36a610dfe7b545e7a9a377eada6c511d%2F__results___46_1.png?generation=1576936731632299&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "I don't think using an a pretrained model like these will work well for this competition, but it is a useful as a benchmark, and also useful to examine their approach and code for training these types of model. It also might be possible to do some sort of transfer learning from their model to this dataset.\n\nSo far I've gotten a score of `0.69111` LB using only the FaceForensics++ model using some crude posprocessing. It's not great, but slightly better than the naive solution predicting all 0.5. I think I could get a better score with some more sophisticated postprocessing.\n\nIn my kernel which you referenced above You can see that their model is at least picking up on some signal. The average and max prediction per image using only 4 frames per video on 40 random training examples does show predicting fakes higher than real videos on average. The postprocessing I've found useful is clipping the lower end of the prediction to 0.5 since it does have many false negatives \n\nhttps://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F644036%2F71654328feb21061cb9554d3e846b7cb%2F__results___46_0.png?generation=1576936717019163&amp;alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F644036%2F36a610dfe7b545e7a9a377eada6c511d%2F__results___46_1.png?generation=1576936731632299&amp;alt=media)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 700073,
      "author_name": "pedromb",
      "author_url": "",
      "post_date": "12/21/2019 12:14:36",
      "content": "<p>I have studied a bit of the FaceForensics paper, I don't believe that the pre-trained models will work well in this competition.</p>\n\n<p>The main reason is the distribution of the dataset that was proposed/used in the FaceForensics paper. Most of the videos (if not all) in the FaceForensics dataset is of journalists talking directly to the camera, this has some big implications when building a pipeline for fake detection. The dataset is much less noisy and diverse than the one proposed here.</p>\n\n<p>But, the models that were benchmarked could work well if trained on this competition dataset with clever data processing. </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 700135,
      "author_name": "robikscube",
      "author_url": "",
      "post_date": "12/21/2019 14:10:05",
      "content": "<p>I don't think using an a pretrained model like these will work well for this competition, but it is a useful as a benchmark, and also useful to examine their approach and code for training these types of model. It also might be possible to do some sort of transfer learning from their model to this dataset.</p>\n\n<p>So far I've gotten a score of <code>0.69111</code> LB using only the FaceForensics++ model using some crude posprocessing. It's not great, but slightly better than the naive solution predicting all 0.5. I think I could get a better score with some more sophisticated postprocessing.</p>\n\n<p>In my kernel which you referenced above You can see that their model is at least picking up on some signal. The average and max prediction per image using only 4 frames per video on 40 random training examples does show predicting fakes higher than real videos on average. The postprocessing I've found useful is clipping the lower end of the prediction to 0.5 since it does have many false negatives </p>\n\n<p><a href=\"https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet\">https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet</a></p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F644036%2F71654328feb21061cb9554d3e846b7cb%2F__results___46_0.png?generation=1576936717019163&amp;alt=media\" alt=\"\"></p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F644036%2F36a610dfe7b545e7a9a377eada6c511d%2F__results___46_1.png?generation=1576936731632299&amp;alt=media\" alt=\"\"></p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "700057": "I found this GitHub repo questioning the ability of FaceForensics++ to \"generalize to real-life videos randomly collected from Youtube\" or \"detect real-life face manipulation techniques\": https://github.com/dessa-public/DeepFake-Detection\n\nI don't have time for now to make it work locally or on Kaggle, therefore I'm sharing this repo hoping someone has time to do so and share a working kernel with the community, as done by Rob for FaceForensics++: https://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet\n(Discussion on FaceForensics++ here: https://www.kaggle.com/c/deepfake-detection-challenge/discussion/121716)\n\nI also create this topic to discuss the relevance of what's described in Dessa Deepfake Detection repository for this competition or other matters linked to this repo.",
    "700073": "I have studied a bit of the FaceForensics paper, I don't believe that the pre-trained models will work well in this competition.\n\nThe main reason is the distribution of the dataset that was proposed/used in the FaceForensics paper. Most of the videos (if not all) in the FaceForensics dataset is of journalists talking directly to the camera, this has some big implications when building a pipeline for fake detection. The dataset is much less noisy and diverse than the one proposed here.\n\nBut, the models that were benchmarked could work well if trained on this competition dataset with clever data processing.",
    "700135": "I don't think using an a pretrained model like these will work well for this competition, but it is a useful as a benchmark, and also useful to examine their approach and code for training these types of model. It also might be possible to do some sort of transfer learning from their model to this dataset.\n\nSo far I've gotten a score of `0.69111` LB using only the FaceForensics++ model using some crude posprocessing. It's not great, but slightly better than the naive solution predicting all 0.5. I think I could get a better score with some more sophisticated postprocessing.\n\nIn my kernel which you referenced above You can see that their model is at least picking up on some signal. The average and max prediction per image using only 4 frames per video on 40 random training examples does show predicting fakes higher than real videos on average. The postprocessing I've found useful is clipping the lower end of the prediction to 0.5 since it does have many false negatives \n\nhttps://www.kaggle.com/robikscube/faceforensics-baseline-dlib-no-internet\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F644036%2F71654328feb21061cb9554d3e846b7cb%2F__results___46_0.png?generation=1576936717019163&amp;alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F644036%2F36a610dfe7b545e7a9a377eada6c511d%2F__results___46_1.png?generation=1576936731632299&amp;alt=media)"
  },
  "source": "meta"
}