部落格 · 指南
從你自己的照片到 App Store,全部在 iPad 上完成
在 MagicaLCore 中訓練模型,在 Swift Playgrounds 中開發 App,再傳送到 App Store Connect。完整流程一步一步來,不需要 Mac。
作者:MagicaLCore ·
過去,一款用自己的模型來辨識事物的 App,每一步都需要 Mac:訓練工具、Xcode,還有一臺用來上傳建置版本的電腦。如今,一臺配備 M1 或更新晶片的 iPad 就能走完全程。以下以一個植物辨識 App 為例,說明各個環節如何銜接。
構想
挑一件你在意、而且能用相機、麥克風或一張資料表記錄下來的事:
- 從一張照片看出這是哪種室內植物?
- 從一段錄音聽出是哪種鳥在唱歌?
- 這句話是提問、抱怨還是稱讚?
- 從一張手的照片判斷是石頭、布還是剪刀?
範圍窄的問題比範圍廣的問題更好。「我陽台上這 8 種植物中的哪一種?」勝過「世界上所有的植物」。
第 1 步:收集範例
用 iPad 為每種植物拍照:不同角度、不同光線、近拍和遠拍。每種植物放進各自的資料夾,以植物名稱命名。這些名稱就會成為 App 顯示的標籤。每種植物留下幾張照片不參與訓練,用來測試。
第 2 步:在 MagicaLCore 中訓練
建立一個新的圖像模型,填寫名稱和作者,然後加入你的資料夾。先從預設設定開始。訓練時,留意訓練和驗證的準確率與損失。如果時間不夠,可以暫停,之後在歷史記錄中繼續。
第 3 步:測試困難的情況
把相機對準植物,看看每次預測的置信度。試試昏暗的角落、背景雜亂的葉子,或一株不在清單上的植物。模型出錯時,就加入更多類似的範例,再訓練一次。好的模型,正是在這樣的反覆循環中誕生的。
第 4 步:匯出 .mlmodel
匯出帶有名稱、作者和描述的模型,並存入「檔案」App。它可直接用於 Swift Playgrounds 和 Xcode。
第 5 步:在 Swift Playgrounds 中開發 App
Swift Playgrounds 是 Apple 的免費 App,可在 iPad 和 Mac 上編寫 Swift 程式碼、用 SwiftUI 開發 App。新建一個 App 專案,加入 .mlmodel,然後編寫畫面,輸入時即可即時預覽。MagicaLCore 中的「使用你的模型」指南會針對每種模型類型展示程式碼:如何載入模型、傳入一張照片、一段聲音、一列資料或一句話,以及如何讀取答案。
簡單的第一版只需要三樣東西:
- 一個用來拍照或選取照片的按鈕。
- 模型的答案,以及它的置信度。
- 一張關於結果的簡短卡片:在植物 App 裡,就是植物的名稱和照顧方法。
第 6 步:發布
App 在你的 iPad 上順利執行後,Swift Playgrounds 就能把它傳送到 App Store Connect。要在 App Store 上發布,你需要 Apple Developer Program 會員資格。如果之後需要更多功能,同一個專案也能在 Mac 上的 Xcode 中開啟。
小提醒
- 辨識在裝置上完成。 模型隨 App 一起發布,因此不需要伺服器就能給出答案,也不會把照片傳送到任何地方。
- 從小處開始,再逐步擴充。 先以少數幾個類別發布,收集到更多範例後再增加。
- 對使用者誠實。 顯示置信度,並說明 App 不知道哪些事。
給學生:Swift Student Challenge
Apple 每年都邀請學生,把自己製作的 App Playground 提交給 Swift Student Challenge。學生用自己的照片、聲音或資料訓練的模型,可以成為作品的核心,而且能離線運作。MagicaLCore 不屬於 Challenge,也與 Apple 沒有關聯,請閱讀當年的官方規則,並註明你使用的工具。
完整流程一覽
| 步驟 | App | 裝置 |
|---|---|---|
| 收集範例 | 相機、語音備忘錄、檔案 | iPad |
| 訓練和測試 | MagicaLCore | iPad |
| 匯出 .mlmodel | MagicaLCore | iPad |
| 開發 App | Swift Playgrounds | iPad |
| 傳送到 App Store Connect | Swift Playgrounds | iPad |
關於其他 App 和服務的資訊已於文章發布日期查證,日後可能有所變動。所有產品名稱均歸其所有者所有。
MagicaLCore