天天看點

工業視覺智能實戰經驗之IVI算法架構2.0

工業視覺智能實戰經驗之IVI算法架構2.0

作者 |

來源 | 阿裡技術公衆号

導語

工業視覺智能團隊在傳遞了多個工業視覺智能質檢項目後,發現了工業視覺智能的共性問題和解法,打造了工業視覺智能平台,通過平台的方式積累和提升工業視覺的通用能力。

在平台建設上最核心的能力是算法能力。算法能力包括不斷增強的單點算法能力和不斷擴充的新算法能力。那麼如何将算法能力輸出到平台呢?答案是算法架構。算法架構是算法能力的載體,通過它能夠将能力輸出到平台。同時通過算法架構,我們可以進行進行算法能力的研究和擴充。是以算法架構設計和演進對于算法能力不足的探查、算法能力增強、算法能力擴充和算法能力輸出都是至關重要的。

一 視覺AI架構應用在工業上的問題和我們的改進點

在圖像識别領域,分類、檢測、分割是使用最廣泛的算法。目前人臉、城市、醫療、工業、娛樂、安全等大量場景都需要圖像識别算法。在不同的場景或同個場景出現變化時,算法需要訓練或重新訓練。

現有的訓練架構的問題和我們的改進點:

  • 任務相容:
    • 問題分析:一般是處理單一類型問題(如檢測架構、分類架構、分割架構),這樣導緻訓練多個不同任務類型的算法(比如分類和檢測任務)時,往往需要使用多個架構。
    • 改進點:我們将工業上應用的主流任務相容在一個架構中。
  • 操作解耦:
    • 問題分析:一般在模型訓練時候資料處理、模型訓練和效果的評估往往是耦合的,這樣導緻訓練時需要按照耦合的流程進行訓練,使用相同資料訓練時需要不斷重複處理資料,模型訓練和效果評估不能同時進行,評估過程占用訓練時間和資源導緻無法高效執行。現有架構一般是基于固定的學術資料集進行訓練,在訓練到指定時間進行模型評估。
    • 改進點:我們将主要功能切分為八個子產品,可使用八個子產品建構需要的流程,流程建構過程靈活。本架構子產品之間是互相獨立的,可以獨立高效執行。
  • 評估展示:
    • 問題分析:現有的訓練架構一般沒有評估效果展示功能或隻有簡單的評估效果展示功能。由于現有訓練架構一般基于固定的學術資料集進行訓練,在評估時一般隻做簡單的性能名額展示。這樣導緻缺少訓練的模型評估效果展示或效果展示過于簡單,無法發現模型訓練和資料的問題。
    • 改進點:我們在模型評估子產品提供了詳細且經過實戰經驗驗證科學的評估内容,并且可以在工業視覺智能平台中展示,使用者可以發現模型訓練和資料本身的問題,進一步調整資料或訓練。
  • 資料集分析:
    • 問題分析:現有的訓練架構一般沒有資料集分析功能。這樣導緻無法在訓練之前發現資料集的特點,隻能使用預設配置或個人經驗去訓練模型。
    • 改進點:我們設計的架構含有詳細和科學的資料集分析功能,并且對齊資料集分析和模型訓練模型推理過程的一緻性,可以在訓練之前分析資料集的特征,減少盲目訓練的情況;
  • 資料處理可視化調試:
    • 問題分析:現有的訓練架構一般沒有資料處理和資料增強的可視化調試功能。這樣導緻無法檢視資料處理或資料增強的效果,無法确認單步資料處理效果和多部資料處理的疊加效果。
    • 改進點:我們在資料載入時采用可擴充設計,将可視化子產品嵌入到流程中,可以任意節點檢視資料效果。
  • 部署對接:
    • 問題分析:一般沒有與模型部署對接的部分。現有的訓練架構一般沒有與模型部署對接的部分。這樣導緻自己開發與部署對接,過程工作量大,耗時耗力且容易出錯;如果是不同任務類型的算法部署,則上述工作量需要翻倍。
    • 改進點:我們開發了模型轉換子產品和對應的一套模型部署架構和系統,可以快速将模型轉換到可以部署的狀态,并可以使用模型部署架構和系統運作。在多個任務中,本架構與對應配套部署架構已完成結果對齊,使用者無須進行相關開發;
  • 擴充性:
    • 問題分析:現有的訓練架構子產品的擴充性不強,子產品增加操作時比較麻煩。這樣導緻開發者難度提升,團隊合作開發難度大。
    • 改進點:本架構大多數子產品基于可擴充子產品開發,開發者需要按照要求開發操作即可嵌入到子產品中,降低開發難度且易于團隊開發。

