招牌 - 实际上学习ASL-(Mongodb Atlas Hackathon 2022提交)
#javascript #machinelearning #mongodb #atlashackathon22

我建造的

signanguage 是一个平台,用户可以使用机器学习和访问20,000多个ASL短语的机器学习和访问视频学习美国的手语。

类别提交:不再搜索

应用链接ððð¥³

https://signlanguage.webdrip.in/

应用程序预览和功能

主页

主页显示整个应用程序预览。用户可以查找视频和字母的术语以及玩游戏。

Signlanguage Homepage

短语词典

招牌包括大约20,000个短语,用户可以从中学习ASL。

Phrases

open video

闪电快速模糊搜索

用户可以使用ASL短语中的MongoDB Atlas搜索实现的模糊搜索功能搜索来自20,000+视频的任何视频。

Fuzzy Search

Fuzzy Search play video

下面的视频显示了MongoDB可以搜索20,000多个视频文档的速度。

ASL的游戏

用户可以玩使用MediaPipe和Tensorflow Machine学习库创建的游戏,以帮助他们学习和验证他们的学习。

学习数字

在人工智能的帮助下以时间顺序从0-10学习数字。

随机数

向屏幕上展示您的手,AI将尝试根据您的手标志预测0-10的数字。

链接到源代码

允许许可证

MIT License

背景

开发解决现实世界问题声明的软件应用程序或产品一直使我感兴趣。当我开始学习ML并探索探索可能性时,我想制作的项目将成为比自身更大的项目的一部分,即帮助社区并以易于访问的方式吸引人们。这是我开发此应用程序签名的动机。

YouTube是一个很好的知识来源,但其算法并没有宣传引起用户的简短视频或视频。招牌通过收集这些资源并使它们可以通过我们的WebApp轻松访问来解决此问题。此WebApp有大约20,000多个精心策划的视频短语和诸如模糊搜索之类的功能,可以轻松学习美国手语(ASL)。

招牌还具有许多游戏,用户可以在玩得开心的同时练习其ASL基础知识。

技术堆栈和图书馆使用

该应用程序基本上是使用frontend的高度JS(11ty)构建的,MongoDB领域作为后端和MediaPipe和MediaPipe和TensorFlow JS用于机器学习。

  • 高度JS
  • mongo db
  • mongo db领域函数
  • mongo db领域https端点
  • mongo db atlas搜索
  • TensorFlow
  • MediaPipe

我如何建造它

收集20,000多个ASL单词是一项艰难的努力,因此我想要一个简单而快速设置的后端。因此,当我使用Mongo DB存储数据时,我选择Mongo DB领域。

创建20,000个文件

第一次看到数据时,我想知道我是否还可以将这些数据存储到MongoDB中,以及它会多么困难。但是,MongoDB指南针使导入JSON数据非常容易。

Mongo Db Compass

Mongo DB Atlas搜索

为我的数据收集创建搜索索引很轻松,结果给我留下了深刻的印象。

atlas search

Mongo DB领域HTTPS端点

添加数据并创建搜索索引后,我想创建一个可以由前端使用的API。 Mongo DB通过其HTTPS端点和领域功能服务使创建API变得容易。

我构建了一个名为/searchVideo的搜索索引端点,该端口启用了领域功能,并从Atlas搜索返回搜索结果。


exports = function(request,response){
  let collection = context.services.get("mongodb-atlas").db("SignLanguage").collection("videos");
  const {searchVid} = request.query

    let pipeline = [
        {
          $search: {
            index: 'searchVideos',
            text: {
              query:searchVid,
              path: {
                'wildcard': '*'
              }
            }
          }
        }
    ];

    return collection.aggregate(pipeline)
};

我还构建了一个名为videoApialphabetSong的简单API端点,该端点从数据库中返回了分页的数据。

exports = function(request,response){
  const {start} = request.query

  let data = context.services.get("mongodb-atlas").db("SignLanguage").collection("videos").find().skip(parseInt(start)).limit(12).toArray();

  return data;
};

realm function

用于创建ASL游戏,我遇到的问题之一是为深度学习模型创建和收集数据集。我必须亲自收集数据集,因为在Kaggle上获得的数据集不能正确预测结果或质量差。

机器学习工作流模型如下所示

Image description

对分类模型的创建的简要概述为

  • 我们首先使用开放的CV Python软件包和Google的MediaPipe Hands模型来预测手上的关键点。
  • 之后,使用TensorFlow创建自定义模型,该模型将关键点分类。
  • 然后将该模型转换为TFJS模型,该模型可在浏览器中用于预测手势。

https://media.giphy.com/media/xUPOqo6E1XvWXwlCyQ/giphy.gif

谢谢!

希望您喜欢我的项目!如果您有任何反馈,请随时在下面发表评论。