{
  "_id": "6aed23c29ceaa78f200a137c",
  "Package": "rplatypus",
  "Type": "Package",
  "Title": "Computer Vision for Medical Imaging",
  "Version": "0.3.0",
  "Authors@R": "person(\"Michal\", \"Maj\", email = \"michalmaj116@gmail.com\",\nrole = c(\"aut\", \"cre\"))",
  "Description": "Semantic segmentation and object detection for medical\nimages, from a folder of pictures to a trained model and a\nfigure, in a handful of lines or one configuration file.\nArchitectures, losses and training run on 'PyTorch' through\n'pyplatypus', a 'Python' package which is installed and\nisolated automatically; nothing has to be set up by hand. R\nkeeps the parts that make an analysis fast - reading and\ncombining masks, drawing boxes, plotting, comparing models.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/maju116/rplatypus,\nhttps://maju116.github.io/rplatypus/",
  "BugReports": "https://github.com/maju116/rplatypus/issues",
  "SystemRequirements": "Python (>= 3.11). Not a prerequisite the user\ninstalls: the package declares what it needs through\n'reticulate' and 'uv' provisions an isolated environment on\nfirst use, leaving any system Python untouched.",
  "Encoding": "UTF-8",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.1.0",
  "Roxygen": "list(markdown = TRUE)",
  "Config/pak/sysreqs": "libpng-dev python3",
  "Repository": "https://maju116.r-universe.dev",
  "Date/Publication": "2026-11-05 22:02:59 UTC",
  "RemoteUrl": "https://github.com/maju116/rplatypus",
  "RemoteRef": "HEAD",
  "RemoteSha": "52534ef353595f36017fc7d852bdfb119ee189bb",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-11-06 00:34:37 UTC",
    "User": "root"
  },
  "Author": "Michal Maj [aut, cre]",
  "Maintainer": "Michal Maj <michalmaj116@gmail.com>",
  "_user": "maju116",
  "_type": "src",
  "_file": "rplatypus_0.3.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/960d91469c2ddf3792c04c02ce881d8d0eff020a1a3773f0afe3f0331181551d",
  "_filesize": 8268234,
  "_sha256": "960d91469c2ddf3792c04c02ce881d8d0eff020a1a3773f0afe3f0331181551d",
  "_expires": "2027-02-14T00:48:00.000Z",
  "_created": "2026-11-06T00:34:37.000Z",
  "_published": "2026-11-06T00:48:02.705Z",
  "_upstream": "https://github.com/maju116/rplatypus",
  "_status": "success",
  "_maintainer": {
    "name": "Michal Maj",
    "email": "michalmaj116@gmail.com",
    "login": "maju116",
    "twitter": "@MichalMaj116",
    "description": "I’m  a data scientist with over 10 years of experience in the field, R/Shiny developer and a freelancer interested in deep/machine learning and statistics.",
    "uuid": 11685462
  },
  "_jobs": [
    {
      "job": 127630565091,
      "time": 234,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13465594846"
    },
    {
      "job": 127630564980,
      "time": 222,
      "config": "linux-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13465748609"
    },
    {
      "job": 127630565140,
      "time": 142,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13467365065"
    },
    {
      "job": 127630564893,
      "time": 178,
      "config": "macos-release-arm64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13467960472"
    },
    {
      "job": 127628672932,
      "time": 272,
      "config": "source",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13466393518"
    },
    {
      "job": 127630564850,
      "time": 99,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13466264316"
    },
    {
      "job": 127630564974,
      "time": 183,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13465444106"
    },
    {
      "job": 127630565001,
      "time": 178,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13465704538"
    },
    {
      "job": 127630564935,
      "time": 182,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13465614824"
    }
  ],
  "_buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722",
  "_commit": {
    "id": "52534ef353595f36017fc7d852bdfb119ee189bb",
    "author": "Michał Maj <michalmaj116@gmail.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "The pin for 0.8.0a68, and the page that described the defect it fixes (#288)\n\n`rplatypus#286`. §3E would leave this pin alone - R forwards `best_epoch` and\nnames it nowhere - and the reason to move it anyway is that the debt was\nconditional on a FUTURE pin move for an unrelated reason, which is the shape\nthat gets paid by accident in somebody else's pull request.\n\nWhat reaches an R user through the pin and by nothing else: `evaluate()`'s\n`best_epoch` was the lowest validation loss, read off the history whatever a\ncallback was watching, while the scores beside it come from the weights\n`restore_best` kept. Same epoch whenever `monitor` is left at `val_loss`,\ndifferent exactly when it is not. It is now the epoch the row's own scores came\nfrom, and empty rather than wrong when they came from no single epoch.\n\n`vignette(\"classification\")` printed 29 beside 18 and explained the gap, which\nis how the defect was found. That paragraph now says what the column is and\nthat this page is the reason, and the table under it reads `best_epoch 29` -\nread out of the knitted output rather than assumed. Everything else on the page\nis a fresh run.\n\nThe field-prose ledger moved one line, the version, with all 117 digests\nholding.\n\nFour gates against the published 0.8.0a68: `FAIL 0 | SKIP 0 | PASS 2147`, all\nthree lint commands, `Status: OK` on the tarball, and the engine job at\n`failed: 0 skipped: 0`.\n\n\nClaude-Session: https://claude.ai/code/session_01S6WhwioD32xP6gEHg2Ak6c\n\nCo-authored-by: Claude Opus 5 <noreply@anthropic.com>",
    "time": 1793916179
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "reticulate",
      "version": ">= 1.41",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "codetools",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "pkgload",
      "role": "Suggests"
    },
    {
      "package": "png",
      "role": "Suggests"
    },
    {
      "package": "RNifti",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "yaml",
      "role": "Suggests"
    }
  ],
  "_owner": "maju116",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-39",
      "n": 22
    },
    {
      "week": "2026-40",
      "n": 8
    },
    {
      "week": "2026-41",
      "n": 62
    },
    {
      "week": "2026-42",
      "n": 25
    },
    {
      "week": "2026-43",
      "n": 29
    },
    {
      "week": "2026-44",
      "n": 17
    },
    {
      "week": "2026-45",
      "n": 16
    }
  ],
  "_tags": [
    {
      "name": "cran-0.2.1",
      "date": "2026-10-22"
    }
  ],
  "_topics": [
    "deep-learning",
    "dicom",
    "image-segmentation",
    "medical-imaging",
    "nifti",
    "object-detection",
    "reticulate",
    "torch",
    "unet"
  ],
  "_stars": 136,
  "_contributors": [
    {
      "user": "maju116",
      "count": 178,
      "uuid": 11685462
    }
  ],
  "_userbio": {
    "uuid": 11685462,
    "type": "user",
    "name": "Michał Maj",
    "followers": 43,
    "description": "I’m  a data scientist with over 10 years of experience in the field, R/Shiny developer and a freelancer interested in deep/machine learning and statistics."
  },
  "_downloads": {
    "count": 8,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/rplatypus"
  },
  "_devurl": "https://github.com/maju116/rplatypus",
  "_pkgdown": "https://maju116.github.io/rplatypus/",
  "_searchresults": 19,
  "_rbuild": "4.6.2",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/rplatypus.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/maju116/rplatypus",
  "_realowner": "maju116",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.1",
      "date": "2026-11-05"
    }
  ],
  "_exports": [
    "augmentation_step",
    "available_callbacks",
    "available_decodings",
    "available_losses",
    "available_metrics",
    "available_models",
    "available_optimizers",
    "available_separations",
    "available_tasks",
    "available_transforms",
    "available_weights",
    "binary_colormap",
    "binary_labels",
    "callback_cosine_annealing",
    "callback_csv_logger",
    "callback_early_stopping",
    "callback_ema",
    "callback_linear_annealing",
    "callback_model_checkpoint",
    "callback_reduce_lr_on_plateau",
    "callback_step_decay",
    "callback_stop_after",
    "callback_swa",
    "callback_terminate_on_collapse",
    "callback_terminate_on_nan",
    "class_balance",
    "classes_to_colours",
    "classification_data",
    "classifier",
    "colours_to_classes",
    "ct_windows",
    "decode_connected_components",
    "decode_follow_flows",
    "decode_nearest_seed",
    "decode_watershed",
    "detection_anchors",
    "detection_crops",
    "detection_data",
    "drawing_style",
    "ellipse_measure",
    "evaluate",
    "evaluate_cases",
    "evaluate_classes",
    "evaluate_images",
    "export_weights",
    "flow_to_colours",
    "inspect_masks",
    "instance_data",
    "instance_shapes",
    "instance_sizes",
    "linknet",
    "loss_boundary",
    "loss_cce",
    "loss_cce_dice",
    "loss_combo",
    "loss_dice",
    "loss_focal",
    "loss_focal_tversky",
    "loss_generalized_dice",
    "loss_iou",
    "loss_l1",
    "loss_lovasz",
    "loss_mse",
    "loss_smooth_l1",
    "loss_tversky",
    "mask_coverage",
    "mask_volume",
    "metric_accuracy",
    "metric_auc",
    "metric_balanced_accuracy",
    "metric_cldice",
    "metric_dice",
    "metric_f1",
    "metric_iou",
    "metric_surface_dice",
    "metric_tversky",
    "optimizer_adadelta",
    "optimizer_adagrad",
    "optimizer_adam",
    "optimizer_adamax",
    "optimizer_adamw",
    "optimizer_nadam",
    "optimizer_rmsprop",
    "optimizer_sgd",
    "overlay_agreement",
    "overlay_instance_agreement",
    "overlay_instances",
    "overlay_mask",
    "platypus_device",
    "platypus_fact",
    "platypus_fit",
    "platypus_spec",
    "platypus_status",
    "platypus_use_torch",
    "plot_anchors",
    "plot_boxes",
    "plot_masks",
    "read_images",
    "read_masks",
    "read_record",
    "res_u_net",
    "save_class_masks",
    "save_class_volumes",
    "save_masks",
    "save_spec",
    "save_volumes",
    "segmentation_data",
    "separation_flows",
    "separation_rim",
    "series_report",
    "split_dataset",
    "split_path",
    "training_history",
    "u_net",
    "u_net_plus_plus",
    "unite_masks",
    "voc_colormap",
    "voc_labels",
    "volume_info",
    "yolo3"
  ],
  "_help": [
    {
      "page": "as.list.platypus_spec",
      "title": "Turn a specification back into plain R data",
      "topics": [
        "as.list.platypus_spec"
      ]
    },
    {
      "page": "augmentation_step",
      "title": "An augmentation step",
      "topics": [
        "augmentation_step"
      ]
    },
    {
      "page": "available_components",
      "title": "What this package can do, asked of the package",
      "topics": [
        "available_callbacks",
        "available_components",
        "available_decodings",
        "available_losses",
        "available_metrics",
        "available_models",
        "available_optimizers",
        "available_separations",
        "available_tasks"
      ]
    },
    {
      "page": "available_transforms",
      "title": "Which augmentations are available",
      "topics": [
        "available_transforms"
      ]
    },
    {
      "page": "available_weights",
      "title": "The published weights, and what they are",
      "topics": [
        "available_weights"
      ]
    },
    {
      "page": "callback_swa",
      "title": "Average the weights over the last part of the run",
      "topics": [
        "callback_swa"
      ]
    },
    {
      "page": "callbacks",
      "title": "Callbacks",
      "topics": [
        "callbacks",
        "callback_cosine_annealing",
        "callback_csv_logger",
        "callback_early_stopping",
        "callback_ema",
        "callback_linear_annealing",
        "callback_model_checkpoint",
        "callback_reduce_lr_on_plateau",
        "callback_step_decay",
        "callback_stop_after",
        "callback_terminate_on_collapse",
        "callback_terminate_on_nan"
      ]
    },
    {
      "page": "class_balance",
      "title": "How many images each class has, before anything is trained",
      "topics": [
        "class_balance"
      ]
    },
    {
      "page": "classes_to_colours",
      "title": "Paint a mask with its colormap",
      "topics": [
        "classes_to_colours"
      ]
    },
    {
      "page": "classification_data",
      "title": "Images and the label each of them carries, which may be a set",
      "topics": [
        "classification_data"
      ]
    },
    {
      "page": "classification_metrics",
      "title": "Metrics for one label per image",
      "topics": [
        "classification_metrics",
        "metric_accuracy",
        "metric_auc",
        "metric_balanced_accuracy",
        "metric_f1"
      ]
    },
    {
      "page": "classifier",
      "title": "A contracting path, pooled, with one dense layer on top",
      "topics": [
        "classifier"
      ]
    },
    {
      "page": "colormaps",
      "title": "Colormaps and their labels",
      "topics": [
        "binary_colormap",
        "binary_labels",
        "colormaps",
        "voc_colormap",
        "voc_labels"
      ]
    },
    {
      "page": "colours_to_classes",
      "title": "Read a colour mask back to class indices",
      "topics": [
        "colours_to_classes"
      ]
    },
    {
      "page": "ct_windows",
      "title": "The named CT windows",
      "topics": [
        "ct_windows"
      ]
    },
    {
      "page": "decodings",
      "title": "How predicted channels become objects",
      "topics": [
        "decode_connected_components",
        "decode_follow_flows",
        "decode_nearest_seed",
        "decode_watershed",
        "decodings"
      ]
    },
    {
      "page": "detection_anchors",
      "title": "The anchors a detector used, and whether they were fitted",
      "topics": [
        "detection_anchors"
      ]
    },
    {
      "page": "detection_crops",
      "title": "Cut every detection out of the image it was found in",
      "topics": [
        "detection_crops"
      ]
    },
    {
      "page": "detection_data",
      "title": "Where the images and their annotation files are",
      "topics": [
        "detection_data"
      ]
    },
    {
      "page": "drawing_style",
      "title": "The decisions a drawing makes",
      "topics": [
        "drawing_style"
      ]
    },
    {
      "page": "ellipse_measure",
      "title": "The ellipse a segmented structure implies, in millimetres",
      "topics": [
        "ellipse_measure"
      ]
    },
    {
      "page": "encoders",
      "title": "Pretrained encoders, and what they are worth",
      "topics": [
        "encoders"
      ]
    },
    {
      "page": "evaluate",
      "title": "Compare the trained models",
      "topics": [
        "evaluate",
        "evaluate.platypus_fit"
      ]
    },
    {
      "page": "evaluate_cases",
      "title": "Score every case separately",
      "topics": [
        "evaluate_cases",
        "evaluate_cases.platypus_fit",
        "summary.platypus_cases"
      ]
    },
    {
      "page": "evaluate_classes",
      "title": "Average precision per class",
      "topics": [
        "evaluate_classes",
        "evaluate_classes.platypus_fit"
      ]
    },
    {
      "page": "evaluate_images",
      "title": "Score every image separately",
      "topics": [
        "evaluate_images",
        "evaluate_images.platypus_fit"
      ]
    },
    {
      "page": "export_weights",
      "title": "Save a trained model's weights",
      "topics": [
        "export_weights"
      ]
    },
    {
      "page": "flow_to_colours",
      "title": "A vector field as a picture: hue is the direction, value is the length",
      "topics": [
        "flow_to_colours"
      ]
    },
    {
      "page": "inspect_masks",
      "title": "What the colormap or labels match in your masks",
      "topics": [
        "inspect_masks"
      ]
    },
    {
      "page": "instance_data",
      "title": "Data for instance segmentation: tell the objects apart, not just find them",
      "topics": [
        "instance_data"
      ]
    },
    {
      "page": "instance_shapes",
      "title": "What shape each object is, not just how big",
      "topics": [
        "instance_shapes"
      ]
    },
    {
      "page": "instance_sizes",
      "title": "How big each object is, in units somebody can use",
      "topics": [
        "instance_sizes"
      ]
    },
    {
      "page": "loss_boundary",
      "title": "A loss that knows how far a wrong voxel is from the truth",
      "topics": [
        "loss_boundary"
      ]
    },
    {
      "page": "losses",
      "title": "Loss functions",
      "topics": [
        "losses",
        "loss_cce",
        "loss_cce_dice",
        "loss_combo",
        "loss_dice",
        "loss_focal",
        "loss_focal_tversky",
        "loss_generalized_dice",
        "loss_iou",
        "loss_l1",
        "loss_lovasz",
        "loss_mse",
        "loss_smooth_l1",
        "loss_tversky"
      ]
    },
    {
      "page": "mask_coverage",
      "title": "How much of each class a mask covers",
      "topics": [
        "mask_coverage"
      ]
    },
    {
      "page": "mask_volume",
      "title": "How much of a volume a class occupies, in millilitres",
      "topics": [
        "mask_volume"
      ]
    },
    {
      "page": "metrics",
      "title": "Metrics",
      "topics": [
        "metrics",
        "metric_cldice",
        "metric_dice",
        "metric_iou",
        "metric_surface_dice",
        "metric_tversky"
      ]
    },
    {
      "page": "models",
      "title": "Segmentation models",
      "topics": [
        "linknet",
        "models",
        "res_u_net",
        "u_net",
        "u_net_plus_plus"
      ]
    },
    {
      "page": "optimizers",
      "title": "Optimisers",
      "topics": [
        "optimizers",
        "optimizer_adadelta",
        "optimizer_adagrad",
        "optimizer_adam",
        "optimizer_adamax",
        "optimizer_adamw",
        "optimizer_nadam",
        "optimizer_rmsprop",
        "optimizer_sgd"
      ]
    },
    {
      "page": "overlay_agreement",
      "title": "Where a prediction and the truth disagree",
      "topics": [
        "overlay_agreement"
      ]
    },
    {
      "page": "overlay_instance_agreement",
      "title": "Found, missed and invented objects",
      "topics": [
        "overlay_instance_agreement"
      ]
    },
    {
      "page": "overlay_instances",
      "title": "Draw an instance map over its image",
      "topics": [
        "overlay_instances"
      ]
    },
    {
      "page": "overlay_mask",
      "title": "Lay a mask over the image it belongs to",
      "topics": [
        "overlay_mask"
      ]
    },
    {
      "page": "platypus_conditions",
      "title": "When something is wrong: the conditions this package raises",
      "topics": [
        "platypus_conditions"
      ]
    },
    {
      "page": "platypus_device",
      "title": "Where the work will happen",
      "topics": [
        "platypus_device"
      ]
    },
    {
      "page": "platypus_fact",
      "title": "One fact about the platypus",
      "topics": [
        "platypus_fact"
      ]
    },
    {
      "page": "platypus_fit",
      "title": "Train the models in a specification",
      "topics": [
        "platypus_fit"
      ]
    },
    {
      "page": "platypus_spec",
      "title": "Build an experiment specification",
      "topics": [
        "platypus_spec"
      ]
    },
    {
      "page": "platypus_status",
      "title": "Is the engine ready?",
      "topics": [
        "platypus_status"
      ]
    },
    {
      "page": "platypus_use_torch",
      "title": "Ask for a particular PyTorch build",
      "topics": [
        "platypus_use_torch"
      ]
    },
    {
      "page": "plot_anchors",
      "title": "Draw the anchors against the boxes they were fitted to",
      "topics": [
        "plot_anchors"
      ]
    },
    {
      "page": "plot_boxes",
      "title": "Draw boxes on images",
      "topics": [
        "plot_boxes"
      ]
    },
    {
      "page": "plot_masks",
      "title": "Look at masks beside the images they came from",
      "topics": [
        "plot_masks"
      ]
    },
    {
      "page": "plot.platypus_fit",
      "title": "Plot what happened during training",
      "topics": [
        "plot.platypus_fit"
      ]
    },
    {
      "page": "predict.platypus_fit",
      "title": "Predict masks, boxes, objects or labels",
      "topics": [
        "predict.platypus_fit"
      ]
    },
    {
      "page": "read_images",
      "title": "Read images as the model sees them",
      "topics": [
        "read_images"
      ]
    },
    {
      "page": "read_masks",
      "title": "Read mask files as class indices",
      "topics": [
        "read_masks"
      ]
    },
    {
      "page": "read_record",
      "title": "Read what a run wrote down about itself",
      "topics": [
        "read_record"
      ]
    },
    {
      "page": "save_class_masks",
      "title": "Write overlapping classes, one file per class",
      "topics": [
        "save_class_masks"
      ]
    },
    {
      "page": "save_class_volumes",
      "title": "Save overlapping classes as one NIfTI per class",
      "topics": [
        "save_class_volumes"
      ]
    },
    {
      "page": "save_masks",
      "title": "Write masks to files",
      "topics": [
        "save_masks"
      ]
    },
    {
      "page": "save_spec",
      "title": "Write a specification back out as YAML",
      "topics": [
        "save_spec"
      ]
    },
    {
      "page": "save_volumes",
      "title": "Save predicted volumes as NIfTI",
      "topics": [
        "save_volumes"
      ]
    },
    {
      "page": "segmentation_data",
      "title": "Where the images and masks are",
      "topics": [
        "segmentation_data"
      ]
    },
    {
      "page": "separations",
      "title": "What the network predicts, so objects can be told apart",
      "topics": [
        "separations",
        "separation_flows",
        "separation_rim"
      ]
    },
    {
      "page": "series_report",
      "title": "Check folders of DICOM slices before training on them",
      "topics": [
        "series_report"
      ]
    },
    {
      "page": "split_dataset",
      "title": "Split a dataset into training, validation and test sets",
      "topics": [
        "split_dataset"
      ]
    },
    {
      "page": "split_path",
      "title": "The files in one part of a split",
      "topics": [
        "split_path"
      ]
    },
    {
      "page": "training_history",
      "title": "The epoch-by-epoch record",
      "topics": [
        "training_history"
      ]
    },
    {
      "page": "unite_masks",
      "title": "Combine several binary masks into one",
      "topics": [
        "unite_masks"
      ]
    },
    {
      "page": "volume_info",
      "title": "What is in a volume file",
      "topics": [
        "volume_info"
      ]
    },
    {
      "page": "yolo3",
      "title": "YOLOv3",
      "topics": [
        "yolo3"
      ]
    }
  ],
  "_readme": "https://github.com/maju116/rplatypus/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "here",
    "isoband",
    "jsonlite",
    "labeling",
    "lattice",
    "lifecycle",
    "Matrix",
    "png",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "RcppTOML",
    "reticulate",
    "rlang",
    "rprojroot",
    "S7",
    "scales",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "fetal-head.Rmd",
      "filename": "fetal-head.html",
      "title": "A fetal head circumference: the measurement a Dice cannot see",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why a circumference is not a score",
        "The data",
        "Splitting by examination, not by image",
        "The specification",
        "Training",
        "From a mask to a millimetre",
        "What the annotation costs before the model does",
        "The Dice cannot see this error",
        "What this does not settle",
        "Notes on the machine"
      ],
      "created": "2026-10-25 17:41:19",
      "modified": "2026-10-27 06:26:45",
      "commits": 3
    },
    {
      "source": "blood-cells.Rmd",
      "filename": "blood-cells.html",
      "title": "Finding blood cells with YOLOv3",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Before any of that: boxes in a few lines",
        "And here, unlike the nuclei vignette, a score means something",
        "One refusal worth meeting now",
        "Anchors, which a detector has and a U-Net does not",
        "What the loss is doing",
        "Scoring, and the number that is missing on purpose",
        "mAP@0.5, mAP@[.50:.95], and which to believe",
        "Looking at it",
        "What this does not do",
        "Notes on the machine"
      ],
      "created": "2026-10-04 15:21:42",
      "modified": "2026-11-05 21:11:13",
      "commits": 6
    },
    {
      "source": "data-science-bowl.Rmd",
      "filename": "data-science-bowl.html",
      "title": "Finding nuclei in the 2018 Data Science Bowl",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Before any of that: a mask in four lines",
        "The data",
        "Look at it before training on it",
        "The specification",
        "Train",
        "Compare",
        "Look at what it did",
        "The same thing from a file",
        "A note on older graphics cards"
      ],
      "created": "2026-09-26 09:53:04",
      "modified": "2026-10-27 06:26:45",
      "commits": 5
    },
    {
      "source": "classification.Rmd",
      "filename": "classification.html",
      "title": "Naming what a detector found",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Cutting the objects out, which is a decision about the data",
        "A crop needs a label, and the label is a decision",
        "What the detector already answers",
        "The classifier, and the metric that is not accuracy",
        "Scoring per class, because the mean is the commonest class",
        "Two things that do not help, measured rather than assumed",
        "The class that is not a picture of anything",
        "What this does not do",
        "Notes on the machine"
      ],
      "created": "2026-11-05 19:07:37",
      "modified": "2026-11-05 22:02:59",
      "commits": 2
    },
    {
      "source": "retinal-vessels.Rmd",
      "filename": "retinal-vessels.html",
      "title": "Retinal vessels: tiling, and a metric Dice cannot replace",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why a vessel cannot be resized",
        "The data",
        "The configuration",
        "Training",
        "One number hides the finding",
        "clDice beside Dice",
        "The worst case, drawn",
        "Two of those choices, measured afterwards",
        "The loss is a decision, and this configuration already had the right one",
        "A surface loss is the one that breaks the lines, and it gets worse with the dose",
        "Tiling against resizing, where this document's first section is too strong",
        "The rig, which is worth more than the ranking",
        "What none of this says",
        "Notes"
      ],
      "created": "2026-10-09 19:30:40",
      "modified": "2026-10-27 06:26:45",
      "commits": 5
    },
    {
      "source": "volumes.Rmd",
      "filename": "volumes.html",
      "title": "Segmenting volumes: CT, spacing and per-patient scores",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Making something to segment",
        "Splitting by patient, not by scan",
        "The specification",
        "Training",
        "Scores per patient, not per dataset",
        "Looking at a slice",
        "Millilitres, not voxels",
        "Writing a mask back onto its scan",
        "DICOM, which is how the data usually arrives",
        "What this leaves out"
      ],
      "created": "2026-09-26 21:31:10",
      "modified": "2026-10-27 06:26:45",
      "commits": 8
    },
    {
      "source": "instances.Rmd",
      "filename": "instances.html",
      "title": "Telling touching nuclei apart",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Before any of that: objects in four lines",
        "The semantic sibling, side by side",
        "The data",
        "The specification, with the borrowed model beside a new one",
        "Train",
        "Compare",
        "What this does not settle, measured rather than guessed",
        "Which objects, not how many pixels",
        "A decoding changed without retraining",
        "What it was for: a count and a size distribution",
        "And what shape, which needs no scale at all",
        "The same thing from a file",
        "A note on older graphics cards"
      ],
      "created": "2026-10-15 20:38:07",
      "modified": "2026-10-26 18:56:10",
      "commits": 2
    },
    {
      "source": "configuration.Rmd",
      "filename": "configuration.html",
      "title": "Writing a configuration",
      "engine": "knitr::rmarkdown",
      "headings": [
        "One file, one run",
        "Several models at once",
        "Dividing one folder",
        "Augmentation, callbacks, and the rest of a model",
        "Overlapping classes instead of one per voxel",
        "When the overlap was drawn separately: classes_from",
        "Instances instead of one mask",
        "Detection instead of segmentation",
        "One label instead of a mask",
        "When the label is a set: labels_from",
        "Predicting on images you have no labels for",
        "Not training at all",
        "What is checked, and when",
        "The same run from code"
      ],
      "created": "2026-10-07 19:35:47",
      "modified": "2026-10-28 20:59:32",
      "commits": 10
    }
  ],
  "_score": 7.859450540665265,
  "_indexed": true,
  "_nocasepkg": "rplatypus",
  "_universes": [
    "maju116"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-11-06T00:37:30.000Z",
      "distro": "resolute",
      "commit": "52534ef353595f36017fc7d852bdfb119ee189bb",
      "fileid": "https://r2.ropensci.org/82b370e7fbad9edf6cf88804d9a6bfaed464924df8b87d1bb2345c4e89049e7b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722"
    },
    {
      "r": "4.6.2",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-11-06T00:37:27.000Z",
      "distro": "resolute",
      "commit": "52534ef353595f36017fc7d852bdfb119ee189bb",
      "fileid": "https://r2.ropensci.org/0af137e1a1b231ca2eb4e373a61798460e4e21780c7223bbff2866eeed21a1a3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-11-06T00:39:55.000Z",
      "commit": "52534ef353595f36017fc7d852bdfb119ee189bb",
      "fileid": "https://r2.ropensci.org/8a316693853c9f0b3c7389f60a692873790dabec32b1a425ba66ad87fc96995b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722"
    },
    {
      "r": "4.6.2",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-11-06T00:46:20.000Z",
      "commit": "52534ef353595f36017fc7d852bdfb119ee189bb",
      "fileid": "https://r2.ropensci.org/ee13cfe2e247a7a6974a22dc31ff6b4ea6a42d5c9fb312f4ce866f406a749809",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0",
      "date": "2026-11-06T00:36:42.000Z",
      "commit": "52534ef353595f36017fc7d852bdfb119ee189bb",
      "fileid": "https://r2.ropensci.org/70fc0dd9f4cc6fe3ec6e0835ad19eea2e769eb21d7dffeb222941d71a2480efe",
      "status": "success",
      "buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-11-06T00:36:02.000Z",
      "commit": "52534ef353595f36017fc7d852bdfb119ee189bb",
      "fileid": "https://r2.ropensci.org/73254b003f6049e76f9b4c64acbbd19a1fee603ea85db05eba80854449bf2f04",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-11-06T00:35:53.000Z",
      "commit": "52534ef353595f36017fc7d852bdfb119ee189bb",
      "fileid": "https://r2.ropensci.org/e9cc91e7abe9b5ec3332b35572c51b98fd2b6959180d7c7805558750c5092345",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-11-06T00:35:50.000Z",
      "commit": "52534ef353595f36017fc7d852bdfb119ee189bb",
      "fileid": "https://r2.ropensci.org/a25d7e4ed4b6410eb98df00754c5d892de9ddc34cc0d735ab80a0a3d133681f8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/maju116/actions/runs/42137287722"
    }
  ]
}