這篇不是一套可以直接套用到所有 AI 拍照辨識產品的標準流程,而是我從實際工作經驗中整理出來的一些觀察。不同產品、資料來源與使用情境,都會影響流程該怎麼設計,因此真正落地時,還是需要持續測試、驗證與微調,才能找到比較適合當下產品的做法。
隨著 AI 越來越強,許多功能在規劃時,很容易讓人有一種錯覺:「直接丟給大模型就能解了。」尤其是拍照辨識這類功能,看起來更像是大模型就可以做到的。
用戶拍一張照片,AI 看圖,然後回答「這是什麼產品」。流程聽起來很合理,也很符合一般人對 AI 功能的想像。
但真正把這類功能放進產品裡,問題通常不只在於模型能不能看懂圖片。更麻煩的是後面這些問題:
- - 辨識要多準?
- - 每一次辨識的成本能不能接受?
- - 用戶願意等多久?
- - 哪些技術雖然更準,卻不一定最後放進流程?
- - AI 不確定時,要不要讓用戶補救?
- - 這次拍照產生的資料,能不能成為下一次不用再辨識的基礎?
看起來只是「拍照辨識」,實際上可能牽涉到多模態辨識、OCR / 文字辨識、搜尋補資料、資料庫比對與 LLM 整理判斷。LLM 只是其中一層,不是全部。
因此在拆這類問題時,我不會先把辨識結果好不好直接歸到模型,而是分開看:用戶想完成什麼、圖片到答案之間經過哪些步驟、哪些資料可以被保存與重新利用,以及辨識不完整時,產品要怎麼承接。
以下會以「消費品包裝辨識」這類情境,整理並回顧我在過往經歷中遇到的幾個坑。
第一個坑:讓 AI 每次都從零開始
很多時候在設計 AI 辨識功能時,直覺可能會是:用戶拍照後,就把圖片送進 AI,讓 AI 回傳結果。這如果是只作為 demo 階段的產品,串當前最強的 LLM 大模型基本上展示起來很有感。但只要進入真實產品,就會遇到成本和效率問題。
在某個情境中,同一個產品很可能被不同用戶反覆拍到。如果每一次都用戶拍照後需要重新進 AI,這不只等待時長會一直存在,成本也會隨著使用量逐漸放大。
所以遇到這類功能需求要運用在我負責的產品中,我就會開始思考:
每一次辨識產生的資料,能不能讓下一次不用再重新辨識?是否可以有其他解方?
對此,我認為理想狀態不是每次都讓 AI 從零開始判斷,而是需要考慮資料庫、資料累積與比對的運用。例如從產品設計角度,可以進一步思考:當資料逐漸累積成庫後,是否能先比對既有結果,只在資料不足或不確定時,才進入 AI 辨識。
這樣做不只是為了省成本,也會影響使用體驗。因為對用戶來說,他不會在意系統背後跑了幾層,只會在意自己能不能快速得到可用的結果。
但對公司方而言,AI 功能如果每次使用都只是消耗成本,卻沒有沉澱資料,就很難越用越好,也很難讓成本隨著資料累積慢慢被攤平。
因此在規劃這類功能時,我會把資料庫與資料運用一起考慮:這次辨識產生的結果,能不能被保存、比對與驗證,並在下一次遇到相同或相似產品時再次被利用。
第二個坑:把 OCR 當成產品辨識,但它知道這是哪個產品嗎 ?
另一個一開始很容易想到的方式,是直接用 OCR。因為從表面上看,用戶拍的是產品包裝,而包裝上通常會有文字。如果能把這些文字讀出來,看起來好像就能知道這是什麼產品。所以在規劃這類功能時,我一開始也會想:是不是只要把包裝文字讀出來,再整理成產品資料,就能完成辨識?
但其實這件事沒有那麼簡單。因為讀到文字,不等於認出產品!
OCR 解決的是「讀字」的問題,但產品辨識要解的是「這到底是哪一個產品」。這兩件事看起來很接近,但其實不是同一件事。
在某些情境中,用戶不一定會拍到完整正面。他可能只拍到局部標籤、包裝背面、側邊文字,或是某一段說明。這時候即使系統真的讀出了很多文字,也不代表它能準確知道這是哪一個產品。
更麻煩的是,消費品包裝常常有不同版本、不同地區規格、同系列相近品項,甚至包裝改版的情況。單靠 OCR,很可能只是讀到一些線索,卻不一定能判斷出產品的真實身分。
也就是說,如果把 OCR 放在主要辨識位置,就可能出現「文字讀到了,但產品判斷錯了」的情況。
「文字讀取」可能是產品辨識裡的其中一個解方或輔助線索,但它不適合直接等於「產品辨識」本身。真正要判斷產品身分,還是需要把包裝外觀、可讀文字、產品類型與其他上下文一起看。
因此在這類情境中,我會把 OCR 當成產品辨識的一部分,而不是產品辨識本身。它可以提供文字線索,但最後仍需要和包裝外觀、產品類型與其他資訊一起判斷。
第三個坑:以為丟給更聰明的大模型就能結束
當 OCR 不能單獨解決問題後,另一個很自然的想法就是:「那是不是直接丟給更聰明的大模型就好了?」這也是在規劃這類功能時,很容易直覺想到的解法。
既然現在 LLM 大模型越來越聰明,也可以看圖、讀文字、整理資訊,那為什麼不直接把圖片丟給最聰明的大模型,讓它自己搜尋、自己判斷,最後直接回傳答案?
可是當這件事要被放進產品流程裡時,問題就不只是模型夠不夠聰明,也不是只看它能不能看懂圖片。
每一次辨識要花多少成本、用戶要等多久,以及最後回來的答案能不能被產品穩定使用,都需要一起考慮。
如果只是依賴大模型本身已經學過的知識,會先遇到一個問題,那就是:「消費品更新速度太快了!」
市場上幾乎每天都可能有新產品、新包裝、新版本出現,但一個已經訓練好的模型,不可能同步知道所有最新商品。遇到剛推出、剛改版、比較冷門,或只在某些地區販售的產品時,就很可能認不出來,或只能給出不完整的判斷。
而且模型越強,通常也代表每一次調用的成本更高,等待時間也可能更長。所以問題不只是「它能不能回答」,而是這樣的成本與速度,適不適合放在一個會被反覆使用的產品流程裡。
那如果改成串有搜尋能力的大模型呢?
這確實可以補上「模型本身不知道最新產品」的問題,但搜尋能力不代表答案一定正確。搜尋回來的結果,可能是相似產品、同品牌其他系列、產品舊包裝,或看起來很接近但其實不是同一個產品的資料。
對用戶來說,他只是拍了一個產品;但對系統來說,這些細節都會影響最後判斷是不是同一個東西。加上每一次搜尋、整理、判斷都會增加等待時間和推理成本,所以在這個情境裡,問題就不只是「模型夠不夠聰明」,而是這套做法能不能被產品長期穩定使用。
搜尋可以補上模型原本不知道的新資料,但搜尋回來的結果仍然不能直接當成答案。
第四個坑:以為搜尋到就等於找到正確答案
當搜尋結果不能直接被當成答案時,就需要回頭拆開看:圖片到辨識結果之間,究竟經過了哪些步驟。一種可行的拆法,是先從圖片裡取得線索,再利用這些線索尋找可能的候選,最後判斷哪一個候選比較符合圖片裡的產品。
產品辨識不是用戶拍照後,AI 直接給一個最終答案,而是要先從圖片裡取得線索,再用這些線索去找可能的候選,最後再判斷哪一個候選比較像。
第一步,是從圖片裡抓基本線索。
這一層不是單純 OCR,也不是只看外觀,而是文字和視覺線索一起看。包裝上如果有品牌名、產品名或其他可讀文字,AI 會把它讀出來;如果文字不完整,或拍攝角度讓文字不清楚,AI 也會看包裝形狀、顏色、輪廓、瓶身特徵、出口樣式等線索。
例如牙膏這類產品,通常有比較明顯的管狀外型與擠壓開口,包裝比例也和一般瓶罐類產品不太一樣。AI 不一定能只靠這些外觀線索直接判斷出它是哪一款牙膏,但至少可以先縮小範圍:它比較可能是一個管狀、擠壓式的日用品,而不是瓶裝飲料、罐裝食品或其他完全不同類型的產品。
接著,系統會用這些文字和圖片線索去搜尋可能的產品候選。但這裡很容易被誤解。搜尋回來的候選,不等於正確答案。搜尋層比較像是先列出幾個可能選項。它可能找到 A、B、C 幾個看起來都像的產品,但這些候選裡面,到底哪一個才是圖片裡的產品,還需要再判斷。
後面的判斷可以把原始圖片、圖片裡讀到的文字、外觀線索,以及搜尋回來的候選資料放在一起比對:
哪一個候選比較符合圖片裡的產品?
哪些資訊和包裝上的線索對得上?
如果候選都不符合,是不是應該判斷為找不到?
這裡重要的是,不要因為搜尋結果裡有幾個相似產品,就一定要硬選一個最像的答案。因為消費品常常有不同容量、不同國家版本、不同包裝語言,也可能同一系列底下有好幾個很像的品項。對人來說,看起來可能只是「差不多的牙膏」,但對系統來說,只要判斷出錯,後面存下來的資料就可能不準。
所以在這個場景中,這類問題可以嘗試拆成:
圖片線索理解,
再搜尋可能候選,
再比對候選,
最後才產生基本辨識結果。
產品身分先被判斷後,其他背景資料也可以視情況再往後補齊,不一定要讓所有處理都擠在同一次等待裡。並且當結果出錯時,也比較容易回頭確認問題發生在圖片線索、搜尋候選,還是候選判斷。
第五個坑:不是所有提升準確率的方法都適合放進主流程
在 AI 辨識流程裡,還有一個很容易出現的想法:既然結果可能不夠準,那就再多加一層檢查。
例如在基本辨識結果、搜尋資料與整理結果都出來後,再讓 AI 用另一個角度回頭檢查:這是不是同一個產品?包裝文字與搜尋資料有沒有對上?哪些資訊比較可信?哪些地方需要保留不確定性?這類額外查證確實有機會讓結果更穩。
因為同一份資料用不同問題再問一次,AI 的注意力可能落在不同地方。就像人類在看一個產品,第一次先看產品名稱,第二次更注意包裝文字,第三次再回頭看整體資料是否一致。
但每多一層查證,就會增加一次等待與推理成本。
那麼,這個場景需不需要準到那個程度?
多出來的準確率,值不值得讓用戶多等?
公司能不能承受這一層長期累積下來的成本?
如果這功能是要用在醫療、金融或法律這類錯誤成本較高的情境,多做幾輪查證可能合理,用戶也比較可能接受更長的等待,換取更嚴謹的結果。
如果用戶只是想快速保存一個產品,情況就不太一樣。用戶不是在等待一份審核報告,而是在完成一個保存動作。等待太久不一定會覺得系統更嚴謹,反而可能覺得功能很慢,甚至懷疑是不是卡住了。
因此在這類重視操作速度、錯誤風險相對有限的場景中,額外查證是否值得放進主流程,仍需要衡量它帶來的準確率提升,能不能抵消增加的等待時間與成本。有些方法確實能讓結果更準,但不代表每一種都需要被放進用戶的主要操作流程。
第六個坑:當 AI 辨識失敗,用戶還能不能往下走?
最後一個很容易被忽略的地方,是只設計 AI 成功時的流程。
規劃這類功能時,很容易把注意力放在「AI 成功辨識後,要怎麼呈現結果」。例如它認出產品、補上資料、整理成可以保存的內容,這些都是比較好想像的成功狀態。但真實使用時,AI 不見得每一次都能完成。產品太新、照片角度不好、包裝文字不清楚,或搜尋到的候選都對不上,都可能讓辨識結果不完整。
這時候,如果流程只允許「AI 成功辨識」後才能繼續,用戶就會卡住。因為他可能只是想先保存這個產品,不一定需要系統當下就把所有資料辨識完整。所以這類功能需要一條 fallback 補救路徑,讓用戶在 AI 辨識不完整時,也能先補上必要資訊、保存資料、繼續往下走。
例如在某些情境中,雖然 AI 沒有完成整個產品辨識,但重要資訊其實就在產品外包裝上。這時候可以讓用戶針對局部細節再拍一次,透過 OCR 把產品名稱、標籤文字或其他關鍵資訊轉成紀錄。
但這個 fallback 的角色要很單純。它不是再做一套完整辨識流程,也不是重新搜尋一次產品,而是在自動辨識不完整時,讓用戶還有辦法補上最低限度的資訊、保存資料、避免整個流程因辨識不完整而中斷。
模型選擇不是一次決定,而是一路調整
我認為這類 AI 拍照辨識功能,它表面上像是模型能力問題,但真的放進產品裡,會變成流程設計與取捨問題。
不同環節需要的能力不一樣。有些地方要快,有些地方要準;有些地方只是搜尋候選,有些地方需要判斷候選,有些地方則要把資料整理成產品裡可以保存與使用的格式。
哪一層需要什麼能力?
哪一層可以使用比較輕的模型?
哪一層值得使用更強的模型?
哪一層如果變慢,會不會直接影響用戶體驗?
這也是為什麼這類流程可以用 multi-model 的方式思考,而不是期待一個模型完成所有事情。
不同模型可以放在不同位置,處理搜尋候選、判斷結果與整理資料等不同任務。這不代表模型越多越好,而是每一層使用的能力,要和它需要解決的問題相符。
且有時候看起來比較便宜的模型,可能因為效果不穩,後面需要更多補救;看起來比較貴的模型,也不一定代表整體成本更高,因為它可能減少其他處理成本。但這些不能只靠感覺判斷,也不能只用少量產品測試,否則很容易誤判某個組合比較便宜或穩定。
我認為比較合理的做法,還是要用不同新舊產品、不同地區版本、不同語言去測試,上線後,也需要根據累積的 log、回應速度、token 成本、成功率與準確率持續調整。