关键点检测,作为计算机视觉领域的重要分支,广泛应用于人体姿态估计、面部表情识别、手部动作分析等多个场景。其核心在于从图像中准确检测并定位特定的关键点位置。然而,目前存在单阶段和双阶段的关键点检测算法。单阶段的检测算法以yolo为代表的,而双阶段的目前就是mmpose中rtm-pose为代表的(目前个人了解到情况)。这里先了解一下单阶段的yolov8-pose的网络结构。但是在学习之前肯定要安装,而我最近发现其做了一些小改变。所以打算也学习一下其python的新规范pyporject.toml。
1,源码安装yolov8
本来安装没啥说的,但是我发现随着yolov8版本的不断迭代,最新的版本已经没有requirements.txt和setup.py了。在安装的时候,直接使用下面代码会报错:
pip install -e .
报错如下:
File "setup.py" or "setup.cfg" not found. Directory cannot be installed in editable mode: D:\work\ultralytics
(A "pyproject.toml" file was found, but editable mode currently requires a setuptools-based build.)
从报错可以看到,我们目录已经使用pyproject.toml文件来替换所谓的requirement.txt和setup.py了。所以项目已经使用现代的构建工具了。如果我们使用poetry即可。所以说想使用pyproject.toml,并通过pyproject.toml进行依赖包管理。
但是下面方法也可以解决,为了确保我们的python环境是最新的,直接升级pip即可。哈哈哈哈
pip install --upgrade pip
然后再安装也可以成功。但是这样安装还是以安装包的形式。我这样安装后,查看其情况如下:
这样就源码安装了成功了。为了验证是否可以修改代码。我创建一个train_custom.py文件,内容如下:
from ultralytics import YOLO
import os
def train_pose_model():
# load a pretrained model (recommended for training)
weights_path = r"D:\ultralytics\weights\yolov8n-pose.pt"
model = YOLO(weights_path)
# Train the model
# model.train(data='cfg/datasets/tiger-pose.yaml')
# print(model.info())
print(model)
if __name__ == '__main__':
os.environ['WANDB_DISABLED'] = 'true'
train_pose_model()
我们在Pose代码里面初始化加一句调试代码:
然后run一下,查看结果:
说明安装成功!!!
但是我们仍然查看一下pyproject.toml 的内容,当然主要看安装依赖,因为本文主要是安装嘛。
首先,就是pyproject.toml的依赖,据了解pyproject.tom文件是python的包管理工具之一,用于定义构建和打包过程。其依赖如下:
所以我们要确保自己的python环境已经安装了setuptools和wheel这两个Python包。他们是处理pyproject.toml文件所必需的。如果问题仍然存在,我们就需要检查是否安装了正确的python版本。因为某些Python包可能只支持特定版本的Python。比如我们的yolov8就需要Python3.8及其以上。
当然如果还习惯于之前安装的方式。也为了方便起见,我们最简单的就是将其修改为requirements.txt文件,然后使用pip安装。
我这里也提供对应的requirements.txt 和setup.py。
直接使用下面安装即可:
python setup.p