iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0

前言

經過上篇跟大家分享了 Linux 和 Celery 的應用,本篇來說說 Linux 與 Yolov7

Yolo 世代

大家都知道 Linux 但是 Yolov7 呢? 什麼是 Yolov7 ? 要講講 Yolov7 前得先說說 Yolo 世代

YOLO:從一枝獨秀到百家爭鳴

2015 年,Joseph Redmon 提出的 YOLO(You Only Look Once)震撼了物件偵測的世界。自誕生以來,YOLO 系列一直以「高精度」、「高效率」、「高實用性」聞名,並且開創了 One-Stage 物件偵測演算法的新篇章。

Yolov1 - YOLO 的初篇章 (2016)

開發者 : Joseph Redmon
YOLOv1 開創了將物件偵測視為單一回歸問題的先河。透過將整個圖像一次性處理完成,YOLOv1 以其驚人的速度和即時處理能力,迅速成為了物件偵測領域的一顆新星。

Yolov2 - 更快、更強 (2017)

開發者 : Joseph Redmon
YOLOv2 引入了多尺度偵測和錨點框(Anchor Boxes),顯著提高了小物件的偵測能力。同時它可以同時在多個資料集上進行訓練,使其能夠偵測超過 9000 種物件,成為物件偵測領域的一大突破。

Yolov3 - 逐一進步 (2018)

開發者 : Joseph Redmon
YOLOv3 採用了更深層的網絡結構 Darknet-53,並引入了多尺度偵測技術,提升了對不同大小物件的偵測效果。儘管模型更加複雜,但它仍保持了即時性處理的優勢。

Yolov4 - 新的里程碑 (2020)

開發者 : Alexey Bochkovskiy 與 王建堯博士
當 Joseph Redmon 宣布退出電腦視覺研究後,學界沉寂了一段時間。然而,Alexey Bochkovskiy 和臺灣中研院的王建堯博士在 2020 年聯手推出了 YOLOv4。這一版本大幅提升了 YOLO 的速度和準確度,並成為當時世界上最強大的即時物件偵測演算法之一。

Yolov5 - 傳奇問世 (2020)

開發者 : Glen Jocher
YOLOv5 由 Ultralytics 團隊發布,雖然未經 YOLO 官方承認,且未有論文發表,但 YOLOv5 卻憑藉其易用性迅速走紅。雖然在創新上並不如其他版本耀眼,但它的實用性依然讓它成為許多開發者的首選工具。

Yolov6 - 并驅爭先 (2022)

2022 年,中國美團技術團隊推出了 YOLOv6,這一版本在速度和準確度方面達到了新的高峰,特別是在嵌入式設備上的應用中展現出色效能。

Yolov7 - 再度領先 (2022)

緊隨 YOLOv6 之後,Alexey Bochkovskiy 和王建堯博士再次合作推出了 YOLOv7,這一版本的速度和準確度超越了當前所有 YOLO 系列,成為了世界上最快最準的物件偵測演算法。

Yolov7

YOLOv7 是 YOLO 系列的一個進階版本,專注於實現即時物件偵測的更高準確度和速度。它在 YOLOv4 和 YOLOv5 的基礎上進行了進一步優化,使用了擴展的高效層聚合網絡(E-ELAN)等新技術來提升學習能力和推理效能

