{
  "fetched_at": "2026-10-18T14:07:00Z",
  "source_url": "https://www.kaggle.com/competitions/dl4cv-team10-lethal-company-segmentation/data",
  "pages": [
    {
      "name": "data-description",
      "content": "## Files\n\n*   **train/** - the training set, each screenshot (PNG) in `train/screenshots/` is labelled through a pair of binary masks (PNG),  that are stored in `train/masks_loot/` and `train/masks_enemies/`; mask filenames match screenshot filenames\n*   **test/** - the test set, only screenshots, enemy and loot masks are for you to predict\n*   **sample_submission.csv** - a sample submission file in the correct format\n\n## Columns\n\n*   `img_id` - file name, e.g `3631_0007875.png`\n*   `enemy_rle` - RLE for the predicted enemy mask, must use encoding described/implemented in the starter notebook and input image must be 860(w)x520(h)\n*   `loot_rle` - RLE for the predicted loot mask, must use encoding described/implemented in the starter notebook and input image must be 860(w)x520(h)\n\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "The dataset consists of frames from the Lethal Company video game, collected during 11 different play sessions (1). Each frame is accompanied with a mask that describes positions of all the scrap in the frame, and another mask for all the monsters. Frames were captured from two different indoor areas (factory and castle) and multiple outdoor areas (planets Assurance, Rend and others). Frames contain about 20 different loot items (keys, airhorns, big bolts and many more) and about 10 different monsters (coil-heads, nutcrackers, thompers and so on). Sometimes scrap and monsters are partially occluded by other in-game objects - then only the non-occluded portion(s) should be segmented. Due to how the game is programmed, some objects might intersect. Both images and masks are in 860x520 resolution (2).\n\nSometimes objects receive shadows or are positioned in a very dark or foggy area, which can make them very hard to detect. It is possible that a tiny minority of the objects are completely indetectable. Please note that the in-game brightness (“gamma”) setting may be slightly different for different frames. It is guaranteed that there are no images in the dataset that contain more than 0, but less than 20 pixels in their loot mask, and/or more than 0, but less than 40 pixels in their monster mask. \n\nThe train split contains 15 000 frames. The train split was pre-balanced - out of all the loot masks, 6000 contain loot, and out of all the monster masks, 3 000 contain monster(s). Test split (hidden from you) consists of 13 988 frames. These frames were collected during different play sessions, than frames from the train split. They were not balanced, and thus about 8% of monster masks contain monsters, and about 30% of loot masks contain loot. The total volume of the dataset is approximately 8.6GB.\n\nScreenshots with corresponding masks for enemies and loot:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F7184772%2Fbfbf29be3c4d2cdd43cb757e3890deb6%2Fdownload.png?generation=1713020031933135&alt=media)\n\n\n(1) The code for capturing the frames and deriving masks, as well as the code used for balancing the dataset, is publicly available in the GitHub: https://github.com/semjon00/LethalCompanySegmentation\n\n(2) Due to an artistic choice of the game author, the game world is rendered in 860x520 resolution. Afterwards, this render is upscaled to the actual window/monitor dimensions, and some additional elements are added to the frame. Thus, in this dataset the images are provided in the game’s native resolution.\n\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "Your submission will get points for correctly determining, which frames have loot, enemies, and for correctly segmenting loot and enemies.\n\nSince the monsters are very scary, detecting them on the image and segmenting them correctly is of great importance. Therefore, segmenting monster(s) from a frame that has monster(s) in it gives a whopping IoU * 20 points. However, most frames do not have any monsters in them, and it’s better if your submission does not create false alarms. This is why correctly guessing that a frame that has no monsters, by submitting an empty mask (mask with all pixels turned off), gives 1 point.\n\nSegmenting loot gives IoU * 8 points for every frame. Correctly deducing that a frame has no loot gives 1 point.\n\nYour total score is just the sum of the points that your solution has collected. For example, a solution that never predicts any loot or monsters gets 10530 points on the public (preliminary) test.\n\nAcross both the public and hidden test, 42.69% of points are assigned for correctly segmenting loot, around 28% for segmenting enemies and around 29% for detecting the absence of loot and absence of enemies.\n\n---\n\n\n## Submission File\nTo submit your answer, the submission .csv file should have 3 columns: picture name (`img_id`), enemies mask (`enemy_rle`) and loot mask (`loot_rle`). The masks have to be encoded as RLE (run-length encoding). \n``` python\nfrom pycocotools import mask as coco_mask\nimport zlib\nimport base64\n\ndef encode_mask(mask: np.ndarray):\n  \"\"\"Encode numpy arrays (unit8 or boolean) to compressed base64 encoded RLE strings\n\n  Depends on pycocotools\n  Ex:\n  `encode_mask(mask_tesnor.numpy())`\n  \"\"\"\n  rle = coco_mask.encode(np.asfortranarray(mask))[\"counts\"]\n  return base64.b64encode(zlib.compress(rle)).decode('utf-8')\n```\n**NB!** make sure your predicted & encoded mask resolutions match with input image resolutions (860(w)x520(h))\n\nExample on how you can turn your predicted masks into a RLE is also shown in the starter notebook. You can also check metric code for the decoding process & score calculation - [dl4cv-10-2-class-iou-sum-with-coef-metric](https://www.kaggle.com/code/margusl/dl4cv-10-2-class-iou-sum-with-coef-metric) (competition is set up to use default arguments of the`score()` function)\n\nThe submission file should look something like this:\n``` csv\nimg_id,enemy_rle,loot_rle\n3631_0007845.png,eJwLSE+xBQADfgFZ,eJwLSE+xBQADfgFZ\n3631_0007860.png,eJwLSE+xBQADfgFZ,eJwLSE+xBQADfgFZ\n3631_0007875.png,eJwLSE+xBQADfgFZ,eJwLSE+xBQADfgFZ\n3631_0007890.png,eJwLSE+xBQADfgFZ,eJwLSE+xBQADfgFZ\n3631_0007905.png,eJwLSE+xBQADfgFZ,eJwLSE+xBQADfgFZ\n```",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": " - Don't cheat!\n - Apply yourself!\n - Have fun!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "abstract",
      "content": "Lethal Company is a game about collecting scrap (loot) from an abandoned poorly-lit factory, while running away from scary monsters. The task of this competition is to create a system for segmenting both loot and monsters. This system would be beneficial for increasing efficiency and safety of collecting valuables. We wish you a great time developing your model and we trust it will be a great asset for the company!\n\nThe starter code for this competition can be found here: [Kaggle](https://www.kaggle.com/code/margusl/dl4cv-10-starter-notebook) | [Google Colab](https://colab.research.google.com/drive/11LaVNhE6gKpqwbPCzT-60saDNFfchXc5?usp=drive_link) ",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Prizes",
      "content": "The winner of the competition will receive a big chocolate bar. Two runner-ups will each get one smaller chocolate bar. The winners will be contacted with the instructions on how to get their prize. :)",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}