部落格 · 指南

從你自己的照片到 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 中的「使用你的模型」指南會針對每種模型類型展示程式碼:如何載入模型、傳入一張照片、一段聲音、一列資料或一句話,以及如何讀取答案。

簡單的第一版只需要三樣東西:

  1. 一個用來拍照或選取照片的按鈕。
  2. 模型的答案,以及它的置信度。
  3. 一張關於結果的簡短卡片:在植物 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 和服務的資訊已於文章發布日期查證,日後可能有所變動。所有產品名稱均歸其所有者所有。

繼續閱讀

所有文章