在 Raspberry Pi 5 上安装 CVAT(1)

前言#
大家了解 CVAT 吗?
CVAT 是一款专为计算机视觉项目设计的标注工具,在同类开源软件中可以说是最受欢迎的工具之一。
CVAT 虽然非常实用,但如果由个人运行,在维护方面仍有一些问题需要考虑。让它常驻在主力电脑上会占用不少内存,而官方镜像仅支持 x86_64,因此无法直接在闲置的 Raspberry Pi 上运行。
本文将通过一些调整,让 CVAT 能够在 Raspberry Pi 5 上运行。
测试环境#
| 项目 | 配置 |
|---|---|
| 设备 | Raspberry Pi 5(8 GB) |
| 操作系统 | Raspberry Pi OS(64 位,6.12.75+rpt-rpi-v8) |
| CVAT | v2.64.0 |
1. 前期设置#
安装 Docker#
CVAT 通过 Docker 运行,因此先使用官方脚本安装 Docker。
# 使用官方脚本安装 Docker
curl -sSL https://get.docker.com | sh
为当前登录用户授予 Docker 使用权限,然后让更改生效。
# 将当前登录用户加入 docker 组
sudo usermod -aG docker $USER
# 在当前 shell 中应用更改(也可以重启)
newgrp docker
确认 Docker 能够正常运行。
docker run hello-world
如果出现如下图所示的输出,就说明 Docker 已成功安装。

设置页面大小#
操作系统以“页”为单位管理内存,页面大小就是内存管理所使用的最小单位。
Windows 和其他 Linux 发行版中也有同样的概念,绝大多数操作系统都将页面大小设为 4 KiB。
Raspberry Pi OS 比较特殊,默认使用 16 KiB 页面。由于这一差异,部分 Docker 镜像在默认设置下无法正常运行。
因此,需要按照以下步骤将页面大小改为 4 KiB。
更改页面大小后,之前能够正常运行的软件也可能出现问题。请在了解风险后自行决定是否更改。
# 查看当前页面大小(默认应显示 16384)
getconf PAGE_SIZE
# 编辑配置文件
sudo nano /boot/firmware/config.txt
在 /boot/firmware/config.txt 文件末尾添加以下内容。
[pi5]
kernel=kernel8.img
重启后,如果页面大小变为 4096,就说明更改已完成。
# 重启
sudo reboot
# 查看当前页面大小(显示 4096 即表示更改完成)
getconf PAGE_SIZE
2. 安装 CVAT#
下载 CVAT#
完成前期准备后,克隆 CVAT 仓库。
# 从 GitHub 克隆仓库
git clone https://github.com/cvat-ai/cvat
cd cvat
# 将源码切换到 v2.64.0
git checkout v2.64.0
构建 CVAT#
接下来,构建 CVAT 核心服务所使用的 Docker 镜像。
在 x86_64 设备上可以直接使用预构建镜像,但基于 ARM64 的 Raspberry Pi 5 需要自行构建。
docker compose -f docker-compose.yml -f docker-compose.dev.yml build cvat_server cvat_ui
在本次测试环境中,构建大约需要 20 到 30 分钟。
如下图所示,CPU 使用率基本保持在 100%。

设置主机地址#
CVAT 无法通过未提前登记的地址访问。
默认主机地址为 localhost。如果需要从局域网内的其他设备访问,请在仓库中创建一个名为 .env 的文件,并按以下方式进行设置。
CVAT 会将该文件中的内容作为环境变量读取。
CVAT_HOST=10.10.10.114 # 请改为 Raspberry Pi 5 的地址
3. 启动 CVAT#
从命令行启动 CVAT#
完成设置后,使用以下命令启动 CVAT。
docker compose -f docker-compose.yml up -d
添加管理员账户#
CVAT 启动后,使用以下命令添加管理员账户。
docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'
首次启动时会执行一些初始化操作。如果出现错误,请稍等片刻后再次尝试。
一般来说,如果超过 10 分钟仍持续报错,原因可能并非初始化,而是发生了其他问题。
出现如下图所示的画面,就说明账户创建成功。

从浏览器访问#
账户创建完成后,在浏览器中访问 CVAT。
CVAT 使用 8080 端口。如果前面没有设置主机地址,请打开 localhost:8080;如果指定了地址,则可以使用 10.10.10.114:8080 这样的形式访问。
如果运行正常,浏览器中会显示登录界面。
输入刚才在命令行中创建的用户名和密码并登录。

登录后,会显示如下图所示的界面。

至此,CVAT 已安装完成。
4. 停止 CVAT#
如需停止 CVAT,请在仓库根目录中执行以下命令。
docker compose -f docker-compose.yml down
5. 总结#
CVAT 的后端使用 Python 编写,前端使用 TypeScript 编写。由于其中几乎没有依赖特定 CPU 架构的部分,因此在 Raspberry Pi 5 上安装 CVAT 相对简单。
需要注意的主要有两点:更改 Raspberry Pi 5 的页面大小,以及从源码构建 Docker 镜像。
如前文所述,更改页面大小可能会影响其他软件。请在了解风险后自行决定是否更改。
参考资料#
Next reading
あわせて読みたい
関連するベンチや運用ログ、深掘り記事を続けて読めます。