港口碼頭每天有幾百個貨櫃進出,每一櫃都得拍照存證、建檔備查;偏偏現場常是戶外、訊號不穩,靠人工在手機上敲 11 碼櫃號,既慢又容易打錯。我們為某港口貨櫃碼頭營運商打造的,是一套把「拍照、辨識、上傳、歸檔」串成一條龍的系統:現場人員用 Android App 對著貨櫃拍照,影像辨識自動帶出櫃號、逐張上傳,斷網也能先存本機、恢復連線再自動補傳;後台則把每張照片依年、月、日、櫃號自動歸位。也就是說,每個貨櫃的進出都留得下照片、事後幾秒就查得到,不會因為人手鍵錯或現場斷訊而漏拍漏傳。
現場對著貨櫃拍照,App 以 Google ML Kit 影像辨識自動讀出照片上的文字,再依 ISO 6346 國際櫃號格式(4 碼英文+7 碼數字)自動組出櫃號。也就是說,現場人員不必一個字一個字手動輸入 11 碼櫃號,拍照就帶出來,少了打錯的機會。
OCR 常把 O 看成 0、A 看成 4、R 看成 9;系統依櫃號每一段該是英文還是數字的規則自動校正,並支援多種匹配模式,即使部分字元辨識失敗,也能組出最可能的櫃號。也就是說,辨識準確率不靠「拍得剛剛好」,而是靠規則把常見誤判補回來。
碼頭現場訊號常不穩。無網路時,拍照與建檔照樣進行、資料先存在手機本機的資料庫;App 也會偵測網路狀態,一旦連線恢復就自動把待傳的照片補傳完成。也就是說,作業不會因為訊號斷掉而卡住,現場人員不必站在原地等訊號。
每一張照片獨立記錄上傳狀態,整批上傳到一半斷線,恢復後只補傳沒成功的那幾張,不必整批重來;後台若發現某張失敗,也能單張重送。也就是說,上傳失敗不會讓整批作業前功盡棄,省下重拍重傳的時間與流量。
上傳的照片,後台自動依「年 → 月 → 日 → 櫃號」四層結構歸位;管理者依日期層層展開就能找到某天某櫃的所有照片,也能依日期區間與櫃號搜尋。也就是說,幾十萬張存證照片不再是一個大資料夾,而是能依時間與櫃號快速定位。
櫃號打錯或需要調整時可直接更名,若當天已有同櫃號則自動把照片合併;查閱時可依年 / 月 / 日或單一櫃號打包成 ZIP 一次下載,ZIP 內還原成年月日資料夾結構。也就是說,事後修正與資料調閱都在後台點一點就完成,不必進伺服器搬檔案。
這套系統前端是 Kotlin 的 Android App(CameraX 拍照、ML Kit 辨識、Room 本機資料庫),後端是 Ruby on Rails 搭配 Grape API。框架與套件的選擇只是基礎,我們在碼頭現場花最多心力處理的,是以下三件事。
客戶原本打算採購商用 OCR 引擎;我們評估後判斷,用行動平台內建、免額外授權費的影像辨識 SDK(Android 的 ML Kit)就足以辨識櫃號,替客戶省下這筆長期成本。SDK 負責讀出文字,把文字組成正確櫃號則靠我們自訂的格式分析——正則驗證、多段匹配、相似字元校正。也就是說,辨識結果可控、可調規則,成本也一併省下。
App 用本機資料庫先落地任務與照片,上傳交給背景服務執行,切到背景或鎖屏都不中斷;再搭配網路狀態監聽,斷線自動排隊、恢復自動重傳。也就是說,「先存本機、再慢慢傳」是寫進架構裡的機制,弱網環境下能不能撐住,不必碰運氣。
上傳設計成「建立任務 → 逐張上傳 → 確認完成」三步,每張照片的成敗都查得到、補得回。照片上傳前還會自動壓縮到合理大小、依 EXIF 校正方向,減少頻寬與辨識干擾。也就是說,在頻寬有限的現場,系統傳的是「剛好夠用」的照片,而不是原始大圖硬塞。
以下這些原本靠人工的環節,系統都自動接手了:櫃號從手動輸入變成拍照自動辨識與校正;上傳從「斷了要重來」變成斷點續傳、網路恢復自動補傳;歸檔從人工分資料夾變成依年月日與櫃號自動歸位;連超過保留期限的舊資料與日誌,也由背景排程自動清理,不必人工顧硬碟空間。對營運方來說,等於把碼頭現場每天幾百次的拍照存證,變成一條從辨識、上傳到歸檔都自動接續的流程。
取決於功能範圍。若包含行動端 OCR 辨識、離線續傳與後台歸檔管理,屬於中大型專案;影響報價的主因是辨識準確度要求、離線與續傳的可靠度,以及後台管理與報表的複雜度。建議先列出必要功能,我們可以依範圍提供分階段的報價方案。
常見時程約 4 到 8 個月:需求釐清與流程設計約 1–2 個月,行動端 App 與後台開發、辨識調校與測試約 3–5 個月,最後是現場實測與上線輔導。若分階段上線(先做拍照上傳與歸檔、再強化辨識與報表),第一個版本可以更快進到現場試用。
系統以 Google ML Kit 進行 OCR 文字辨識,再套用 ISO 6346 櫃號格式驗證與相似字元校正(如 O/0、A/4、R/9),並支援多種匹配模式來提高準確率。辨識結果會顯示在可編輯的櫃號欄位,現場人員可在送出前手動確認或修正,兼顧自動化與正確性。
可以。系統採離線優先設計,無網路時照樣拍照、建檔,資料先存在手機本機資料庫;App 會偵測網路狀態,連線恢復後自動把待傳照片補傳完成,並支援斷點續傳與單張重傳,不必整批重來。
可以。系統透過 RESTful API 與後端溝通,也提供 API 文件;客製化開發的系統可透過 API 與既有的港口作業、倉儲或 ERP 系統串接,讓辨識與歸檔的資料雙向同步,不必更換現有系統——這也是客製化開發相對套裝軟體的主要優勢。