二 IVI算法架構詳細介紹

IVI算法架構是一個子產品解耦可擴充的深度學習視覺模型訓練架構。該架構主要負責三個任務:分類、檢測、分割。該架構主要分為八個子產品:資料準備、配置生成、資料載入、資料集分析、模型訓練、模型推理、模型評估和模型轉換。資料準備子產品、資料載入子產品、資料集分析子產品、模型評估子產品是繼承于可擴充子產品的,子產品增加操作時隻需要根據擴充子產品的要求編寫操作即可。開發者開發難度下降,團隊合作開發更順暢。

工業視覺智能實戰經驗之IVI算法架構2.0

圖1:主要子產品示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖2:主要任務示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖3:可擴充子產品實作示意圖

可擴充子產品主要分為四個部分。流程配置檔案描述子產品使用的算子和算子執行的流程。算子執行流程分為初始化、建構和執行三種狀态。算子執行流程在初始化時,會根據算子系統資料庫獲得已注冊的算子集合。算子執行流程建構時,根據流程配置檔案,尋找算子注冊流程中已注冊的算子,并根據流程配置檔案的内容初始化算子,并根據流程配置檔案組合算子執行的流程。在算子執行流程執行時,根據算子執行流程對輸入資料進行操作。可擴充模型的擴充性主要展現在以下算子新增的擴充性和算子執行的擴充性兩個方面。算子新增的擴充性在增加新的算子時,隻需要按照固定規則将算子加入到算子集合中即可。算子執行的擴充性展現在算子執行是根據配置檔案描述進行的,配置檔案描述可以對算子執行順序、次數和參數等多方面進行控制。

以【阿裡雲的智能工業·工業視覺智能平台】的一個訓練任務為例,如圖4所示。在平台上開啟一個預設訓練任務,任務可以分為以下四個步驟:資料選擇、訓練、評估和模型提取。其中資料選擇部分會調用資料準備、配置生成、資料集分析的子產品。訓練部分會調用資料載入、模型訓練、模型推理和模型評估的子產品。評估部分會調用模型推理和模型評估子產品。模型提取部分會調用模型轉換子產品。

1 資料準備子產品

工業視覺智能實戰經驗之IVI算法架構2.0

圖4:平台訓練流程示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖5:資料準備子產品示意圖

資料準備子產品是繼承于可擴充子產品的。主要分為三個步驟。

  • 第一步讀取資料配置檔案。
  • 第二步根據資料配置檔案建構資料處理流程。
  • 第三步進行多任務相容的資料快速處理,根據資料處理流程将平台标注資料轉換為多任務相容的資料結構。多任務相容的資料結構為多任務相容的模型訓練提供基礎。
工業視覺智能實戰經驗之IVI算法架構2.0

圖6:平台資料準備示意圖

資料準備子產品的資料配置檔案由預設配置檔案和平台互動資訊融合獲得。如圖平台資料準備示意圖所示,左側添加資料集表示選擇的資料集。右側标簽選擇頁面的勾選表示選擇的類别。右側标簽選擇頁面的操作對應資料準備子產品算子。當在平台上添加資料集時會跳轉到下圖所示頁面,在此頁面可以勾選需要加入訓練的資料集。同時可以選擇資料集擴充倍數。

工業視覺智能實戰經驗之IVI算法架構2.0

圖7:平台添加資料集示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖8:資料準備子產品算子集合示意圖

