docs: add KNEO-Academy vs Edge AI Platform comparison report
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
1a08a2599a
commit
c9d56a62e2
370
edge-ai-platform/docs/project-comparison-kneo-vs-edge-ai.md
Normal file
370
edge-ai-platform/docs/project-comparison-kneo-vs-edge-ai.md
Normal file
@ -0,0 +1,370 @@
|
||||
# 專案比較報告:KNEO-Academy vs Edge AI Platform
|
||||
|
||||
> **產出日期**:2026-04-08
|
||||
> **比較對象**:
|
||||
> - **KNEO-Academy**(`~/KNEO-Academy`)— Innovedus AI Playground,Windows 桌面應用
|
||||
> - **Edge AI Platform**(`~/Innovedus/edge-ai-platform/`)— 邊緣 AI 開發平台,Web 服務
|
||||
> **目的**:釐清兩個功能相似專案之間的差異,作為後續策略決策的依據
|
||||
|
||||
---
|
||||
|
||||
## 摘要(TL;DR)
|
||||
|
||||
兩個專案都是 Kneron NPU 的 AI 推論解決方案,但**定位完全不同**:
|
||||
|
||||
- **KNEO-Academy** 是 **「Kneron 官方體驗 App」**:Python + PyQt5 桌面程式,訴求零程式碼、插電即用,主要用於銷售 Demo 和客戶 PoC。
|
||||
- **Edge AI Platform** 是 **「開發者完整工具平台」**:Go + Next.js Web 架構,訴求跨平台、可遠端、可叢集、可雲部署,主要給開發者和研究人員使用。
|
||||
|
||||
兩者功能重疊度約 60%,但各自有明顯獨有的能力,可以互相借鏡或在策略上做區隔/合併。
|
||||
|
||||
---
|
||||
|
||||
## 一、定位與目標市場
|
||||
|
||||
| 維度 | KNEO-Academy | Edge AI Platform |
|
||||
|------|--------------|------------------|
|
||||
| **產品類型** | Windows 桌面應用程式(.exe) | Web 平台(可安裝為本機服務) |
|
||||
| **目標場景** | 客戶 PoC、銷售 Demo、零程式碼體驗 | 開發者/研究者的完整工作台 |
|
||||
| **目標用戶** | 非技術人員、業務、客戶 | 工程師、AI 研究者、運維人員 |
|
||||
| **互動模式** | PyQt5 原生桌面 GUI | 瀏覽器 Web UI |
|
||||
| **使用門檻** | 雙擊 exe 即用 | 安裝後透過瀏覽器存取 |
|
||||
| **授權控制** | Server 登入 + Dongle 授權(設計中) | 無(開源風格) |
|
||||
| **商業模式** | 授權制(可能與硬體銷售綁定) | 待定 |
|
||||
|
||||
**一句話總結**:KNEO-Academy 像是 **「Kneron 官方體驗展示 App」**,Edge AI Platform 則是 **「開發者的完整工具平台」**。
|
||||
|
||||
---
|
||||
|
||||
## 二、技術堆疊對照
|
||||
|
||||
| 維度 | KNEO-Academy | Edge AI Platform |
|
||||
|------|--------------|------------------|
|
||||
| **主要語言** | Python 3.12(單一) | Go 1.26 + TypeScript/React |
|
||||
| **UI 框架** | PyQt5(桌面原生) | Next.js 16 + React 19 + shadcn/ui + TailwindCSS 4 |
|
||||
| **架構模式** | MVC + Service Layer | 前後端分離(REST + WebSocket) |
|
||||
| **程序間通訊** | Qt Signal/Slot(單一程序內) | HTTP API + WebSocket(跨程序) |
|
||||
| **硬體介面** | KneronPLUS Python SDK 直接呼叫 | Go → Python JSON-RPC Bridge |
|
||||
| **打包工具** | PyInstaller + PyArmor 加密 | GoReleaser 跨平台 + Wails GUI 安裝程式 |
|
||||
| **平台支援** | **僅 Windows** | **macOS / Windows / Linux 三平台** |
|
||||
| **程式規模** | 數十個 Python 檔 + uxui 資源 | 118 個 TS/TSX + 7,333 行 Go |
|
||||
| **資料儲存** | `%LOCALAPPDATA%/Kneron_Academy/` | 記憶體為主(無持久化資料庫) |
|
||||
| **AI 相關依賴** | TF、PyTorch、Keras、ONNX、OpenCV、librosa | FFmpeg、yt-dlp、KneronPLUS(精簡) |
|
||||
|
||||
---
|
||||
|
||||
## 三、功能對照表(Feature by Feature)
|
||||
|
||||
> 標示說明:✅ 完整支援 ⚠️ 部分支援 / 設計中 ❌ 不支援 🆕 此項為該專案獨有
|
||||
|
||||
### 3.1 設備管理
|
||||
|
||||
| 功能 | KNEO-Academy | Edge AI Platform |
|
||||
|------|:---:|:---:|
|
||||
| USB 掃描 | ✅ | ✅ |
|
||||
| 設備連線 / 斷線 | ✅ | ✅ |
|
||||
| 韌體上傳 / 更新 | ✅ | ✅ |
|
||||
| KL520 支援 | ✅ | ✅ |
|
||||
| KL720 支援 | ✅ | ✅ |
|
||||
| KL730 支援 | ⚠️ 僅 enum | ✅ |
|
||||
| 設備驅動自動安裝 | ⚠️ 設計中 | ✅ WinUSB 自動安裝(UAC 提權) |
|
||||
| 設備事件即時串流 | ❌(PyQt signal 內部) | ✅ WebSocket |
|
||||
|
||||
### 3.2 推論能力
|
||||
|
||||
| 功能 | KNEO-Academy | Edge AI Platform |
|
||||
|------|:---:|:---:|
|
||||
| 單圖推論 | ✅ | ✅ |
|
||||
| 攝影機即時推論 | ✅ | ✅ |
|
||||
| **批次圖像推論** | ❌ | ✅ 🆕 |
|
||||
| **影片檔逐幀推論** | ❌ | ✅ 🆕 |
|
||||
| **YouTube / URL 串流推論** | ❌ | ✅ 🆕 |
|
||||
| **多設備叢集推論** | ❌ | ⚠️ 未完成(後端有 Weighted RR 派發骨架,但未接通輸入源;前端 workspace 缺攝影機/媒體介面;實測有多項問題) |
|
||||
| 自訂模型上傳 (.nef) | ✅ | ✅ |
|
||||
| YOLO 後處理 | ✅ | ✅ |
|
||||
| 自訂 class labels | ✅ | ✅ |
|
||||
|
||||
### 3.3 模型管理
|
||||
|
||||
| 功能 | KNEO-Academy | Edge AI Platform |
|
||||
|------|:---:|:---:|
|
||||
| 內建模型庫 | ✅(JSON plugin 系統) | ✅(10+ 模型) |
|
||||
| 模型過濾 / 分類 | ⚠️ | ✅ |
|
||||
| 模型上傳 | ✅ | ✅ |
|
||||
| 設備相容性宣告 | ✅(每個模型宣告支援哪些晶片) | ✅ |
|
||||
| **動態 script 載入** | ✅ 🆕(plugin 架構) | ❌ |
|
||||
|
||||
### 3.4 媒體與錄製
|
||||
|
||||
| 功能 | KNEO-Academy | Edge AI Platform |
|
||||
|------|:---:|:---:|
|
||||
| **螢幕截圖** | ✅ 🆕 | ❌ |
|
||||
| **視訊錄影(AVI / XVID)** | ✅ 🆕 | ❌ |
|
||||
| **音訊錄音** | ✅ 🆕 | ❌ |
|
||||
| FFmpeg 串流 | ❌ | ✅ 🆕 |
|
||||
| MJPEG 串流 | ❌ | ✅ 🆕 |
|
||||
| 圖片上傳 | ✅ | ✅ |
|
||||
| 影片上傳 | ⚠️ 基礎架構 | ✅ |
|
||||
|
||||
### 3.5 使用者系統與存取控制
|
||||
|
||||
| 功能 | KNEO-Academy | Edge AI Platform |
|
||||
|------|:---:|:---:|
|
||||
| **登入認證(帳密)** | ✅ 🆕 Server 驗證 | ❌ |
|
||||
| **存取控制分級** | ✅ 🆕 Utilities 需登入 | ❌ |
|
||||
| **Dongle 授權驗證** | ⚠️ 設計中 🆕 | ❌ |
|
||||
| **購買模型下載** | ⚠️ Mock 資料 🆕 | ❌ |
|
||||
|
||||
### 3.6 系統與運維
|
||||
|
||||
| 功能 | KNEO-Academy | Edge AI Platform |
|
||||
|------|:---:|:---:|
|
||||
| 健康檢查 API | ❌ | ✅ 🆕 |
|
||||
| 自動更新機制 | ❌ | ✅ 🆕 |
|
||||
| 依賴檢查 | ❌ | ✅ 🆕 |
|
||||
| 即時日誌串流 | ❌ | ✅ 🆕 |
|
||||
| **遠端存取(中繼隧道)** | ❌ | ✅ 🆕 |
|
||||
| Nginx 反向代理 | ❌ | ✅ 🆕 |
|
||||
| **Docker 部署** | ❌ | ✅ 🆕 |
|
||||
| **Kubernetes / 雲部署腳本** | ❌ | ✅ 🆕(AWS S3/CloudFront/EC2) |
|
||||
| GitHub Actions CI/CD | ❌ | ✅ 🆕 |
|
||||
|
||||
### 3.7 使用者體驗
|
||||
|
||||
| 功能 | KNEO-Academy | Edge AI Platform |
|
||||
|------|:---:|:---:|
|
||||
| 導覽教學 | ❌ | ✅ 🆕(driver.js) |
|
||||
| **模擬模式(無硬體)** | ❌ | ✅ 🆕 |
|
||||
| Dark Mode | ✅(#143058 主題) | ✅ |
|
||||
| 響應式排版 | ✅(Qt auto-layout) | ✅(Web responsive) |
|
||||
| 多語系支援 | ⚠️(語言選項有) | ⚠️ |
|
||||
|
||||
### 3.8 效能優化
|
||||
|
||||
| 功能 | KNEO-Academy | Edge AI Platform |
|
||||
|------|:---:|:---:|
|
||||
| **MSE 靜態幀跳過** | ✅ 🆕(相似畫面不重複推論) | ❌(待確認) |
|
||||
| Frame Queue(max 5) | ✅ | ⚠️ |
|
||||
| 最小推論間隔控制 | ✅ 🆕(預設 2s) | ⚠️ |
|
||||
| 非阻塞工作執行緒 | ✅(QThread) | ✅(Go goroutine) |
|
||||
|
||||
---
|
||||
|
||||
## 四、架構哲學對比
|
||||
|
||||
### 4.1 KNEO-Academy:單體桌面應用
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ PyQt5 Main Event Loop │
|
||||
│ ┌───────────┐ ┌───────────────────────┐ │
|
||||
│ │ Views │──│ Controllers │ │
|
||||
│ │ (Windows) │ │ (Device/Inference/..) │ │
|
||||
│ └───────────┘ └───────────┬───────────┘ │
|
||||
│ │ │
|
||||
│ ┌──────────────┐ ┌────────▼───────────┐ │
|
||||
│ │ Workers │ │ Services │ │
|
||||
│ │ (VideoThread │ │ (Device/File/...) │ │
|
||||
│ │ InferWork) │ └────────┬───────────┘ │
|
||||
│ └──────────────┘ │ │
|
||||
│ ▼ │
|
||||
│ KneronPLUS Python SDK │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ USB Device │
|
||||
└─────────────────────────────────────────────┘
|
||||
單一 Python 程序 / Qt Signal 通訊
|
||||
```
|
||||
|
||||
**優點**:
|
||||
- 啟動快速
|
||||
- 安裝包單一 EXE
|
||||
- Qt Signal/Slot 即時性高
|
||||
- UI 層與業務層耦合少(MVC)
|
||||
|
||||
**缺點**:
|
||||
- **只能 Windows**
|
||||
- 不能遠端存取
|
||||
- 不易擴展為多機/叢集
|
||||
- Python GIL 對高並發有限制
|
||||
|
||||
---
|
||||
|
||||
### 4.2 Edge AI Platform:前後端分離 + 本機服務
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────┐
|
||||
│ Browser Client │
|
||||
│ Next.js 16 + React 19 SPA │
|
||||
└────────────────────┬─────────────────────────────────┘
|
||||
│ HTTP / WebSocket
|
||||
▼
|
||||
┌──────────────────────────────────────────────────────┐
|
||||
│ Go Server (Gin + gorilla/ws) │
|
||||
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
|
||||
│ │ REST API │ │ WebSocket │ │ Embedded │ │
|
||||
│ │ Handlers │ │ Handlers │ │ Frontend │ │
|
||||
│ └──────┬─────┘ └──────┬─────┘ └────────────┘ │
|
||||
│ │ │ │
|
||||
│ ┌──────▼───────────────▼──────────────┐ │
|
||||
│ │ Internal Packages │ │
|
||||
│ │ device / cluster / inference / │ │
|
||||
│ │ camera / model / flash / tunnel │ │
|
||||
│ └──────────────────┬───────────────────┘ │
|
||||
│ │ JSON-RPC over stdin/stdout │
|
||||
│ ▼ │
|
||||
│ Python Bridge (venv) │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ USB Device │
|
||||
└──────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**優點**:
|
||||
- **跨三平台**(macOS/Windows/Linux)
|
||||
- 可遠端存取(tunnel/nginx)
|
||||
- 可叢集(多設備並行推論)
|
||||
- 可雲部署(Docker/AWS)
|
||||
- 可觀測性強(健康檢查/日誌/指標)
|
||||
- 前後端可獨立演進
|
||||
|
||||
**缺點**:
|
||||
- 架構較複雜
|
||||
- 啟動稍慢(多層初始化)
|
||||
- 多一層跨程序通訊(Go↔Python)
|
||||
- 需要管理前後端雙技術棧
|
||||
|
||||
---
|
||||
|
||||
## 五、獨有功能清單
|
||||
|
||||
### 5.1 KNEO-Academy 有而 Edge AI Platform 沒有
|
||||
|
||||
1. **視訊錄影功能** — 可把推論結果的影像串流錄成 AVI 檔(XVID codec)
|
||||
2. **音訊錄音** — 同步錄製麥克風音訊
|
||||
3. **螢幕截圖** — 一鍵儲存當前推論畫面為 PNG/JPG
|
||||
4. **使用者登入系統** — Server 驗證帳密
|
||||
5. **Dongle 授權機制** — 商業授權流程(設計中)
|
||||
6. **購買模型下載** — 從 Server 下載已購買的商業模型(Mock)
|
||||
7. **MSE 幀變化偵測優化** — 靜態畫面自動跳過推論,省運算資源
|
||||
8. **零程式碼體驗導向 UI** — 介面設計更貼近非技術用戶
|
||||
9. **PyArmor 程式碼加密** — 保護商業邏輯,防止反編譯
|
||||
10. **Dynamic Script Plugin 系統** — 透過 JSON config + Python script 擴充模型,無需改程式
|
||||
|
||||
### 5.2 Edge AI Platform 有而 KNEO-Academy 沒有
|
||||
|
||||
1. **叢集推論** — ⚠️ 未完成。後端有 Weighted Round-Robin 派發器骨架(dispatcher + pipeline),但未接通攝影機/媒體輸入源;前端 workspace 只有文字結果和效能面板,缺少攝影機畫面、媒體選擇、bounding box 視覺化;實測有多項問題待修
|
||||
2. **批次圖像推論** — 多圖順序處理
|
||||
3. **影片檔逐幀推論** — 完整影片處理流程
|
||||
4. **YouTube / URL 串流推論** — 遠端媒體來源
|
||||
5. **Web UI** — 跨平台、可遠端存取、瀏覽器即用
|
||||
6. **遠端中繼隧道(Tunnel)** — 可穿透 NAT 遠端存取
|
||||
7. **Nginx 反向代理** — 生產級部署
|
||||
8. **Docker 容器化部署** — 雲端部署支援
|
||||
9. **自動更新系統** — 線上升級
|
||||
10. **健康檢查 / 依賴檢查 / 指標** — 完整可觀測性
|
||||
11. **即時日誌串流** — WebSocket 推送日誌
|
||||
12. **跨三平台安裝程式** — macOS / Windows / Linux 都有 GUI 安裝程式
|
||||
13. **模擬模式(Mock)** — 無硬體也能開發測試
|
||||
14. **導覽教學** — driver.js 新手引導
|
||||
15. **GoReleaser CI/CD** — 自動化發布流程
|
||||
16. **叢集韌體刷寫** — 一次刷多台設備
|
||||
|
||||
---
|
||||
|
||||
## 六、重疊功能分析
|
||||
|
||||
兩者**共同擁有**的核心能力(約 40% 的功能重疊):
|
||||
|
||||
| 功能 | 說明 |
|
||||
|------|------|
|
||||
| USB 設備掃描與連線 | 兩邊都支援自動偵測 Kneron USB dongle |
|
||||
| 韌體上傳更新 | 兩邊都能上傳 fw_scpu.bin + fw_ncpu.bin |
|
||||
| KL520 / KL720 | 兩邊都完整支援 |
|
||||
| 單圖推論 | 上傳一張圖執行推論 |
|
||||
| 即時攝影機推論 | OpenCV / FFmpeg 擷取即時畫面 |
|
||||
| 自訂 .nef 模型上傳 | 支援使用者自備模型 |
|
||||
| YOLO 後處理 + NMS | 物件偵測結果解析 |
|
||||
| 自訂 class labels | 非 COCO 類別支援 |
|
||||
| Bounding box 視覺化 | 結果疊加到畫面上 |
|
||||
|
||||
---
|
||||
|
||||
## 七、策略建議
|
||||
|
||||
以下是幾個值得思考的方向:
|
||||
|
||||
### 方向 A:**差異化共存**(維持兩個獨立產品)
|
||||
|
||||
- **KNEO-Academy** 定位為「**體驗展示 / 銷售 Demo 工具**」,強化錄影/錄音/截圖、授權驗證、零程式碼體驗
|
||||
- **Edge AI Platform** 定位為「**開發者平台 / 生產部署工具**」,強化叢集、遠端、可觀測性、跨平台
|
||||
- 優點:各司其職,目標客群清楚
|
||||
- 缺點:兩邊都要維護,資源分散
|
||||
|
||||
### 方向 B:**功能互補合併**(以 Edge AI Platform 為主)
|
||||
|
||||
將 KNEO-Academy 的獨有功能移植到 Edge AI Platform:
|
||||
1. **優先**:錄影 / 錄音 / 截圖(補齊媒體輸出,技術難度低)
|
||||
2. **中期**:MSE 幀變化偵測優化(提升效能,實作簡單)
|
||||
3. **長期**:使用者系統 + Dongle 授權(商業化需要)
|
||||
|
||||
優點:集中資源、統一產品、同時具備兩邊優勢
|
||||
缺點:Web UI 的桌面原生體驗不如 PyQt5
|
||||
|
||||
### 方向 C:**分層架構**(Edge AI Platform 為引擎,KNEO-Academy 為前端)
|
||||
|
||||
- Edge AI Platform 當作推論引擎 / 後端服務
|
||||
- KNEO-Academy 改為呼叫 Edge AI Platform 的 API(取代 KneronPLUS 直接呼叫)
|
||||
- 兩邊共用底層設備管理、模型管理、推論邏輯
|
||||
- 優點:程式碼重用最大化
|
||||
- 缺點:改造成本高,需要重構 KNEO-Academy 的 controller 層
|
||||
|
||||
---
|
||||
|
||||
## 八、快速獲益的移植清單
|
||||
|
||||
如果決定把 KNEO-Academy 的功能移植到 Edge AI Platform,按 ROI 排序:
|
||||
|
||||
| 優先 | 功能 | 難度 | 價值 | 說明 |
|
||||
|:----:|------|:----:|:----:|------|
|
||||
| 🔥 P0 | 錄影功能 | 低 | 高 | 前端用 MediaRecorder API 或後端 FFmpeg 錄製 MJPEG stream |
|
||||
| 🔥 P0 | 螢幕截圖 | 極低 | 高 | 前端直接 canvas.toBlob() 就能實現 |
|
||||
| 🔥 P0 | MSE 幀優化 | 低 | 中 | 在推論 pipeline 加入 frame diff 檢測 |
|
||||
| ⭐ P1 | 音訊錄製 | 中 | 中 | 需要新增音訊 pipeline |
|
||||
| ⭐ P1 | Plugin Script 系統 | 中 | 中 | 讓使用者上傳推論 script,不只是 .nef |
|
||||
| 💤 P2 | 登入認證 | 高 | 高 | 需要 Server + JWT + RBAC 完整規劃 |
|
||||
| 💤 P2 | Dongle 授權 | 高 | 高 | 商業化時再做 |
|
||||
|
||||
---
|
||||
|
||||
## 九、未決問題(待使用者決策)
|
||||
|
||||
1. ❓ 兩個專案要共存、合併、還是分層?
|
||||
2. ❓ KNEO-Academy 是否已有客戶在使用?(影響改動的包袱)
|
||||
3. ❓ 是否要把錄影 / 截圖等功能優先移植到 Edge AI Platform?
|
||||
4. ❓ 商業授權機制是否是下一階段重點?
|
||||
5. ❓ 產品對外名稱要統一嗎?(Innovedus AI Playground vs Edge AI Platform)
|
||||
|
||||
---
|
||||
|
||||
## 附錄:檔案位置參考
|
||||
|
||||
### KNEO-Academy 關鍵檔案
|
||||
- 入口:`~/KNEO-Academy/main.py`
|
||||
- 設備控制:`~/KNEO-Academy/src/controllers/device_controller.py`
|
||||
- 推論控制:`~/KNEO-Academy/src/controllers/inference_controller.py`
|
||||
- 媒體控制:`~/KNEO-Academy/src/controllers/media_controller.py`(含錄影/錄音)
|
||||
- 主視窗:`~/KNEO-Academy/src/views/mainWindows.py`
|
||||
- 流程圖:`~/KNEO-Academy/flowchart.md`
|
||||
- PRD:`~/KNEO-Academy/.autoflow/02-prd/PRD.md`
|
||||
|
||||
### Edge AI Platform 關鍵檔案
|
||||
- 前端:`~/Innovedus/edge-ai-platform/edge-ai-platform/frontend/`
|
||||
- 後端:`~/Innovedus/edge-ai-platform/edge-ai-platform/server/`
|
||||
- 安裝程式:`~/Innovedus/edge-ai-platform/edge-ai-platform/installer/`
|
||||
- PRD v3.4:`~/Innovedus/edge-ai-platform/edge-ai-platform/docs/PRD-Integrated.md`
|
||||
- TDD v2.3:`~/Innovedus/edge-ai-platform/edge-ai-platform/docs/TDD.md`
|
||||
|
||||
---
|
||||
|
||||
*報告產出:Autoflow Orchestrator*
|
||||
*最後更新:2026-04-08*
|
||||
Loading…
x
Reference in New Issue
Block a user