Skip to content

Commit

Permalink
Merge pull request #33 from chou-dai/issue/#28
Browse files Browse the repository at this point in the history
#28 README修正
  • Loading branch information
chou-dai authored May 5, 2023
2 parents 8e512e1 + 8f2d730 commit a415ff9
Showing 1 changed file with 26 additions and 10 deletions.
36 changes: 26 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,44 @@
# MNIST Application

## 概要
- MNIST(Mixed National Institute of Standards and Technology database)による手書き文字認識を用いた識別アプリ。
- CNN ニューラルネットワークにより "0" ~ "9" の手書き文字の推論を行う。
- フロントエンドは React 、バックエンドは AWS サーバレスアーキテクチャ(API Gateway、ECR、Lambda)で構成している。
- Pytorch による CNN モデル構築を行なっている。
- https://mnist-application.vercel.app
<img width="1428" alt="image" src="https://user-images.githubusercontent.com/89395132/236490902-24b4fadb-0f02-4b90-8328-d821a9a9b909.png">
- MNIST:手書き数字の識別アプリ。
- CNN ニューラルネットワークで構築されたモデルにより "0" から "9" の手書き文字の推論を行う。
- モデル構築には Pytorch を使用し、フロントエンドは React、バックエンドは AWS サーバレスアーキテクチャで構成。

![preview](https://user-images.githubusercontent.com/89395132/236490902-24b4fadb-0f02-4b90-8328-d821a9a9b909.png)


---

## 技術スタック
| 分野 | 使用技術 |
| ---- | ---- |
| フロントエンド | React(Typescript), Tailwind CSS |
| バックエンド | Lambda(Python), API Gateway, ECR |
| モデル構築 | Pytorch |
| その他 | Neural Network, AWS SAM, Docker |
| その他 | AWS SAM, Docker |


---


## MNISTモデル
CNN
![model](https://user-images.githubusercontent.com/89395132/236506173-6b3f5226-c174-4d2c-b682-ac432472f9d3.png)
- (畳み込み層 + Maxプーリング層) × 2 + 全結合層 × 3
- 活性化関数:最終層 Softmax 関数、それ以外 ReLU 関数。
- 損失関数:クロスエントロピー損失関数
- 最適化アルゴリズム:SGD


## アーキテクチャ
![architecture](https://user-images.githubusercontent.com/89395132/236492743-c13131f7-437d-42ad-9c8d-0482399f4570.png)
---


## アーキテクチャ
![architecture](https://user-images.githubusercontent.com/89395132/236503556-c9d8a25c-5948-4737-b531-b0b98f0baab8.png)
1. エンドユーザー:手書き数字入力
2. フロントエンド:手書き数字を Base64 形式の画像データへエンコード
3. フロントエンド:リクエストボディに Base64 形式画像データを含めバックエンドへ POST
4. バックエンド:API Gateway でリクエストを受理し、Lambda のイベントを発火
5. バックエンド:Lambda で CNN モデルを用いて、画像データがどの数字であるかの確率を算出
6. バックエンド:各数字の確率のリストをフロントエンドへレスポンスを返す
7. フロントエンド:確率リストから円グラフを生成し、最も確率が高いものを結果として出力

1 comment on commit a415ff9

@vercel
Copy link

@vercel vercel bot commented on a415ff9 May 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.