資料準備子產品算子包括類别擴增、類别屏蔽、子圖切割、異常資料清洗、資料集劃分等算子。以類别擴增為例,如圖6所示,在阿裡雲的智能工業·工業視覺智能的平台上,可以針對指定标簽進行擴充且擴充倍數可選擇(如圖9所示)。

工業視覺智能實戰經驗之IVI算法架構2.0

圖9:平台類别擴增倍數選擇示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖10:資料準備子產品處理示意圖

資料準備子產品如圖10所示,資料準備子產品獲得原始圖像和原始标注資料,建構資料處理流程并進行處理後,形成處理後圖像和多任務相容格式訓練資料。多任務相容格式訓練資料表示形成的訓練資料能夠同時被此架構中檢測、分割、分類等多種訓練任務使用。例如選擇了異常處理操作,處理後圖像和訓練資料中不會包含原始圖像中的異常圖像。例如選擇了子圖切割操作,處理後的圖像可能是原始圖像對應的子圖。如将處理後圖像和多任務相容格式訓練資料傳到OSS存儲中,相同訓練任務可以選擇直接繼承資料。不需要再次調用資料準備子產品。解決了使用相同資料訓練時需要不斷重複處理資料的問題。

2 配置生成子產品

工業視覺智能實戰經驗之IVI算法架構2.0

圖11:配置生成子產品示意圖

配置生成子產品如圖11所示,資料經過資料準備子產品處理後會生成描述檔案。配置生成子產品接收預設配置、資料準備子產品結果和平台配置資訊後,形成全局配置。如圖12所示,平台模型訓練時會進入此頁面。其中自定義訓練參數配置屬于平台配置資訊。平台配置資訊包括模型選擇配置、訓練進階參數配置和圖像預處理參數配置。如圖13所示,模型選擇配置負責訓練的加載的初始模型。如圖14所示,訓練進階參數配置負責訓練學習率、訓練疊代數等相關配置。如圖14所示。圖像預處理參數配置負責訓練時圖像的輸入分辨率、圖像增強等相關配置。全局配置是作為資料載入、資料集分析、模型訓練、模型推理、模型評估和模型轉換的配置檔案。

工業視覺智能實戰經驗之IVI算法架構2.0

圖12:平台模型訓練相關配置入口示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖13:平台模型訓練模型選擇配置示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖14:平台模型訓練進階參數配置示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖14:平台模型訓練圖像預處理參數配置示意圖

3 資料載入子產品

工業視覺智能實戰經驗之IVI算法架構2.0

圖15:資料載入子產品示意圖

資料載入子產品是繼承于可擴充子產品的。如圖15所示,資料載入子產品分為三個步驟。

  • 首先讀取全局配置檔案,獲得資料載入相關的資訊,其次根據全局配置檔案建構資料載入處理流程,最後進行資料載入。資料載入的輸入資料是資料準備子產品産生的資料。資料載入讀取全局配置檔案中相關内容,如是否使用專家資料、圖像預處理參數中的圖像輸入分辨率和資料增強的一些操作。
工業視覺智能實戰經驗之IVI算法架構2.0

圖16:資料載入操作算子集合示意圖

  • 資料載入子產品的第二步是建構資料載入流程。如圖16所示是資料載入的一些操作算子集合。資料載入流程根據配置資訊從操作算子中選擇相應算子并串聯形成操作流程。資料載入子產品有兩種狀态(目前工業視覺智能雲平台未開啟此功能)。分别是運作狀态和調試狀态。運作狀态與其他子產品無互動。圖16中的效果可視化在調試狀态時使用,在資料載入流程的任何位置可以嵌入效果可視化模型,用來可視化目前圖像狀态、類别狀态、執行個體狀态。這樣就可以檢視資料處理或資料增強的效果,确認單步資料處理效果和多部資料處理的疊加效果。圖17所示為執行個體擾動增強操作可視化的效果,可視化時将執行個體相關資訊“畫”在圖像上,不同類别用不同顔色表示。每個框代表一個執行個體。經過執行個體擾動增強後,可以直覺看到執行個體的增加和執行個體在圖像中的情況。
工業視覺智能實戰經驗之IVI算法架構2.0

