YOLOv8小白中的小白安裝環境教程!沒一個字廢話,看一遍不踩坑!

文章目錄

    • 去哪里下代碼?
    • 怎么下代碼?
    • 怎么裝環境?
    • 命令行界面(CLI)指令和Python腳本區別?
    • 附錄1 conda常用指令
    • 附錄2 git常用指令
    • 附錄3 項目代碼文件作用


去哪里下代碼?

下載代碼請大家直接去 YOLOv8的官方倉庫下載,名字叫 ultralytics,有些鏡像網站和個人發的等來歷不明的代碼不要用!

官方倉庫長這樣子,先別著急下,看完這篇文章你會學到更高級的方法~

在這里插入圖片描述


怎么下代碼?

下載代碼方式有三種:

  1. 直接下載代碼壓縮包

    • 直接下主分支代碼壓縮包(不推薦!)

    • 下發行版壓縮包(可以,但有更好的方法!)

  2. pip install ultralytics (不要用!)

  3. git clone https://github.com/ultralytics/ultralytics.git (推薦!但有些人不會用git!😭)


直接下載主分支,不推薦!下文解釋為什么。

在這里插入圖片描述

下發行版,可以!發行版下載下來名字有-8.1.0后綴的。注意區分!

在這里插入圖片描述

在這里插入圖片描述

git沒用過沒關系,Linux一般都預裝了,winmac直接來這里下載,無腦安裝。

Git - Downloads (git-scm.com)


怎么裝環境?

非常簡單,就記住一條核心,別用 pip install ultralytics 這條指令!

pip install ultralytics 的確是一種裝v8環境的方式,但是這不是給你們想對代碼做改進的同學用的,是給那些不想對YOLOv8源代碼做改動的同學用的!

如果你做改進,一定要將項目源代碼放到本地的工作區!那就只能下載壓縮包或者clone源代碼

但是下載和clone也要注意,YOLOv8有很多的版本,版本是怎么產生的呢?在項目開發過程中,隨著新功能的添加、舊問題的修復以及性能的優化,項目會不斷地演進。每次對代碼的重大更新或穩定的改進之后,開發者通常會發布一個新的版本,這樣用戶就可以使用到最新的功能和最佳的性能,這些版本沒更新一次都更新到了v8項目的”主分支“,就是你每次默認下載的代碼版本。

YOLOv8這個項目維護的非常的頻繁,如果你每次都下載主分支,那你可能每次的代碼都是不一樣的,所以為了保證教程和學習的統一,我們一般使用”發行版“代碼。

發行版是指在軟件開發中,當一個產品或項目的特定版本準備好被廣泛使用時,正式發布給公眾的版本。發行版通常包含了從上一個正式發布的版本以來的所有更新,如新功能、改進、和bug修復。發行版通常都是非常穩定的,而且功能上也是很完整的,最主要的是用發行版可以保持你使用的代碼版本和我教程的代碼版本統一!

在這里插入圖片描述

目前YOLOv8項目有兩個發行版,v8.1.0v8.2.0 ,我這里使用的都是 v8.1.0,所以下面我的教程都是針對 v8.1.0 ,如果你想改進的是YOLO模型,不需要刻意追求最新的發行版, v8.1.0 對你來說完全夠用。v8.1.0v8.2.0差別不是很大。

# 克隆代碼
git clone https://github.com/ultralytics/ultralytics.git --branch v8.1.0# 克隆后將路徑切換到和pyproject.toml文件同級別,不然裝環境會報錯
cd ultralytics/

在這里插入圖片描述
代碼下到本地后開始安裝依賴環境!

# 新建一個conda環境
conda create --name yolov8_env python=3.10 -y# 切換到你新建的conda環境
conda activate yolov8_env# 安裝yolov8項目所需要的包
pip install -e .

如果在你訓練時顯示沒有用到 gpu, 說明 torch ``torchvision這些包版本沒對應,可以去Pytorch官網選擇自己的安裝指令,但是肯定有人不會選,那就輸入下面的指令:

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 -i https://pypi.tuna.tsinghua.edu.cn/simple

所以,從下代碼到裝環境,用下面的指令就可以無腦解決!就是這么簡單。

  1. 克隆v8.1.0發行版代碼
git clone https://github.com/ultralytics/ultralytics.git --branch v8.1.0
  1. 克隆后將路徑切換到和 pyproject.toml 文件同級別,不然裝環境會報錯
cd ultralytics/
  1. 新建一個conda環境
conda create --name yolov8_env python=3.10 -y
  1. 切換到你新建的conda環境
