實戰!輕鬆搭建圖像分類 AI 服務

人工智能技術(如下稱 AI)是人類優秀的發現和創造之一,它表明着至少幾十年的將來。在傳統的編程中,工程師將本身的想法和業務變成代碼,計算機會根據代碼設定的邏輯運行。與之不一樣的是,AI 使計算機有了「屬於本身的思想」,它就像生物同樣,可以「看」、「聽」、「說」、「動」、「理解」、「分辨」和「思考」。html

AI 在圖像識別和文本處理方面的效果尤其突出,且已經應用到人類的生活中,例如人臉識別、對話、車牌識別、城市智慧大腦項目中的目標檢測和目標分類等。編程

接下來,咱們將瞭解圖像分類的需求、完成任務的前提條件和任務實踐。bash

圖像分類以及目標檢測的需求

AI 的能力和應用都很是普遍,這裏咱們主要討論的是圖像分類。網絡

圖像分類,實際上是對圖像中主要目標的識別和歸類。例如在不少張隨機圖片中分辨出哪一張中有直升飛機、哪一張中有狗。或者給定一張圖片,讓計算機分辨圖像中主要目標的類別。機器學習

目標檢測,指的是檢測目標在圖片中的位置。例如智慧交通項目中,路面監控攝像頭拍攝畫面中車輛的位置。目標檢測涉及兩種技術:分類和定位。也就是說先斷定圖片中是否存在指定的目標,而後還須要肯定目標在圖片中的位置。分佈式

這樣的技術將會應用在人臉識別打卡、視頻監控警報、停車場、高速收費站和城市智慧交通等項目當中。學習

計算機識圖的步驟

咱們能夠將計算機的看做是一個小朋友,它在擁有「分辨」的能力以前,必須經歷「看」和「認識」這兩個步驟,在看過不少圖片後,它就會造成本身的「認知」,也就是得到了「分辨」能力。測試

簡單來講,AI 工程師必須準備不少張不一樣的圖片,而且將一大部分圖片中的目標標註出來,而後讓計算機提取每張圖片中的特徵,最後就會造成「認知」。優化

想想,你還小的時候,是如何分辨鴨子和鵝的呢?搜索引擎

是否是根據它們的特徵進行判斷的?

學習和編程實現任務須要的條件

瞭解完需求和步驟以後,咱們還須要準備一些條件:

  • 首先,你必須是一名 IT 工程師。
  • 而後你有必定的數學和統計學習基礎。
  • 你還得了解計算機處理圖像的方式。
  • 若是圖片較多,你須要一臺擁有較高算力 GPU 的計算機,不然計算機的「學習」速度會很是慢。

具有以上條件後,再經過短期(幾天或一週)的學習,咱們就可以完成圖像分類的任務。

討論個額外的話題,人人都可以作 AI 工程師嗎?

AI 的門檻是比較高的,首先得具有高等數學、統計學習和編程等基礎,而後要有很強的學習能力。對於 IT 工程師來講:

  • 編程基礎是沒有問題的
  • 學習能力看我的,但花時間、下功夫確定會有進步
  • 高等數學基礎,得好好補
  • 統計學習基礎,也得好好補
  • 經濟上無壓力

若是你想要成爲一名 AI 工程師,那麼「高學歷」幾乎是必備的。不管是一線互聯網企業或者新崛起的 AI 獨角獸,它們爲 AI 工程師設立的學歷門檻都是「碩士」。除非特別優秀的、才華橫溢的大專或本科生,不然是不可能有機會進入這樣的企業作 AI 工程師的。

AI 在硬件、軟件、數據資料和人才方面都是很費錢的,普通的 IT 工程師也就是學習瞭解一下,遠遠達不到產品商用的要求。

普通的中小企業,極少有資質和經濟能力吸引高學歷且優秀的 AI 工程師,這就致使了資源的聚攏和傾斜。

想要將圖像分類技術商用,在讓計算機經歷「看」、「認識」的步驟並擁有「分辨」能力後,還要將其轉換爲 Web 服務。

但我只想將人臉識別或者圖像分類的功能集成到個人項目當中,就那麼困難嗎?

