# AI視覺:影像分類標記&訓練 - 使用 Roboflow > 翻譯自 [Roboflow](https://roboflow.com/) 官網文件及 [Gemini](https://gemini.google.com/) 人工智慧生成部份內文,最後由 Aaron Yu 實際操作擷圖並潤稿。 ## 一、前言 AI影像分類標記是指使用人工智慧技術對影像進行分類和標記的過程。其目的是為影像添加語義資訊,以便電腦能夠理解和識別影像中的內容。 AI影像分類標記的原理是使用機器學習算法來分析影像中的特徵,並根據這些特徵將影像歸類到特定的類別中。 AI影像分類標記的應用非常廣泛,包括: * **物體檢測**:在影像中識別和定位特定的物體。 * **圖像搜索**:根據影像中的內容進行搜索。 * **醫學影像分析**:幫助醫生診斷疾病。 * **工業檢測**:檢測產品缺陷。 AI影像分類標記的流程大致如下: * **數據收集**:收集大量的影像數據。 * **數據標記**:對影像數據進行人工標記,添加語義信息。 * **模型訓練**:使用機器學習算法訓練模型。 * **模型部署**:將訓練好的模型部署到實際應用中。 在數據標記階段,常用的標註工具包括: * **分類標註**:對影像進行分類。 * **方框標註**:使用方框標註出影像中的物體。 * **像素切割標註**:以多邊形標註出影像中每個物體的類別。 * **關鍵點標註**:標註出影像中某物圖的關鍵點。 ![影像分類標記類型](https://hackmd.io/_uploads/Hk7jO2J10.png) 在模型訓練階段,需要根據具體的應用需求選擇合適的機器學習算法。 AI影像分類標記是一項**技術(人力)密集型**的工作,需要大量的數據和計算資源。隨著人工智慧技術的發展,AI影像分類標記的技術將不斷進步,其應用範圍也會越來越廣泛。 下圖為讓小孩**童工標記影像分類**情境: ![_79e372af-be42-40c7-9851-8f3bcbbc61a8](https://hackmd.io/_uploads/S1rtfnkkC.jpg) 下圖為早期使用 [LabelImg](https://github.com/HumanSignal/labelImg) 工具標記影像分類: ![lemon](https://hackmd.io/_uploads/ryOrmhkkR.jpg) ## 二、標註&訓練瑕疵咖啡豆 - 使用[Roboflow](https://roboflow.com/) [Roboflow](https://roboflow.com/) 是一個影像標記雲端服務,可幫助您快速、輕鬆地為機器學習模型準備影像數據。它提供了一系列工具和功能,可幫助您: * 上傳和管理您的影像數據。 * 使用各種標註工具標註您的影像。 * 創建和管理您的影像集。 * 訓練和部署您的機器學習模型。 在包裝和準備交付之前,需要對咖啡豆進行多項品質檢查。 專業品嚐師會「杯測」咖啡,以確保其符合特定的口味。可以使用光度計檢查咖啡豆的顏色,以確保符合烘焙曲線。此外,還應該進行一輪目視檢查,尋找石頭和瑕疵豆子,這兩種潛在缺陷不應進入包裝好的咖啡袋中。 可市售的商業豆子有很高比例是瑕疵豆,而瑕疵豆可能會有赭麴黴毒素,如果豆子是在產地就有瑕疵,路途中滋生毒素的機率就會很高,關鍵原因就在於「選豆」。 ![broken-beans](https://hackmd.io/_uploads/rJJg3hykA.png) 要建立視覺咖啡豆檢查系統,可以使用電腦視覺。您可以訓練電腦視覺系統來識別咖啡中的破碎豆子,然後將系統部署在裝配線或烘焙廠中,以在包裝並運送給客戶之前對烘焙咖啡進行自動檢查。 在文中,我們將建造一個識別咖啡中瑕疵的分類模型及系統。 ### 步驟1.下載影像範例:[咖啡豆(Arabica & Geisha)](https://drive.google.com/drive/folders/1z-adYrmpUzkVe1W1tH5LMuLCKgqtsmDo?usp=sharing) ### 步驟2.建立專案 首先,建立一個[免費的 Roboflow 帳戶](https://app.roboflow.com/)。前往 Roboflow 儀表板,然後按一下「建立專案」按鈕。您將進入一個可以建立新項目的頁面。在此頁面上,為您的專案設定名稱並選擇“Instance Segmentation”項目類型。 ![roboflow-1](https://hackmd.io/_uploads/SJx8j311A.png) ### 步驟3:上傳咖啡豆圖片 要訓練視覺模型,您需要代表模型部署環境的圖像。例如,如果您的模型將從自上而下的攝影機部署在裝配線上,您**應該從裝配線上收集影像**。 我們需要收集咖啡豆的圖像。我們還需要包含我們想要識別的缺陷的圖像:瑕疵咖啡豆。如果要分的更細,咖啡的瑕疵豆分為黑豆、發酵豆、黴豆、蟲損豆、羊皮紙豆、碎豆等(Black beans, Fermented beans, Moldy beans, Insect damaged beans, Parchment beans, and Broken beans),其中蟲損豆是最常見的類型。 我們建議收集 20-30 張圖像用於訓練您的第一個模型。 收集資料後,您可以將它們上傳到 Roboflow。 為此,請將圖像拖曳到 Roboflow 專案的資料上傳頁面中: ![roboflow-2](https://hackmd.io/_uploads/ByHR22k10.png) 您的圖像將在您的瀏覽器中進行處理。當出現將資料上傳到 Roboflow 時,請按一下「**Save and Continue**」按鈕。 ### 步驟4:標記咖啡豆圖像 需要訓練電腦視覺模型來識別感興趣的物件。這涉及到用標籤來註釋圖像。由於我們正在訓練物件偵測模型,因此我們將在影像中圍繞感興趣的物件(石頭和其他類似的異物碎片)創建多邊形。這些框將與圖像一起用作訓練模型的輸入。 若要開始標記圖像,請按一下項目側欄中的「註解 **Annotate**」。然後,選擇要註釋的圖像。 Roboflow Annotate介面將會打開,您可以在其中標記資料。 為了建立多邊形,我們將使用「分割任何物件 **Segment Anything** 」支援的多邊形註解工具。該工具允許您單擊一個物件並在該物件周圍產生一個多邊形。這比在每塊碎片周圍手動繪製多邊形更容易。 按鍵盤上的“**S**”。然後,選擇“進階**Advanced**”智慧多邊形選項。然後,您將能夠使用點擊工具來繪製多邊形註解。下圖展示如何使用智慧多邊形建立註解: ![roboflow-3](https://hackmd.io/_uploads/SylUR2JyA.png) 對資料集中的所有影像重複此過程。「註解 **Annotate**」 介面,可以分別管理「未分配**Unassigned**」、「註解中**Annotating**」、「資料集**Dataset**」 ![roboflow-3-2](https://hackmd.io/_uploads/ryJqe61yC.png) 以下是已標記的圖像 ![roboflow-4](https://hackmd.io/_uploads/rJc0gpy10.png) ### 步驟5:產生資料集版本 標記所有圖像後,您可以產生資料集版本。資料集版本是資料集的即時快照。右側滑動 Bar 工具可以用來手動調整 Train, Valid, Test 比例,最後按「Add Images」 ![roboflow-5](https://hackmd.io/_uploads/rJKebakkC.png) 下圖呈現各張圖像用於 Train, Valid, Test 的標記。 ![roboflow-6](https://hackmd.io/_uploads/ryrG-ay10.png) 系統會再協助導引到 Dataset 介面。 ![roboflow-7](https://hackmd.io/_uploads/B1lS-TyJC.png) 您可以使用「Health Check」介面,檢視已標記的圖像分類,其是否已滿足生成模型的需求(健康) ![截圖 2024-03-26 上午11.37.20](https://hackmd.io/_uploads/HJ1dQp1kC.png) ### 步驟6:預處理和增強 使用「生成Generate」介面您可以將預處理步驟和增強應用到您的資料集版本。預處理步驟為訓練準備影像。增強功能可讓您使用資料集產生新影像,這可能有助於提高模型效能。 ![roboflow-8](https://hackmd.io/_uploads/Bk9tW6kyC.png) 下圖為預處理選項, ![roboflow-8-1](https://hackmd.io/_uploads/B1qK-TykR.png) 預處理選項可以加入多個: ![roboflow-8-2](https://hackmd.io/_uploads/H1qtbpyk0.png) 動態修剪: ![roboflow-9](https://hackmd.io/_uploads/HyD6W6JJC.png) 旋轉圖片: ![roboflow-9-1](https://hackmd.io/_uploads/SywaZpyJR.png) ### 步驟7:訓練&匯出模型 使用「版本 Versions」介面,你可以訓練&匯出模型 ![roboflow-11](https://hackmd.io/_uploads/B1kbVak1R.png) 因為我們使用的是免費版本,所以只能生成3倍: ![roboflow-10](https://hackmd.io/_uploads/B11-V6yyC.png) 訓練時,使用預設選擇「MS COCO」模型及「V12」版本 ![roboflow-11-2](https://hackmd.io/_uploads/HJJ-4TJkR.png) 選擇「Fast」生成模型大概需要花費 15 分鐘,若需要更精準的模型,則需要付費。 ![roboflow-11-1](https://hackmd.io/_uploads/rJJbVTkkA.png) 以下是訓練過程: ![roboflow-12](https://hackmd.io/_uploads/HJJb4ayy0.png) 完成模型訓練後,系統會以郵件通知,之後你可以試著上傳圖片,測試該模型: ![roboflow-13](https://hackmd.io/_uploads/B11W4T1kC.png) ## 三、部署咖啡豆檢查模型 您可以使用 「部署 Deployments」介面,選擇要部署的機器位置: ![截圖 2024-03-26 中午12.07.24](https://hackmd.io/_uploads/HypZcaJ10.png) 使用 [Roboflow Inference](https://inference.roboflow.com/) 雲端服務,或在自己的硬體上部署咖啡豆檢查模型,都需要 Inference。 Inference 是一個開源應用程序,可用於運行電腦視覺模型。例如,您可以將檢查系統部署到連接到網路攝影機的 NVIDIA Jetson,該網路攝影機可監視您的組裝線,並在您的裝置上執行模型的 Inference。 你可以不用下載訓練好的模型,直接介接 Roboflow 提供的雲端模型,下圖你可以找到自己訓練好的模型 ID : ![roboflow-deploy](https://hackmd.io/_uploads/SkNm1el1R.png) 你也可以利用此介面,找到適配的程式語言及環境,來部署機器,以下我們以 Colab 為例: ### ->[測試 Roboflow 自訂模型](https://colab.research.google.com/drive/17pZ3VA7mbgP5DSszPg6ZKXISxRF69wFv?usp=sharing) ## 四、後言 AI 影像識別技術在農業的應用,具有以下幾項好處: * **提升農業生產力**:台灣農業人口老化,勞動力短缺,AI 影像識別技術可協助農民進行田間管理,提升農業生產力。 * **改善農產品品質**:AI 影像識別技術可應用於農產品分級,提高農產品品質。 * **促進農業產業升級**:AI 影像識別技術可結合其他技術,打造智慧農業系統,促進農業產業升級。 AI 影像識別技術是智慧農業的重要技術之一。AI 影像識別技術可結合其他技術,打造智慧農業系統,實現農業生產的自動化、精準化。 ![截圖 2024-03-26 上午10.02.10](https://hackmd.io/_uploads/Hks22s11R.png) AI 影像識別技術在農業上的應用,可概分為以下幾類: * **作物病蟲害偵測**:AI 影像識別技術可用於偵測作物病蟲害,及早預警並採取防治措施,減少作物損失。例如,日本農業科技公司 Terra Drone 開發了一款無人機搭載 AI 影像識別系統,可偵測水稻紋枯病、稻熱病等病害。 * **作物生長監測**:AI 影像識別技術可用於監測作物生長狀況,協助農民進行田間管理。例如,美國農業科技公司 Farmers Edge 開發了一款 AI 影像分析平台,可透過衛星影像和無人機影像分析作物葉面積指數、生物量等指標,幫助農民掌握作物生長狀況。 * **農產品分級**:AI 影像識別技術可用於農產品分級,提高分級效率和準確度。例如,中國農業科技公司曠視科技開發了一款 AI 農產品分級系統,可根據農產品的外觀特徵進行分級,提高分級效率和準確度。 * **智慧農業**:AI 影像識別技術可結合其他技術,打造智慧農業系統,實現農業生產的自動化、精準化。例如,荷蘭農業科技公司 Lely 開發了一款智慧牧場管理系統,可透過 AI 影像識別技術監控牛隻健康狀況,並自動化餵食、擠奶等工作。 以下列舉一些具體的應用實例: * **使用 AI 影像識別技術偵測水稻病蟲害** 農民使用 AI 影像識別技術偵測水稻病蟲害,及早預警並採取防治措施,減少作物損失。例如,日本農業科技公司 [Terra Drone](https://terra-drone.net/global/) 開發了一款無人機搭載 AI 影像識別系統,可偵測水稻紋枯病、稻熱病等病害。該系統可透過無人機拍攝的水稻影像,利用 AI 影像識別技術自動偵測病蟲害,並將偵測結果傳送至農民的智慧型手機或平板電腦,讓農民及早採取防治措施。 * **使用 AI 影像識別技術監測作物生長狀況** 農民使用 AI 影像識別技術監測作物生長狀況,協助農民進行田間管理。例如,美國農業科技公司 [Farmers Edge](https://farmersedge.ca/farmers/) 開發了一款 AI 影像分析平台,可透過衛星影像和無人機影像分析作物葉面積指數、生物量等指標,幫助農民掌握作物生長狀況。該平台可根據作物生長狀況,提供農民施肥、灌溉等田間管理建議,幫助農民提高作物產量和品質。 * **使用 AI 影像識別技術進行農產品分級** 農民使用 AI 影像識別技術進行農產品分級,提高分級效率和準確度。例如,開發一款 AI 農產品分級系統,可根據農產品的外觀特徵進行分級,提高分級效率和準確度。該系統可將農產品影像輸入 AI 影像識別系統,系統會根據農產品的顏色、形狀、大小等特徵進行分級,並將分級結果顯示在螢幕上,幫助農民提高分級效率和準確度。 * **農場使用 AI 影像識別技術打造智慧牧場** 農場使用 AI 影像識別技術打造智慧牧場,實現農業生產的自動化、精準化。例如,荷蘭農業科技公司 [Lely](https://www.lely.com/tw/centers/taiwan/lely-horizon) 開發了一款智慧牧場管理系統,可透過 AI 影像識別技術監控牛隻健康狀況,並自動化餵食、擠奶等工作。該系統可透過攝影機拍攝牛隻影像,利用 AI 影像識別技術自動偵測牛隻的健康狀況,並根據牛隻的健康狀況自動調整餵食量和擠奶時間,幫助農民提高牧場管理效率。