圖17:資料載入操作算子可視化示意圖

4 資料集分析子產品

工業視覺智能實戰經驗之IVI算法架構2.0

圖18:資料集分析子產品示意圖

資料集分析子產品是繼承于可擴充子產品的。如圖18所示,資料集分析是內建資料載入子產品的,分為四個步驟。

  • 第一個步驟是讀取全局配置檔案,獲得資料集分析相關的資訊。比如圖像預處理參數中的圖像輸入分辨率和資料增強的一些操作。
  • 第二步根據配置建構一個資料載入子產品的相關流程。
  • 第三步根據配置建構分析算子集合。
  • 第四步串聯資料載入和資料集分析算子集合進行處理(資料集分析算子集合如圖19所示)。處理完成後所有結果可以在工業視覺智能平台的網頁上展示。
工業視覺智能實戰經驗之IVI算法架構2.0

圖19:資料集分析算子合集示意圖

5 模型訓練子產品

工業視覺智能實戰經驗之IVI算法架構2.0

圖20:模型訓練流程示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖21:平台模型訓練展示示意圖

如圖20所示,模型訓練是內建資料載入子產品的,分為四個步驟。

  • 第一個步驟是讀取全局配置檔案,獲得模型訓練相關的資訊:比如圖像預處理參數中的圖像輸入分辨率和資料增強的一些操作;比如進階參數配置中的總訓練疊代數、預設參數配置檔案加載和模型儲存間隔數;比如模型選擇中的預訓練模型。
  • 第三步根據配置建構算法模型和模型訓練流程。
  • 第四步串聯資料載入和模型訓練流程并且運作。

如圖21所示,模型訓練會按照間隔數儲存到本地或對應的OSS中,并且在平台中會展示候選模型和實際産生時間。同時模型訓練的LOG檔案也同步儲存到本地或對應OSS中。模型訓練的損失值(LOSS)可以通過通訊的方式傳遞到工業視覺智能平台的後端程式中,圖中LOSS曲線就是将訓練架構傳回的損失值展示在前端。需要說明的是在此建構算法模型和模型訓練流程是相容多種任務的,并且資料準備模型的資料是相容多種任務的。這樣架構就可以進行多任務相容的模型訓練。同時,因為資料集分析子產品和模型訓練子產品都是基于資料載入子產品的,是以資料集分析功能不僅可以按照原圖和标注進行分析,還能完全模拟訓練的資料處理方式進行分析。這樣就可以在訓練之前發現資料集的特點或者提前檢視資料處理和資料增強操作的結果,根據資料分析結果不斷調整各種配置進行訓練。而不是隻使用預設配置或者個人經驗去訓練模型,避免了盲目訓練。同時結合資料載入調試功能後,可以更深入地分析資料操作對資料集的影響,進一步提供算法優化方案。

6 模型推理子產品

工業視覺智能實戰經驗之IVI算法架構2.0

圖22:模型推理流程示意圖

如圖22所示,模型推理是內建資料載入子產品的,分為四個步驟。

  • 第一個步驟是讀取全局配置檔案,獲得模型推理相關的資訊:比如圖像預處理參數中的圖像輸入分辨率等操作;比如模型訓練按照間隔儲存的模型。
  • 第三步根據配置建構算法模型和模型推理流程。
  • 第四步串聯資料載入和模型推理流程并且運作。模型推理的結果會儲存到本地或者OSS中。

7 模型評估子產品

工業視覺智能實戰經驗之IVI算法架構2.0

圖23:模型評估流程示意圖

模型評估子產品是繼承于可擴充子產品的。如圖23所示,模型評估是內建資料載入子產品的,分為四個步驟。

  • 第一個步驟是讀取全局配置檔案,獲得模型評估相關的資訊,主要是需要評估的名額。
  • 第二步根據配置建構一個資料載入子產品的相關流程,這裡載入資料時不載入圖像,載入資料準備産生的GT結果(Ground Truth 結果、标注的真實結果)和模型推理産生的對應AI結果(算法預測的結果)。
  • 第三步根據配置構模組化型評估流程。
  • 第四步串聯資料載入和模型評估流程并且運作。