我只是一個很小的企業,想要在原來普通的視頻監控系統中增長「家人識別」、「陌生人警報」、「火災警報」和「生物闖入提醒」等功能,沒有上述的條件和經濟投入,就不能實現了嗎?

我好苦惱!

有什麼好辦法嗎?

ModelArts 簡介和條件

ModelArts 是華爲雲推出的產品,它是面向開發者的一站式 AI 開發平臺。

它爲機器學習與深度學習提供海量數據預處理及半自動化標註、大規模分佈式 Training、自動化模型生成,及端-邊-雲模型按需部署能力,幫助用戶快速建立和部署模型,管理全週期 AI 工做流。

它爲用戶提供瞭如下可選模式:

  • 零編碼經驗、零 AI 經驗的自動學習模式
  • 有 AI 研發經驗的全流程開發模式

同時,它將 AI 開發的整個過程都集成了進來。例如數據標註、模型訓練、參數優化、服務部署、開放接口等,這就是「全週期 AI 工做流」。

還有,平臺上的操做都是可視化的。

這些條件對於想要將 AI 技術應用於產品,但無奈條件不佳的我的開發者和企業提供了機會,這很重要!能夠說 ModelArts 縮短了 AI 商用的時間,下降了對應的經濟成本、時間成本和人力成本。

更貼心的是,華爲雲 ModelArts 爲用戶準備了不少的教程。即便用戶沒有經驗,但只要按照教程指引進行操做,也可以實現本身的 AI 需求。

想一想就美滋滋,太棒了!

趕忙體驗一下!

圖像分類服務實踐

此次咱們以零 AI 基礎和零編碼經驗的自動學習模式演示如何搭建一個圖像分類的 AI 服務。

前期準備和相關設置

首先打開華爲雲官網,將鼠標移動導航欄的「EI 企業智能」菜單上,並在彈出的選項中選擇「AI 開發平臺 ModelArts」。

進入到 ModelArts 主頁後,能夠瀏覽一下關於 ModelArts 的介紹。

點擊 Banner 處的「進入控制檯」按鈕,頁面會跳轉到 ModelArts 控制檯。控制檯大致分爲幾個區域:

區域 2 自動學習模式中有圖像分類,將鼠標移動到圖標上,並點擊彈出的「開始體驗」按鈕。若是是華爲雲的新用戶,網頁會提示咱們輸入訪問密鑰和私有訪問密鑰。

沒有密鑰的開發者能夠點擊頁面給出的連接並按照指引獲取密鑰,獲得兩種密鑰後將其填入框中,點擊「肯定」按鈕便可。

此時正式進入項目建立流程中,點擊「圖像分類」中的「建立項目」按鈕(華爲云爲用戶準備了對應的教程,很貼心)。

在建立項目的頁面中,咱們須要填兩三項配置。要注意的是,項目是按需計費的,此次咱們只是體驗,也沒有訓練和存儲太多數據,因此費用很低,你們不用擔憂。

項目名稱能夠根據需求設定一個容易記的,案例中我將其設定爲 ImageCLF-Test-Pro。在訓練數據的存儲選擇處,點擊輸入框中的文件夾圖標,在彈出的選項卡中新建 obs 桶

並在建立的桶中新建文件夾

最後輸入描述,並點擊頁面右下角的「建立項目」按鈕便可。

上傳圖片和標註

項目建立好以後,咱們須要準備用於訓練的多張圖片,圖片儘可能清晰、種類超過 2 類、每種分類的圖片數量很多於 5 張。

固然,數據越多、形態越豐富、標註越準確,那麼訓練結果就會越好,AI 服務的體驗就會越好。

這裏我準備了一些直升機、坦克和狗的圖片,共 45 張。

將其批量導入後勾選同類型的圖片,一次性爲多張圖添加標籤。

依次將 3 類圖片標註後,左側圖片標註的「未標註」選項卡中的圖就會清空,而「已標註」選項卡中能夠看到標註好的圖片。

訓練設置

右側的標籤欄會顯示每種分類和對應的圖片數量,下方的訓練設置可讓咱們設置訓練時長的上限,高級設置中還有推理時間。

這個咱們沒必要理解它的做用,能夠按照默認值進行,也能夠稍微調整,例如將訓練時長的上限改成 0.2。

開始訓練

