作者:
楊雪峰 英特爾創新大使
哪吒套件簡介
Intel的哪吒(Nezha)開發套件是一款專為邊緣AI和物聯網應用設計的高性能計算平臺,搭載了Intel N97處理器、內置IntelUHD Graphics GPU,并提供高達8GB LPDDR5內存與32GB至64GB eMMC存儲選項。它支持Windows和Linux操作系統,具備豐富的接口如千兆以太網、HDMI 1.4、USB 3.0/2.0以及GPIO等,兼容樹莓派擴展板。
此外,該套件采用無風扇設計并集成了TPM 2.0安全模塊,適用于自動化、物聯網網關、數字標牌及機器人等多種場景,結合OpenVINO工具包可加速深度學習模型推理,便于開發者快速構建高效且安全的解決方案。
YOLOv5簡介
YOLOv5是YOLO(You Only Look Once)系列中的一種實時對象檢測系統,它以速度快、準確性高而聞名。對于開發者來說,YOLOv5提供了一種簡單易用的方法來創建高效的對象檢測模型。官方GitHub倉庫提供了豐富的資源和示例代碼,可以幫助用戶快速入門并開始構建自己的檢測器。
哪吒套件部署YOLOv5
YOLOv5以其出色的實時性能和高準確性而受到廣泛歡迎,并且官方提供了詳盡的文檔和支持,與其他設備相同,在哪吒套件上部署YOLOv5進行透明物體目標檢測時,用戶仍需注意一些關鍵步驟。
首先,確保開發環境已正確配置,包括安裝所有必要的依賴項如Python、PyTorch等。接著,準備訓練數據集是至關重要的一步,這通常涉及將圖像及其標注信息按照特定格式整理好。對于透明物體檢測這樣的特定任務,可能還需要對模型做一些微調以優化其識別能力。整個過程雖然需要一定的技術背景支持,但借助于豐富的在線資源和社區幫助,即使是初次嘗試者也能順利完成部署。
下面的步驟可以讓你在搭載在哪吒套件的windows平臺快速上手訓練自己的模型。
搭配環境與安裝依賴
在win+R中打開cmd,輸入以下代碼創建并進入一個名為yolov5s, python3.8版本的虛擬環境:
conda create -n yolov5s python=3.8 conda activate yolov5s
克隆倉庫:從官方GitHub倉庫克隆YOLOv5項目到本地機器。
git clone https://github.com/ultralytics/yolov5 cd yolov5
然后輸入以下代碼,即可自動下載安裝所有需要的庫
pip install -r requirements.txt
如果下載速度過慢,可能會導致報錯,可以復制下面代碼(清華源)到cmd中運行,然后在重新進行上面下載庫的步驟:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --ad conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/ conda config --set show_channel_urls yes
Trans10k數據集準備
1.數據集下載
Trans10K是一個公開的大規模透明物體分割數據集,包含10,428張真實場景圖像,每張都經過手動標注。它提供了多樣化的透明物體樣本,如杯子、瓶子和窗戶等。數據集分為訓練(5,000張)、驗證(1,000張)和測試(4,428張)三部分,并進一步細分為簡單和困難類別,整個數據集大小約為10.6GB。
可以使用相應的SDK進行下載:
pip install openxlab #安裝 pip install -U openxlab #版本升級 import openxlab openxlab.login(ak=, sk= ) #進行登錄,輸入對應的AK/SK from openxlab.dataset import info info(dataset_repo='OpenDataLab/Trans10K') #數據集信息及文件列表查看 from openxlab.dataset import get get(dataset_repo='OpenDataLab/Trans10K', target_path='/path/to/local/folder/') # 數據集下載 from openxlab.dataset import download download(dataset_repo='OpenDataLab/Trans10K',source_path='/README.md', target_path='/path/to/local/folder') #數據集文件下載
下載后解壓即可。
2.格式化數據
Trans10K數據集通常包含圖像及其對應的標注文件。為了與YOLOv5兼容,您需要確保每個圖像都有一個對應的.txt文件,其中包含目標框的位置信息。格式如下:
class_index x_center y_center width height
所有坐標都是相對于圖像尺寸的歸一化值(0.0到1.0之間)。
然而Trans10K的標注格式不是YOLO格式。
這就需要編寫一個腳本來將標注轉換為YOLO格式。轉換腳本如下:
import cv2 import numpy as np import os from pathlib import Path path_to_masks = 'path/to/mask' path_to_save_yolo_labels = ' path/to/mask/label' def convert_mask_to_bbox(mask_path, save_path): # 創建保存路徑 Path(save_path).mkdir(parents=True, exist_ok=True) # 遍歷 mask 文件 for mask_file in os.listdir(mask_path): if mask_file.endswith(".png"): # mask 以 .png 格式保存 mask = cv2.imread(os.path.join(mask_path, mask_file), cv2.IMREAD_GRAYSCALE) contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 獲取文件名,無擴展名 filename = os.path.splitext(mask_file)[0] bbox_file = open(os.path.join(save_path, filename + ".txt"), 'w') for contour in contours: x, y, w, h = cv2.boundingRect(contour) # YOLO 格式:class x_center y_center width height (歸一化到[0,1]范圍) img_height, img_width = mask.shape x_center = (x + w / 2) / img_width y_center = (y + h / 2) / img_height width = w / img_width height = h / img_height # 假設所有目標都是同一類 (class = 0) bbox_file.write(f"0 {x_center} {y_center} {width} {height} ") bbox_file.close() # 使用示例 convert_mask_to_bbox(path_to_masks, path_to_save_yolo_labels)
3.組織文件結構
按照YOLOv5的要求組織文件結構。需要以下目錄結構:
/path/to/dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/
images/ 目錄下存放圖像文件。
labels/ 目錄下存放相應的標注文件(.txt)。
4.配置data.yaml文件
編輯YOLOv5項目中的data.yaml文件或者新建一個trans10k_data.yaml,指定數據集路徑及類別信息,如下所示。
train: /path/to/dataset/images/train # 訓練圖片路徑 val: /path/to/dataset/images/val # 驗證圖片路徑 nc: 1 # 類別數量,假設只有一個類別 names: ['transparent_object'] # 類別名稱列表
啟動訓練
使用以下命令啟動訓練過程。您可以根據硬件性能調整圖片大小(--img)、批量大小(--batch)等選項。
python train.py --img 640 --batch 16 --epochs 50 --data data/trans10k_data.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt
訓練完成后,就得到了一個能夠檢測透明目標的模型。
總結
通過遵循上述步驟,即使是初學者也能迅速掌握YOLOv5的訓練方法并在Intel的哪吒(Nezha)開發套件上成功運行。哪吒套件憑借其高性能的Intel N97處理器、內置的Intel UHD Graphics GPU以及高達8GB的LPDDR5內存,為實時目標檢測提供了強大的計算支持。
借助YOLOv5的強大功能以及個性化的Trans10K數據集,用戶能夠快速開發出針對透明物體的高度精確的對象檢測模型。哪吒套件的無風扇設計和豐富的接口選項比如千兆以太網、HDMI 1.4、USB 3.0/2.0等,使其非常適合部署在各種邊緣計算環境中,無論是智能監控、工業自動化還是其他物聯網應用,都能提供可靠且高效的解決方案。
-
英特爾
+關注
關注
61文章
9949瀏覽量
171692 -
物聯網
+關注
關注
2909文章
44557瀏覽量
372757 -
開發板
+關注
關注
25文章
5032瀏覽量
97371 -
目標檢測
+關注
關注
0文章
209瀏覽量
15605
原文標題:開發者實戰|英特爾開發板部署YOLOv5:完成透明物體目標檢測
文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論