Linux 為什麼適合開發 Yolov7

  1. 開源與社群支持
    Linux 是開源的作業系統,擁有龐大的開發者社群,這意味著 Linux 使用者可以免費獲得最新的技術支持和工具。YOLOv7 是基於開源框架如 PyTorch 開發的,這些框架在 Linux 環境下運行效率非常高,且有強大的社群支持來解決技術問題。

  2. 優化的 GPU 支持
    Linux 對於 NVIDIA GPU 的支持非常出色,特別是 CUDA 和 cuDNN 這兩個關鍵技術在 Linux 平台上的性能表現最佳。由於 YOLOv7 是計算密集型任務,使用 GPU 加速可以大幅提升運算效率,而 Linux 環境下的 GPU 驅動安裝和配置相對簡單且穩定。

  3. 高效的資源管理
    Linux 擁有高度優化的資源管理系統,能夠更有效地處理深度學習訓練和推理過程中的大量計算資源需求。相比於其他作業系統,Linux 能更好地利用 CPU、GPU 和記憶體資源,確保 YOLOv7 運行時不會因資源分配問題而卡頓。

  4. 強大的命令行工具
    Linux 提供了豐富的命令行工具,使開發者可以輕鬆編寫腳本來自動化 YOLOv7 的訓練、推理和部署過程。例如,開發者可以使用 Shell 腳本或 Python 腳本來調用 YOLOv7,並配合工具如 cron 定時執行任務,或是利用 tmux、screen 等工具來進行長時間的訓練而不中斷。

  5. 與開發環境的兼容性
    Linux 可以輕鬆整合多種深度學習框架(如 PyTorch 和 TensorFlow)和工具(如 OpenCV、Docker),這讓 YOLOv7 的開發與部署更加靈活且容易進行擴展。特別是在需要多個工具協作的開發環境中,Linux 提供了很好的兼容性。

  6. 支援 Docker 等容器技術
    YOLOv7 在生產環境中可以透過 Docker 等容器技術進行部署,而 Linux 是容器化應用的最佳平台。使用 Docker 能夠將 YOLOv7 及其所需的依賴封裝在一起,確保在不同的環境中運行一致,避免了環境配置不當導致的問題。Linux 系統中對 Docker 的支持非常完備,能夠無縫整合和管理這些容器。

  7. 穩定性與長期支持
    Linux 系統的穩定性使得它成為 YOLOv7 等模型部署的首選,特別是在需要長時間運行的場景中,例如自動物件偵測系統或實時監控系統。許多 Linux 發行版(如 Ubuntu LTS)提供長期支持,這意味著可以在穩定且安全的環境中運行 YOLOv7。

  8. 擴展性與可定制性
    Linux 系統是高度可定制的,使用者可以針對不同硬體和應用需求進行靈活調整。這對 YOLOv7 這類需要高效能運算的任務非常重要,開發者可以根據自己的硬體環境調整系統,優化運行效率。

結論與感想

總歸一句,雖然有了 Linux 系統的輔助,電腦的配置仍然至關重要,尤其是 GPU 的性能。YOLOv7 這類深度學習模型在物件偵測時需要大量的運算資源,GPU 能大幅加速模型的訓練和推理過程。NVIDIA 的 GPU,特別是配備 CUDA 和 cuDNN 的型號,能顯著提升 YOLOv7 的效能表現。如果 GPU 配置不足,即便有系統的支持,模型的訓練時間將會顯著增加,推理速度也會受到影響。因此為了充分發揮 YOLOv7 的效能,具備足夠計算能力的 GPU 是必不可少的。同時充足的記憶體和優秀的散熱系統也有助於長時間運行時保持系統穩定性,保證模型訓練的連續性與可靠性。

資料來源

https://medium.com/@gary.tsai.advantest/yolo-%E7%B3%BB%E5%88%97%E5%A4%A7%E8%A3%9C%E5%B8%96-yolov7-b1ce83a7035#:~:text=%E4%BD%86%E6%98%AF%E7%B9%81%E6%A6%AE%E7%9A%84%E8%83%8C%E5%BE%8C%EF%BC%8CYOLO,YOLOR(2021)%20%26%20YOLOS(

https://keylabs.ai/blog/comparing-yolov8-and-yolov7-whats-new/#:~:text=YOLOv7%20is%20a%20computer%20vision,objects%20within%20images%20or%20videos.


上一篇
Day 23 - Linux Celery 實作篇
下一篇
Day 25 - Linux 與 Yolov7 啟動
系列文
0 到 100 Linux快打旋風30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言