設置好後點擊「開始訓練」按鈕就會進入訓練狀態,耐心等待一段時間(圖片越少訓練時間越短)。

訓練頁左側會顯示訓練狀態,例如初始化、運行中和運行成功/失敗等。訓練完成後,右側會給出運行時長、準確率、評估結果和訓練參數等信息。

服務的自動化部署

咱們的目的是搭建一個圖像分類的 AI 服務,因此在訓練結束後點擊左側的「部署」按鈕,此時會進入自動化部署的流程。

稍微等待些許時間(本次約 10 分鐘)後,頁面提示部署完成,同時頁面將會分爲 3 欄。

左側 1 區爲部署狀態和控制。中間 2 區能夠在線測試圖片分類,右側 3 區會顯示在線測試的結果(包括準確率),右側 4 區提供了 API 接口,方便咱們將其集成到 Web 應用當中。

在線預測,訓練結果測試

咱們來測試一下,準備幾張沒有通過標註的圖片,圖片中能夠包含狗、直升機和坦克。點擊中間 2 區的「上傳」按鈕並選擇一張圖片,而後點擊「預測」按鈕。

1 秒中不到,右側 3 區就會返回本次預測的結果:

{
    "predicted_label": "狗",
    "scores": [
        [
            "狗",
            "0.840"
        ],
        [
            "直升機",
            "0.084"
        ],
        [
            "坦克",
            "0.076"
        ]
    ]
}
複製代碼

此次咱們上傳的是包含狗的圖片,返回的預測結果中顯示本次預測的標籤是「狗」,而且列出了可信度較高的幾個類別和對應的可信度(1 爲 100% 確定),其中最高的是 「0.840-狗」。

此次上傳直升機的圖片試試。

返回的預測結果以下:

{
    "predicted_label": "直升機",
    "scores": [
        [
            "直升機",
            "0.810"
        ],
        [
            "狗",
            "0.114"
        ],
        [
            "坦克",
            "0.075"
        ]
    ]
}
複製代碼

再試試坦克

返回的預測結果以下:

{
    "predicted_label": "坦克",
    "scores": [
        [
            "坦克",
            "0.818"
        ],
        [
            "狗",
            "0.092"
        ],
        [
            "直升機",
            "0.090"
        ]
    ]
}
複製代碼

從幾回測試的結果能夠看出,預測的結果很是準確,並且給出的可信度也比較高。此次準備的圖片並非不少,形態也不是很豐富,但預測效果卻很是好,不得不說華爲雲 ModelArts 開發團隊爲此作了不少的優化,甚至比我本身(深度學習入門水平)編寫代碼用卷積神經網絡訓練和預測的結果要好。

若是想要將其集成到 Web 應用中,只須要根據頁面給出的「接口調用指南」的指引進行操做便可。

釋放資源

若是不是真正商用,僅僅做爲學習和練習,那麼在操做完成後記得點擊左側 1 區的「中止」按鈕。而後在華爲雲導航欄中的搜索框輸入「OBS」,點擊搜索結果後跳轉到 OBS 主頁,接着再 OBS 主頁點擊「管理控制檯」,進入到 OBS 控制檯中,刪除以前建立的桶便可。這樣就不會致使資源佔用,也不會產生費用了。

小結

體驗了一下 ModelArts,我感受很是奈斯!

每處都有提示或教程指引,操做過程流暢,沒有出現卡頓、報錯等問題。

批量數據標註太好用了!批量導入、批量標註,自動計數,舒服!

訓練速度很快,應該是用了雲 GPU,這樣就算個人電腦沒有顯卡也可以快速完成訓練。

之前還在考慮,學習 AI 是否須要準備更強的硬件設備,如今好了,在 ModelArts 上操做,就不用考慮這些條件了。

本次咱們體驗的是自動學習,也就是簡潔易用的傻瓜式操做。對於專業的 AI 工程師來講,能夠選擇全流程開發模式。批量數據標註、本地代碼編寫、本地調試、雲端訓練、雲端部署等一鼓作氣。

棒!

有興趣的開發者能夠前往華爲雲 ModelArts 體驗。


備註:文中配圖均出自互聯網,經過搜索引擎而來。

相關文章
相關標籤/搜索