{
  "id": 80624,
  "title": "Concrete EXIF Leaks (0.006 LB boost)",
  "url": "/competitions/humpback-whale-identification/discussion/80624",
  "author_name": "",
  "post_date": "2019-02-14T21:10:29.746846600Z",
  "votes": 31,
  "comment_count": 13,
  "views": 0,
  "content": "<p>As it was previously noted <a href=\"https://www.kaggle.com/c/humpback-whale-identification/discussion/78464\">here</a>, there is some EXIF information in some images. Since I haven't found any concrete leaks examples there, I've decided to share my findings in this thread.\nIf I have more time, I will create a kernel with EXIF extraction and it's application to the submission file, but on a basic level, all you need is an <em>exifread.processfile</em> to extract the metadata.</p>\n\n<p>As for the score boost, I confirm 0.006 score boost from 0.841 to 0.847 with these leaks. I have thus relied on them for the whole competition.</p>\n\n<p>So stay tuned and upvote!</p>\n\n<p>P.S. <strong>Use at your own risk.</strong> I haven't checked whether my findings are correct. Please also acknowledge that it might be possible that these leaks will not boost your score, especially if your model is performing good.</p>",
  "messages": [
    {
      "id": "471761",
      "postDate": "02/14/2019 21:10:29",
      "content": "<p>As it was previously noted <a href=\"https://www.kaggle.com/c/humpback-whale-identification/discussion/78464\">here</a>, there is some EXIF information in some images. Since I haven't found any concrete leaks examples there, I've decided to share my findings in this thread.\nIf I have more time, I will create a kernel with EXIF extraction and it's application to the submission file, but on a basic level, all you need is an <em>exifread.processfile</em> to extract the metadata.</p>\n\n<p>As for the score boost, I confirm 0.006 score boost from 0.841 to 0.847 with these leaks. I have thus relied on them for the whole competition.</p>\n\n<p>So stay tuned and upvote!</p>\n\n<p>P.S. <strong>Use at your own risk.</strong> I haven't checked whether my findings are correct. Please also acknowledge that it might be possible that these leaks will not boost your score, especially if your model is performing good.</p>",
      "rawMarkdown": "As it was previously noted [here][1], there is some EXIF information in some images. Since I haven't found any concrete leaks examples there, I've decided to share my findings in this thread.\nIf I have more time, I will create a kernel with EXIF extraction and it's application to the submission file, but on a basic level, all you need is an *exifread.processfile* to extract the metadata.\n\nAs for the score boost, I confirm 0.006 score boost from 0.841 to 0.847 with these leaks. I have thus relied on them for the whole competition.\n\nSo stay tuned and upvote!\n\nP.S. **Use at your own risk.** I haven't checked whether my findings are correct. Please also acknowledge that it might be possible that these leaks will not boost your score, especially if your model is performing good.\n\n  [1]: https://www.kaggle.com/c/humpback-whale-identification/discussion/78464 \"here\"",
      "votes": null
    },
    {
      "id": "471764",
      "postDate": "02/14/2019 21:14:37",
      "content": "<p><strong>1st: Not the new whale (+0.004)</strong></p>\n\n<p>The first leak could be easily found if you look at the <em>Image Copyright</em> field of EXIF information.\nSpecifically, if it is equal to <em>Dan Burns, Dave Paton and Trish Franklin</em>, then you can notice that there are <strong>no new whales</strong> with that value, and I am speaking about exactly 250 images. Coincidence? Maybe. But that gave me some boost, so it is definitely worth mentioning.</p>\n\n<p><img src=\"https://i.ibb.co/mHJ8Xbh/Screenshot-2019-02-15-00-16-25.png\" alt=\"leak\"></p>",
      "rawMarkdown": "**1st: Not the new whale (+0.004)**\n\nThe first leak could be easily found if you look at the *Image Copyright* field of EXIF information.\nSpecifically, if it is equal to *Dan Burns, Dave Paton and Trish Franklin*, then you can notice that there are **no new whales** with that value, and I am speaking about exactly 250 images. Coincidence? Maybe. But that gave me some boost, so it is definitely worth mentioning.\n\n![leak][1]\n\n\n  [1]: https://i.ibb.co/mHJ8Xbh/Screenshot-2019-02-15-00-16-25.png",
      "votes": null
    },
    {
      "id": "471766",
      "postDate": "02/14/2019 21:19:55",
      "content": "<p><strong>2nd: GPS Leak (+0.000-0.001)</strong></p>\n\n<p>This is not the most useful leak, but it is personally my favourite, although it definitely requires a couple of hours of some pretty tedious coding.</p>\n\n<p>If you look at the <em>GPS GPSLongitude</em> and <em>GPS GPSLatitude</em> field, you will see three numbers (if you calculate the fraction). Next, you have to figure out how to decode those into the normal longitude and latitude itself (use Google). After that, you can write a function to calculate the distance between two whales that have that metadata info.\nNow, look at the minimum/average/maximum distance between the locations of the same whale. Notice anything? That's right, they are small.</p>\n\n<p>This <strong>does not</strong> mean that you can now only search within the specific circle (as some images may not have any metadata after all), but that <strong>does</strong> mean that for any test image that has that information you can create a blacklist for this whales (based on the calculated distance).</p>\n\n<p><strong>My reccomendation:</strong> I think you won't need it, as the score boost is minimal. Do it only if you want to have some fun. Also I suggest using <code>folium</code> library for visualisation.</p>",
      "rawMarkdown": "**2nd: GPS Leak (+0.000-0.001)**\n\nThis is not the most useful leak, but it is personally my favourite, although it definitely requires a couple of hours of some pretty tedious coding.\n\nIf you look at the *GPS GPSLongitude* and *GPS GPSLatitude* field, you will see three numbers (if you calculate the fraction). Next, you have to figure out how to decode those into the normal longitude and latitude itself (use Google). After that, you can write a function to calculate the distance between two whales that have that metadata info.\nNow, look at the minimum/average/maximum distance between the locations of the same whale. Notice anything? That's right, they are small.\n\nThis **does not** mean that you can now only search within the specific circle (as some images may not have any metadata after all), but that **does** mean that for any test image that has that information you can create a blacklist for this whales (based on the calculated distance).\n\n**My reccomendation:** I think you won't need it, as the score boost is minimal. Do it only if you want to have some fun. Also I suggest using `folium` library for visualisation.",
      "votes": null
    },
    {
      "id": "471772",
      "postDate": "02/14/2019 21:38:05",
      "content": "<p>I also think that there is some leakage in Image Author and image creation/modification date. I've spent a couple of days finding it, but I had no success. It would be great if anyone reading this thread would also share his or her findings.</p>",
      "rawMarkdown": "I also think that there is some leakage in Image Author and image creation/modification date. I've spent a couple of days finding it, but I had no success. It would be great if anyone reading this thread would also share his or her findings.",
      "votes": null
    },
    {
      "id": "471818",
      "postDate": "02/14/2019 23:31:07",
      "content": "<p>I ll upvote you but it reminds me of <a href=\"https://www.kaggle.com/c/santander-customer-satisfaction\">https://www.kaggle.com/c/santander-customer-satisfaction</a> a few years ago.</p>\n\n<p>If you look at the end of the top kernels (<a href=\"https://www.kaggle.com/riseagainsttheml/to-the-top-v33\">https://www.kaggle.com/riseagainsttheml/to-the-top-v33</a>), there are plenty of \"fixing\"  hard coded rules:  which ended up being completely over-fitting on top of a really noisy and semi-anonymous dataset. \nBe careful.</p>",
      "rawMarkdown": "I ll upvote you but it reminds me of https://www.kaggle.com/c/santander-customer-satisfaction a few years ago.\n\nIf you look at the end of the top kernels (https://www.kaggle.com/riseagainsttheml/to-the-top-v33), there are plenty of \"fixing\"  hard coded rules:  which ended up being completely over-fitting on top of a really noisy and semi-anonymous dataset. \nBe careful.",
      "votes": null
    },
    {
      "id": "471821",
      "postDate": "02/14/2019 23:41:58",
      "content": "<p>Interesting, thanks! That's right, this can be just LB overfitting. We'll know in 2 weeks for sure;)</p>",
      "rawMarkdown": "Interesting, thanks! That's right, this can be just LB overfitting. We'll know in 2 weeks for sure;)",
      "votes": null
    },
    {
      "id": "471844",
      "postDate": "02/15/2019 01:19:16",
      "content": "<p><a href=\"/eagle4\">@eagle4</a>   ;-)</p>",
      "rawMarkdown": "eagle4   ;-)",
      "votes": null
    },
    {
      "id": "471876",
      "postDate": "02/15/2019 02:51:55",
      "content": "<p>Thanks for the trick :v.\nHow did you extract EXIF information of these image ?</p>",
      "rawMarkdown": "Thanks for the trick :v.\nHow did you extract EXIF information of these image ?",
      "votes": null
    },
    {
      "id": "472090",
      "postDate": "02/15/2019 10:21:47",
      "content": "<p>Look at this thread: <a href=\"https://www.kaggle.com/c/humpback-whale-identification/discussion/78464\">https://www.kaggle.com/c/humpback-whale-identification/discussion/78464</a>. There is an example there.</p>",
      "rawMarkdown": "Look at this thread: https://www.kaggle.com/c/humpback-whale-identification/discussion/78464. There is an example there.",
      "votes": null
    },
    {
      "id": "472300",
      "postDate": "02/15/2019 16:52:02",
      "content": "<p>Thanks for sharing.</p>\n\n<p>I agree that there are better options to look at than GPS. I made a kernel a few weeks ago that plots the known vs. new_whale's of the training data, but there aren't any obvious leaks there. </p>\n\n<p><a href=\"https://www.kaggle.com/nslagkgle/exif-gps-data-new-and-known-whales-plot\">https://www.kaggle.com/nslagkgle/exif-gps-data-new-and-known-whales-plot</a></p>",
      "rawMarkdown": "Thanks for sharing.\n\nI agree that there are better options to look at than GPS. I made a kernel a few weeks ago that plots the known vs. new_whale's of the training data, but there aren't any obvious leaks there. \n\nhttps://www.kaggle.com/nslagkgle/exif-gps-data-new-and-known-whales-plot",
      "votes": null
    },
    {
      "id": "472437",
      "postDate": "02/15/2019 23:04:39",
      "content": "<p>Thanks ;)</p>",
      "rawMarkdown": "Thanks ;)",
      "votes": null
    },
    {
      "id": "472661",
      "postDate": "02/16/2019 12:26:57",
      "content": "<p>It seems that DateTime in EXIF is also important. Most of old images are new_whale. Do you try to use them ?</p>",
      "rawMarkdown": "It seems that DateTime in EXIF is also important. Most of old images are new_whale. Do you try to use them ?",
      "votes": null
    },
    {
      "id": "472672",
      "postDate": "02/16/2019 12:53:19",
      "content": "<p>@toshi_k Interesting point, thanks! No, I haven’t. The problem still exists that a considerable amount of old images are not the new whales, so something trickier has to be done than a simple thresholding.</p>",
      "rawMarkdown": "toshi_k Interesting point, thanks! No, I haven’t. The problem still exists that a considerable amount of old images are not the new whales, so something trickier has to be done than a simple thresholding.",
      "votes": null
    },
    {
      "id": "472752",
      "postDate": "02/16/2019 15:42:17",
      "content": "<p>Thank you for the interesting discussion !!\nI extracted the EXIF info from the test images and attached the pickle file. And I tried deleting new_whale if \"Image Copyright\" matches \"Dan Burns, Dave Paton and Trish Franklin\" from the submit file. \nAs a result, I confirmed a score +0.003. Oh ... I laughed :)</p>\n\n<p>The test image files whose \"Image Copyright\" of metadata is equal to \"Dan Burns, Dave Paton and Trish Franklin\" are as follows.</p>\n\n<p>['001a4d292.jpg', '004fa8ff7.jpg', '034b5f550.jpg', '04ea55d4d.jpg', '07053c913.jpg', '08306ba62.jpg', '09ce1acbc.jpg', '0a5be3b4c.jpg', '0a8e58929.jpg', '0ddf541fd.jpg', '0f6bbccea.jpg', '105be55c9.jpg', '108c35cd5.jpg', '11ed73eb4.jpg', '11f33db3a.jpg', '1201e4a8a.jpg', '13f36f3d6.jpg', '15092bf57.jpg', '19b916371.jpg', '19b9e8a7c.jpg', '1d908df2f.jpg', '211d8987b.jpg', '253a15fb8.jpg', '28094414e.jpg', '2870648d0.jpg', '2b1921219.jpg', '31c2b27d0.jpg', '31d6d48e1.jpg', '347532749.jpg', '35f47ccf7.jpg', '3713dc323.jpg', '37449bb57.jpg', '39d0f6160.jpg', '3fd6a444b.jpg', '4a8ab5bb3.jpg', '4af00599f.jpg', '4cd6b39ec.jpg', '4ec39ab25.jpg', '55513c1cb.jpg', '55d628e47.jpg', '5628e59a9.jpg', '601b0ec0e.jpg', '615ea4bf6.jpg', '617b3ea7c.jpg', '632732cf7.jpg', '635be3e6f.jpg', '641420049.jpg', '68e34d8e3.jpg', '6969afe68.jpg', '6c92b6e0e.jpg', '6db72af84.jpg', '6e701fb83.jpg', '70fdc500a.jpg', '72f7229ae.jpg', '7333031c0.jpg', '737c68b02.jpg', '77df417d8.jpg', '78957f13c.jpg', '7b2ebae5b.jpg', '7ea0f45a8.jpg', '80693fcc2.jpg', '810aaa184.jpg', '83dcc971e.jpg', '847fda2fa.jpg', '855ddc515.jpg', '85e4d3922.jpg', '8749f0fef.jpg', '87f47de5f.jpg', '8a9a77d95.jpg', '8e0a9e74b.jpg', '90d3d881a.jpg', '91a2055e1.jpg', '92aaf3a25.jpg', '95a197632.jpg', '96aa64d28.jpg', '9924ee6b2.jpg', '9d35481d6.jpg', 'a22c230f6.jpg', 'a35964195.jpg', 'a727bb809.jpg', 'a72d5201b.jpg', 'a78e9ef74.jpg', 'a7e3c7baa.jpg', 'aa063c901.jpg', 'aa5e9313a.jpg', 'aaae19536.jpg', 'adc08bb01.jpg', 'b0148424e.jpg', 'b0c1fcc72.jpg', 'b3604091e.jpg', 'b41a22233.jpg', 'bb5147830.jpg', 'be6859b88.jpg', 'c0a58041e.jpg', 'c104744b9.jpg', 'c1754620d.jpg', 'c4329155b.jpg', 'c435dabd3.jpg', 'c455ed9a2.jpg', 'c46400bd3.jpg', 'd90bc576e.jpg', 'db4bd6af8.jpg', 'ddfd20a15.jpg', 'dee7fd598.jpg', 'e1060f178.jpg', 'e409024aa.jpg', 'e52e6188c.jpg', 'e6071c71f.jpg', 'e62d06507.jpg', 'ea911c090.jpg', 'ecfaca9c3.jpg', 'ee154380e.jpg', 'ef3e8c15a.jpg', 'f40faf19f.jpg', 'f54366fc8.jpg', 'fb7d2f5e5.jpg', 'fbfa6334e.jpg', 'fdbf59d11.jpg']</p>",
      "rawMarkdown": "Thank you for the interesting discussion !!\nI extracted the EXIF info from the test images and attached the pickle file. And I tried deleting new_whale if \"Image Copyright\" matches \"Dan Burns, Dave Paton and Trish Franklin\" from the submit file. \nAs a result, I confirmed a score +0.003. Oh ... I laughed :)\n\nThe test image files whose \"Image Copyright\" of metadata is equal to \"Dan Burns, Dave Paton and Trish Franklin\" are as follows.\n\n['001a4d292.jpg', '004fa8ff7.jpg', '034b5f550.jpg', '04ea55d4d.jpg', '07053c913.jpg', '08306ba62.jpg', '09ce1acbc.jpg', '0a5be3b4c.jpg', '0a8e58929.jpg', '0ddf541fd.jpg', '0f6bbccea.jpg', '105be55c9.jpg', '108c35cd5.jpg', '11ed73eb4.jpg', '11f33db3a.jpg', '1201e4a8a.jpg', '13f36f3d6.jpg', '15092bf57.jpg', '19b916371.jpg', '19b9e8a7c.jpg', '1d908df2f.jpg', '211d8987b.jpg', '253a15fb8.jpg', '28094414e.jpg', '2870648d0.jpg', '2b1921219.jpg', '31c2b27d0.jpg', '31d6d48e1.jpg', '347532749.jpg', '35f47ccf7.jpg', '3713dc323.jpg', '37449bb57.jpg', '39d0f6160.jpg', '3fd6a444b.jpg', '4a8ab5bb3.jpg', '4af00599f.jpg', '4cd6b39ec.jpg', '4ec39ab25.jpg', '55513c1cb.jpg', '55d628e47.jpg', '5628e59a9.jpg', '601b0ec0e.jpg', '615ea4bf6.jpg', '617b3ea7c.jpg', '632732cf7.jpg', '635be3e6f.jpg', '641420049.jpg', '68e34d8e3.jpg', '6969afe68.jpg', '6c92b6e0e.jpg', '6db72af84.jpg', '6e701fb83.jpg', '70fdc500a.jpg', '72f7229ae.jpg', '7333031c0.jpg', '737c68b02.jpg', '77df417d8.jpg', '78957f13c.jpg', '7b2ebae5b.jpg', '7ea0f45a8.jpg', '80693fcc2.jpg', '810aaa184.jpg', '83dcc971e.jpg', '847fda2fa.jpg', '855ddc515.jpg', '85e4d3922.jpg', '8749f0fef.jpg', '87f47de5f.jpg', '8a9a77d95.jpg', '8e0a9e74b.jpg', '90d3d881a.jpg', '91a2055e1.jpg', '92aaf3a25.jpg', '95a197632.jpg', '96aa64d28.jpg', '9924ee6b2.jpg', '9d35481d6.jpg', 'a22c230f6.jpg', 'a35964195.jpg', 'a727bb809.jpg', 'a72d5201b.jpg', 'a78e9ef74.jpg', 'a7e3c7baa.jpg', 'aa063c901.jpg', 'aa5e9313a.jpg', 'aaae19536.jpg', 'adc08bb01.jpg', 'b0148424e.jpg', 'b0c1fcc72.jpg', 'b3604091e.jpg', 'b41a22233.jpg', 'bb5147830.jpg', 'be6859b88.jpg', 'c0a58041e.jpg', 'c104744b9.jpg', 'c1754620d.jpg', 'c4329155b.jpg', 'c435dabd3.jpg', 'c455ed9a2.jpg', 'c46400bd3.jpg', 'd90bc576e.jpg', 'db4bd6af8.jpg', 'ddfd20a15.jpg', 'dee7fd598.jpg', 'e1060f178.jpg', 'e409024aa.jpg', 'e52e6188c.jpg', 'e6071c71f.jpg', 'e62d06507.jpg', 'ea911c090.jpg', 'ecfaca9c3.jpg', 'ee154380e.jpg', 'ef3e8c15a.jpg', 'f40faf19f.jpg', 'f54366fc8.jpg', 'fb7d2f5e5.jpg', 'fbfa6334e.jpg', 'fdbf59d11.jpg']",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 471764,
      "author_name": "vshakhray",
      "author_url": "",
      "post_date": "02/14/2019 21:14:37",
      "content": "<p><strong>1st: Not the new whale (+0.004)</strong></p>\n\n<p>The first leak could be easily found if you look at the <em>Image Copyright</em> field of EXIF information.\nSpecifically, if it is equal to <em>Dan Burns, Dave Paton and Trish Franklin</em>, then you can notice that there are <strong>no new whales</strong> with that value, and I am speaking about exactly 250 images. Coincidence? Maybe. But that gave me some boost, so it is definitely worth mentioning.</p>\n\n<p><img src=\"https://i.ibb.co/mHJ8Xbh/Screenshot-2019-02-15-00-16-25.png\" alt=\"leak\"></p>",
      "votes": null,
      "replies": [
        {
          "id": 471876,
          "author_name": "lamhoangtung",
          "author_url": "",
          "post_date": "02/15/2019 02:51:55",
          "content": "<p>Thanks for the trick :v.\nHow did you extract EXIF information of these image ?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 472090,
          "author_name": "vshakhray",
          "author_url": "",
          "post_date": "02/15/2019 10:21:47",
          "content": "<p>Look at this thread: <a href=\"https://www.kaggle.com/c/humpback-whale-identification/discussion/78464\">https://www.kaggle.com/c/humpback-whale-identification/discussion/78464</a>. There is an example there.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 472437,
          "author_name": "lamhoangtung",
          "author_url": "",
          "post_date": "02/15/2019 23:04:39",
          "content": "<p>Thanks ;)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 471766,
      "author_name": "vshakhray",
      "author_url": "",
      "post_date": "02/14/2019 21:19:55",
      "content": "<p><strong>2nd: GPS Leak (+0.000-0.001)</strong></p>\n\n<p>This is not the most useful leak, but it is personally my favourite, although it definitely requires a couple of hours of some pretty tedious coding.</p>\n\n<p>If you look at the <em>GPS GPSLongitude</em> and <em>GPS GPSLatitude</em> field, you will see three numbers (if you calculate the fraction). Next, you have to figure out how to decode those into the normal longitude and latitude itself (use Google). After that, you can write a function to calculate the distance between two whales that have that metadata info.\nNow, look at the minimum/average/maximum distance between the locations of the same whale. Notice anything? That's right, they are small.</p>\n\n<p>This <strong>does not</strong> mean that you can now only search within the specific circle (as some images may not have any metadata after all), but that <strong>does</strong> mean that for any test image that has that information you can create a blacklist for this whales (based on the calculated distance).</p>\n\n<p><strong>My reccomendation:</strong> I think you won't need it, as the score boost is minimal. Do it only if you want to have some fun. Also I suggest using <code>folium</code> library for visualisation.</p>",
      "votes": null,
      "replies": [
        {
          "id": 472300,
          "author_name": "nslagkgle",
          "author_url": "",
          "post_date": "02/15/2019 16:52:02",
          "content": "<p>Thanks for sharing.</p>\n\n<p>I agree that there are better options to look at than GPS. I made a kernel a few weeks ago that plots the known vs. new_whale's of the training data, but there aren't any obvious leaks there. </p>\n\n<p><a href=\"https://www.kaggle.com/nslagkgle/exif-gps-data-new-and-known-whales-plot\">https://www.kaggle.com/nslagkgle/exif-gps-data-new-and-known-whales-plot</a></p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 471772,
      "author_name": "vshakhray",
      "author_url": "",
      "post_date": "02/14/2019 21:38:05",
      "content": "<p>I also think that there is some leakage in Image Author and image creation/modification date. I've spent a couple of days finding it, but I had no success. It would be great if anyone reading this thread would also share his or her findings.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 471818,
      "author_name": "chabir",
      "author_url": "",
      "post_date": "02/14/2019 23:31:07",
      "content": "<p>I ll upvote you but it reminds me of <a href=\"https://www.kaggle.com/c/santander-customer-satisfaction\">https://www.kaggle.com/c/santander-customer-satisfaction</a> a few years ago.</p>\n\n<p>If you look at the end of the top kernels (<a href=\"https://www.kaggle.com/riseagainsttheml/to-the-top-v33\">https://www.kaggle.com/riseagainsttheml/to-the-top-v33</a>), there are plenty of \"fixing\"  hard coded rules:  which ended up being completely over-fitting on top of a really noisy and semi-anonymous dataset. \nBe careful.</p>",
      "votes": null,
      "replies": [
        {
          "id": 471821,
          "author_name": "vshakhray",
          "author_url": "",
          "post_date": "02/14/2019 23:41:58",
          "content": "<p>Interesting, thanks! That's right, this can be just LB overfitting. We'll know in 2 weeks for sure;)</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 471844,
          "author_name": "inversion",
          "author_url": "",
          "post_date": "02/15/2019 01:19:16",
          "content": "<p><a href=\"/eagle4\">@eagle4</a>   ;-)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 472661,
      "author_name": "toshik",
      "author_url": "",
      "post_date": "02/16/2019 12:26:57",
      "content": "<p>It seems that DateTime in EXIF is also important. Most of old images are new_whale. Do you try to use them ?</p>",
      "votes": null,
      "replies": [
        {
          "id": 472672,
          "author_name": "vshakhray",
          "author_url": "",
          "post_date": "02/16/2019 12:53:19",
          "content": "<p>@toshi_k Interesting point, thanks! No, I haven’t. The problem still exists that a considerable amount of old images are not the new whales, so something trickier has to be done than a simple thresholding.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 472752,
      "author_name": "kerukun",
      "author_url": "",
      "post_date": "02/16/2019 15:42:17",
      "content": "<p>Thank you for the interesting discussion !!\nI extracted the EXIF info from the test images and attached the pickle file. And I tried deleting new_whale if \"Image Copyright\" matches \"Dan Burns, Dave Paton and Trish Franklin\" from the submit file. \nAs a result, I confirmed a score +0.003. Oh ... I laughed :)</p>\n\n<p>The test image files whose \"Image Copyright\" of metadata is equal to \"Dan Burns, Dave Paton and Trish Franklin\" are as follows.</p>\n\n<p>['001a4d292.jpg', '004fa8ff7.jpg', '034b5f550.jpg', '04ea55d4d.jpg', '07053c913.jpg', '08306ba62.jpg', '09ce1acbc.jpg', '0a5be3b4c.jpg', '0a8e58929.jpg', '0ddf541fd.jpg', '0f6bbccea.jpg', '105be55c9.jpg', '108c35cd5.jpg', '11ed73eb4.jpg', '11f33db3a.jpg', '1201e4a8a.jpg', '13f36f3d6.jpg', '15092bf57.jpg', '19b916371.jpg', '19b9e8a7c.jpg', '1d908df2f.jpg', '211d8987b.jpg', '253a15fb8.jpg', '28094414e.jpg', '2870648d0.jpg', '2b1921219.jpg', '31c2b27d0.jpg', '31d6d48e1.jpg', '347532749.jpg', '35f47ccf7.jpg', '3713dc323.jpg', '37449bb57.jpg', '39d0f6160.jpg', '3fd6a444b.jpg', '4a8ab5bb3.jpg', '4af00599f.jpg', '4cd6b39ec.jpg', '4ec39ab25.jpg', '55513c1cb.jpg', '55d628e47.jpg', '5628e59a9.jpg', '601b0ec0e.jpg', '615ea4bf6.jpg', '617b3ea7c.jpg', '632732cf7.jpg', '635be3e6f.jpg', '641420049.jpg', '68e34d8e3.jpg', '6969afe68.jpg', '6c92b6e0e.jpg', '6db72af84.jpg', '6e701fb83.jpg', '70fdc500a.jpg', '72f7229ae.jpg', '7333031c0.jpg', '737c68b02.jpg', '77df417d8.jpg', '78957f13c.jpg', '7b2ebae5b.jpg', '7ea0f45a8.jpg', '80693fcc2.jpg', '810aaa184.jpg', '83dcc971e.jpg', '847fda2fa.jpg', '855ddc515.jpg', '85e4d3922.jpg', '8749f0fef.jpg', '87f47de5f.jpg', '8a9a77d95.jpg', '8e0a9e74b.jpg', '90d3d881a.jpg', '91a2055e1.jpg', '92aaf3a25.jpg', '95a197632.jpg', '96aa64d28.jpg', '9924ee6b2.jpg', '9d35481d6.jpg', 'a22c230f6.jpg', 'a35964195.jpg', 'a727bb809.jpg', 'a72d5201b.jpg', 'a78e9ef74.jpg', 'a7e3c7baa.jpg', 'aa063c901.jpg', 'aa5e9313a.jpg', 'aaae19536.jpg', 'adc08bb01.jpg', 'b0148424e.jpg', 'b0c1fcc72.jpg', 'b3604091e.jpg', 'b41a22233.jpg', 'bb5147830.jpg', 'be6859b88.jpg', 'c0a58041e.jpg', 'c104744b9.jpg', 'c1754620d.jpg', 'c4329155b.jpg', 'c435dabd3.jpg', 'c455ed9a2.jpg', 'c46400bd3.jpg', 'd90bc576e.jpg', 'db4bd6af8.jpg', 'ddfd20a15.jpg', 'dee7fd598.jpg', 'e1060f178.jpg', 'e409024aa.jpg', 'e52e6188c.jpg', 'e6071c71f.jpg', 'e62d06507.jpg', 'ea911c090.jpg', 'ecfaca9c3.jpg', 'ee154380e.jpg', 'ef3e8c15a.jpg', 'f40faf19f.jpg', 'f54366fc8.jpg', 'fb7d2f5e5.jpg', 'fbfa6334e.jpg', 'fdbf59d11.jpg']</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "471761": "As it was previously noted [here][1], there is some EXIF information in some images. Since I haven't found any concrete leaks examples there, I've decided to share my findings in this thread.\nIf I have more time, I will create a kernel with EXIF extraction and it's application to the submission file, but on a basic level, all you need is an *exifread.processfile* to extract the metadata.\n\nAs for the score boost, I confirm 0.006 score boost from 0.841 to 0.847 with these leaks. I have thus relied on them for the whole competition.\n\nSo stay tuned and upvote!\n\nP.S. **Use at your own risk.** I haven't checked whether my findings are correct. Please also acknowledge that it might be possible that these leaks will not boost your score, especially if your model is performing good.\n\n  [1]: https://www.kaggle.com/c/humpback-whale-identification/discussion/78464 \"here\"",
    "471764": "**1st: Not the new whale (+0.004)**\n\nThe first leak could be easily found if you look at the *Image Copyright* field of EXIF information.\nSpecifically, if it is equal to *Dan Burns, Dave Paton and Trish Franklin*, then you can notice that there are **no new whales** with that value, and I am speaking about exactly 250 images. Coincidence? Maybe. But that gave me some boost, so it is definitely worth mentioning.\n\n![leak][1]\n\n\n  [1]: https://i.ibb.co/mHJ8Xbh/Screenshot-2019-02-15-00-16-25.png",
    "471766": "**2nd: GPS Leak (+0.000-0.001)**\n\nThis is not the most useful leak, but it is personally my favourite, although it definitely requires a couple of hours of some pretty tedious coding.\n\nIf you look at the *GPS GPSLongitude* and *GPS GPSLatitude* field, you will see three numbers (if you calculate the fraction). Next, you have to figure out how to decode those into the normal longitude and latitude itself (use Google). After that, you can write a function to calculate the distance between two whales that have that metadata info.\nNow, look at the minimum/average/maximum distance between the locations of the same whale. Notice anything? That's right, they are small.\n\nThis **does not** mean that you can now only search within the specific circle (as some images may not have any metadata after all), but that **does** mean that for any test image that has that information you can create a blacklist for this whales (based on the calculated distance).\n\n**My reccomendation:** I think you won't need it, as the score boost is minimal. Do it only if you want to have some fun. Also I suggest using `folium` library for visualisation.",
    "471772": "I also think that there is some leakage in Image Author and image creation/modification date. I've spent a couple of days finding it, but I had no success. It would be great if anyone reading this thread would also share his or her findings.",
    "471818": "I ll upvote you but it reminds me of https://www.kaggle.com/c/santander-customer-satisfaction a few years ago.\n\nIf you look at the end of the top kernels (https://www.kaggle.com/riseagainsttheml/to-the-top-v33), there are plenty of \"fixing\"  hard coded rules:  which ended up being completely over-fitting on top of a really noisy and semi-anonymous dataset. \nBe careful.",
    "471821": "Interesting, thanks! That's right, this can be just LB overfitting. We'll know in 2 weeks for sure;)",
    "471844": "eagle4   ;-)",
    "471876": "Thanks for the trick :v.\nHow did you extract EXIF information of these image ?",
    "472090": "Look at this thread: https://www.kaggle.com/c/humpback-whale-identification/discussion/78464. There is an example there.",
    "472300": "Thanks for sharing.\n\nI agree that there are better options to look at than GPS. I made a kernel a few weeks ago that plots the known vs. new_whale's of the training data, but there aren't any obvious leaks there. \n\nhttps://www.kaggle.com/nslagkgle/exif-gps-data-new-and-known-whales-plot",
    "472437": "Thanks ;)",
    "472661": "It seems that DateTime in EXIF is also important. Most of old images are new_whale. Do you try to use them ?",
    "472672": "toshi_k Interesting point, thanks! No, I haven’t. The problem still exists that a considerable amount of old images are not the new whales, so something trickier has to be done than a simple thresholding.",
    "472752": "Thank you for the interesting discussion !!\nI extracted the EXIF info from the test images and attached the pickle file. And I tried deleting new_whale if \"Image Copyright\" matches \"Dan Burns, Dave Paton and Trish Franklin\" from the submit file. \nAs a result, I confirmed a score +0.003. Oh ... I laughed :)\n\nThe test image files whose \"Image Copyright\" of metadata is equal to \"Dan Burns, Dave Paton and Trish Franklin\" are as follows.\n\n['001a4d292.jpg', '004fa8ff7.jpg', '034b5f550.jpg', '04ea55d4d.jpg', '07053c913.jpg', '08306ba62.jpg', '09ce1acbc.jpg', '0a5be3b4c.jpg', '0a8e58929.jpg', '0ddf541fd.jpg', '0f6bbccea.jpg', '105be55c9.jpg', '108c35cd5.jpg', '11ed73eb4.jpg', '11f33db3a.jpg', '1201e4a8a.jpg', '13f36f3d6.jpg', '15092bf57.jpg', '19b916371.jpg', '19b9e8a7c.jpg', '1d908df2f.jpg', '211d8987b.jpg', '253a15fb8.jpg', '28094414e.jpg', '2870648d0.jpg', '2b1921219.jpg', '31c2b27d0.jpg', '31d6d48e1.jpg', '347532749.jpg', '35f47ccf7.jpg', '3713dc323.jpg', '37449bb57.jpg', '39d0f6160.jpg', '3fd6a444b.jpg', '4a8ab5bb3.jpg', '4af00599f.jpg', '4cd6b39ec.jpg', '4ec39ab25.jpg', '55513c1cb.jpg', '55d628e47.jpg', '5628e59a9.jpg', '601b0ec0e.jpg', '615ea4bf6.jpg', '617b3ea7c.jpg', '632732cf7.jpg', '635be3e6f.jpg', '641420049.jpg', '68e34d8e3.jpg', '6969afe68.jpg', '6c92b6e0e.jpg', '6db72af84.jpg', '6e701fb83.jpg', '70fdc500a.jpg', '72f7229ae.jpg', '7333031c0.jpg', '737c68b02.jpg', '77df417d8.jpg', '78957f13c.jpg', '7b2ebae5b.jpg', '7ea0f45a8.jpg', '80693fcc2.jpg', '810aaa184.jpg', '83dcc971e.jpg', '847fda2fa.jpg', '855ddc515.jpg', '85e4d3922.jpg', '8749f0fef.jpg', '87f47de5f.jpg', '8a9a77d95.jpg', '8e0a9e74b.jpg', '90d3d881a.jpg', '91a2055e1.jpg', '92aaf3a25.jpg', '95a197632.jpg', '96aa64d28.jpg', '9924ee6b2.jpg', '9d35481d6.jpg', 'a22c230f6.jpg', 'a35964195.jpg', 'a727bb809.jpg', 'a72d5201b.jpg', 'a78e9ef74.jpg', 'a7e3c7baa.jpg', 'aa063c901.jpg', 'aa5e9313a.jpg', 'aaae19536.jpg', 'adc08bb01.jpg', 'b0148424e.jpg', 'b0c1fcc72.jpg', 'b3604091e.jpg', 'b41a22233.jpg', 'bb5147830.jpg', 'be6859b88.jpg', 'c0a58041e.jpg', 'c104744b9.jpg', 'c1754620d.jpg', 'c4329155b.jpg', 'c435dabd3.jpg', 'c455ed9a2.jpg', 'c46400bd3.jpg', 'd90bc576e.jpg', 'db4bd6af8.jpg', 'ddfd20a15.jpg', 'dee7fd598.jpg', 'e1060f178.jpg', 'e409024aa.jpg', 'e52e6188c.jpg', 'e6071c71f.jpg', 'e62d06507.jpg', 'ea911c090.jpg', 'ecfaca9c3.jpg', 'ee154380e.jpg', 'ef3e8c15a.jpg', 'f40faf19f.jpg', 'f54366fc8.jpg', 'fb7d2f5e5.jpg', 'fbfa6334e.jpg', 'fdbf59d11.jpg']"
  },
  "source": "meta"
}