Vitis AI API_1 是一组基于高级 API 的库,其中包含不同的视觉任务,包括分类、检测与分割。它专为完整算法流程而优化,包括预处理和后处理,并且支持 AI Model Zoo 中的模型。
- 从 https://github.com/Xilinx/Vitis-AI 下载对应的 Docker 镜像。
- 加载和运行 Docker 镜像。
- 在主机侧创建文件夹,并将浮动模型置于其中,然后使用 Vitis AI 量化器来量化模型。如需了解更多详情,请参阅 Vitis AI 用户指南(UG1414)。
- 使用 Vitis AI 编译器来编译该模型以生成 xmodel 文件,例如,yolov3_custom.xmodel。如需了解更多信息,请参阅 Vitis AI 用户指南(UG1414)。
- 创建 yolov3_custom.prototxt 文件,如以下片段所示。
model { name: "yolov3_custom" kernel { name: "yolov3_custom" mean: 0.0 mean: 0.0 mean: 0.0 scale: 0.00390625 scale: 0.00390625 scale: 0.00390625 } model_type : YOLOv3 yolo_v3_param { num_classes: 20 anchorCnt: 3 layer_name: "59" layer_name: "67" layer_name: "75" conf_threshold: 0.3 nms_threshold: 0.45 biases: 10 biases: 13 biases: 16 biases: 30 biases: 33 biases: 23 biases: 30 biases: 61 biases: 62 biases: 45 biases: 59 biases: 119 biases: 116 biases: 90 biases: 156 biases: 198 biases: 373 biases: 326 test_mAP: false } }
- 创建 yolov3_custom 文件夹。将 yolov3_custom.xmodel 和 yolov3_custom.prototxt 文件置于 yolov3_custom 文件夹内。
- 将 yolov3_custom 文件夹复制到目标上的 /usr/share/vitis_ai_library/models。
- 使用 Yolov3 样本代码作为应用代码。无需对其进行修改。
int main(int argc, char* argv[]) { std::string model = argv[1]; return vitis::ai::main_for_jpeg_demo( argc, argv, [model] { return vitis::ai::YOLOv3::create(model); }, process_result, 2); }
- 对程序进行交叉编译,并生成名为 test_jpeg_yolov3 的可执行文件。
cd Vitis-AI/examples/vai_library/samples/yolov3 sh -x build.sh
- 使用 scp 将可执行程序复制到目标开发板。
scp test_jpeg_yolov3 root@IP_OF_BOARD:~/
- 在目标上安装 VART 运行时。如需了解详细信息,请参阅 步骤 3:安装 AI Library 程序包。
- 在目标开发板上执行程序,以获取如下结果。
./test_jpeg_yolov3 yolov3_custom sample.jpg
注释: 使用 Vitis AI API_1 进行开发时,请准备 model.xmodel 和 model.protxt 文件。搭配 Vitis AI Library 样本来运行模型。您可在 Vitis-AI/examples/vai_library/samples 文件夹中找到所有 Vitis AI Library 样本。