Skip to content

About

๐ŸŒฟ ๅŸบไบŽๆทฑๅบฆๅญฆไน ็š„ๆค็‰ฉ่ฏ†ๅˆซไธŽๅ…ปๆŠคๅพฎไฟกๅฐ็จ‹ๅบ - FastAPI + PyTorch + MobileNetV3 + ONNX

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

๐ŸŒฟ Plant Recognition

AI-Powered Plant Identification & Care WeChat Mini-Program

ๆ‹็…งๅณ่ฏ† ยท ๆ™บ่ƒฝๅ…ปๆŠค ยท ๆค็‰ฉ็™พ็ง‘


License Python PyTorch FastAPI ONNX WeChat Docker MySQL Redis





๐ŸŒฑ What is Plant Recognition?

Plant Recognition ๆ˜ฏไธ€ไธชๅŸบไบŽๆทฑๅบฆๅญฆไน ็š„ๅพฎไฟกๅฐ็จ‹ๅบ๏ผŒ่ฎฉไฝ ๅช้œ€ๆ‹ไธ€ๅผ ็…ง็‰‡๏ผŒๅฐฑ่ƒฝๅฟซ้€Ÿ่ฏ†ๅˆซๆค็‰ฉ็ง็ฑป๏ผŒๅนถ่Žทๅ–ไธ“ไธš็š„ๅ…ปๆŠคๆŒ‡ๅ—ใ€‚

ไปŽ่ฏ†ๅˆซๅˆฐๅ…ปๆŠค๏ผŒไธ€็ซ™ๅผ็ฎก็†ไฝ ็š„็ปฟ่‰ฒ็”Ÿๆดปใ€‚


โœจ Features

๐Ÿ” ๆ™บ่ƒฝ่ฏ†ๅˆซ

ๆ‹็…ง / ็›ธๅ†Œ้€‰ๅ›พไธ€้”ฎ่ฏ†ๅˆซ ่ฟ”ๅ›ž็ฝฎไฟกๅบฆไธŽๆค็‰ฉ่ฏฆๆƒ… MobileNetV3 + ONNX ๆฏซ็ง’็บงๆŽจ็†

๐ŸŒฑ ๅ…ปๆŠค็ฎก็†

ๅˆ›ๅปบไธชไบบๆค็‰ฉๆกฃๆกˆ ่ฎฐๅฝ•ๆต‡ๆฐดใ€ๆ–ฝ่‚ฅ็ญ‰ๅ…ปๆŠคๆ—ฅๅฟ— ๆ™บ่ƒฝๅ…ปๆŠคๆ้†’้€š็Ÿฅ

๐Ÿ“š ๆค็‰ฉ็™พ็ง‘

ๆต่งˆๅฎŒๆ•ดๆค็‰ฉๅ›พ้‰ด ๆŸฅ็œ‹ๅ…ปๆŠค็Ÿฅ่ฏ†่ฏฆๆƒ… ๆœ็ดขไธŽๅˆ†็ฑปๆต่งˆ

๐Ÿ‘ค ไธชไบบไธญๅฟƒ

ๅพฎไฟกไธ€้”ฎ็™ปๅฝ• ่ฏ†ๅˆซๅކๅฒ่ฎฐๅฝ• ไธชไบบ่ต„ๆ–™็ฎก็†


๐Ÿ— Tech Stack

Frontend Backend AI / ML Infra
WeChat FastAPI PyTorch Docker
Vant MySQL ONNX Nginx
WXML Redis MobileNetV3 Python

๐Ÿ“ Architecture

                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚    ๐Ÿ“ฑ WeChat Mini-Program  โ”‚
                    โ”‚  ๅŽŸ็”Ÿๅผ€ๅ‘ + Vant Weapp     โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                 โ”‚ HTTPS / RESTful API
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚   โšก FastAPI Backend       โ”‚
                    โ”‚  Auth โ”‚ Recognize โ”‚ Care  โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                 โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚                  โ”‚                  โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚  ๐Ÿ—„ MySQL 8.0   โ”‚ โ”‚  ๐Ÿ”ด Redis 7.x  โ”‚ โ”‚  ๐Ÿง  ONNX       โ”‚
    โ”‚  ๆค็‰ฉ/็”จๆˆทๆ•ฐๆฎ   โ”‚ โ”‚  ็ผ“ๅญ˜/ไผš่ฏ็ฎก็†  โ”‚ โ”‚  ๆจกๅž‹ๆŽจ็†ๅผ•ๆ“Ž   โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.11+
  • Node.js 16+
  • Docker & Docker Compose
  • ๅพฎไฟกๅผ€ๅ‘่€…ๅทฅๅ…ท

