# @brainchop/mindgrab 中文文档

规范地址：https://npmcn.com/package/%40brainchop/mindgrab/

版本：0\.1\.20261029
npm 元数据更新时间：2026-10-31T13:55:28.207Z
中文译文更新时间：2026-11-08T13:36:31.014Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40brainchop/mindgrab
原文对照：https://npmcn.com/package/%40brainchop/mindgrab/?lang=original
项目主页：https://github.com/neuroneural/brainchop
源码仓库：https://github.com/neuroneural/brainchopC

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：11.8 MB，56 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-08-13T15:33:22.011Z
- 最新版本发布：2026-10-31T13:55:27.993Z
- 近 30 天下载量：17367（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 7 个）

## 中文简介

浏览器 MeshNet 脑分裂(MindGrab cleep raping, 18-和104-class problemation, GM/WM/CSF分会)在WebGPU, 有WebGL2和有线-CPU回落

## 安装

```sh
npm install @brainchop/mindgrab
```

也可以使用：`pnpm add @brainchop/mindgrab`、`yarn add @brainchop/mindgrab`、`bun add @brainchop/mindgrab`

## README

# @brainchop/ mindgrab (英语)

浏览器 WebGPU 上的 MeshNet 脑分裂, 有 WebGL2 和 有线- CPU 倒背:MindGrab头骨剥取,宽度为2个18等分 (单位:千美元)`16chan18cls`, (中文(简体) ), `mindmap`),以及104级德西克-克里尼地块 (单位:千美元)`mindsnap`),超过固定的2563格. 一个NIFTI `ArrayBuffer` 进去和a 北爱尔兰 `ArrayBuffer` 出来.

整个管道——符合、正常、13或25个MeshNet层,分类, 最大组件重排——运行在编译自 [脑跳-c](https://github.com/neuroneural/brainchopC)此软件包只拥有 该模块故意不做的: gzip, WebGPU 设备以及 WebGL2 上下文 收购 跨原产地隔离探测 以及拒绝的决定.

```js
import { segment } from '@brainchop/mindgrab'

const input = await file.arrayBuffer()          // .nii or .nii.gz
const { image, elapsedMs } = await segment(input, { model: 'mindgrab' })
// image is gzipped if the input was
```

MindMap现在过滤选中的组织类别并重新填充被压制的光谱 从幸存的相邻标签默认。 使用 `{ model: 'mindmap', legacyCleanup: true }` 仅限大脑原型 清净相. 这需要从与包装纸相同的修订版中重建原物资产.

分类原生-空间输出使用浏览器的八样多数投票, 包括源外的背景投票 和第一样本领带断裂. 面具仍然使用相近的邻居;连续的组织图使用线性再生. 无效、为空、填入95%以上或过于零散 结果失败 `inference-failed` 在清理之前可以掩盖失败.

## 连续组织图

```js
import { segmentTissues } from '@brainchop/mindgrab'

const { tissues, backend } = await segmentTissues(input, {
  model: 'mindmap', worker: true,
})
// tissues.gm, tissues.wm, tissues.csf and tissues.brain (GM + WM) are NIfTI
// ArrayBuffers. Native geometry and input gzip encoding are preserved by default.
```

`tissues.brain`0.5同位素是亚伏克赛尔平面,准备成网.

`segmentTissues` 支持 `mindmap` 财务报告和审定财务报表 `16chan18cls` 在WebGPU,WebGL2和CPU上. GPU路径计算设备上的被分组的前缀、模糊和支持指向; 共享 C CAT-lite fitter 运行在 CPU 上. 使用MindMap 校正 两个模型的常数。 示范16 覆盖范围检查执行协议, 不是组织模型校正. `saveConform` 财务报告和审定财务报表 `gzipOutput` 工作情况 `segment`; 面罩,边框和遗留的断然清除选项被拒绝. WebGL2模块保留了768个MiB为主机侧组织合位.

## 后端

`auto` (默认)尝试硬件 `webgpu`硬件 `webgl2`,则 `cpu` 报告(仅来自不同页面) `result.backend`, (中文(简体) ), 掷出 `no-webgpu` 如果没人能。 它从不选择一个被确认为 软件(SwiftShader、llvmpipe、熔岩管、WARP或WebGPU倒置适配器): 他们通过每个能力探测器 但运行MindGrab 在990 S对CPU 模块为~10 s. `checkSupport()` 财务报告和审定财务报表 `checkWebgl2Support()` 报告 `software: true` 为了他们。 无法识别被遮盖的 WebGL2 渲染器字符串 (单位:千美元)`software: undefined`),因此它只在 `cpu` 无法。 无论运行,一个 空的 MindGrab 口罩拒绝使用 `inference-failed`,如同空标签一样。 A 类 命名后端仍然运行一个软件,但超过默认值 `timeoutMs`。 。 。 .

