角石 AI 客户端软件包
这个软件包提供了AI接口,用于Cornerstone在客户端应用中的应用. 它旨在支持使用ONNX模型,确保服务器侧AI处理与与Cornerstone绑定的客户端特定功能之间的清洁分离.
关键特性
- ONNX 运行时网络集成:软件包可以使ONNX Runtime Web库发挥杠杆作用,使得AI模型可以在浏览器中直接运行而无需依赖服务器侧执行.
- 初始型号 - 分段任意型号( SAM): 我们第一个支持的模型是分块任意模式(SAM) https://segment-anything.com/ 互联网档案馆的存檔,存档日期2013-12-21,用于分割任务.
开始
WASM 文件
ONNX跑时Web要求WASM文件在浏览器中运行. 这些文件需要复制到您的应用程序的公共目录中 。 文件应放在 /ort/ 在您的公共文件夹中设置目录 .
在 Webpack 中, 您可以将 WASM 文件添加到这样的公共文件夹 :
new CopyPlugin({
patterns: [
{
from: '../../../node_modules/onnxruntime-web/dist',
to: '${destPath.replace(/\\/g, '/')}/ort',
},
],
}),
这将从 ONNX Runtime Web 软件包中复制所有必要的 WASM 文件到您的应用程序的公共目录 。 确保您的构建系统配置用于处理 WASM 文件,并确保 asyncWebAssembly 在您的构建配置中启用了实验 .
运行示例
要看到套件与分块任意模式一起运行,请使用以下命令:
yarn run example segmentAnythingClientSide
这将在浏览器中加载 SAM 模型并允许您在图像上执行分区任务 .
模型文件
软件包因尺寸而不包括模型二进制,并给予用户使用自己模型的灵活性. 您可以从以下链接下载预选的模型二进制 :
基型 (vit b) - 178 MB 压缩
大型号 (vit l) - 1.16 GB 压缩
巨型 (vit h) - 2.38 GB 压缩
举例来说,我们正在使用模型url并从网上取出。 如果你看到我们的代码:
模型文件的 URL
const models = {
sam_b: [
{
name: 'sam-b-encoder',
url: 'https://huggingface.co/schmuell/sam-b-fp16/resolve/main/sam_vit_b_01ec64.encoder-fp16.onnx',
size: 180,
key: 'encoder',
},
{
name: 'sam-b-decoder',
url: 'https://huggingface.co/schmuell/sam-b-fp16/resolve/main/sam_vit_b_01ec64.decoder.onnx',
size: 17,
key: 'decoder',
},
],
};
const ai = new ONNXSegmentationController({
listeners: [mlLogger],
models,
modelName: 'sam_b',
});
给模型文件以url.
二进制模型
你可以下载模型文件,通过将其移动到公共文件夹来将其下线.
在 Webpack 中, 您可以将模型文件添加到这样的公共文件夹
new CopyPlugin({
patterns: [
{
from:
'../../../externals/sam_l',
to: '${destPath.replace(/\\/g, '/')}/sam_l',
},
{
from:
'../../../externals/sam_h',
to: '${destPath.replace(/\\/g, '/')}/sam_h',
},
],
}),
其他建筑系统可能有不同的方法来做到这一点.