@ 沙漠- ant- labs/ 形状
形状在浏览器和节点中将一手拉出一手的中风变成干净的形状,连接器,或箭头. 形状识别出13种:直通或曲线连接器,箭头,长方形,椭圆形,三角形,菱形,五角形,六角形,恒星,心相,云相,和拼写等,您的应用可以用作去除手势. 对于任何其他中风,例如笔迹, recognize 返回时 null这样你就可以保持中风 作为墨水。 中风从不离开装置.
一个小模型每类得分,并标出属于箭头的分数. 几何相合器然后计算出干净的形状. 形状只接受中风,前提是模型的自信和适合性都明确了这种被校准的阈值. 默认情况下,形状会将线条和边缘接通到轴上,将近圆圈接通到圆圈上,将近方形接通到正方形上,将近正多边形接通到正多边形上,再自转到15°步.
两条共用一条 Shapes API : (英语)
@desert-ant-labs/shapes(默认):一个WebAssembly输油管 LitteRT.js (法语) 推论: 浏览器。它没有本土的依赖性,因此,对于一个多目标捆绑器(Next.js, Remix, SvelteKit, Nuxt)的每个目标,包括浏览器捆绑和客户端-组件SSR通过在节点提供的这些框架,一个单一的导入结构是干净的。 这是安全的 导入 在服务器侧渲染时,但LiteRT.js需要浏览器(或Web Worker)来初始化,所以Shapes.load()运行仅在浏览器中推导;在平原节点中调用它会丢出一个可操作错误,指向您/native。 。 。 .@desert-ant-labs/shapes/native: 预建的本地核心, macOS上的核心ML和Linux上的LiteRT, for 服务器侧推论 在节点。 没有@litertjs/core没有建筑工具 没有旗帜 从仅服务器代码(API路由,服务器动作,平分节点脚本)导入. 不要从同样在浏览器中的组件导入它 .
# Browser (default entry):
npm i @desert-ant-labs/shapes @litertjs/core
# Server-side inference in Node (/native entry) needs no extra install:
npm i @desert-ant-labs/shapes
该型号被从Hugging Face下载,首先在SDK的被贴标签上使用,后被缓存. Npm 柏油丸里没有模型大小的货.
import { Shapes } from "@desert-ant-labs/shapes";
const shapes = await Shapes.load();
const shape = await shapes.recognize(points); // [{x, y}, ...] or [x0, y0, ...]
// { kind: "ellipse", center: {x, y}, semiMajor, semiMinor, rotation, outline: [...] }
shapes.dispose(); // release the model (both builds)
纯服务器代码,希望本地核心从中导入相同的 API
/native 子路径 :
import { Shapes } from "@desert-ant-labs/shapes/native"; // server only
形状
recognize 返回时 null 当中风不是形状。 否则 recognize 返回这些对象之一,但受下列因素影响: kind。每个形状都有 outline,可以绘制多线。 封闭形状的轮廓不重复其第一分,而箭形的轮廓就是它的轴.
line- 说吧from, (中文(简体) ),tocurve- 说吧from, (中文(简体) ),control1, (中文(简体) ),control2, (中文(简体) ),to(一个立方贝塞尔)arrow- 说吧from, (中文(简体) ),control1, (中文(简体) ),control2, (中文(简体) ),to, (中文(简体) ),startHead, (中文(简体) ),endHead。 。 。 .arrowheads(shape, length)返回标题为[barb, tip, barb]多管线.rectangle- 说吧corners四周四个点ellipse- 说吧center, (中文(简体) ),semiMajor, (中文(简体) ),semiMinor, (中文(简体) ),rotation(弧度数)triangle, (中文(简体) ),diamond, (中文(简体) ),pentagon, (中文(简体) ),hexagon- 说吧vertices周围star- 说吧center, (中文(简体) ),outerRadius, (中文(简体) ),innerRadius, (中文(简体) ),rotation(弧度,0放一个尖端直上),pointCountheart- 说吧center, (中文(简体) ),width, (中文(简体) ),heightcloud- 说吧outline仅限scribble- 说吧hull,"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出自"出 删除船体内的内容.
在斯威夫特和克特林语中,种类和场名是相同的,因此在一个平台上识别出一通中风来形容自己在每一个平台上都一样.
recognize(points, options) 需要三种选择:
rotation数字 :"snapped"默认值。 它将一个形状自转至15°级,并按向轴上水平或垂直5°范围内的线和边缘."upright"删除旋转."free"保持所绘制的形状,并跳过按键到圆形、正方形和正多边形.kinds:形状识别的种类,所有13个默认. 别管了"scribble"如果你的应用没有抹去的手势.minimumConfidence:最低分级置信度形状接受,在每种分级阈值上方. 默认0仅适用已校正阈值.
正在装入模型
默认 Shapes.load() 从 Hugging Face 下载模型文件(desert-ant-labs/shapes在SDK的被贴标签, 验证,并缓存它们。 浏览器构建获取 .tflite 用于 LiteRT.js 并在浏览器中缓存它. 土著建筑/native获取 .tflite 在 Linux 上还是 .mlmodelc/ 在 macOS 上,并在 OS 缓存目录下缓存它.
跳过 Higging Face 的下载:
directory:一个明确的模型目录(内部构建,或浏览器在节点下构建). 文件已经使用离线,否则模型会被下载到其中.modelBaseUrl: 例如, 为模型文件服务的基础 URL"/assets/shapes/"(浏览器建设).
Shapes.load() 并接受:
cacheRoot: 管理上磁盘缓存的基础目录,默认~/.cache(内部构建,或浏览器在节点下构建).onProgress: 加载或下载进度回调,分数在[0, 1]。 。 。 .
浏览器- 仅构建- 选项 :
litert:一个带给你的@litertjs/core模块.litertWasmDir: LiteRT.js Wasm 目录的URL或路径.accelerator: 一个"wasm", (中文(简体) ),"webgpu",或"webnn"。 。 。 .
保险箱和安保部
默认 @desert-ant-labs/shapes 导入可直接用于组件 :
它是纯 JavaScript + Web Assembly 没有本地模块, 所以捆绑者可以构建
用于浏览器和节点 SSR 从同一个模块图中通过,没有
配置 .
这个 @desert-ant-labs/shapes/native 子路径加载本地加通( 通过 koffi和
仅用于服务器代码。 如果您在捆绑服务器的框架内导入它
代码(例如 Next.js Route Handler 或 Server Action),将其标记为外部
捆绑者不会试图捆绑本地二进制。 在下一个.js中:
// next.config.js
module.exports = { serverExternalPackages: ["@desert-ant-labs/shapes"] };
平台
本地服务器构建( N)/native)为linux-x64,linux-arm64,和darwin-arm64的舰只. 其他节点平台投出一个明显的错误 load(); 使用默认的 Web Assembly 构建、 Swift 软件包或浏览器.
许可证
沙漠蚂蚁实验室 源头可破坏许可证。为大多数免费提供 应用软件和商务许可证必须规模化。 完整的术语在链接. 许可证发放: 许可@ desertant.com。 。 。 .
SDK的第三方通知: THIRD_PARTY_NOTICES.md。 。 。 .
权重第三方通知: THIRD_PARTY_NOTICES.md。 。 。 .