前言

使用的 Jetson Orin Nano Super Developer Kit (8G) 已经安装好了 ubuntu 22.04 系统,本文在此基础上进行的探索

Jetson AI lab 教程

OmniParser-V2

环境配置

OmniParser 要求 python 3.12

但是 Jetson 使用的 torch 等工具只能使用 python 3.10

因此,我们选择 python 3.10 来继续探索

Firefox

1
sudo apt install firefox

Anaconda

使用 firefox 去官网下载吧

1
bash xxx.sh

新环境

使用 Anaconda 创建一个新环境

1
conda create -n omni python==3.10

CUDA 工具链 以及 torch

跟随教程(从第二步开始)->
教程

第四步会报错,可以试试不做

做完第五步结束

测试 torch cuda

1
2
3
import torch
print(torch.__version__)
print(torch.cuda.is_available())

OmniParser 依赖

1
2
cd OmniParser_dir
pip install -r requirements.txt

OmniParser 模型

1
2
3
# download the model checkpoints to local directory OmniParser/weights/
for f in icon_detect/{train_args.yaml,model.pt,model.yaml} icon_caption/{config.json,generation_config.json,model.safetensors}; do huggingface-cli download microsoft/OmniParser-v2.0 "$f" --local-dir weights; done
mv weights/icon_caption weights/icon_caption_florence

大概率报错:

1
```

运行

1
python gradio_demo.py

应该会报错链接不了 huggingface.co

gradio_demo.py 最前面加上

1
2
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

再次运行,似乎已经成功?

127.0.0.1:7861

问题与解决方案

实际上当然不是,尝试将图片放入并尝试输出

就算等到天荒地老,想要的输出也不会到来

检查控制台,并没有报错

发现问题

好吧,我们可以想象到大概率是 python 版本导致的问题

控制台不报错我们又该怎么解决呢

去官网可以看到,还有一些示例可供运行

examples

我们尝试运行一下,会报下面这个问题

1
ImportError: cannot import name 'StrEnum' from 'enum' (/home/t102/anaconda3/envs/omni/lib/python3.10/enum.py)

好吧,这就是要求 python3.12 的原因

解决方案

解决方法: stackoverflow

将所有相关的 enum 全部替换掉,再次运行即成功

破局之道有时也会在棋局之外