1. Backend

cd backend

# ๐Ÿณ Docker ไธ€้”ฎๅฏๅŠจ (ๆŽจ่)
docker-compose up -d

# ๐Ÿ“ฆ ๆˆ–ๆ‰‹ๅŠจๅฏๅŠจ
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

๐Ÿ“– API ๆ–‡ๆกฃ: http://localhost:8000/docs

2. Mini-Program

  1. ๅพฎไฟกๅผ€ๅ‘่€…ๅทฅๅ…ทๅฏผๅ…ฅ miniprogram/ ็›ฎๅฝ•
  2. project.config.json ๅกซๅ…ฅไฝ ็š„ AppID
  3. app.js ไฟฎๆ”น baseUrl ไธบๅŽ็ซฏๅœฐๅ€

3. Model Training (Optional)

cd ml
pip install -r requirements.txt

python train.py --data_dir ./data/plants --epochs 50
python evaluate.py --model_path ./output/best_model.pth
python export_onnx.py --model_path ./output/best_model.pth --quantize

๐Ÿ’ก ๅผ€ๅ‘ๆจกๅผ๏ผšๆจกๅž‹ๆ–‡ไปถไธๅญ˜ๅœจๆ—ถ่‡ชๅŠจ่ฟ”ๅ›žๆจกๆ‹Ÿ่ฏ†ๅˆซ็ป“ๆžœ๏ผŒๆ— ้œ€่ฎญ็ปƒๅณๅฏ่ฐƒ่ฏ•ๅ‰็ซฏใ€‚


๐Ÿ“ Project Structure

PlantRecognition/
โ”œโ”€โ”€ ๐Ÿ“‚ backend/                    # FastAPI ๅŽ็ซฏ
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”œโ”€โ”€ api/                   #   API ่ทฏ็”ฑ
โ”‚   โ”‚   โ”œโ”€โ”€ models/                #   ORM ๆจกๅž‹
โ”‚   โ”‚   โ”œโ”€โ”€ schemas/               #   ๆ•ฐๆฎ้ชŒ่ฏ
โ”‚   โ”‚   โ”œโ”€โ”€ services/              #   ไธšๅŠก้€ป่พ‘
โ”‚   โ”‚   โ”œโ”€โ”€ core/                  #   ๆ•ฐๆฎๅบ“ / Redis / JWT
โ”‚   โ”‚   โ””โ”€โ”€ ml/                    #   ONNX ๆŽจ็†
โ”‚   โ”œโ”€โ”€ docker-compose.yml
โ”‚   โ””โ”€โ”€ init.sql
โ”œโ”€โ”€ ๐Ÿ“‚ miniprogram/               # ๅพฎไฟกๅฐ็จ‹ๅบ
โ”‚   โ”œโ”€โ”€ pages/                     #   17 ไธช้กต้ข
โ”‚   โ”œโ”€โ”€ components/                #   ่‡ชๅฎšไน‰็ป„ไปถ
โ”‚   โ””โ”€โ”€ utils/                     #   ๅทฅๅ…ทๅ‡ฝๆ•ฐ
โ””โ”€โ”€ ๐Ÿ“‚ ml/                        # ๆจกๅž‹่ฎญ็ปƒ
    โ”œโ”€โ”€ train.py
    โ”œโ”€โ”€ evaluate.py
    โ””โ”€โ”€ export_onnx.py

๐Ÿ”Œ API Endpoints

Method Endpoint Description
POST /api/auth/login ๅพฎไฟก็™ปๅฝ•
POST /api/recognize ไธŠไผ ๅ›พ็‰‡่ฏ†ๅˆซๆค็‰ฉ
GET /api/plants ๆค็‰ฉๅˆ—่กจ
GET /api/plants/{id} ๆค็‰ฉ่ฏฆๆƒ…
GET /api/my-plants ๆˆ‘็š„ๆค็‰ฉ
POST /api/my-plants/{id}/logs ๆทปๅŠ ๅ…ปๆŠคๆ—ฅๅฟ—
POST /api/reminders ๅˆ›ๅปบๅ…ปๆŠคๆ้†’

๐Ÿค Contributing

  1. Fork this repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License.



Made with ๐Ÿ’š by Sfrui

If you find this project useful, please consider giving it a โญ

About

๐ŸŒฟ ๅŸบไบŽๆทฑๅบฆๅญฆไน ็š„ๆค็‰ฉ่ฏ†ๅˆซไธŽๅ…ปๆŠคๅพฎไฟกๅฐ็จ‹ๅบ - FastAPI + PyTorch + MobileNetV3 + ONNX

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages