diff --git a/contrib/Collision/collision.py b/contrib/Collision/collision.py index f2389fe78c0b05316d4b392ca585c3cebd7db39b..427b9f289686ae5082b465289f6669ebe4b2a1ed 100644 --- a/contrib/Collision/collision.py +++ b/contrib/Collision/collision.py @@ -47,12 +47,7 @@ if __name__ == '__main__': # Obtain the inference result by specifying streamName and uniqueId. infer_result = streamManagerApi.GetResult(STREAM_NAME, 0, 300000) fo.write(infer_result.data) - T = T + 1 - print(T) - # the toal frames of video - if T > 100: - print('ending') - break + fo.close() # destroy streams diff --git a/contrib/EfficientDet/README.md b/contrib/EfficientDet/README.md index 9186dc0ed84a1e9a1086cadc2fa5720552935f8a..c9f64435978a2ae775273ffe00ab38de94d9dbf8 100644 --- a/contrib/EfficientDet/README.md +++ b/contrib/EfficientDet/README.md @@ -1,325 +1,98 @@ # EfficientDet 目标检测 ## 1. 介绍 -EfficientDet 目标检测后处理插件基于 MindXSDK 开发,对图片中的不同类目标进行检测,将检测得到的不同类的目标用不同颜色的矩形框标记。输入一幅图像,可以检测得到图像中大部分类别目标的位置。本方案使用在 COCO2017 数据集上训练得到的 EfficientDet 模型进行目标检测,数据集中共包含 90 个目标类,包括行人、自行车、公共汽车、手机、沙发、猫、狗等,可以对不同类别、不同角度、不同密集程度的目标进行检测。 -### 1.1 支持的产品 +### 1.1 简介 +EfficientDet 目标检测后处理插件基于 mxVision 开发,对图片中的不同类目标进行检测,将检测得到的不同类的目标用不同颜色的矩形框标记。输入一幅图像,可以检测得到图像中大部分类别目标的位置。本方案使用在 COCO2017 数据集上训练得到的 EfficientDet 模型进行目标检测,数据集中共包含 90 个目标类,包括行人、自行车、公共汽车、手机、沙发、猫、狗等,可以对不同类别、不同角度、不同密集程度的目标进行检测。 -本项目以昇腾Atlas310卡为主要的硬件平台。 +### 1.2 支持的产品 +本项目以昇腾Atlas 300I pro和 Atlas300V pro为主要的硬件平台。 -### 1.2 支持的版本 -CANN:7.0.0 +### 1.3 支持的版本 -SDK:mxVision 5.0.0(可通过cat SDK目录下的 version.info 查看) - - -### 1.3 软件方案介绍 - -基于MindX SDK的目标检测业务流程为:待检测图片通过 appsrc 插件输入,然后使用图像解码插件 mxpi_imagedecoder 对图片进行解码,再通过图像缩放插件 mxpi_imageresize 将图像缩放至满足检测模型要求的输入图像大小要求,缩放后的图像输入模型推理插件 mxpi_tensorinfer 得到推理结果,推理结果输入 mxpi_objectpostprocessor 插件进行后处理,得到输入图片中所有的目标框位置和对应的置信度。最后通过输出插件 appsink 获取检测结果,并在外部进行可视化,将检测结果标记到原图上,本系统的各模块及功能描述如表1所示: - -表1 系统方案各模块功能描述: - -| 序号 | 子系统 | 功能描述 | -| ---- | ------ | ------------ | -| 1 | 图片输入 | 获取 jpg 格式输入图片 | -| 2 | 图片解码 | 解码图片 | -| 3 | 图片缩放 | 将输入图片放缩到模型指定输入的尺寸大小 | -| 4 | 模型推理 | 对输入张量进行推理 | -| 5 | 目标检测后处理 | 从模型推理结果计算检测框的位置和置信度,并保留置信度大于指定阈值的检测框作为检测结果 | -| 6 | 结果输出 | 获取检测结果| -| 7 | 结果可视化 | 将检测结果标注在输入图片上| +| MxVision版本 | CANN版本 | Driver/Firmware版本 | + | --------- | ------------------ | -------------- | +| 6.0.RC3 | 8.0.RC3 | 24.1.RC3 | +### 1.4 三方依赖 +| 软件名称 | 版本 | +| -------- | ------ | +| webcolors| 1.11.1 | -### 1.4 代码目录结构与说明 +### 1.5 代码目录结构与说明 本工程名称为 EfficientDet,工程目录如下所示: ``` . ├── build.sh ├── images -│   ├── DetectionPipeline.png -│   ├── EvaluateInfo.png -│   ├── EvaluateInfoPrevious.png -│   └── VersionError.png +│   └── DetectionPipeline.png ├── postprocess │   ├── build.sh │   ├── CMakeLists.txt │   ├── EfficientdetPostProcess.cpp │   └── EfficientdetPostProcess.h ├── python -│   ├── evaluate.py │   ├── main.py │   ├── models │   │   ├── aipp-configs -│   │   │   ├── insert_op_d0.cfg -│   │   │   ├── insert_op_d0_previous_version.cfg -│   │   │   ├── insert_op_d1.cfg -│   │   │   ├── insert_op_d2.cfg -│   │   │   ├── insert_op_d3.cfg -│   │   │   ├── insert_op_d4.cfg -│   │   │   ├── insert_op_d5.cfg -│   │   │   └── insert_op_d6.cfg +│   │   │   └── insert_op_d0.cfg │   │   ├── coco.names -│   │   ├── conversion-scripts -│   │   │   ├── model_conversion_d0_previous_version.sh -│   │   │   ├── model_conversion_d0.sh -│   │   │   ├── model_conversion_d1.sh -│   │   │   ├── model_conversion_d2.sh -│   │   │   ├── model_conversion_d3.sh -│   │   │   ├── model_conversion_d4.sh -│   │   │   ├── model_conversion_d5.sh -│   │   │   └── model_conversion_d6.sh -│   │   ├── efficient-det.cfg -│   │   ├── efficient-det-eval.cfg -│   │   └── onnx-models +│   │   └── efficient-det.cfg │   └── pipeline -│   ├── EfficientDet-d0.pipeline -│   ├── EfficientDet-d0-previous-version.pipeline -│   ├── EfficientDet-d1.pipeline -│   ├── EfficientDet-d2.pipeline -│   ├── EfficientDet-d3.pipeline -│   ├── EfficientDet-d4.pipeline -│   ├── EfficientDet-d5.pipeline -│   └── EfficientDet-d6.pipeline +│   └── EfficientDet-d0.pipeline └── README.md - ``` +## 2 设置环境变量 -### 1.5 技术实现流程图 +在执行后续步骤前,需要设置环境变量: -EfficientDet 的后处理插件接收模型推理插件输出的两个特征图,位置回归特征图 R 和分类特征图 C,其中 R 的形状大小为 1 x n x 4, n 表示模型在输入图片上预设的 anchors 个数,4 分别表示检测结果矩形框左上角点坐标 x, y 相对预设 anchor 的位移,以及检测框的宽、高相对预设 anchor 的比例,C 的形状大小为 1 x n x 90,90 表示每个检测框属于每个类的置信度值,该值位于 0-1 之间。后处理插件继承自 MindXSDK 的目标检测后处理插件基类,后处理插件中可以获得图片缩放插件传递的图像尺寸缩放信息 ResizedImageInfo,包括缩放前图片宽、高和缩放后图片宽、高。 -后处理插件从模型推理输出 R、C 和图像尺寸缩放信息 ResizedImageInfo 计算检测结果的整体流程如下图所示: -
- -
-
-1. **计算预设 anchors。** 根据 ResizedImageInfo 计算不同宽高比、不同大小、在原图上不同位置的预设 anchors,anchors 的形状为 n x 4, 4 表示每个 anchor 的左上角坐标和宽、高。 - -2. **根据 R、anchors、ResizedImageInfo、C 计算每个检测框的位置、宽高、类别以及类别置信度。** R 中的每个 4 元向量和 anchors 中每个 4 元向量是对应的,根据坐标位移和宽高比例计算得到真实的检测框位置和宽、高,同时去除置信度小于指定阈值 CT 的检测跨框。 - -3. **NMS 去除冗余检测框。** 对步骤 2 中剩余的检测框进行筛选,首先按照置信度对保留的检测框排序,从置信度高的检测框开始,去除于其 IOU 值超过指定阈值 IT 的检测框,得到最终的检测结果。 - - -## 2 环境依赖 - -推荐系统为ubuntu 18.04,环境依赖软件和版本如下表: - -| 软件名称 | 版本 | -| -------- | ------ | -| cmake | 3.5+ | -| MindX SDK | 5.0.0 | -| CANN | 7.0.0 | -| python | 3.9.2 | -| webcolors| 1.11.1 | - -确保环境中正确安装mxVision SDK。 - -在编译运行项目前,需要设置环境变量: -``` -. {cann_install_path}/ascend-toolkit/set_env.sh -. {sdk_install_path}/mxVision/set_env.sh +```bash +# 执行环境变量脚本使环境变量生效 +. ${ascend-toolkit-path}/set_env.sh +. ${mxVision-path}/set_env.sh +# mxVision-path: mxVision安装路径 +# ascend-toolkit-path: CANN安装路径 ``` -## 3. 模型转换 +## 3 准备模型 +步骤1 下载模型相关文件 -本项目中采用的模型是 EfficientDet 模型,参考实现代码:https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch, 选用的模型是该 pytorch 项目中提供的模型 efficientdet-d0.pth,本项目运行前需要将 pytorch 模型转换为 onnx 模型,然后使用模型转换工具 ATC 将 onnx 模型转换为 om 模型,模型转换工具相关介绍参考链接:https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99.md 。本项目中使用的 onnx 模型和 om 模型链接:https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/EfficientDet/models.zip +根据[链接](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/EfficientDet/models.zip)下载得到simplified-efficient-det-d0-mindxsdk-order.onnx文件,将该文件放入项目根目录下的model目录。 -自行转换模型步骤如下: -1. 从上述 onnx 模型下载链接中下载 onnx 模型 simplified-efficient-det-d0-mindxsdk-order.onnx 和 simplified-efficient-det-d6-mindxsdk-order.onnx 至 ``python/models/onnx-models`` 文件夹下。 -2. 进入 ``python/models/conversion-scripts`` 文件夹下依次执行命令: -``` -bash model_conversion_d0.sh -bash model_conversion_d6.sh -``` -执行后会在当前文件夹下生成项目需要的模型文件 efficient-det-d0-mindxsdk-order.om 和 efficient-det-d6-mindxsdk-order.om,转换成功的终端输出为: -``` -ATC start working now, please wait for a moment. -ATC run success, welcome to the next use. - -``` -表示命令执行成功。 +步骤2 转换模型格式 -### 3.1 可选操作 -上述方法使用提供的 onnx 模型转换得到 om 模型,该模型的输入尺寸是 (512, 512),若想转换得到其他输入尺寸的模型,或者想从 pytorch 模型转 onnx 模型,相关操作步骤如下: -1. 从上述参考实现代码链接下载 pytorch 项目文件,执行: +进入到项目根目录的model目录下,执行以下命令: ``` -git clone https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch.git +atc --model=../onnx-models/simplified-efficient-det-d0-mindxsdk-order.onnx --framework=5 --output=../efficient-det-d0-mindxsdk-order --soc_version=Ascend310 --input_shape="input:1, 3, 512, 512" --input_format=NCHW --output_type=FP32 --out_nodes='Concat_10954:0;Sigmoid_13291:0' --log=error --insert_op_conf=../aipp-configs/insert_op_d0.cfg ``` -或者下载 ZIP 压缩包再解压,在当前目录下得到 ``Yet-Another-EfficientDet-Pytorch-master`` 代码文件夹。 - -2. 按照参考实现代码链接中的说明配置 pytorch 环境。 +执行该命令后会在当前文件夹下生成项目需要的模型文件 efficient-det-d0-mindxsdk-order.om。 -3. 将**本项目目录下**的 ``python/models/convert_to_onnx.py`` 文件复制到 ``Yet-Another-EfficientDet-Pytorch-master`` 目录下。 -4. 因为源项目中的代码不支持直接从 pth 模型转换成 onnx 模型,参考链接 https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch/issues/111 中的步骤修改相关代码文件。 - -5. 从上述 github 项目页面给出的模型权重表格中下载 pytorch 模型文件,如 EfficientDet-d0 模型对应 efficientdet-d0.pth, EfficientDet-d1 模型对应 efficientdet-d1.pth,下载好的权重文件放置在 ``Yet-Another-EfficientDet-Pytorch-master/weights`` 目录下。 - -6. 在``Yet-Another-EfficientDet-Pytorch-master`` 目录下创建 ```onnx-models``` 目录,运行命令: -``` -python3 convert_to_onnx.py --compound_coef={compound_coef} --load_weights=weights/efficientdet-d{compound_coef}.pth --output-name=efficient-det-d{compound_coef}-mindxsdk-order.onnx -``` -将命令中 {compound_coef} 替换成具体值,取值范围为 [0, 6],例如想要转换 efficientdet-d0.pth 为 onnx 模型时,执行命令: -``` -python3 convert_to_onnx.py --compound_coef=0 --load_weights=weights/efficientdet-d0.pth --output-name=efficient-det-d0-mindxsdk-order.onnx -``` -执行成功后会 ```onnx-models``` 目录下生成从 pytorch 模型转化得到的 onnx 模型,simplified-efficient-det-d{compound_coef}-mindxsdk-order.onnx - -7. 成功转换得到 onnx 文件后,将 onnx 文件拷贝到**本项目目录下** 的``python/models/onnx-models`` 目录下,然后将其转换为 om 模型,转换步骤如下: -- 进入 ``python/models/conversion-scripts`` 目录; -- 执行命令: -``` -bash model_convertion_d{compound_coef}.sh -``` -该命令执行成功后会在 ``python/models`` 文件夹下生成对应名称为 efficient-det-d{compound_coef}-mindxsdk-order的 om 模型文件。 ## 4. 编译与运行 -**步骤1** 按照第 2 小节 **环境依赖** 中的步骤设置环境变量。 - -**步骤2** 如果使用的是上述链接提供的 onnx 模型或者 om 模型,按照第 3 小节 **模型转换** 中的步骤获得 om 模型文件,放置在 ``python/models`` 目录下。 +**步骤1:编译** -**步骤3** 编译。在项目目录下执行bash build.sh命令。 +在项目目录下执行bash build.sh命令。 此时会生成postprocess/build/libefficientdetpostprocess.so 文件 -**步骤4** 图片检测。将一张图片放在项目目录下,命名为 img.jpg,在该图片上进行检测 ->**如提示so库异常,则需要从 ```main.py``` 中找到使用的 pipeline 文件路径,将其中 mxpi_objectpostprocessor0 插件的 postProcessLibPath 属性值改为具体路径值** +**步骤2:运行** + +将一张jpg图片放在项目目录根目录下,命名为 img.jpg。进入项目根目录下的python目录,执行命令如下: 执行命令: ``` -cd python python3 main.py ``` -命令执行成功后在当前目录下生成检测结果文件 img_detect_result.jpg,查看结果文件验证检测结果。 - -**步骤5** 精度测试。 - -1. 安装 python COCO 评测工具。执行命令: -``` -pip3 install pycocotools -``` - -2. 下载 COCO VAL 2017 数据集和标注文件,下载链接:https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/EfficientDet/data.zip, 在 ``python`` 目录下创建 ``dataset`` 目录,将数据集压缩文件和标注数据压缩文件都解压至 ``python/dataset`` 目录下。确保解压后的 python 目录结构为: -``` -. -├── dataset -│   ├── annotations -│   │   └── instances_val2017.json -│   └── val2017 -│   ├── 000000581615.jpg -│   ├── 000000581781.jpg -│   └── other-images -├── evaluate.py -├── main.py -├── models -│   ├── aipp-configs -│   │   ├── insert_op_d0.cfg -│   │   ├── insert_op_d0_previous_version.cfg -│   │   ├── insert_op_d1.cfg -│   │   ├── insert_op_d2.cfg -│   │   ├── insert_op_d3.cfg -│   │   ├── insert_op_d4.cfg -│   │   ├── insert_op_d5.cfg -│   │   └── insert_op_d6.cfg -│   ├── coco.names -│   ├── conversion-scripts -│   │   ├── model_conversion_d0_previous_version.sh -│   │   ├── model_conversion_d0.sh -│   │   ├── model_conversion_d1.sh -│   │   ├── model_conversion_d2.sh -│   │   ├── model_conversion_d3.sh -│   │   ├── model_conversion_d4.sh -│   │   ├── model_conversion_d5.sh -│   │   └── model_conversion_d6.sh -│   ├── efficient-det.cfg -│   ├── efficient-det-eval.cfg -│   └── onnx-models -└── pipeline - ├── EfficientDet-d0.pipeline - ├── EfficientDet-d0-previous-version.pipeline - ├── EfficientDet-d1.pipeline - ├── EfficientDet-d2.pipeline - ├── EfficientDet-d3.pipeline - ├── EfficientDet-d4.pipeline - ├── EfficientDet-d5.pipeline - └── EfficientDet-d6.pipeline - -``` - -3. 执行验证 - -**从 ```evaluate.py``` 中找到使用的 pipeline 文件路径,将其中 mxpi_objectpostprocessor0 插件的 postProcessLibPath 属性值改为具体路径值,** 然后执行命令: -``` -cd python -python3 evaluate.py --pipeline=pipeline/EfficientDet-d0.pipeline --output=val2017_detection_result_d0.json -``` -命令执行结束后输出 COCO 格式的评测结果,并生成 val2017_detection_result_d0.json 检测结果文件。输出结果如下图所示: -
- -
-
-其中圈出来的部分为模型在 COCO VAL 2017 数据集上,IOU 阈值为 0.50:0.05:0.95 时的精度值为 0.325。 - -该指标是基于 MindXSDK 2.0.2.1 版本的评测结果,此时 pipeline 的流程为将 ImageDecoder 插件的输出格式类型设置为 RGB,进入 ImageResize 插件,该插件要想接收 RGB 格式输入必须将 "cvProcessor" 属性设置为 "opencv",该版本支持同时将 "resizeType" 属性设置为 "Resizer_KeepAspectRatio_Fit",这样该插件可以实现接收 RGB 格式输入同时按照宽高比例缩放的功能,转换 om 模型时的 aippconfig 配置中 "input_format" 属性值设置为 "RGB888_U8" 即可。 - -如果项目环境是基于 MindXSDK 2.0.2 版本时,该版本下将 ImageResize 插件的 "cvProcessor" 属性设置为 "opencv" 时,无法实现将 "resizeType" 属性设置为 "Resizer_KeepAspectRatio_Fit", 报错信息参考第 5 节常见问题中的 5.1,这种情形下无法在 pipeline 中配置模型输入为 RGB 格式同时按照宽高比例缩放,只能在转换 om 模型时设置色域转换模式为 YUV420SP_U8 to RGB,使得模型输入为 RGB 格式,同时在 pipeline 中不设置 ImageResize 插件的 "cvProcessor" 属性值,只设置 "resizeType" 属性为 "Resizer_KeepAspectRatio_Fit",这样可以实现模型输入为 RGB 格式同时按照宽高比例缩放。这种情形下的模型转换和评测步骤为: -1. 转换模型。进入 ``python/models/conversion-scripts`` 文件夹下执行命令: -``` -bash model_convertion_d0_previous_version.sh -``` -执行成功后在 ``python/models`` 文件夹下生成 efficient-det-d0-mindxsdk-order-previous-version.om 模型文件。 - -2. 评测。将 ```python/pipeline/EfficientDet-d0-previous-version.pipeline``` 中 mxpi_objectpostprocessor0 插件的 postProcessLibPath 属性值中的 ${MX_SDK_HOME} 值改为具体路径值,然后执行命令: -``` -python3 evaluate.py --pipeline=pipeline/EfficientDet-d0-previous-version.pipeline --output=val2017_detection_result_d0_previous_version.json -``` -命令执行结束后输出 COCO 格式的评测结果,并生成 val2017_detection_result_d0_previous_version.json 检测结果文件。输出结果如下图所示: -
- -
-
-其中圈出来的部分为模型在 COCO VAL 2017 数据集上,IOU 阈值为 0.50:0.05:0.95 时的精度值为 0.310。采用这种 pipeline 配置和模型转换方式得到的 om 模型评测指标会稍有下降,但相应的模型性能会有所提升。 - -## 5 常见问题 - - -### 5.1 MindXSDK 版本问题 -**问题描述:** - -要求 MindXSDK 的版本至少为 2.0.2.1,否则出现 ImageResize 插件不能设置 "cvProcessor": "opencv" 属性问题,如下图所示: -
- -
-
- -**解决方案:** - -确保 MindXSDK 版本至少为 2.0.2.1。 - -### 5.2 未修改 pipeline 文件中的 ${MX_SDK_HOME} 值为具体值 -运行检测 demo 和评测时都需要将对应 pipeline 文件中 mxpi_objectpostprocessor0 插件的 postProcessLibPath 属性值中的 ${MX_SDK_HOME} 值改为具体路径值,否则会报错,如下图所示: -
- -
-
- -**解决方案:** - -检测 main.py 和 evaluate.py 里所用的 pipeline 文件, 将文件中 mxpi_objectpostprocessor0 插件的 postProcessLibPath 属性值中的 ${MX_SDK_HOME} 值改为具体路径值。 - -### 5.3 未修改模型文件或生成so的权限 -SDK对运行库so和模型文件有要求,如出现以下报错提示请参考FASQ中相关内容使用chmod指定权限640 -```shell -Check Owner permission failed: Current permission is 7, but required no greater than 6. -``` +**步骤3:查看结果** -**解决方案:** -cd到对应目录并指定相关文件权限为640 \ No newline at end of file +执行成功后在当前目录下生成检测结果文件 img_detect_result.jpg,查看结果文件验证检测结果。 diff --git a/mxVision/AllObjectsStructuringV2/main.cpp b/mxVision/AllObjectsStructuringV2/main.cpp index 0fab7f4563a698660f0c148d3224594fc9a34e9b..20bea7cb46dce269c599e0325aebadaa7f625757 100644 --- a/mxVision/AllObjectsStructuringV2/main.cpp +++ b/mxVision/AllObjectsStructuringV2/main.cpp @@ -29,6 +29,7 @@ #include "MxBase/postprocess/include/ObjectPostProcessors/Yolov3PostProcess.h" #include "MxBase/E2eInfer/ImageProcessor/ImageProcessor.h" #include "MxBase/DeviceManager/DeviceManager.h" +#include "MxBase/Log/Log.h" #include "postprocessor/resnetAttributePostProcess/resnetAttributePostProcess.h" #include "postprocessor/carPlateDetectionPostProcess/SsdVggPostProcess.h" diff --git a/mxVision/AllObjectsStructuringV2/postprocessor/carPlateDetectionPostProcess/SsdVggPostProcess.cpp b/mxVision/AllObjectsStructuringV2/postprocessor/carPlateDetectionPostProcess/SsdVggPostProcess.cpp index 305ba911e818d095fb0903d8e1888b2fd91d476d..234759788e29e344dbfa6a2795ca9b89e331f359 100644 --- a/mxVision/AllObjectsStructuringV2/postprocessor/carPlateDetectionPostProcess/SsdVggPostProcess.cpp +++ b/mxVision/AllObjectsStructuringV2/postprocessor/carPlateDetectionPostProcess/SsdVggPostProcess.cpp @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +#include "MxBase/Log/Log.h" #include "SsdVggPostProcess.h" namespace diff --git a/mxVision/AllObjectsStructuringV2/utils/multiObjectTracking/multiObjectTracker.cpp b/mxVision/AllObjectsStructuringV2/utils/multiObjectTracking/multiObjectTracker.cpp index 77f8c9ae13f19124af6593eab89485aec2b9e376..706d498e02a9c3ad8443f952f69bb7235cdcc524 100644 --- a/mxVision/AllObjectsStructuringV2/utils/multiObjectTracking/multiObjectTracker.cpp +++ b/mxVision/AllObjectsStructuringV2/utils/multiObjectTracking/multiObjectTracker.cpp @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +#include "MxBase/Log/Log.h" #include "multiObjectTracker.h" std::pair MultiObjectTracker::GetTrackLetBuffer(uint32_t trackID) diff --git a/mxVision/AllObjectsStructuringV2/utils/objectSelection/objectSelection.cpp b/mxVision/AllObjectsStructuringV2/utils/objectSelection/objectSelection.cpp index 634317bde6d8cfc0143cecbbd8e2e728417219e9..ee4a070f7c4f32a3dae2a5cc22ee88b1d1c78d36 100644 --- a/mxVision/AllObjectsStructuringV2/utils/objectSelection/objectSelection.cpp +++ b/mxVision/AllObjectsStructuringV2/utils/objectSelection/objectSelection.cpp @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +#include "MxBase/Log/Log.h" #include "objectSelection.h" APP_ERROR ObjectSelector::Process(MultiObjectTracker &tracker, std::vector &trackLetList,