前言
昨天收到了腾讯云的活动服务器到期提醒,抱着学习的态度(白嫖的资源到了最后一刻也要压榨到底)进行了Linux YOLOv5
的配置试验(有关YOLOv5
的详细笔记见今年寒假时我写的Win10下YOLOv5的CPU环境搭建),现将本次笔记记录如下:
安装pytorch
1、官网地址https://pytorch.org/
2、根据自己的需求选择
例如此时最新版本对应的安装方法为:
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu
但是,对于默认情况下无法访问境外网站的网络环境下(疯狂暗示校园网),可以使用国内镜像下载安装:
sudo pip3 install torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple
安装过程中可能会出现MemoryError
(如下图):
这是由于pip
安装的缓存机制想要先把整个文件读取到内存以后才开始安装进而导致内存不足导致的。所以我们在安装时指示不启用缓存即可,使用 --no-cache-dir
命令安装即可避坑:
sudo pip3 install --no-cache-dir torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple
还有可能会遇到:
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6_zbv3dk/pillow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-pf11hf8u-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-6_zbv3dk/pillow/
此时需要先:
# Setuptools 升级(Upgrade)
pip3 install --upgrade pip setuptools wheel
# 安装pillow(python的图形界面库)
python3 -m pip install Pillow
测试是否安装成功
import torch
#查看版本
print(torch.__version__)
#查看gpu是否可用
print(torch.cuda.is_available())
#返回设备gpu个数
print(torch.cuda.device_count())
下载YOLOv5 github
项目
sudo mkdir /yolov5
cd /yolov5/
sudo git clone https://github.com/ultralytics/yolov5
移出文件
cd yolov5/
sudo mv * .[^.]* ..
cd ..
sudo rm yolov5/ -r
安装依赖
python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
下载预训练模型并放到yolo
项目根目录。(下载yolov5l.pt
, yolov5m.pt
, yolov5s.pt
, yolov5x.pt
)
测试使用
测试一张网络图片
sudo python3 detect.py --weights yolov5s.pt --source http://upload.lcqixing.com/upload/202111/02/d0c4a9d7c3936b7ef4bef056d5cff99e.jpg
识别结果:
如果要不加sudo
也能识别,只需要修改权限:
# 修改权限
sudo chown -R ubuntu:ubuntu /yolov5/
# 普通权限也能识别了
python3 detect.py --weights yolov5s.pt --source http://upload.lcqixing.com/upload/202111/02/d0c4a9d7c3936b7ef4bef056d5cff99e.jpg
再来一张:
python3 detect.py --weights yolov5s.pt --source https://lab.soarli.top/web/imgs/cat.png
预训练模型竟然只有29%的把握认为它是cat
:
识别视频
python3 detect.py --weights yolov5s.pt --source ./xw_llh.mp4
识别完成:
好端端的100多MB硬是变成了600+MB:
再来测试一下流媒体
python3 detect.py --weights yolov5s.pt --source http://xxxxxxxxx
猜测由于其不兼容Python 3.6导致的此问题。
更新Python3
->3.7
:
# <安装Python 3.7>
sudo apt update
# add-apt-repository 命令是software-properties-common包的一部分
sudo apt install software-properties-common
# PPA软件源包含了从2.3到3.7在内的所有Python版本的deb安装包(并且仍然在紧随Python官方进行更新)
sudo add-apt-repository ppa:deadsnakes/ppa
# 安装3.7版本
sudo apt install python3.7
# <修改环境变量>
# 现在是3.6版本
python3 --version
# 修改环境变量
cd ~
echo alias python3=python3.7 >> ~/.bashrc
# source一下
source ~/.bashrc
# 记录一下指定python=python3的方法,非必要无需操作
echo alias python=python3 >> ~/.bashrc
再次以非sudo
权限执行(最好一开始先更换python
版本):
# 强制升级pip
python3 -m pip install --upgrade --force pip
# 安装yolo所需的依赖
python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
如果出现PyYAML
的报错:
ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
只需:
# 忽略已安装的PyYAML
python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --ignore-installed PyYAML
额...貌似猜想错误...
分析qt.qpa.xcb: could not connect to display
感觉应该由于视频cv.imshow()
之类的卡住了,简单分析了一下(也就花了一个通宵),找到了问题所在:
下面是detect.py
的源代码,其中红框内被注释掉的代码都是我加上的(原本没有):
解决问题:
独立视频资源
不难发现,对于网络资源,它采取“先下载,再识别”的策略:
完整操作
升级python 3.7
ubuntu@VM-4-11-ubuntu:~$ python3 --version
Python 3.6.9
# <安装Python 3.7>
sudo apt update
# add-apt-repository 命令是software-properties-common包的一部分
sudo apt install software-properties-common
# PPA软件源包含了从2.3到3.7在内的所有Python版本的deb安装包(并且仍然在紧随Python官方进行更新)
sudo add-apt-repository ppa:deadsnakes/ppa
# 安装3.7版本
sudo apt install python3.7
# 修改环境变量
cd ~
echo alias python3=python3.7 >> ~/.bashrc
# source一下
source ~/.bashrc
# 检查
ubuntu@VM-4-11-ubuntu:~$ python3 --version
Python 3.7.13
安装Pytorch
python3 -m pip install --no-cache-dir torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple
python3 -m pip install --upgrade pip setuptools wheel
python3 -m pip install Pillow
python3 -m pip install --no-cache-dir torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple
验证Pytorch
安装状态
ubuntu@VM-4-11-ubuntu:~$ python3
Python 3.7.13 (default, Mar 16 2022, 17:37:17)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)
1.11.0+cu102
>>> print(torch.cuda.is_available())
False
>>> print(torch.cuda.device_count())
0
部署yolo
项目
sudo mkdir /yolov5
cd /yolov5/
# 克隆Github仓库
sudo git clone https://github.com/ultralytics/yolov5
# 或者
wget https://cdn4.soarli.top/yolo/yolov5.zip
unzip yolov5.zip
移出文件:
cd yolov5/
sudo mv * .[^.]* ..
cd ..
sudo rm yolov5/ -r
# 修改权限
sudo chown -R ubuntu:ubuntu /yolov5/
安装依赖
python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
留意到第一次运行时需要到境外网站下载一个字体文件和与训练模型:
Downloading https://ultralytics.com/assets/Arial.ttf to /home/ubuntu/.config/Ultralytics/Arial.ttf...
不妨直接上传预训练模型和字体文件到/yolov5
:
wget https://cdn4.soarli.top/yolo/Arial.ttf
cp Arial.ttf /home/ubuntu/.config/Ultralytics/Arial.ttf
# 提供yolov5l.pt, yolov5m.pt, yolov5s.pt, yolov5x.pt
wget https://cdn4.soarli.top/yolo/pt_model/yolov5s.pt
开始识别:
python3 detect.py --weights yolov5s.pt --source http://upload.lcqixing.com/upload/202111/02/d0c4a9d7c3936b7ef4bef056d5cff99e.jpg
至此,搞定!
参考资料:
https://zhuanlan.zhihu.com/p/354648251
https://blog.csdn.net/weixin_42544131/article/details/114079270
https://blog.csdn.net/qqjjjaa11/article/details/100737978
https://blog.csdn.net/xue_csdn/article/details/94588823
https://blog.csdn.net/qq_41221841/article/details/123114200
https://blog.csdn.net/xiaojun1288/article/details/121357721
https://blog.csdn.net/weixin_41862755/article/details/121700282
版权属于:soarli
本文链接:https://blog.soarli.top/archives/656.html
转载时须注明出处及本声明。
文章写得不错,支持一下!
谢谢大佬