前言
基於YOLO進行物體檢測、對象識別,先和大家分享如何搭建開發環境,會分為CPU版本、GPU版本的兩種開發環境,本文會分別詳細地介紹搭建環境的過程。
搭建環境參數
系統:Windows 編程語言:Python 3.8
深度學習框架:TensorFlow 2.3 整合開發環境:Anaconda 開發代碼IDE:PyCharm
推薦理由:1)Anaconda +PyCharm,能適應較多的開發環境,比如,創建一個TensorFlow2.3的環境,創建一個TensorFlow1.5的環境,是不會相互影響的,而且切換很方便。相對來說VScode在環境配置和切換就差一些了,盡管我也挺喜歡VScode的。
2)使用Python語言相對C、C++更好上手,易於理解。
目錄
前言
搭建環境參數
一、安裝Anaconda
二、安裝TensorFlow
1、YOLO開發環境——CPU版本
2、YOLO開發環境——GPU版本
三、安裝PyCharm
四、安裝YOLO3用到的依賴庫
五、配置PyCharm開發環境
測試環境
一、安裝Anaconda
大家到官網下載Windows 版本的Anaconda,選擇電腦的位數(32位 / 64位):目前最新默認使用Python 3.8了,沒關系的,等下我們可以創建一個獨立的conda開發環境,安裝Python 3.6就好啦。
在網頁中拉到底下,即可看到上圖頁面;比如,電腦系統是Windows的64位,選擇紅色框框的;如果是32位的,選擇紅框下一個。下載好后,其是一個可執行文件,例如:Anaconda3-2020.07-Windows-x86_64.exe。
雙擊可執行文件,進行安裝,過程安裝引導安裝即可;(同意,下一步)
需要注意:添加環境變量的需要勾上√,如果默認使用PYthon3.7的第二個勾上,
后面默認直至安裝完成。
二、安裝TensorFlow
這里是在Anaconda中安裝TensorFlow 2.3的,大家可以想象Anaconda為一個資源管理器,在支持PYthon3 的基礎上,安裝許多深度學習用到的包或依賴庫,然后封裝成一個獨立的開發環境;最好后在PyCharm直接使用封裝好的開發環境。
首先在應用程序中打開“Anaconda Prompt(naconda3)”:
大家先選擇一下,是安裝CPU環境,還是GPU環境,建議盡量安裝GPU環境,這樣做YOLO的物體檢測、目標識別時會更快和流暢。先看下是否符合GPU環境的要求:
GPU 前提條件:電腦中有顯卡,NVIDIA品牌;而且在windows中的顯卡驅動的版本 >=430
1)如果滿足這個條件的朋友,恭喜你可以布置GPU加速環境,訓練神經網絡時可以用到GPU進行加速。
2)如果不滿足這個條件的朋友,先去看看我這邊博客:一篇文章清晰了解NVIDAI顯卡驅動(包括:CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV) 這里面有介紹較舊的顯卡(例如我的舊電腦是GTX950M),安裝較新版本的顯卡驅動(445.87版本);從而實現使用GTX950M顯卡進行加速神經網絡訓練等。新電腦的顯卡是GTX1660了。(驅動版本446)
3)如果電腦沒顯卡,或不想使用GPU加速的朋友,可以跳過布置GPU加速環境
1、YOLO開發環境——CPU版本
1)新建一個名為 YOLO3-CPU-TensorFlow2 的開發環境,使用PYthon3.8
conda create -n YOLO3-CPU-TensorFlow2 python=3.8
安裝過程詢問y / n; 輸入y 同意安裝
等待安裝完成即可。
2)進入剛才創建的環境
conda activate YOLO3-CPU-TensorFlow2
3)安裝TensorFlow2.3.1
pip install tensorflow==2.3.1 -i https://pypi.mirrors.ustc.edu.cn/simple
這里等待安裝完成即可; 分析 -i https://pypi.mirrors.ustc.edu.cn/simple 是指定國內的軟件源來下載,這樣比較快。
4)驗證是否環境安裝成功
進入Python環境:
python
輸入命令導入TensorFlow庫:import tensorflow as tf
查看其版本:tf.__version__
2、YOLO開發環境——GPU版本
前提條件:電腦中有顯卡,NVIDIA品牌;而且在windows中的顯卡驅動的版本 >=430
1)新建一個名為 YOLO3-GPU-TensorFlow2 的環境,使用PYthon3.8
conda create -n YOLO3-GPU-TensorFlow2 python=3.8
安裝過程詢問y / n; 輸入y 同意安裝。等待安裝完成即可。
2)進入剛才創建的環境
conda activate YOLO3-GPU-TensorFlow2
3)安裝TensorFlow2.3.1
pip install tensorflow-gpu==2.3.1 -i https://pypi.mirrors.ustc.edu.cn/simple
這里等待安裝完成即可; 分析 -i https://pypi.mirrors.ustc.edu.cn/simple 是指定國內的軟件源來下載,這樣比較快。
等待安裝完成;
下面安裝英偉達的cudatoolkit、和英偉達深度學習軟件包cudnn
a)安裝英偉達的cudatoolkit 10.1版本
conda install cudatoolkit=10.1
安裝過程需要選擇y,等待安裝完成。
b)安裝英偉達深度學習軟件包7.6版本
conda install cudnn
如果上面cudatoolkit、cudnn兩條語句順利安裝沒報錯,恭喜你啊,布置GPU加速環境成功啦。
4)驗證是否環境安裝成功
進入Python環境:
python
輸入命令導入TensorFlow庫:import tensorflow as tf
查看其版本:tf.__version__
完成啦!!
三、安裝PyCharm
我們到官方下載社區版的PyCharm,無需在網上找破解版的;
https://www.jetbrains.com/pycharm/download/#section=windows
然后來到下圖頁面:
下載好后是一個可執行文件,例如:pycharm-community-2020.1.exe
雙擊可執行文件進行安裝,默認安裝即可,需要注意的下圖:
然后等待安裝完成后,需要重啟電腦哦。
四、安裝YOLO3用到的依賴庫
主要安裝python版本的OpenCV、Keras、Pillow、matplotlib;建議大家根據下面的命令進行安裝,下面的依賴庫指定的版本是通過測試的。其中 -i https://pypi.mirrors.ustc.edu.cn/simple 主要是指定pip 為國內軟件源安裝,提升安裝速度。
下面依賴庫安裝通常是沒什么問題的,就不截圖安裝過程了
pip install opencv-python==4.4.0.44 -i https://pypi.mirrors.ustc.edu.cn/simple
pip install Pillow -i https://pypi.mirrors.ustc.edu.cn/simple
pip install matplotlib -i https://pypi.mirrors.ustc.edu.cn/simple
五、配置PyCharm開發環境
1)打開PyCharm,新建工程;
2)然后選擇 1 工程所放目錄路徑;2 點擊查看詳情配置; 3點擊選擇創建的開發環境
3)設置開發環境,使用之前在Anaconda創建好的環境:YOLO3-GPU-Tensoflow2
點擊OK,然后點擊create。
測試環境
新建一個python文件,編寫測試程序:
測試代碼:
import tensorflow as tf
tensorflow_version = tf.__version__
#以下兩行代碼適合有“布置GPU環境的”
gpu_available = tf.test.is_gpu_available()
print("tensorflow version:", tensorflow_version, "\tGPU available:", gpu_available)
#以下一行代碼適合沒有“布置GPU環境的”,純CPU版本的
#print("tensorflow version:", tensorflow_version)
a = tf.constant([1.0, 2.0], name="a")
b = tf.constant([1.0, 2.0], name="b")
result = tf.add(a, b, name="add")
print(result)
運行結果:
能看到YOLO的開發環境搭建成功了,恭喜啊。
先看一下LOYOv3 的效果:YOLOv3物體/目標檢測之實戰篇(Windows系統、Python3、TensorFlow2版本)
1)有四只小貓被檢測出來:
使用淺藍色的框框,把小貓的所在位置框出來,並在框框上方注釋標簽(類別 置信度)。比如第一只小貓檢測出的標簽是cat ,置信度是0.95,即有95%的把握認為是cat 貓。
2)一只小狗和一只小貓同時被檢測出來:
小貓被檢測出是cat,1.00;有100%的把握認為是cat 貓;小狗被檢測出是dog,0.97;有97%的把握認為是cat 貓;
3)在復雜的十字路口,有許多行人和車輛被檢測出來了:
大家可以看到大部分的行人、小汽車和公交車是被檢測出來了,存在小部分沒有被檢測出來;如果是做特定場景的目標檢測,建議大家后續采購特定場景的數據,重新訓練網絡,生成穩定且高精度的模型,保存權重文件,便於后續使用。
希望對你有幫助,如果發現文章有誤,歡迎指出。
歡迎交流:https://guo-pu.blog.csdn.net/
https://github.com/guo-pu/yolov3-tf2