MindGrab在M4 Pro上,当时间在相机模块内部,当什么是一个 `segment()` 电话实际成本。 不同之处在于这个包是自己的作品——取取和取 即时化模块, gzip 和 gunzip, 并复制音量入出 模块文件系统——而不是完全位于模块内部的分割 第一个数字 :

| 后端 | 需求 | 模块中 | 每个呼叫 |
| --- | --- | --- | --- |
| `'webgpu'` | 使用 WebGPU 的网络 `shader-f16`, 512 MiB 缓冲器, 安全上下文 | 1.6 s (简体中文) | 2.4 对 |
| `'webgl2'` | WebGL2 为 `EXT_color_buffer_float` | 3个s | 4.1 s, 它使用调用线程 `worker: true` |
| `'cpu'` | (单位:千美元) **跨原生个体** 页面(见下文)和可生长共享内存的~2.15 GB | ~10 s 在14个核心 | ~12.6 s (韩语) |

CPU一行 2.6 s 的包装时间大约为 3x GPU一行 0.7–0.8 s,即 不是一个算术滑动:它是一个单独的、更大的模块,而且瞬间 每一个核心都有一个工人.

WebGL2 是Linux Firefox 和 Chrome 今天所拍摄的, 因为两者都不启用 WebGPU 默认的;这些堆栈已知运行正确,但从未被定时, 所以上面的数字是macOS。 明确命名后端使不支持 选择错误而不是沉默的下调。 CPU 模块是运行的命令行可执行文件的同名 fp32 C 已经 **位点精确** 与之相伴; 二个 GPU 路径为 fp16并携带 voxel 准确性预算.

### CPU 后退需要两个标题

它是一个线粒体构建,所以它导入了共享内存,以及一个不是 跨原生隔离无法即时解脱——模块挂起而不是 失败, 因此在取回之前先检查它 。 服务于 **顶级文档** 改为:

```
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
```

把他们放在 `.wasm` 反之则无所作为:孤立是一种 属性。 注意费用,这是部署的通常原因 再次关闭隔离: 下 `require-corp` 每一个交叉来源 子资源 页面加载 —— 图像、 字体、 分析、 嵌入 —— 必须自己发送 `Cross-Origin-Resource-Policy` 或适当的CORS, 或将被屏蔽。 然后说:

```js
import { checkCpuSupport } from '@brainchop/mindgrab'

const cpu = checkCpuSupport()
if (!cpu.supported) console.warn(cpu.reasons.join('\n'))
```

Playwright的补丁Firefox Nightly 运行这个模块的速度比 Chromium, 但安装的 Firefox 153.0.1 运行了相同的位精确模型 16 在 7.6 s. 夜生结果作为牵引/编译异常保留,而不是a 警告 Firefox 用户一般.

## 所需资源

对于 WebGPU 路径: 带有 WebGPU 的 WebGPU `shader-f16` 特性, `maxStorageBufferBindingSize` 财务报告和审定财务报表 `maxBufferSize` 至少为 **512个小米B** (一个f16活化缓冲器)和a **安全环境** —— 说 `https` 或者说 `localhost`。 。 。 . `about:blank` 财务报告和审定财务报表 `file://` 没有 安全环境,以及那里 `navigator.gpu` 是未定义的, 它看起来是准确的 像浏览器,完全没有WebGPU.

在向用户提供按钮之前询问 :

```js
import { checkSupport } from '@brainchop/mindgrab'

const report = await checkSupport()
if (!report.supported) console.warn(report.reasons.join('\n'))
```

## 模型

| `model` | 已经 | 产出 |
| --- | --- | --- |
| `'mindgrab'` | 在任何模式中剥取头骨 | 带有非大脑花瓶的输入图像 |
| `'16chan18cls'` | 18级脑分裂 | 标签音量 |
| `'mindmap'` | 18级脑分裂(24道) | 标签音量 |
| `'mindsnap'` | 104级 Desikan-Killiani地块 | 标签音量 |

每个模块都是单独的相片模块,其分量被编译入,只有在 你问它。 选项是按型号选取的,不匹配的选取在之前被拒绝 任何内容都被下载,因为一个可执行文件 从来没有广告它会是什么 缩放 :

```js
await segment(buf, { model: 'mindgrab', saveConform: true })
// BrainchopError: mindgrab does not support `saveConform`: its output is the
// input image with non-brain voxels floored, so it is inherently in the input space
```

每个 `MODELS` 条目(和 `listModels()`载体 `colormap`数字 : `{ R, G, B, labels }`, (中文(简体) ), 每个输出值一个条目,索引 0 背景(用于 `mindgrab`页:1 `mask`) (中文(简体) ). 这个 模特儿自己来的 `colormap.json`,像NiiVue这样的观众 直接 : `nv.setColormapLabel(1, MODELS.mindsnap.colormap)`。 。 。 .

## 选项

```ts
segment(input: ArrayBuffer | ArrayBufferView, options: SegmentOptions)
```

| 选项 | 模型 | 含义 |
| --- | --- | --- |
| `model` | 全部四个 | **所需经费**他们之间没有合理的违约 |
| `ct` | 全部四个 | 输入为 CT; 将 Hounsfield 转换为 Cormack 单位 |
| `comply` | 全部四个 | 在合规前插入合规转换 |
| `saveConform` | `16chan18cls`, (中文(简体) ), `mindmap`, (中文(简体) ), `mindsnap` | 返回符合要求的 2563 个体积而不是重写到输入网格 |
| `mask` | `mindgrab` | 还原二进制脑罩 `result.mask` |
| `borderMm` | `mindgrab` | 将口罩边框加长为毫米;暗指 `mask` |
| `gzipOutput` | 全部四个 | 覆盖与输入匹配的默认值 |
| `worker` | 全部四个 | 在 Web Worker 中运行整个分区. **建议**,并且是保持页面响应在 `webgl2` 运行, 同步 |
| `device` | 全部四个 | 重复使用 a `GPUDevice` 你已经拥有 |
| `glContext` | 全部四个 | 重复使用 a `WebGL2RenderingContext` 您已经拥有; 暗示 `webgl2` |
| `assetPath` | 全部四个 | 工人和模型的基础 URL `.js`编号 :`.wasm` 服务从,当主机服务 `dist/` 本身; 捆绑者不需要, 见下文 |
| `timeoutMs` | 全部四个 | 推断限度(默认为 120 000;900 000) `cpu`,用于 `auto` 下级 `worker: true`,在计时器被武装后选择后端). 模块装入/证实有其自身的限度: `timeoutMs` 和两分钟,所以一个被停滞的线粒体启动不能伪装成慢的CPU运行. 丢失的 GPU 设备否则永远不会结算; 只有 `worker: true` 实际取消 |
| `onLog` | 全部四个 | 接收模块输出行 |

输出在 **默认输入图像的自有空间**每个模型。 这个 反转脑-cli,其中符合的网格是默认的.

`--crop` 财务报告和审定财务报表 `--export-classes`,这是当地可执行文件提供的 故意缺席 两者都强迫CPU引擎 _gPU 模块内_,哪个 编译时没有线程,每卷需要141至266 s;接受 将两秒钟的呼叫变成四分钟的一次,没有警告。 这个 `cpu` 后端是一个不同的模块,不会改变这个模块.

### 炸弹

没有复制和没有 `assetPath`:工人和每个型号的胶被导入 字数 `new URL('./worker.js', import.meta.url)` 财务报告和审定财务报表 `import('./<glue>.js')` 说明器,每根胶水都定位它 `.wasm` 同样的方式,所以维特,滚出和 网包放出他们所有的 (hashed) 一个呼叫者仍然只下载模型和 后端它运行。 Vite 需要两个设置: `worker.format: 'es'` 页:1 `vite build` (默认) `iife` 工人的顶级等待不能进行) `optimizeDeps.exclude` 页:1 `vite dev` (单位:千美元) dev 预绑定器将软件包移动到 `.vite/deps/`,其中工人URL 404s:

```js
// vite.config.js
export default {
  optimizeDeps: { exclude: ['@brainchop/mindgrab'] },
  worker: { format: 'es' },
}
```

捆绑者发出每个模块,所以 `@brainchop/mindgrab` 全部部署 十二(~10 MB). 一个运行一个模型的输入的宿主 相反,它具有相同的API,只部署其三个模块(MindGrab: ~ 2.6 MB 在 `vite build`:

```js
import { segment } from '@brainchop/mindgrab/mindgrab'   // or /16chan18cls, /mindmap, /mindsnap
```

`listModels()` 返回一个模型( q)`MODELS` 仍然描述所有四个, 并且拒绝任何其他型号 与 `unsupported-option` (除非 `assetPath` 设置,由 URL 负载.

建设和网络包装也跟随进口,但不要固定节点 `node:*` 导入 CPU 模块( 也在节点下运行) : 标记它们 外部(`esbuild --external:'node:*'`网络包装 `externals: /^node:/`) 建设 不发射 `new URL()` 资产,所以一个重建主机也设置 `assetPath`。 。 。 .

`assetPath` 给服务宿主的遗物 `dist/` 复制工人和 这个模型的 `.js` 财务报告和审定财务报表 `.wasm` 某处服务并指向 `assetPath` 临Τ 它必须 是同源的; 它能提供动态 `import()`。 。 。 .

## 错误

每个软件包出错都会丢出一个 `BrainchopError` 带有 `code` 您可以在 : `no-webgpu`, (中文(简体) ), `no-adapter`, (中文(简体) ), `device-too-small`, (中文(简体) ), `no-f16`, (中文(简体) ), `unsupported-option`, (中文(简体) ), `bad-input`, (中文(简体) ), `initialization-failed`, (中文(简体) ), `inference-failed`。 。 。 . `initialization-failed` 表示模块从未启动,因此重试可以有意义; `inference-failed` 意味着它开始而没有完成。 有一个 **无后退** 他们中的任何一个, 根据决定,沉默地降级比拒绝更糟糕. `auto` 在后端中选择并非例外: 它发生在任何事情之前 找到的 只有在你没有表达任何倾向时.

`no-webgpu` 这也是什么 `cpu` 拒绝报告——"本页并非跨源 被隔离的"根据代码而不是第四个到达, 所以读一下消息, 或打电话 `checkCpuSupport()` 先说.

## 准确性

这个 `cpu` 后端为零相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相相去相去相去相去相去相相去相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相. 模型16 本地-空间多数定点有一个单独的主题参考: 原已存在的符合原样/原样的标签差异通过新投票进行抽样. 是从未经修改的合并主机和新的固定装置独立复制的 对照浏览器的投票功能进行校验。 见 [参考来源](https://npmcn.com/package/%40brainchop/docs/nvidia-browser-parity-validation.md#native-reference-provenance)。 。 。 . 两个GPU 路径为fp16,与项目的金属一样,按每伏xel预算计算 后端而不是比特精确度。 历史近邻结果 项目的固定装置,作为16.7M(2毫米,1.6M)的活氧化物:

| 大小写 | 预算 | 网络gpu | 网络gl2 |
| --- | --- | --- | --- |
| 脑袋 | 64国道 | 页:1 | 33个 |
| 18级(16道) | 第1024号 | 682 (英语) | 710号 |
| 18级(16个频道),本土2毫米 | 256号 | 88国道 | 94国道 |
| 心电图(24道,18等) | 第1024号 | 564 (韩语) | 610个 |
| 原生2毫米心电图 | 256号 | 88国道 | 86 (简体中文) |
| mainnap (104- way argmax) (英语) | 2048 (英语) | 1280号 | 1219号 |
| 土生土长2毫米 | 512号 | 198 (韩语) | 184 (韩语) |

目前的多数投票制检查保留了这些预算。 组织图保留 现有 `2/255` RMSE门在非零结合 和准确的NIfTI几何.

## 大楼

```sh
npm install
npm run build     # build all three backends' modules, stage into dist/, types, bundle
npm test          # drives the built package in a real browser
```

测试开始 **标题** macOS上的无头铬没有GPU,需要一种 安装了剧作家的退出( u)`BC_PLAYWRIGHT_ROOT`) (中文(简体) ).

## 常见问题

### @brainchop/mindgrab 是什么？

浏览器 MeshNet 脑分裂\(MindGrab cleep raping, 18-和104-class problemation, GM/WM/CSF分会\)在WebGPU, 有WebGL2和有线-CPU回落

### 如何安装 @brainchop/mindgrab？

在项目目录运行 npm install @brainchop/mindgrab，或使用 pnpm add / yarn add / bun add。

### @brainchop/mindgrab 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @brainchop/mindgrab 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @brainchop/mindgrab 可以商用吗？

@brainchop/mindgrab 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @brainchop/mindgrab 的下载量有多少？

根据 npm 官方下载统计，@brainchop/mindgrab 在 2026/10/09 – 2026/11/07 这 30 天内被下载 17,367 次，日均约 579 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @brainchop/mindgrab 还在维护吗？

最新版本 0\.1\.20261029 发布于 2026/10/31（8 天前）；至今共发布 7 个版本，其中过去 12 个月发布了 7 个；首次发布于 2026/08/13。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

