# ============================================================ # ระบบสแกนป้ายทะเบียนรถบรรทุกไทย — Backend dependencies # ติดตั้ง: pip install -r requirements.txt # ต้องใช้ Python 3.10 / 3.11 / 3.12 # ============================================================ # ---------- Web framework ---------- fastapi==0.115.6 uvicorn[standard]==0.34.0 pydantic==2.10.4 python-multipart==0.0.20 python-dotenv==1.0.1 # ---------- Stage 1: ตรวจจับป้ายทะเบียน ---------- # ultralytics จะดึง opencv-python มาให้เอง จึงไม่ระบุ opencv ซ้ำในไฟล์นี้ # (เคยระบุ opencv-python-headless ไว้ ทำให้ลง opencv สองตัวในเครื่องเดียวกัน) ultralytics==8.3.58 # ---------- Stage 2: อ่านตัวอักษรไทย/อังกฤษ ---------- easyocr==1.7.2 # ---------- ประมวลผลภาพ ---------- # สำคัญ: ต้องเป็น numpy 2.x # # เดิมไฟล์นี้ตรึงไว้ที่ numpy==1.26.4 ซึ่ง "ผิด" และทำให้เซิร์ฟเวอร์สตาร์ทไม่ขึ้น # เพราะ easyocr ดึง scipy / scikit-image / pandas รุ่นใหม่มาด้วย ซึ่งทุกตัว # ถูก compile มากับ ABI ของ numpy 2.x พอเจอ numpy 1.26 จะ error ทันทีว่า # "A module that was compiled using NumPy 2.x cannot be run in NumPy 1.x" # ชุดที่ทดสอบแล้วว่าใช้งานได้จริง: numpy 2.4.4 + scipy 1.17.1 + scikit-image 0.26 numpy>=2.1,<3 Pillow>=11.0,<13 # ---------- ฐานข้อมูล (จำเป็นเฉพาะเมื่อ USE_MYSQL=true) ---------- mysql-connector-python==9.1.0 # ============================================================ # หมายเหตุเรื่อง PyTorch # ultralytics และ easyocr จะดึง torch มาให้อัตโนมัติ # ถ้าเครื่องเซิร์ฟเวอร์ไม่มีการ์ดจอ NVIDIA ให้ติดตั้งเวอร์ชัน CPU ก่อน # เพื่อประหยัดพื้นที่ (ลดจาก ~2.5 GB เหลือ ~200 MB): # # pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu # # แล้วค่อยรัน pip install -r requirements.txt ตามปกติ # ============================================================