圖片來源:Unsplash

訓練數據太多,如何去蕪存菁?以終為始的前期數據處理三步驟

文/若水 Flow AI Blog 編輯團隊

2021 年疫情再度來臨,帶起一波零接觸的自動化熱潮。春江水暖鴨先知,若水作為第一線接觸 AI 產業變化的數據處理團隊,發現到箇中值得留意的台灣 AI 產業微趨勢。

電腦視覺相關的 AI 應用,往往需要先收集大量的影像訓練數據。例如智慧城市的路口監視 AI 應用,需要收集大量的路口影像畫面;高齡者的居家智慧監控,或是 PCB 面板的瑕疵檢測應用,也需要收集大量不同動作、角度或遠近的影像。

這幾個月,洽詢電腦視覺相關 AI 數據處理的客戶量持續增加,很大一部分便是因著疫情帶動的服務深化、場景應用改變,回頭拉高對數據訓練的要求,例如辨識社交距離的 AI 模型。有些團隊使用目標人物之底部中心點的距離來判斷,有些則用頭部與頭部之間的距離來判斷,因而帶動不同視角下的人物、頭部數據收集與標註需求。

面對這麼多數據,該如何用最輕省的方式處理,降低商業成本?每次與客戶相談的過程中,我們看見在前期階段卡關的客戶,經常遇到這兩個問題:

  1. 不知道如何收集數據,以為數據越多越好
  2. 不知道大量數據需要先被清理、分類

而在這兩點之前,還有一個很重要的地方需要先被釐清,那就是以終為始的數據思維:

著手收集數據前,請先釐清模型訓練的目的

圖片來源:Unsplash

以智慧交通為例,唯有開發團隊知道希望 AI 模型學會辨識的是交通工具種類、行人的行為,還是單純的車流監控,才能避免「所有數據都想標註」的情況,真正對症下藥,做到精準、輕省的標註。

若水團隊整理了以終為始的前期數據處理三步驟,和大家分享我們自身的經驗以及業界常見做法。

圖片來源:Advantech

Step1:數據收集(data collection)

許多客戶在收集數據時往往有個迷思,以為擁有愈多數據愈有利,但其實大量數據裡面可能包含了許多根本不能用,或是不適用的髒數據。只有回到最初的專案目的來思考,收集到真正符合模型訓練用的數據,才是好數據。

舉例來說,行車紀錄器可能要視應用目的,注意選擇收集一天中的哪些時段,晴天還是雨天,並事前規劃好汽車行進路線,讓需要被機器學習的拍攝條件及目標物都能被收錄到。同時,也要注意各種數據的分布比例是否均衡?還是晴天的數據很多,卻忽略了雨天的數據等。

而半導體 PCB 產業的瑕疵檢測,通常會以 AOI 光學檢測加上 AI 輔助的方式,來取代高昂的人力檢驗成本。然而,單靠一台 AOI 無法滿足所有產線,導致一條產線上會有多台不同廠牌的 AOI 檢測機台,導致照出來的照片有機差。

如果事前能讓 AOI 機台做到機差變小、光源、拍攝角度、解析度等變異性降低再來收集數據,這時訓練出來的 AI 模型,就比較有可能做到跨機泛用,而不需要讓模型去訓練極端差異值的數據。

同時,無論哪種專案類型,模型訓練的再好,都要注意收集到的數據是否來自實際應用情境,才能確保 AI 專案落地時,不會發生無法適用於現場的窘境。

Step2:數據清理(data cleaning)

收集回來的數據,不代表全部都要使用,首先要去蕪存菁,過濾掉不需要的數據。

像是行車紀錄器的 FPS 影片數據往往數量龐大,不用每個畫面都拿來標註。而記錄器收回來的數據中,因為車子來來去去,難免會穿插著出現一段沒有任何目標物的畫面。業界比較常見的做法,是用程式輔以人力的方式來清理這些數據。

像行車紀錄器這類的影片專案,首先需要先將影片根據目標物的變化速度,搭配想達到的 AI 效能決定每秒影像切成多少畫格(frame),例如 FPS30 的原始影片每秒切 3 個 frame。接著,如果是切完 frame,或是純影像類的專案的話,可以使用 rule-based 或像 yolo v4 之類的 pretrained detection model,清除掉完全不含目標物的 frame,再用人工進行檢查與清理。

Step3:數據過濾(data filtering)

篩掉用不到的數據後,接著針對模型訓練目的,找出目標物件。如果團隊有簡易的 pre-trained model,可以先針對一批數據,辨識不同 frame 或是照片中可能存在的物件種類,做比較粗略的篩選。

例如,AI 模型訓練的目標是學會辨識腳踏車,但這批訓練數據含有汽車、行人、路標等較多的目標物,難以快速判別出那些數據裡面有出現腳踏車。此時可以先用 pre-trained model 大致辨識出有可能含有腳踏車的數據,主要著重在盡可能抓出所有可能含有腳踏車的數據,把 AI 模型的 recall 值拉高,而不會太在意數據的精準度,也就是 precision 的結果,便可降低需要靠人工逐一檢查的數據量,加快數據的準備,及早進入標註處理流程。

如果不希望數據裡面有某種容易混淆的目標物,也可以反向操作,先用 pre-trained model 篩掉它們,先留下比較乾淨的數據了,再以人工方式進行精確判讀。

以上幾個步驟,希望能提供大家一些數據處理的靈感。只是在處理數據的過程中,仍要多留意數據分佈是否符合應用情境及專案目的,關注抽樣數據與整批數據的目標物分佈狀況,避免見樹不見林,好不容易整理好數據,結果 AI 專案又走歪了。

💡 延伸閱讀:
數據教我的三件事,這麼做讓 AI 落地更精準!
智慧安防監控如何導入AI?數據標註策略是關鍵
【瑕疵檢測】PCB如何快速導入AI,若水用3招解決AOI高誤判率

【3分鐘看AI大事】6大模組解析Amazon優勢/全固態電池誰能奪勝/兩大零售搶進電子支付

【3分鐘看AI大事】中國AI四小龍少一尾/訓練數據太多怎解/微軟進軍醫療保健市場