conda activate yolov8_env
  1. 安裝yolov8項目所需要的包
pip install -e .
  1. 如果無法使用GPU
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 -i https://pypi.tuna.tsinghua.edu.cn/simple

命令行界面(CLI)指令和Python腳本區別?

當你YOLO環境安裝好后你有兩種訓練方式:

  1. 一種就是用CLI,也就是 yolo task=detect mode=train model=yolov8n.pt args
  2. 第二種就是用我給的python腳本,【訓練】【驗證】【推理】

CLI是很方便快捷,但是很多指令你不會用!用不明白為什么非得用呢,用我給的腳本不好嗎,各種參數,各種功能給你寫的輕輕楚楚。


附錄1 conda常用指令

  1. 創建新環境

    • conda create --name myenv:創建一個名為myenv的新環境。
    • conda create --name myenv python=3.8:創建一個包含指定Python版本(例如Python 3.8)的環境。
  2. 激活和停用環境

    • conda activate myenv:激活名為myenv的環境。
    • conda deactivate:停用當前環境。
  3. 安裝包

    • conda install numpy:在當前活動環境中安裝NumPy包。
    • conda install numpy=1.18:安裝指定版本的NumPy。
    • conda install numpy scipy pandas:同時安裝多個包。
  4. 查看環境列表

    • conda env listconda info --envs:列出所有Conda環境。
  5. 查看已安裝的包

    • conda list:在當前環境中列出所有已安裝的包。
    • conda list -n myenv:在指定環境myenv中列出所有已安裝的包。
  6. 更新和刪除包

    • conda update numpy:更新當前環境中的NumPy包。
    • conda remove numpy:從當前環境中刪除NumPy包。
  7. 克隆環境

    • conda create --name myenv2 --clone myenv:從現有環境myenv克隆到新環境myenv2
  8. 刪除環境

    • conda remove --name myenv --all:刪除名為myenv的環境。
  9. 導出和導入環境

    • conda env export > environment.yml:導出當前環境到environment.yml文件。
    • conda env create -f environment.yml:根據environment.yml文件創建環境。

附錄2 git常用指令

新手會 git clonegit pull 就夠了!

  1. 配置用戶信息

    • git config --global user.name "Your Name":設置全局用戶名。
    • git config --global user.email "your.email@example.com":設置全局用戶郵箱。
  2. 初始化和克隆倉庫

    • git init:在當前目錄初始化一個新的 Git 倉庫。
    • git clone https://github.com/user/repo.git:克隆遠程倉庫到本地。
  3. 添加和提交更改

    • git add filename:將文件添加到暫存區。
    • git add .:將所有更改(當前目錄及其子目錄中的更改)添加到暫存區。
    • git commit -m "Commit message":提交暫存區的更改,并附加提交消息。
  4. 查看狀態和日志

    • git status:查看當前工作目錄狀態(更改的文件、未追蹤的文件等)。
    • git log:查看提交歷史。
    • git log --oneline:查看壓縮的提交歷史。
  5. 分支管理

    • git branch:列出所有本地分支。
    • git branch new-branch:創建一個名為 new-branch 的新分支。
    • git checkout branch-name:切換到指定分支 branch-name
    • git checkout -b new-branch:創建并切換到新分支 new-branch
  6. 合并和解決沖突

    • git merge other-branch:將 other-branch 分支合并到當前分支。
    • 在合并過程中,如果遇到沖突,需手動解決沖突的文件,然后使用 git add 將其標記為已解決。
  7. 推送和拉取

    • git push origin branch-name:將本地分支 branch-name 推送到遠程倉庫。
    • git pull origin branch-name:從遠程倉庫拉取 branch-name 分支并自動合并到當前分支。
  8. 撤銷操作

    • git checkout -- filename:放棄對文件的未暫存的更改。
    • git reset HEAD filename:從暫存區撤銷對文件的添加。
    • git reset --hard commitID:重置當前分支到指定提交,丟棄此后的所有更改。
  9. 查看更改

    • git diff:顯示暫存區和工作目錄的差異。
    • git diff --staged:顯示已暫存的與上次提交的差異。

附錄3 項目代碼文件作用

