Skip to content
Back to skills

Middle Mip Std Volume Projection

ASecurity

Compress a 3D medical volume into a 3-channel 2D image by stacking the middle slice, the max-intensity projection across depth, and the per-pixel std across depth — a poor-man's volumetric encoding that lets any pretrained 3-channel 2D CNN ingest a whole series in a single forward pass

  • 61 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 12, 2026
developmentpythongo

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add wenmin-wu/ds-skills --skill middle-mip-std-volume-projection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Middle Mip Std Volume Projection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Middle Mip Std Volume Projection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wenmin-wu-middle-mip-std-volume-projection/badge)](https://www.skillsdirectory.com/skills/wenmin-wu-middle-mip-std-volume-projection)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: cv-middle-mip-std-volume-projection
description: Compress a 3D medical volume into a 3-channel 2D image by stacking the middle slice, the max-intensity projection across depth, and the per-pixel std across depth — a poor-man's volumetric encoding that lets any pretrained 3-channel 2D CNN ingest a whole series in a single forward pass
---

## Overview

When you want to use an off-the-shelf 3-channel ImageNet backbone (RGB pretrained) but your data is volumetric, the slice-as-channel trick still requires `in_chans=N`. Even simpler: collapse the volume into exactly 3 channels by mixing complementary projections — the middle slice for anatomical context, max-intensity projection (MIP) for vessel/bright-structure highlighting, and the per-pixel standard deviation for "interesting variation" along the depth axis. Stacking these three as RGB lets a vanilla `tf_efficientnetv2_s.in1k` ingest a whole series in one forward and reach competitive scores on the RSNA Aneurysm leaderboard. The combination beats any single projection because each channel surfaces a different aspect of the volume.

## Quick Start

```python
import numpy as np

def project_volume_3ch(volume):  # volume: (D, H, W) uint8 or float
    middle = volume[len(volume) // 2]
    mip    = np.max(volume, axis=0)
    std    = np.std(volume, axis=0).astype(np.float32)
    if std.max() > std.min():
        std = ((std - std.min()) / (std.max() - std.min()) * 255).astype(np.uint8)
    else:
        std = np.zeros_like(std, dtype=np.uint8)
    return np.stack([middle, mip, std], axis=-1)  # (H, W, 3)

img = project_volume_3ch(volume)
# pass into any standard 3-channel timm model with ImageNet pretrain
```

## Workflow

1. Resample/window the volume so all values are in a comparable intensity range
2. Compute the three projections (middle slice, MIP, std-across-depth)
3. Normalize the std channel to `[0, 255]` independently — its scale is much smaller than slice intensities
4. Stack as `(H, W, 3)` and feed through the standard ImageNet normalization (mean/std)
5. Train any 2D CNN as if it were a regular RGB classification problem
6. Optional: replace one channel with a min-intensity projection for darker structures (hemorrhages, calcifications)

## Key Decisions

- **Middle slice over mean**: middle preserves contrast; mean blurs everything.
- **Why MIP**: angiographic vessels are sparse and bright — averaging dilutes them, max preserves them.
- **Why std**: depth-wise variance highlights pixels where slice-to-slice change is strongest, often around lesions and edges.
- **Independent normalization of std**: its raw scale is much smaller than intensities; if you don't rescale, it becomes a near-zero channel.
- **Beats single-projection by 1-2 LB points**: confirmed in multiple RSNA notebooks; the ensemble of three projections is the win.
- **Cheap to compute**: ~ms per volume, no model needed; good fast baseline before investing in 3D or slice-as-channel.

## References

- [RSNA-IAD | EfficientNetV2 | LB](https://www.kaggle.com/code/itsuki9180/rsna-iad-efficientnetv2-lb)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.