模型推理的結果會儲存到本地或者OSS中。模型訓練子產品、模型推理子產品、模型評估子產品獨立存在,評估過程不會占用訓練時間和資源,整體可以高效執行。

工業視覺智能實戰經驗之IVI算法架構2.0

圖24:模型評估整體評估部分示意圖

模型評估在工業視覺智能平台上分為整體評估結果、詳細評估結果和檢測結果展示。

圖24所示是模型整體評估結果,左側展示了評估的圖像和标注數量,右邊展示了整體算法名額。圖中是目标檢測的評估結果,是以展示了不同IOU(交并比)下的mAP名額。

圖25所示是模型評估的詳細評估部分展示,左側可以調節詳細評估時不同類别的門檻值,并且展示該類别的圖像數量和标注數量。右側是該類别在不同門檻值下的召回率和精确度曲線。

如圖26所示,根據詳細評估中門檻值設定,可以展示正确檢測、漏檢和誤檢三個部分,用來更加直覺地檢視模型在不同門檻值下的效果和問題。點選正确檢測、漏檢、誤檢中的圖像,平台會跳轉到如圖27的頁面,頁面展示了原圖、GT的框和類别、AI算法預測的框和類别,這樣可以單張地檢視預測的結果和标注框的差距。工業視覺智能平台可以進行多模型評估功能。

如圖28和圖9所示,可以選擇多個候選模型進行模型評估。可以看到本架構和平台結合的模型評估除了進行學術算法名額的展示之外,還展示了不同門檻值下的各項名額。和不同門檻值下正确檢測、漏檢和誤檢的情況。

工業視覺智能實戰經驗之IVI算法架構2.0

圖25:模型評估詳細評估部分示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖26:模型評估檢測結果部分示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖27:模型評估單張檢測結果示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖28:平台多模型評估模型選擇部分示意圖

工業視覺智能實戰經驗之IVI算法架構2.0

圖29:平台多模型評估模型開始部分示意圖

8 模型轉換子產品

工業視覺智能實戰經驗之IVI算法架構2.0

圖30:模型轉換子產品示意圖

模型轉換分為三個步驟。

  • 第一步是讀取全局配置檔案,比如圖像預處理參數中的圖像輸入分辨率等操作。
  • 第二步根據全局配置檔案中的資訊,生成模型推理時使用的配置檔案。
  • 第三步将模型訓練儲存的原始模型轉換成推理時可用的加密模型。

相關檔案儲存在本地或上傳到OSS。其中生成模型推理時的配置檔案和加密模型都是和對應模型推理庫對應配合設計的,能夠直接使用。這樣使用者不需要開發與部署對接,減輕了工作量。并且本架構是相容不同任務類型的算法的訓練。模型和任務相關資訊會被儲存在配置檔案中。

三 總結

本文章主要介紹了工業視覺智能團隊實戰經驗中設計和演化出來的IVI算法架構,并結合公共雲平台功能做了更詳細的介紹。而在工業視覺智能實戰中,我們也會遇到一些工業視覺智能場景業務形成的圖像域差異、圖像分辨率、目标缺陷形态、圖像背景幹擾的算法上的挑戰,在不斷分析和實驗後我們的算法也往更高精度、更高效和工業内更通用方向不斷演化。同時因為工業視覺智能場景業務形成的模型更新需求頻繁、算法定制化高、算法精度高、需求響應速度要求高等問題,我們在算法模型組合、算法方案設計、算法方案評估、行業産品化方面也有了自己的算法模型組合的産品和整套的方法論。

“後紅海”時代, 阿裡資深技術專家揭秘當下大資料體系

海量的資料以及其蘊含的價值,吸引了大量投入,極大的推動大資料領域技術。大資料技術發展正當時,阿裡巴巴資深技術專家為你詳解當下大資料體系,分析大資料體系4大熱點,詳解9大領域架構分布、預測未來演進4大技術趨勢,概述有待探索3大疑問。

點選這裡

,檢視詳情~

繼續閱讀