在這里插入圖片描述

  • assets - 存放圖片資源,用于模型測試或示例。

    • bus.jpg - 測試圖片,公交車圖像。
    • zidane.jpg - 測試圖片,足球運動員齊達內的圖像。
  • cfg - 配置文件目錄,包含模型和數據集的配置。

    • datasets - 各種數據集的配置文件,如COCO、DOTA等。
    • models - 各種模型的配置文件,如YOLOv3、YOLOv5等。
    • trackers - 跟蹤算法的配置文件,如ByteTrack、BOTSort等。
  • data - 與數據處理相關的腳本和模塊。

    • annotator.py - 數據注釋工具。
    • augment.py - 數據增強模塊。
    • dataset.py - 數據集加載和處理。
  • engine - 模型訓練、評估、導出等核心功能。

    • exporter.py - 模型導出工具。
    • trainer.py - 模型訓練器。
    • validator.py - 模型驗證器。
  • hub - 與模型集成和管理相關的模塊。

    • auth.py - 授權和認證處理。
    • session.py - 會話管理。
  • models - 包含多種不同模型的定義和訓練邏輯。

    • rtdetr - RT-DETR模型的實現。
    • yolo - YOLO模型系列的實現,包括檢測、姿態估計、目標跟蹤等。
  • nn - 神經網絡基礎模塊,如層定義、塊定義等。

    • autobackend.py - 自動選擇后端處理。
    • modules - 網絡層和組件的定義。
  • solutions - 特定問題的解決方案,如目標計數、速度估計等。

    • object_counter.py - 目標計數。
    • speed_estimation.py - 速度估計。
  • trackers - 目標跟蹤算法的實現。

    • byte_tracker.py - ByteTrack算法的實現。
    • utils - 跟蹤相關的工具,如卡爾曼濾波器等。
  • utils - 各種工具和輔助功能。

    • downloads.py - 下載工具。
    • torch_utils.py - PyTorch相關的工具和輔助函數。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11476.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11476.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTTP和HTTPS的區別和聯系

目錄 1. 簡介2. TLS 握手過程3. 常見的加密算法3.1 對稱加密算法3.2 非對稱加密算法 1. 簡介 HTTPS在HTTP的基礎上引入了一個TLS層,采用密文進行傳輸,結合對稱加密技術和非對稱加密技術來實現數據的安全性和完整性。 客戶端會生成隨機密鑰,…

讓 計算機 將 數學 公式 表達式 的計算過程繪制出來 【mathematical-expression(MAE)】

目錄 文章目錄 目錄介紹開始實戰引入數學表達式計算庫引入流程圖代碼生成庫開始進行生成 介紹 大家好 今天我們來分享一個新知識,將數學表達式的整個計算過程,以及計算繁多結果在 Java 中繪制出來,計算機中的數學表達式計算的功能很常見了&a…

react 對輸入做出反應與狀態

React 提供了一種操作 UI 的聲明性方式。您無需直接操作 UI 的各個部分,而是描述組件可能處于的不同狀態,并在它們之間切換以響應用戶輸入。 聲明式 UI 與命令式 UI 的比較 在設計 UI 交互時,可能會考慮 UI 如何響應用戶操作而更改。考慮一…

[C語言]總覽

目錄 1. 框架、默認數據類型 2. 分支結構 (1). if ... else ... (2). switch ... case ... 3. 循環結構 (1). while (2). for (3). do ... while 4. 函…

區塊鏈的跨鏈交互:從學校間交流看跨鏈技術

區塊鏈是一種去中心化的分布式賬本技術,它通過加密學和共識機制來確保數據的安全性和不可篡改性。每個區塊鏈就像一所獨立的學校,有自己的制度、學生和重點專業。它們各自運行,有時在同一領域展開不同的活動。隨著區塊鏈技術的不斷發展&#…

【組合博弈】Outcome Classes

Outcome Classes 一個游戲 G G G的outcome函數代表這個游戲最終的結果,就是說這個游戲最后的贏家是誰。outcome函數是一個從游戲 G G G映射到四個結果的函數,四個結果分別是 L , R , P , N L, R, P, N L,R,P,N。意義如下表: ClassNameDefin…

學習筆記:Adaptive Platform(AP)適配到RTOS

一、背景 1、AP版本 Adaptive Platform AUTOSAR R20-11版本標準支持C14。CM模塊支持DDS、SOME/IP協議 2、RTOS RTOS-A核,當前完全支持POSIX PSE51、POSIX PSE52接口,POSIX PSE53部分支持,POSIX PSE54基本不支持。詳細接口參考&#xff1a…

第十四天:PHP 開發,輸入輸出類留言板訪問 IPUA 頭來源

