{
  "id": 130800,
  "title": "Some insights",
  "url": "/competitions/deepfake-detection-challenge/discussion/130800",
  "author_name": "",
  "post_date": "2020-02-16T12:28:49.922583300Z",
  "votes": 24,
  "comment_count": 12,
  "views": 0,
  "content": "<p>Based on the <a href=\"https://www.kaggle.com/zaharch\">metadata </a> dataset created by <a href=\"/zaharch\">@zaharch</a> and some additional digging, here are some insights:</p>\n\n<ul>\n<li>Here are the number of unique folders by split type (<code>train</code>, <code>test</code>, and <code>train_sample</code>) =&gt; <code>{'test': 3, 'train': 50, 'train_sample': 1}</code></li>\n<li>Some folders contain more FAKE labels (check the graph below)</li>\n</ul>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F387c9a2d50528c4d1dc237102a7bed50%2Fvisualization.png?generation=1581854807111044&amp;alt=media\" alt=\"\"></p>\n\n<ul>\n<li><p>Some folders have larger mean video heights (again, check the graph below)\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F74414c37f86afe63142c3fb273226b16%2Fvisualization%20(1\" alt=\"\">.png?generation=1581855001285518&amp;alt=media)</p></li>\n<li><p>Some folders have larger mean video widths (again, check the graph below)</p></li>\n</ul>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F095f424f29e368ba234829347fda56ba%2Fvisualization%20(2\" alt=\"\">.png?generation=1581855101736718&amp;alt=media)</p>\n\n<ul>\n<li><p>Mean and std of video's number of frames are similar across the different labels: \n<code>\n{'mean': {'FAKE': 297.3371569725578, 'REAL': 298.69938394069123},\n'std': {'FAKE': 17.675306553250675, 'REAL': 14.055158796208511}}\n</code></p></li>\n<li><p>For audio's number of frames, the std is much larger for FAKE ones:</p></li>\n</ul>\n\n<p>```\n{'mean': {'FAKE': 447.2821305326332, 'REAL': 466.04273548926386},\n 'std': {'FAKE': 69.65349999014951, 'REAL': 14.25591050932309}}</p>\n\n<p><code>\n- Only one type of audio codec has been used =&amp;gt; **aac**\n- Mean and std video durations across labels are very close:\n</code>\n{'mean': {'FAKE': 10.012160656957871, 'REAL': 10.011291938758431},\n 'std': {'FAKE': 0.0070542637165113215, 'REAL': 0.005409740417924116}}\n```\n- Mean audio durations across labels are close but std are bigger for REAL videos:</p>\n\n<p>```\n{'mean': {'FAKE': 9.999094023505874, 'REAL': 9.996256412935582},\n 'std': {'FAKE': 0.09138021378336204, 'REAL': 0.1850847423078909}}</p>\n\n<p>```</p>\n\n<ul>\n<li>Here is the distribution of labels across split types (I am not sure what the test split type represents since it has 50% of each?)</li>\n</ul>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F349f42d23b3b716aa03e74912cf42e86%2Fvisualization%20(3\" alt=\"\">.png?generation=1581856086317504&amp;alt=media)</p>\n\n<ul>\n<li>As suggested by <a href=\"/humananalog\">@humananalog</a>, here is the folder split by type (either test, train, or train_sample): </li>\n</ul>\n\n<p><code>\n{'test': ['dfdc_train_part_2', 'dfdc_train_part_1', 'dfdc_train_part_0'],\n 'train': ['dfdc_train_part_12',\n  'dfdc_train_part_6',\n  'dfdc_train_part_21',\n  'dfdc_train_part_7',\n  'dfdc_train_part_24',\n  'dfdc_train_part_17',\n  'dfdc_train_part_39',\n  'dfdc_train_part_9',\n  'dfdc_train_part_43',\n  'dfdc_train_part_11',\n  'dfdc_train_part_23',\n  'dfdc_train_part_40',\n  'dfdc_train_part_34',\n  'dfdc_train_part_15',\n  'dfdc_train_part_2',\n  'dfdc_train_part_28',\n  'dfdc_train_part_36',\n  'dfdc_train_part_47',\n  'dfdc_train_part_32',\n  'dfdc_train_part_27',\n  'dfdc_train_part_49',\n  'dfdc_train_part_46',\n  'dfdc_train_part_35',\n  'dfdc_train_part_48',\n  'dfdc_train_part_31',\n  'dfdc_train_part_26',\n  'dfdc_train_part_42',\n  'dfdc_train_part_29',\n  'dfdc_train_part_19',\n  'dfdc_train_part_33',\n  'dfdc_train_part_37',\n  'dfdc_train_part_41',\n  'dfdc_train_part_16',\n  'dfdc_train_part_44',\n  'dfdc_train_part_1',\n  'dfdc_train_part_25',\n  'dfdc_train_part_20',\n  'dfdc_train_part_22',\n  'dfdc_train_part_10',\n  'dfdc_train_part_30',\n  'dfdc_train_part_5',\n  'dfdc_train_part_38',\n  'dfdc_train_part_4',\n  'dfdc_train_part_13',\n  'dfdc_train_part_0',\n  'dfdc_train_part_14',\n  'dfdc_train_part_45',\n  'dfdc_train_part_3',\n  'dfdc_train_part_18',\n  'dfdc_train_part_8'],\n 'train_sample': ['dfdc_train_part_28']}\n</code></p>\n\n<p>I will add more insights the better I understand the problem + will check my code for silly bugs and correct if necessary. Let me know if you found other interesting insights. </p>\n\n<p>Finally, notice that a notebook will be available at some point. ;)</p>",
  "messages": [
    {
      "id": "747429",
      "postDate": "02/16/2020 12:28:49",
      "content": "<p>Based on the <a href=\"https://www.kaggle.com/zaharch\">metadata </a> dataset created by <a href=\"/zaharch\">@zaharch</a> and some additional digging, here are some insights:</p>\n\n<ul>\n<li>Here are the number of unique folders by split type (<code>train</code>, <code>test</code>, and <code>train_sample</code>) =&gt; <code>{'test': 3, 'train': 50, 'train_sample': 1}</code></li>\n<li>Some folders contain more FAKE labels (check the graph below)</li>\n</ul>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F387c9a2d50528c4d1dc237102a7bed50%2Fvisualization.png?generation=1581854807111044&amp;alt=media\" alt=\"\"></p>\n\n<ul>\n<li><p>Some folders have larger mean video heights (again, check the graph below)\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F74414c37f86afe63142c3fb273226b16%2Fvisualization%20(1\" alt=\"\">.png?generation=1581855001285518&amp;alt=media)</p></li>\n<li><p>Some folders have larger mean video widths (again, check the graph below)</p></li>\n</ul>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F095f424f29e368ba234829347fda56ba%2Fvisualization%20(2\" alt=\"\">.png?generation=1581855101736718&amp;alt=media)</p>\n\n<ul>\n<li><p>Mean and std of video's number of frames are similar across the different labels: \n<code>\n{'mean': {'FAKE': 297.3371569725578, 'REAL': 298.69938394069123},\n'std': {'FAKE': 17.675306553250675, 'REAL': 14.055158796208511}}\n</code></p></li>\n<li><p>For audio's number of frames, the std is much larger for FAKE ones:</p></li>\n</ul>\n\n<p>```\n{'mean': {'FAKE': 447.2821305326332, 'REAL': 466.04273548926386},\n 'std': {'FAKE': 69.65349999014951, 'REAL': 14.25591050932309}}</p>\n\n<p><code>\n- Only one type of audio codec has been used =&amp;gt; **aac**\n- Mean and std video durations across labels are very close:\n</code>\n{'mean': {'FAKE': 10.012160656957871, 'REAL': 10.011291938758431},\n 'std': {'FAKE': 0.0070542637165113215, 'REAL': 0.005409740417924116}}\n```\n- Mean audio durations across labels are close but std are bigger for REAL videos:</p>\n\n<p>```\n{'mean': {'FAKE': 9.999094023505874, 'REAL': 9.996256412935582},\n 'std': {'FAKE': 0.09138021378336204, 'REAL': 0.1850847423078909}}</p>\n\n<p>```</p>\n\n<ul>\n<li>Here is the distribution of labels across split types (I am not sure what the test split type represents since it has 50% of each?)</li>\n</ul>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F349f42d23b3b716aa03e74912cf42e86%2Fvisualization%20(3\" alt=\"\">.png?generation=1581856086317504&amp;alt=media)</p>\n\n<ul>\n<li>As suggested by <a href=\"/humananalog\">@humananalog</a>, here is the folder split by type (either test, train, or train_sample): </li>\n</ul>\n\n<p><code>\n{'test': ['dfdc_train_part_2', 'dfdc_train_part_1', 'dfdc_train_part_0'],\n 'train': ['dfdc_train_part_12',\n  'dfdc_train_part_6',\n  'dfdc_train_part_21',\n  'dfdc_train_part_7',\n  'dfdc_train_part_24',\n  'dfdc_train_part_17',\n  'dfdc_train_part_39',\n  'dfdc_train_part_9',\n  'dfdc_train_part_43',\n  'dfdc_train_part_11',\n  'dfdc_train_part_23',\n  'dfdc_train_part_40',\n  'dfdc_train_part_34',\n  'dfdc_train_part_15',\n  'dfdc_train_part_2',\n  'dfdc_train_part_28',\n  'dfdc_train_part_36',\n  'dfdc_train_part_47',\n  'dfdc_train_part_32',\n  'dfdc_train_part_27',\n  'dfdc_train_part_49',\n  'dfdc_train_part_46',\n  'dfdc_train_part_35',\n  'dfdc_train_part_48',\n  'dfdc_train_part_31',\n  'dfdc_train_part_26',\n  'dfdc_train_part_42',\n  'dfdc_train_part_29',\n  'dfdc_train_part_19',\n  'dfdc_train_part_33',\n  'dfdc_train_part_37',\n  'dfdc_train_part_41',\n  'dfdc_train_part_16',\n  'dfdc_train_part_44',\n  'dfdc_train_part_1',\n  'dfdc_train_part_25',\n  'dfdc_train_part_20',\n  'dfdc_train_part_22',\n  'dfdc_train_part_10',\n  'dfdc_train_part_30',\n  'dfdc_train_part_5',\n  'dfdc_train_part_38',\n  'dfdc_train_part_4',\n  'dfdc_train_part_13',\n  'dfdc_train_part_0',\n  'dfdc_train_part_14',\n  'dfdc_train_part_45',\n  'dfdc_train_part_3',\n  'dfdc_train_part_18',\n  'dfdc_train_part_8'],\n 'train_sample': ['dfdc_train_part_28']}\n</code></p>\n\n<p>I will add more insights the better I understand the problem + will check my code for silly bugs and correct if necessary. Let me know if you found other interesting insights. </p>\n\n<p>Finally, notice that a notebook will be available at some point. ;)</p>",
      "rawMarkdown": "Based on the [metadata ](https://www.kaggle.com/zaharch) dataset created by @zaharch and some additional digging, here are some insights:\n\n- Here are the number of unique folders by split type (`train`, `test`, and `train_sample`) =&gt; ``` {'test': 3, 'train': 50, 'train_sample': 1} ```\n- Some folders contain more FAKE labels (check the graph below)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F387c9a2d50528c4d1dc237102a7bed50%2Fvisualization.png?generation=1581854807111044&amp;alt=media)\n\n- Some folders have larger mean video heights (again, check the graph below)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F74414c37f86afe63142c3fb273226b16%2Fvisualization%20(1).png?generation=1581855001285518&amp;alt=media)\n\n- Some folders have larger mean video widths (again, check the graph below)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F095f424f29e368ba234829347fda56ba%2Fvisualization%20(2).png?generation=1581855101736718&amp;alt=media)\n\n- Mean and std of video's number of frames are similar across the different labels: \n```\n{'mean': {'FAKE': 297.3371569725578, 'REAL': 298.69938394069123},\n 'std': {'FAKE': 17.675306553250675, 'REAL': 14.055158796208511}}\n```\n\n- For audio's number of frames, the std is much larger for FAKE ones:\n\n```\n{'mean': {'FAKE': 447.2821305326332, 'REAL': 466.04273548926386},\n 'std': {'FAKE': 69.65349999014951, 'REAL': 14.25591050932309}}\n\n```\n- Only one type of audio codec has been used =&gt; **aac**\n- Mean and std video durations across labels are very close:\n```\n{'mean': {'FAKE': 10.012160656957871, 'REAL': 10.011291938758431},\n 'std': {'FAKE': 0.0070542637165113215, 'REAL': 0.005409740417924116}}\n```\n- Mean audio durations across labels are close but std are bigger for REAL videos:\n\n```\n{'mean': {'FAKE': 9.999094023505874, 'REAL': 9.996256412935582},\n 'std': {'FAKE': 0.09138021378336204, 'REAL': 0.1850847423078909}}\n\n```\n\n- Here is the distribution of labels across split types (I am not sure what the test split type represents since it has 50% of each?)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F349f42d23b3b716aa03e74912cf42e86%2Fvisualization%20(3).png?generation=1581856086317504&amp;alt=media)\n\n- As suggested by @humananalog, here is the folder split by type (either test, train, or train_sample): \n\n```\n{'test': ['dfdc_train_part_2', 'dfdc_train_part_1', 'dfdc_train_part_0'],\n 'train': ['dfdc_train_part_12',\n  'dfdc_train_part_6',\n  'dfdc_train_part_21',\n  'dfdc_train_part_7',\n  'dfdc_train_part_24',\n  'dfdc_train_part_17',\n  'dfdc_train_part_39',\n  'dfdc_train_part_9',\n  'dfdc_train_part_43',\n  'dfdc_train_part_11',\n  'dfdc_train_part_23',\n  'dfdc_train_part_40',\n  'dfdc_train_part_34',\n  'dfdc_train_part_15',\n  'dfdc_train_part_2',\n  'dfdc_train_part_28',\n  'dfdc_train_part_36',\n  'dfdc_train_part_47',\n  'dfdc_train_part_32',\n  'dfdc_train_part_27',\n  'dfdc_train_part_49',\n  'dfdc_train_part_46',\n  'dfdc_train_part_35',\n  'dfdc_train_part_48',\n  'dfdc_train_part_31',\n  'dfdc_train_part_26',\n  'dfdc_train_part_42',\n  'dfdc_train_part_29',\n  'dfdc_train_part_19',\n  'dfdc_train_part_33',\n  'dfdc_train_part_37',\n  'dfdc_train_part_41',\n  'dfdc_train_part_16',\n  'dfdc_train_part_44',\n  'dfdc_train_part_1',\n  'dfdc_train_part_25',\n  'dfdc_train_part_20',\n  'dfdc_train_part_22',\n  'dfdc_train_part_10',\n  'dfdc_train_part_30',\n  'dfdc_train_part_5',\n  'dfdc_train_part_38',\n  'dfdc_train_part_4',\n  'dfdc_train_part_13',\n  'dfdc_train_part_0',\n  'dfdc_train_part_14',\n  'dfdc_train_part_45',\n  'dfdc_train_part_3',\n  'dfdc_train_part_18',\n  'dfdc_train_part_8'],\n 'train_sample': ['dfdc_train_part_28']}\n```\n\n\n\nI will add more insights the better I understand the problem + will check my code for silly bugs and correct if necessary. Let me know if you found other interesting insights. \n\nFinally, notice that a notebook will be available at some point. ;)",
      "votes": null
    },
    {
      "id": "747460",
      "postDate": "02/16/2020 13:11:31",
      "content": "<p>Just FYI, the test videos are taken from subdirs 0, 1 and 2 in the training set.</p>",
      "rawMarkdown": "Just FYI, the test videos are taken from subdirs 0, 1 and 2 in the training set.",
      "votes": null
    },
    {
      "id": "747648",
      "postDate": "02/16/2020 17:35:39",
      "content": "<p>thank you! @Yassine Alouini</p>",
      "rawMarkdown": "thank you! @Yassine Alouini",
      "votes": null
    },
    {
      "id": "748346",
      "postDate": "02/17/2020 12:19:50",
      "content": "<p>Thank you for sharing <a href=\"/yassinealouini\">@yassinealouini</a> ! I had a couple of questions; what do you mean by <code>audio's number of frames</code> and how is that different from <code>video's number of frames</code>?</p>",
      "rawMarkdown": "Thank you for sharing @yassinealouini ! I had a couple of questions; what do you mean by `audio's number of frames` and how is that different from `video's number of frames`?",
      "votes": null
    },
    {
      "id": "753544",
      "postDate": "02/22/2020 10:48:16",
      "content": "<p>Hey <a href=\"/anshulrai\">@anshulrai</a>. To be honest, I am not sure what these quantities represent yet. \nFor now, I have quickly explored the great metadata dataset from <a href=\"/zaharch\">@zaharch</a>\n<a href=\"https://www.kaggle.com/zaharch/train-set-metadata-for-dfdc\">https://www.kaggle.com/zaharch/train-set-metadata-for-dfdc</a>.\nI will update my exploration with more information once I have a better understanding.\nStay tuned. ;) </p>",
      "rawMarkdown": "Hey @anshulrai. To be honest, I am not sure what these quantities represent yet. \nFor now, I have quickly explored the great metadata dataset from @zaharch\nhttps://www.kaggle.com/zaharch/train-set-metadata-for-dfdc.\nI will update my exploration with more information once I have a better understanding.\nStay tuned. ;)",
      "votes": null
    },
    {
      "id": "753546",
      "postDate": "02/22/2020 10:49:55",
      "content": "<p>[EDIT] I was convinced that the source dataset was linked in this post but it wasn't, problem fixed now. :) </p>",
      "rawMarkdown": "[EDIT] I was convinced that the source dataset was linked in this post but it wasn't, problem fixed now. :)",
      "votes": null
    },
    {
      "id": "753547",
      "postDate": "02/22/2020 10:50:07",
      "content": "<p>Glad it helps!</p>",
      "rawMarkdown": "Glad it helps!",
      "votes": null
    },
    {
      "id": "756574",
      "postDate": "02/25/2020 21:12:54",
      "content": "<p>[UPDATE] A WIP <a href=\"https://www.streamlit.io/\">Streamlit</a> app. More to come in the next few days. ;) </p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2Fc901b2b49fb2df9c8238354c67120b9a%2FScreenshot%20from%202020-02-25%2022-10-34.png?generation=1582665127394867&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "[UPDATE] A WIP [Streamlit](https://www.streamlit.io/) app. More to come in the next few days. ;) \n\n\n ![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2Fc901b2b49fb2df9c8238354c67120b9a%2FScreenshot%20from%202020-02-25%2022-10-34.png?generation=1582665127394867&amp;alt=media)",
      "votes": null
    },
    {
      "id": "756616",
      "postDate": "02/25/2020 22:31:13",
      "content": "<p>Yet more progress, I really like the concept of sidebar in the streamlit API. So far, the API is clean and concise. </p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F910176e27760b13967c17dbf3063c83f%2FScreenshot%20from%202020-02-25%2023-30-57.png?generation=1582669871496852&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "Yet more progress, I really like the concept of sidebar in the streamlit API. So far, the API is clean and concise. \n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F910176e27760b13967c17dbf3063c83f%2FScreenshot%20from%202020-02-25%2023-30-57.png?generation=1582669871496852&amp;alt=media)",
      "votes": null
    },
    {
      "id": "756944",
      "postDate": "02/26/2020 08:49:52",
      "content": "<p>interesting, I did something similar with streamlit.\nmy app is based on prediction error, some of true/fake are impossible to tell visually</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F150338%2Fb12f2f6c1574d92d801518b440eebe61%2FQAQA15Y.png?generation=1582707100565709&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "interesting, I did something similar with streamlit.\nmy app is based on prediction error, some of true/fake are impossible to tell visually\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F150338%2Fb12f2f6c1574d92d801518b440eebe61%2FQAQA15Y.png?generation=1582707100565709&amp;alt=media)",
      "votes": null
    },
    {
      "id": "758510",
      "postDate": "02/27/2020 21:00:28",
      "content": "<p>Awesome work! Do you mind sharing some details about the model you have there: on how many samples have you trained it, what model architecture, for how long, and so on?\nThanks in advance!</p>",
      "rawMarkdown": "Awesome work! Do you mind sharing some details about the model you have there: on how many samples have you trained it, what model architecture, for how long, and so on?\nThanks in advance!",
      "votes": null
    },
    {
      "id": "758518",
      "postDate": "02/27/2020 21:16:55",
      "content": "<p>Next thing to implement: adding a face detection layer =&gt; <a href=\"https://github.com/timesler/facenet-pytorch/blob/master/examples/face_tracking.ipynb\">https://github.com/timesler/facenet-pytorch/blob/master/examples/face_tracking.ipynb</a> </p>",
      "rawMarkdown": "Next thing to implement: adding a face detection layer =&gt; https://github.com/timesler/facenet-pytorch/blob/master/examples/face_tracking.ipynb",
      "votes": null
    },
    {
      "id": "758534",
      "postDate": "02/27/2020 22:06:45",
      "content": "<p>It works pretty well! Here is a screenshot from one example (you need to imagine this moving through time): </p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F097eeb0d6e11c84d9d6a275eafc26914%2FScreenshot%20from%202020-02-27%2023-08-00.png?generation=1582841306466224&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "It works pretty well! Here is a screenshot from one example (you need to imagine this moving through time): \n\n ![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F097eeb0d6e11c84d9d6a275eafc26914%2FScreenshot%20from%202020-02-27%2023-08-00.png?generation=1582841306466224&amp;alt=media)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 747460,
      "author_name": "humananalog",
      "author_url": "",
      "post_date": "02/16/2020 13:11:31",
      "content": "<p>Just FYI, the test videos are taken from subdirs 0, 1 and 2 in the training set.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 747648,
      "author_name": "pedromoya",
      "author_url": "",
      "post_date": "02/16/2020 17:35:39",
      "content": "<p>thank you! @Yassine Alouini</p>",
      "votes": null,
      "replies": [
        {
          "id": 753547,
          "author_name": "yassinealouini",
          "author_url": "",
          "post_date": "02/22/2020 10:50:07",
          "content": "<p>Glad it helps!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 748346,
      "author_name": "anshulrai",
      "author_url": "",
      "post_date": "02/17/2020 12:19:50",
      "content": "<p>Thank you for sharing <a href=\"/yassinealouini\">@yassinealouini</a> ! I had a couple of questions; what do you mean by <code>audio's number of frames</code> and how is that different from <code>video's number of frames</code>?</p>",
      "votes": null,
      "replies": [
        {
          "id": 753544,
          "author_name": "yassinealouini",
          "author_url": "",
          "post_date": "02/22/2020 10:48:16",
          "content": "<p>Hey <a href=\"/anshulrai\">@anshulrai</a>. To be honest, I am not sure what these quantities represent yet. \nFor now, I have quickly explored the great metadata dataset from <a href=\"/zaharch\">@zaharch</a>\n<a href=\"https://www.kaggle.com/zaharch/train-set-metadata-for-dfdc\">https://www.kaggle.com/zaharch/train-set-metadata-for-dfdc</a>.\nI will update my exploration with more information once I have a better understanding.\nStay tuned. ;) </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 753546,
      "author_name": "yassinealouini",
      "author_url": "",
      "post_date": "02/22/2020 10:49:55",
      "content": "<p>[EDIT] I was convinced that the source dataset was linked in this post but it wasn't, problem fixed now. :) </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 756574,
      "author_name": "yassinealouini",
      "author_url": "",
      "post_date": "02/25/2020 21:12:54",
      "content": "<p>[UPDATE] A WIP <a href=\"https://www.streamlit.io/\">Streamlit</a> app. More to come in the next few days. ;) </p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2Fc901b2b49fb2df9c8238354c67120b9a%2FScreenshot%20from%202020-02-25%2022-10-34.png?generation=1582665127394867&amp;alt=media\" alt=\"\"></p>",
      "votes": null,
      "replies": [
        {
          "id": 756616,
          "author_name": "yassinealouini",
          "author_url": "",
          "post_date": "02/25/2020 22:31:13",
          "content": "<p>Yet more progress, I really like the concept of sidebar in the streamlit API. So far, the API is clean and concise. </p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F910176e27760b13967c17dbf3063c83f%2FScreenshot%20from%202020-02-25%2023-30-57.png?generation=1582669871496852&amp;alt=media\" alt=\"\"></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 756944,
          "author_name": "yifanxie",
          "author_url": "",
          "post_date": "02/26/2020 08:49:52",
          "content": "<p>interesting, I did something similar with streamlit.\nmy app is based on prediction error, some of true/fake are impossible to tell visually</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F150338%2Fb12f2f6c1574d92d801518b440eebe61%2FQAQA15Y.png?generation=1582707100565709&amp;alt=media\" alt=\"\"></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 758510,
          "author_name": "yassinealouini",
          "author_url": "",
          "post_date": "02/27/2020 21:00:28",
          "content": "<p>Awesome work! Do you mind sharing some details about the model you have there: on how many samples have you trained it, what model architecture, for how long, and so on?\nThanks in advance!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 758518,
      "author_name": "yassinealouini",
      "author_url": "",
      "post_date": "02/27/2020 21:16:55",
      "content": "<p>Next thing to implement: adding a face detection layer =&gt; <a href=\"https://github.com/timesler/facenet-pytorch/blob/master/examples/face_tracking.ipynb\">https://github.com/timesler/facenet-pytorch/blob/master/examples/face_tracking.ipynb</a> </p>",
      "votes": null,
      "replies": [
        {
          "id": 758534,
          "author_name": "yassinealouini",
          "author_url": "",
          "post_date": "02/27/2020 22:06:45",
          "content": "<p>It works pretty well! Here is a screenshot from one example (you need to imagine this moving through time): </p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F097eeb0d6e11c84d9d6a275eafc26914%2FScreenshot%20from%202020-02-27%2023-08-00.png?generation=1582841306466224&amp;alt=media\" alt=\"\"></p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "747429": "Based on the [metadata ](https://www.kaggle.com/zaharch) dataset created by @zaharch and some additional digging, here are some insights:\n\n- Here are the number of unique folders by split type (`train`, `test`, and `train_sample`) =&gt; ``` {'test': 3, 'train': 50, 'train_sample': 1} ```\n- Some folders contain more FAKE labels (check the graph below)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F387c9a2d50528c4d1dc237102a7bed50%2Fvisualization.png?generation=1581854807111044&amp;alt=media)\n\n- Some folders have larger mean video heights (again, check the graph below)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F74414c37f86afe63142c3fb273226b16%2Fvisualization%20(1).png?generation=1581855001285518&amp;alt=media)\n\n- Some folders have larger mean video widths (again, check the graph below)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F095f424f29e368ba234829347fda56ba%2Fvisualization%20(2).png?generation=1581855101736718&amp;alt=media)\n\n- Mean and std of video's number of frames are similar across the different labels: \n```\n{'mean': {'FAKE': 297.3371569725578, 'REAL': 298.69938394069123},\n 'std': {'FAKE': 17.675306553250675, 'REAL': 14.055158796208511}}\n```\n\n- For audio's number of frames, the std is much larger for FAKE ones:\n\n```\n{'mean': {'FAKE': 447.2821305326332, 'REAL': 466.04273548926386},\n 'std': {'FAKE': 69.65349999014951, 'REAL': 14.25591050932309}}\n\n```\n- Only one type of audio codec has been used =&gt; **aac**\n- Mean and std video durations across labels are very close:\n```\n{'mean': {'FAKE': 10.012160656957871, 'REAL': 10.011291938758431},\n 'std': {'FAKE': 0.0070542637165113215, 'REAL': 0.005409740417924116}}\n```\n- Mean audio durations across labels are close but std are bigger for REAL videos:\n\n```\n{'mean': {'FAKE': 9.999094023505874, 'REAL': 9.996256412935582},\n 'std': {'FAKE': 0.09138021378336204, 'REAL': 0.1850847423078909}}\n\n```\n\n- Here is the distribution of labels across split types (I am not sure what the test split type represents since it has 50% of each?)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F349f42d23b3b716aa03e74912cf42e86%2Fvisualization%20(3).png?generation=1581856086317504&amp;alt=media)\n\n- As suggested by @humananalog, here is the folder split by type (either test, train, or train_sample): \n\n```\n{'test': ['dfdc_train_part_2', 'dfdc_train_part_1', 'dfdc_train_part_0'],\n 'train': ['dfdc_train_part_12',\n  'dfdc_train_part_6',\n  'dfdc_train_part_21',\n  'dfdc_train_part_7',\n  'dfdc_train_part_24',\n  'dfdc_train_part_17',\n  'dfdc_train_part_39',\n  'dfdc_train_part_9',\n  'dfdc_train_part_43',\n  'dfdc_train_part_11',\n  'dfdc_train_part_23',\n  'dfdc_train_part_40',\n  'dfdc_train_part_34',\n  'dfdc_train_part_15',\n  'dfdc_train_part_2',\n  'dfdc_train_part_28',\n  'dfdc_train_part_36',\n  'dfdc_train_part_47',\n  'dfdc_train_part_32',\n  'dfdc_train_part_27',\n  'dfdc_train_part_49',\n  'dfdc_train_part_46',\n  'dfdc_train_part_35',\n  'dfdc_train_part_48',\n  'dfdc_train_part_31',\n  'dfdc_train_part_26',\n  'dfdc_train_part_42',\n  'dfdc_train_part_29',\n  'dfdc_train_part_19',\n  'dfdc_train_part_33',\n  'dfdc_train_part_37',\n  'dfdc_train_part_41',\n  'dfdc_train_part_16',\n  'dfdc_train_part_44',\n  'dfdc_train_part_1',\n  'dfdc_train_part_25',\n  'dfdc_train_part_20',\n  'dfdc_train_part_22',\n  'dfdc_train_part_10',\n  'dfdc_train_part_30',\n  'dfdc_train_part_5',\n  'dfdc_train_part_38',\n  'dfdc_train_part_4',\n  'dfdc_train_part_13',\n  'dfdc_train_part_0',\n  'dfdc_train_part_14',\n  'dfdc_train_part_45',\n  'dfdc_train_part_3',\n  'dfdc_train_part_18',\n  'dfdc_train_part_8'],\n 'train_sample': ['dfdc_train_part_28']}\n```\n\n\n\nI will add more insights the better I understand the problem + will check my code for silly bugs and correct if necessary. Let me know if you found other interesting insights. \n\nFinally, notice that a notebook will be available at some point. ;)",
    "747460": "Just FYI, the test videos are taken from subdirs 0, 1 and 2 in the training set.",
    "747648": "thank you! @Yassine Alouini",
    "748346": "Thank you for sharing @yassinealouini ! I had a couple of questions; what do you mean by `audio's number of frames` and how is that different from `video's number of frames`?",
    "753544": "Hey @anshulrai. To be honest, I am not sure what these quantities represent yet. \nFor now, I have quickly explored the great metadata dataset from @zaharch\nhttps://www.kaggle.com/zaharch/train-set-metadata-for-dfdc.\nI will update my exploration with more information once I have a better understanding.\nStay tuned. ;)",
    "753546": "[EDIT] I was convinced that the source dataset was linked in this post but it wasn't, problem fixed now. :)",
    "753547": "Glad it helps!",
    "756574": "[UPDATE] A WIP [Streamlit](https://www.streamlit.io/) app. More to come in the next few days. ;) \n\n\n ![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2Fc901b2b49fb2df9c8238354c67120b9a%2FScreenshot%20from%202020-02-25%2022-10-34.png?generation=1582665127394867&amp;alt=media)",
    "756616": "Yet more progress, I really like the concept of sidebar in the streamlit API. So far, the API is clean and concise. \n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F910176e27760b13967c17dbf3063c83f%2FScreenshot%20from%202020-02-25%2023-30-57.png?generation=1582669871496852&amp;alt=media)",
    "756944": "interesting, I did something similar with streamlit.\nmy app is based on prediction error, some of true/fake are impossible to tell visually\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F150338%2Fb12f2f6c1574d92d801518b440eebe61%2FQAQA15Y.png?generation=1582707100565709&amp;alt=media)",
    "758510": "Awesome work! Do you mind sharing some details about the model you have there: on how many samples have you trained it, what model architecture, for how long, and so on?\nThanks in advance!",
    "758518": "Next thing to implement: adding a face detection layer =&gt; https://github.com/timesler/facenet-pytorch/blob/master/examples/face_tracking.ipynb",
    "758534": "It works pretty well! Here is a screenshot from one example (you need to imagine this moving through time): \n\n ![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F172860%2F097eeb0d6e11c84d9d6a275eafc26914%2FScreenshot%20from%202020-02-27%2023-08-00.png?generation=1582841306466224&amp;alt=media)"
  },
  "source": "meta"
}