One-YOLOv5 v1.2.0正式發(fā)布。完整更新列表請查看鏈接:https://github.com/Oneflow-Inc/one-yolov5/releases/tag/v1.2.0,歡迎體驗新版本,期待你的反饋。
(資料圖片僅供參考)
1
新版本特性
1. 同步了Ultralytics?YOLOv5的上游分支v7.0,同時支持分類、目標檢測、實例分割任務
2. 支持flask_rest_api
3. 支持使用 wandb 對實驗跟蹤和可視化功能?
4. oneflow_hub_support_pilimage?
5.為每個batch的compute_loss部分減少一次h2d和cpu slice_update操作?
6. 優(yōu)化 bbox_iou 函數(shù)和模型滑動平均部分,大幅提升訓練性能 (一塊RTX 3090加速訓練YOLOv5s,時間減少11個小時,速度提升20%)
7. 兼容FlowFlops,訓練時可以展示模型的FLOPs?
(基于 Flowflops 詳解深度學習網(wǎng)絡的 FLOPs 和 MACs 計算方案)
原圖 | 目標檢測: 目標檢測是指從圖像中檢測出多個物體并標記它們的位置和類別。目標檢測任務需要給出物體的類別和位置信息,通常使用邊界框(bounding box)來表示。目標檢測可以應用于自動駕駛、視頻監(jiān)控、人臉識別等領(lǐng)域。 |
圖像分類: ?圖像分類是指給定一張圖像,通過計算機視覺技術(shù)來判斷它屬于哪一類別。圖像分類是一種有監(jiān)督學習任務,需要通過訓練樣本和標簽來建立分類模型。在圖像分類中,算法需要提取圖像的特征,然后將其分類為預定義的類別之一。例如,圖像分類可以用于識別手寫數(shù)字、識別動物、區(qū)分汽車和自行車等。 | 實例分割: 實例分割是指從圖像中檢測出多個物體并標記它們的位置和類別,同時對每個物體進行像素級的分割。實例分割要求更為精細的信息,因為它需要將物體的每個像素都分配給對應的物體。實例分割可以應用于醫(yī)學影像分析、自動駕駛、虛擬現(xiàn)實等領(lǐng)域。 |
2
安裝
在Python>=3.7.0的環(huán)境中克隆版本倉并安裝 requirements.txt,包括 OneFlow nightly 或者 oneflow>=0.9.0 。
git?clone?https://github.com/Oneflow-Inc/one-yolov5??#?克隆cd one-yolov5pip install -r requirements.txt # 安裝
檢測模型訓練示例:
https://start.oneflow.org/oneflow-yolo-doc/tutorials/03_chapter/quick_start.html#_4
分割和分類模型訓練示例:
https://start.oneflow.org/oneflow-yolo-doc/tutorials/03_chapter/model_train.html
3
啟動指令:
python -m oneflow.distributed.launch --nproc_per_node 4 \ train.py --batch-size 128 --data coco.yaml --weights " " --cfg models/yolov5s.yaml --img 640 --epochs 300
yolov5s-seg
OneFlow后端啟動指令
python -m oneflow.distributed.launch --nproc_per_node 8 \ segment/train.py \ --data coco.yaml \ --weights " " \ --cfg yolov5s-seg.yaml \ --img 640 \ --batch-size 320 \ --device 0,1,2,4 \ --epochs 300 \ --bbox_iou_optim --multi_tensor_optimize
4
測試環(huán)境
- 機器 ( 8GPU NVIDIA GeForce RTX 3090, 24268MiB)- oneflow.__version__= "0.9.1+cu117- torch.__version__= "1.13.0+cu117"- export NVIDIA_TF32_OVERRIDE=0 # PyTorch使用FP32訓練 # 測試指令:# OneFlow后端python train.py \ --batch-size 8 \ --data coco.yaml \ --weights " " \ --cfg models/yolov5s.yaml \ --img 640 \ --epochs 1 \ --bbox_iou_optim --multi_tensor_optimizepython segment/train.py \ --data coco.yaml \ --weights " " \ --cfg models/segment/yolov5s-seg.yaml \ --img 640 \ --batch-size 8 --epochs 1 \ --bbox_iou_optim --multi_tensor_optimize # PyTorch后端:export NVIDIA_TF32_OVERRIDE=0 # 使用fp32python \ train.py \ --batch-size 8 \ --data coco.yaml \ --weights " " \ --cfg models/yolov5s.yaml \ --img 640 \ --epochs 1 \export NVIDIA_TF32_OVERRIDE=0 # 使用fp32python segment/train.py \ --data coco.yaml \ --weights " " \ --cfg models/segment/yolov5s-seg.yaml \ --img 640 \ --epochs 1 \ --batch-size 8
以下記錄了一些用戶反饋的常見問題:
1. 出現(xiàn)滿屏的誤檢框。 可能到原因場景太單一,泛化不夠 ,更多可見我們關(guān)于如何準備一個好的數(shù)據(jù)集的介紹或者導出ONNX模型進行部署時代碼有錯誤。
2.?讓batch維度可以動態(tài),加了dynamic參數(shù)? 暫時不支持該參數(shù),可以自己編輯ONNX模型。相關(guān)教程請參考:https://github.com/Oneflow-Inc/one-yolov5/releases/download/v1.2.0_/openmmlab.pptx
3.?模型導出onnx時,出現(xiàn)?/tmp/oneflow_model322?類似報錯。 OneFlow新老版本兼容性問題。這是舊版本創(chuàng)建的文件但是沒清理,刪除就可以解決。 ?
4. 為訓練過程loss、map、檢測框等可視化適配了wandb(https://start.oneflow.org/oneflow-yolo-doc/tutorials/03_chapter/intro_to_wandb.html)
5. CUDA_VISIBLE_DEVICES環(huán)境變量設置放在import oneflow之后會失敗,導致device選擇失敗,可以通過export CUDA_VISIBLE_DEVICES=1 手動控制。
6.?autobatch功能 OneFlow缺少memory_reserved API,我們會盡快補齊,現(xiàn)在需要先手動指定下batch_size。下個版本將會解決并且會直接支持導出batch維度為動態(tài)的模型。
下個版本的展望
繼續(xù)提升One-YOLOv5單卡模式的訓練速度
解決目前訓練時顯存比Ultralytics偏大的問題
CPU模式下支持ONNX模型的導出
OneFlow研發(fā)的amp train目前已經(jīng)開發(fā)完成正在測試中,下個版本將合并進main分支
autobatch功能
其他人都在看
GPT-3/ChatGPT復現(xiàn)的經(jīng)驗教訓
超越ChatGPT:大模型的智能極限
YOLOv5解析教程:計算mAP用到的Numpy函數(shù)
ChatGPT作者Schulman:我們成功的秘密武器
比快更快,開源Stable Diffusion刷新作圖速度
OneEmbedding:單卡訓練TB級推薦模型不是夢
GLM訓練加速:性能最高提升3倍,顯存節(jié)省1/3
歡迎Star、試用OneFlow新版本:GitHub - Oneflow-Inc/oneflow: OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient. - GitHub - Oneflow-Inc/oneflow: OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.https://github.com/Oneflow-Inc/oneflow/
關(guān)鍵詞: