AR实时求解数独 |Mixlab混合现实

首先,什么是WebAssembly?

我们需要知道它到底是什么!

WebAssembly是一种可以让C/C++这些非JavaScript语言编写的代码在浏览器上运行,是一种在web上运行二进制文件的技术标准。

就前端来说,它因为支持了更多的语言,进而可以创造出更多的可能。就后端来说,配置过Opencv或其他C++库的小伙伴都知道,一个环境的部署会有多么的繁琐以及对各种库的高依赖性。

通过这种技术手段,我们就可以通过Js在浏览器上十分简单的调用Opencv的函数库,实现人脸识别、数字识别等功能。

Suduko solver

这是一个Suduko(数独)解算器的项目,通过Rust调用Opencv,Tensorflow的函数库实现实时的识别解算,非常有趣。

在图像中定位数独谜题,解决谜题然后将解决方案呈现回原始图像的步骤

核心步骤:

1、利用自适应阈值函数定位轮廓边缘,生成黑白图像

2、通过提取轮廓,找出为数独网格的四边形轮廓

3、利用逆透视变换,将侧放的网格渲染成正方形的网格

4、剔除网格线

5、利用卷积神经网络识别数字

6、利用基于Rust语言编写的程序,求解数独

use sudoku::Sudoku;
// Sudokus can be created from &str's in both block or line formats or directly from bytes.// here, an example in line formatlet sudoku_line = "...2...633....54.1..1..398........9....538....3........263..5..5.37....847...1...";
let sudoku = Sudoku::from_str_line(sudoku_line).unwrap();
// Solve, print or convert the sudoku to another formatif let Some(solution) = sudoku.solve_unique() {// print the solution in line formatprintln!("{}", solution);
// or return it as a byte arraylet cell_contents: [u8; 81] = solution.to_bytes();}

7、进行透视变换,将求解后的数字投影回图像上

就这样,一个涵盖Opencv、tensorflow、Rust、JS等技术的project就完成了,最终经过测试,整体处理时间大约在70毫秒。

Docker的联合创始人之一Solomon Hykes在Twitter上这样评价过WASI,体现了WebAssembly的价值。

更多#跨学科·人工智能 

粉丝福利 

进群查看,有惊喜!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值