项目地址:https://github.com/chirsz-eve...
本项目响应 学 Rust,免费拿树莓派 而编写,其主要逻辑和 数学教育范例 差不多,前端获取输入后用 AJAX 请求发往服务器,服务端在 JavaScript 中调用 Rust 代码获得运算结果。
前端主要是在一个 Canvas 上画图,点击“test”按钮后会压缩图片数据(右侧小图)并转换为 Base64 编码发送到服务端,具体是用 POST 请求发往 /recognize
。
服务端接收到图图片数据后,直接将 Base64 字符串转发给 Rust 代码,在 Rust 中完成 Base64 解码和图像识别。本来想在 JavaScript 中解码,但这样生成 UInt8Array
传到 Rust 后长度发生改变,疑似 ssvmup 的 BUG,所以改为传递 Base64 字符串。
Rust 中使用预先训练好的神经网络进行图像识别,所用的是有两个隐藏层的全连接神经网络,是比较简单的模型,使用 MINST 数据集进行训练,在 MINST 测试集上达到了 97% 的准确率。
开始使用的是 nalgebra
库进行矩阵运算,但在 SSVM 上会出现莫名的 BUG,因此换成了 rulinalg
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。