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

news/2024/7/19 13:32:31 标签: 神经网络, 人脸识别, python, js, javascript
js_content">

首先,什么是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的价值。

更多#跨学科·人工智能 

粉丝福利 

进群查看,有惊喜!


http://www.niftyadmin.cn/n/1248771.html

相关文章

java JUnit单元测试、反射、注解

1、Junit单元测试 Junit的概念 概述 : Junit是Java语言编写的第三方单元测试框架(工具类)作用 : 用来做“单元测试”——针对某个普通方法,可以像main()方法一样独立运行,它专门用于测试某个方法。 Junit的使用步骤 1.在模块下创建lib文件夹,把Junit的…

寻找AR中的Big Difference - v3.0 | AR指南

昨天2021.1.16周六上海的黑设会上,傅嵌华、荔枝君、Nakhqin为我们分享了AR、VR、XR相关的研究、行业动态、创新项目等。在2021新的一年,我有了新的理解,有种曲径通幽、别有洞天的感觉。于是抽空更新了这一指南,分享给大家。目前&a…

Java中fastjson库将Map、JSON、String相互转换

Java中fastjson库将Map、JSON、String相互转换json就是一串字符串 只不过元素会使用特定的符号标注。{} 双括号表示对象[] 中括号表示数组"" 双引号内是属性或值: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象&#xff09…

java 数据类型 流程控制语句

1、添加注释comment 注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。 Java中有单行注释和多行注释: 单行注释 以 //开头 换行结束 多行注释 以…

Docker知识点整理

Docker 比较Docker和虚拟机技术的不同: 1.传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件 2.容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟…

设计更美好的生活|Mix+人工智能 No.55

Knowledge/ def mix( ):本期收录新增16NO. 55#字体艺术# #创意编程#通过在参数栏实时调整动态参数,组合出极具艺术感的图片#Lens# #谷歌#Google Lens,智慧镜头,让你打开相机就可以辨认花草、翻译文字、识别地标。#数独计算# #混合现实#这是一…

建筑师们终于在虚拟空间开双年展了! | 绿洲 · 虚拟现实专栏

胡鹏 | 序从2020年开始,虚拟空间相关的产业都呈现了爆发式的增长,像ZOOM这样的专注于虚拟产业的公司市值,已经远超传统的大体量航空公司的市值了,XR相关产业的增长也不例外呈现了巨大的增幅。我以介绍一个非常新的虚拟空间建筑师的…

使用EasyExcel导出Excel-字体居中

使用EasyExcel导出Excel-字体居中 引入maven 依赖 <!-- 阿里开源EXCEL--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.0-beta2</version></dependency><!-- fastj…