Processors
wasmVision processing modules are WebAssembly guest modules that support the wasmCV interface.
Processors can filter images, analyze them, and modify them using traditional computer vision algorithms.
Processors can also use deep neural networks and other machine learning algorithms, and can even download the models they need automatically.
See the Processors list for pre-compiled processors you can try out right away.
Processors can be written in Go, Rust, or the C programming language.
How processors work
flowchart TD
subgraph engine
Runtime[WASM Runtime]
Runtime<-->OpenCV
subgraph platform
Logging
Config
end
Runtime<-->platform
Runtime<-->Models
OpenCV<-->Models
end
subgraph processors
Runtime-- input frame -->processor.wasm
processor.wasm<--wasmCV function calls-->Runtime
processor.wasm-- output frame -->Runtime
processor.wasm<--wasmVision platform function calls (logging, config, ...)-->platform
end
wasmCV
wasmVision processors call OpenCV functions implemented by the wasmVision engine to obtain information or perform operations on image frames. To do this, processors use the wasmCV bindings for the programming language being use to create the processor.
Full documentation of the computer vision functions supported by the wasmCV interface definitions is here:
https://wasmcv.org/docs/0.8.1/
The repository with the wasmCV interface and bindings can be found here:
https://github.com/wasmvision/wasmcv
wasmVision Platform
In addition, the wasmVision engine has functions that are part of the platform itself. For example, processors need logging, the ability to load configuration data at runtime, and other capabilities. The repository with the wasmVision platform interfaces is here:
https://github.com/wasmvision/wasmvision-sdk
Models
Machine learning models for computer vision that can be used by Processors. See the Models list for more information.