Coder Social home page Coder Social logo

jphacks / a_2111 Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 2.0 100.88 MB

Great team A_2111 project "COCONOMASK"

Home Page: https://coconomask.web.app/

License: Other

HTML 2.15% JavaScript 55.47% SCSS 5.41% Python 16.03% Dockerfile 0.42% CSS 2.25% Jupyter Notebook 18.28%
jphacks react fastapi ble winner-take-all gaen ml

a_2111's Introduction

ココノマスク

image

動画

YouTube

プレゼンテーション

以下のリンクより確認可能です。

https://www.canva.com/design/DAEv-7H1qU4/view?embed

製品概要

背景(製品開発のきっかけ、課題等)

2021 年現在、コロナ禍でマスクの着用が事実上義務化されている。その中で、マスクを着用することによる息苦しさが注目されるようになってきた。本製品では、COCOA という既存の信号を受信することで、マスクの不要な場面を判断し、快適な呼吸を促すことを目的とする。

image

製品説明(具体的な製品の説明)

image

特長

特長 1   COCOA の電波受信して自動でマスク開閉

周りに人がいないときには息苦しさから解放されます。

特長 2  ファッションアイテムとしてのIoT

帽子型のため、普段着とも着あわせて着用が可能です。

特長 3  デバイス共有機能

一つのデバイスに対して複数人が共有できます。一台あたり、製作費を3000円程度と推定計算すると、4人家族で共有すれば一人当たりのコストは1000円未満とリーズナブルです。

特長 4  顔認証AI

デバイスに顔画像が紐づけられ、紐の長さが自動調節されます。メールアドレスを持っていない子供でも簡単に利用できます。オンデバイス機械学習のため、クラウドに顔画像が送信されることはなく、プライバシー保護の観点からも安全です。 image

特長 5  ミライ小町さんによる可視化

現在のマスクの開閉状況が可愛い3Dモデルで可視化されます。 image

解決出来ること

コロナ禍でマスクを常時使用を強いられることにより発生する息苦しさから解放されます。 また、マスクの紐を耳にかけることによって生じる痛みからも逃れることができます。

今後の展望

withコロナ時代におけるマスクを常時着用しなければいけないという懸念を除去します。

注力したこと(こだわり等)

  • web bluetooth を用いた開発・通信
  • オンデバイスAIにより、プライバシーの守られた顔認識を実現
  • CI/CD の整備による開発体験の向上(良く実感できました!)
    • frontend backend 共にブランチへの push で自動デプロイがされます。(frontend_commit)(バックエンドは、Heroku から GUI による設定)
    • フロントエンドは、PR 時に自動でフォーマッターをかけ、commit をしてくれます。(commit)(自動フォーマット・コミットの例
    • codeQL による脆弱性自動検出(commit)(脆弱性を指摘された例
    • main への merge には "一人以上からのコードレビュー・approve" && "CI が全て成功する" を必須にし、コードレビューをし合えただけでなく、事故を防止できました。

開発技術

活用した技術

image

API・データ

  • Google/Apple Notification Exposure Notification(API は経由せず、受信信号を使用)
  • ミライ小町
  • FastAPI
  • VGGFACE2
  • InceptionNet

フレームワーク・ライブラリ・モジュール

  • Pytorch
  • ONNX
  • ONNXRuntime
  • React
  • Bluetooth Low Energy
  • Web Bluetooth
  • Firebase Hosting
  • Cloud Firestore
  • blender
  • Python
  • numpy
  • pybleno
  • pybluez

デバイス

  • Raspberry Pi 3

独自技術

顔認証の実装、オンデバイス処理をONNXRumtimeで実装 image

ハッカソンで開発した独自機能・技術

  • 独自デバイスの作成・アップデート image

  • 電動スライダー(Motorized Slide Potentiometer)とワイヤーを用いた動力変換機構 image

  • COCOA の API は一般人は許可なく利用できなかったため、GAEN API を利用せず、bluetooth の service uuid を直接解析して通信。

その他

  • よくある質問をまとめました。→ 質問コーナー
  • 各パートの README も ぜひご覧ください!

a_2111's People

Contributors

al-mikan avatar gojiteji avatar maximum80 avatar shin5ishihara avatar takapiro99 avatar usatyo avatar usk314 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

duyuxuan mdzz333

a_2111's Issues

not found ページ と Error を catch したときのページをきれいにする

JPHacks の twitter @jphacks2021 に貼ってあるリンクが not found で思い出した
(cc: @jphacks-official

not found と error boundary で unhandled error を catch したときに表示するページが雑すぎるので、きれいにする

ついでにオフライン対応したらオフラインだよ表示もできるようにしてみたい。これはどうやってやるか調べるところから

顔の大きさを測定

顔の大きさを写真で測定してから紐調節

実際に顔の大きさを測定するようなアプリがあった
mapleの位置情報の時のように精度に欠ける可能性があるがハッカソンだと妥協すればあり(S/M/Lの3段階にさえ分類できれば)

受信統計の可視化

Is your feature request related to a problem? Please describe.
信号の受信の記録をとっていい感じに可視化したい。

Describe the solution you'd like
統計をDBに保存する。
react表描画ライブラリを導入する。

Additional context
なし

デモモードの充実

そもそもペアリングするあたりの動きがないのでそこも合わせて作る

エラー処理

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Additional context
Add any other context or screenshots about the feature request here.

`POST` /member の中身を実装する

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Additional context
Add any other context or screenshots about the feature request here.

ユーザー管理

ちゃんとしたユーザー登録とかはしないで、簡易的にユーザー管理します!

  • 起動時、appcontextのuseEffect内でlocalstorageを見に行きます
  • idがあったら、それでログインしたとみなします
  • なかったら、
    • 新規登録画面(又はモーダル?)を出し、なまえを入力させる
    • それをサーバーに送信し、IDをもらってくる(サーバー未デプロイ)
    • それをLocalstorageに保存し、ログインしたこととする
  • ログイン情報などは、appcontextのstateで管理する

名前変更

名前変更モーダル(or画面)つくるところから?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.