1.PHP-全局變量$_SERVER 2.MYSQL-插入語法INSERT 3.輸入輸出-XSS&反射&存儲 4.安全問題-XSS跨站&CSRF等 1.輸入輸出類安全問題 反射性xss 這個先準備一個數據,隨便弄一個表名字,在隨便弄一點數據存入即可 作為連接的數據庫&#xff0c…

排序-歸并排序(merge sort)

歸并排序(Merge Sort)是一種分而治之的算法,它將原始數組分成越來越小的子數組,直到每個子數組只有一個元素,然后將這些子數組兩兩合并,過程中保持排序狀態,最終合并成一個完全有序的數組。歸并…

《一》Word文字編輯軟件---架構設計分析

1,簡單介紹 今天,我們來模擬offic軟件中的word文檔,運行如圖: 運行程序后會出現主界面,頂端的菜單欄包括“文件”“編輯”“格式”“窗口”和“幫助五個主菜單。 菜單欄下面是工具欄,包含了系統常用的功能按…

如何判斷海外住宅ip的好壞?

在海外IP代理中,住宅IP屬于相對較好的資源,無論是用于工作、學習、還是娛樂,都能得到較好的使用效果。作為用戶,該如何判斷海外住宅IP的好壞呢? 穩定性與可靠性:海外住宅IP相比動態IP地址,通常具…

Java全局異常處理,@ControllerAdvice異常攔截原理解析【簡單易懂】

https://www.bilibili.com/video/BV1sS411c7Mo 文章目錄 一、全局異常處理器的類型1-1、實現方式一1-2、實現方式二 二、全局異常攔截點2-1、入口2-2、全局異常攔截器是如何注入到 DispatcherServlet 的 三、ControllerAdvice 如何解析、執行3-1、解析3-2、執行 四、其它4-1、設…

電腦提示找不到ffmpeg.dll無法繼續執行代碼怎么辦?

電腦提示找不到找不到ffmpeg.dll無法繼續執行代碼怎么辦,有什么好的解決辦法,出現這樣的彈出就會導致軟件無法打開或者是異常關閉,找不到dll文件,是一個非常重要的電腦使用問題,會給使用者帶來許多的麻煩。那么找不到d…

LeetCode746:使用最小花費爬樓梯

題目描述 給你一個整數數組 cost ,其中 cost[i] 是從樓梯第 i 個臺階向上爬需要支付的費用。一旦你支付此費用,即可選擇向上爬一個或者兩個臺階。 你可以選擇從下標為 0 或下標為 1 的臺階開始爬樓梯。 請你計算并返回達到樓梯頂部的最低花費。 代碼 …

MongoDB和AI 賦能行業應用:制造業和汽車行業

歡迎閱讀“MongoDB和AI 賦能行業應用”系列的第一篇。 本系列重點介紹AI應用于不同行業的關鍵用例,涵蓋制造業和汽車行業、金融服務、零售、電信和媒體、保險以及醫療保健行業。 隨著人工智能(AI)在制造業和汽車行業的集成,傳統…

CDN的工作原理及流程

CDN(Content Delivery Network,內容分發網絡)是一種構建在數據網絡上的分布式內容分發網絡。 CDN利用全局負載均衡技術,將用戶的訪問請求指向離用戶最近且工作正常的流媒體服務器上,由流媒體服務器直接響應用戶的請求…

Tableau學習2.0版——復習

官網下載鏈接:https://www.tableau.com/zh-cn/support/releases 學生賬戶申請鏈接:https://www.tableau.com/zh-cn/academic/students。直接去學信網下載學籍在線驗證作為申請證明。 目錄 1、可視化原理 2、基礎圖表制作 2.1 對比分析(比…

@游戲行業er!MongoDB廣州線下沙龍邀您報名!

隨著游戲和應用程序的發展,數據變得越來越重要。在為您的下一個游戲選擇數據庫時,數據庫管理者常常會面對靈活性、可擴展性、可靠性、運營效率等問題或挑戰。 MongoDB在游戲開發領域有著廣泛的應用,靈活數據模型可以存儲和處理各種類型的數據…

JPA ENTITY EXTEND

1. Overview Relational databases don’t have a straightforward way to map class hierarchies onto database tables. To address this, the JPA specification provides several strategies: MappedSuperclass – the parent classes, can’t be entitiesSingle Table …

webpack處理js和css模塊化導入導出示例:

webpack默認并不能處理js模塊化的導入和導出,依賴于ts-loader和babel-loader webpack.config,js module.exports {entry: ./src/index.ts,output: {filename: main.js,},mode: development, // 或者 productionmodule: {rules: [{test: /\.ts/,exclude: /(node_modules)/,use:…