GithubHelp home page GithubHelp logo

atlas_acl_e2e_demo's People

Contributors

lenlrx avatar michaeltolearn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

atlas_acl_e2e_demo's Issues

关于yolov5的om模型转换问题

我看过华为官网的几个yolov5模型的例子,不论是不是会添加华为为yolov5设计的后处理算子,在export_onnx时,都会修改yolo.py中的detect类的forward方法中代码, 添加一个self.training=True,我想请教一下,当前仓库中的yolov5在export_onnx时,会添加这一行代码吗

AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'

按照 https://github.com/lenLRX/Atlas_ACL_E2E_Demo/blob/master/yolov5_model_cvt.md 这个教程转换,使用的是虚拟环境,结果报错:

(venv) ➜  yolov5 git:(v6.0) python export.py --include onnx --weights yolov5s.pt --img 640 --batch 1 --opset=11
/home/HwHiAiUser/username/models/yolov5/yolov5_for_e2e_demo/yolov5/venv/lib/python3.7/site-packages/torchvision/io/image.py:13: UserWarning: Failed to load image Python extension:
  warn(f"Failed to load image Python extension: {e}")
export: data=data/coco128.yaml, weights=yolov5s.pt, imgsz=[640], batch_size=1, device=cpu, half=False, inplace=False, train=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=11, topk_per_class=100, topk_all=100, iou_thres=0.45, conf_thres=0.25, include=['onnx']
YOLOv5 🚀 v6.0-0-g956be8e torch 1.13.1 CPU

Downloading https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt to yolov5s.pt...
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████| 14.1M/14.1M [00:01<00:00, 7.85MB/s]

Fusing layers...
Model Summary: 213 layers, 7225885 parameters, 0 gradients
Traceback (most recent call last):
  File "export.py", line 364, in <module>
    main(opt)
  File "export.py", line 359, in main
    run(**vars(opt))
  File "/home/HwHiAiUser/username/models/yolov5/yolov5_for_e2e_demo/yolov5/venv/lib/python3.7/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "export.py", line 299, in run
    y = model(im)  # dry runs
  File "/home/HwHiAiUser/username/models/yolov5/yolov5_for_e2e_demo/yolov5/venv/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/HwHiAiUser/username/models/yolov5/yolov5_for_e2e_demo/yolov5/models/yolo.py", line 126, in forward
    return self._forward_once(x, profile, visualize)  # single-scale inference, train
  File "/home/HwHiAiUser/username/models/yolov5/yolov5_for_e2e_demo/yolov5/models/yolo.py", line 149, in _forward_once
    x = m(x)  # run
  File "/home/HwHiAiUser/username/models/yolov5/yolov5_for_e2e_demo/yolov5/venv/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/HwHiAiUser/username/models/yolov5/yolov5_for_e2e_demo/yolov5/venv/lib/python3.7/site-packages/torch/nn/modules/upsampling.py", line 157, in forward
    recompute_scale_factor=self.recompute_scale_factor)
  File "/home/HwHiAiUser/username/models/yolov5/yolov5_for_e2e_demo/yolov5/venv/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1270, in __getattr__
    type(self).__name__, name))
AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor

yolov5s转换om出错

yolov3,yolov4,yolov3+deepsort已跑通流程,yolov5s转换om出错:

ATC start working now, please wait for a moment.
ATC run failed, Please check the detail log, Try 'atc --help' for more information
E89999: Inner Error!
op[Concat_243], the input shape dims should be equal except merge axis,shapes:[[1, 3, 80, 80, 2, ], [1, 3, 40, 40, 81, ], ]axis:-1[FUNC:ConcatInferShapeCommon][FILE:split_combination_ops.cc][LINE:789]
Call InferShapeAndType for node:Concat_243(ConcatD) failed[FUNC:Infer][FILE:infershape_pass.cc][LINE:117]
process pass InferShapePass on node:Concat_243 failed, ret:4294967295[FUNC:RunPassesOnNode][FILE:base_pass.cc][LINE:492]
build graph failed, graph id:0, [ret:1343242270[FUNC:BuildModel][FILE:ge_generator.cc][LINE:1378]

不修改 yolov5s.onnx 将focus层的slice和concate算子删除,可以转换成功,但是视频推理结果异常

使用camera_input类处理单帧图像

修改camera_input的run函数,使用opencv读取一张图片,格式转换成yuv420sp,
然后把数据拷贝到camera_buffer 中去。
void *camera_buffer = DevMemPool::AllocDvppMem(cam_buffer_size);

auto dev_cam_buffer = std::make_shared<DeviceBuffer>(
    camera_buffer, cam_buffer_size, DeviceBuffer::DvppMemDeleter());
output_queue->push(dev_cam_buffer);

程序运行后报了一个问题

terminate called after throwing an instance of std::out_of_range what(): _Map_base::at
2、在dvpp_decoder.cpp中DvppDecCallback函数中存储了一帧yuv420sp测试数据,
在camera_input直接读取一帧yuv420sp的原始数据放入输出队列后,同样也会出现以问题。

3、改变数据格式,直接使用RGB数据同样也会出现问题。

程序直接使用测试视频,处理流程正常运行。
这边没有相机设备无法验证该处理流程。
不知道博主有没有测试过相机的处理流程。或者遇到同样的问题?

谢谢!

关于检测代码中视频数据流的问题

如果使用camera作为数据输入源,检测结果通过RTSP拉流显示,那么数据流是不是下面这个流程

camera输入(yuv420) -> yuv420sp2rgb -> npu推理+画框 -> dvpp编码 -> h264码流 -> 通过ffmpeg将码流写入到rtsp服务端 -> 本地vlc播放rtsp网络串流

1.通过ffmpeg将码流写入到rtsp服务端这一步理解的是不是有问题?
2.数据流程图中间是否有缺漏?

Thanks

运行例程失败 no libraries: libacl_demo.so

编译成功之后运行run.sh的时候出现以下问题:
./build/acl_multi_stream_demo: error while loading shared libraries: libacl_demo.so: cannot open shared object file: No such file or directory
请问是什么原因呢?

运行报错:segmentation fault

运行代码:
./run.sh config/yolov3_demo.json
报如下错误:
./run.sh: line 5: 1640 Segmentation fault ./build/acl_demo_app -c $1

{
"streams": [
{
"name": "deep_sort_demo_stream1",
"stream_type": "deep_sort_demo",
"src": "test.mp4",
"dst": "output1.mp4",
"hw_encoder": false,
"yolov3_model_path": "./model/sample-yolov3_pp_416.om",
"deepsort_model_path": "./model/deepsort_mars.om"
}
],
"config": {
"app_perf": true,
"perflog_path": "."
}
}

Atlas200DK,关于不同分辨率视频推理速度以及4K视频无法推理问题

你好,我有两个问题想询问一下。

一、我用yolov5去做运行推理时,输入不同分辨率的视频,推理速度却是几乎一致,这意味着分辨率对推理速度没有影响?结果如下
2022-11-18 14-20-58 的屏幕截图
可以看到即使从360p到1080p,帧率依旧几乎没有变化,请问这是为什么呢?


二、当我输入4K分辨率的视频的时候,推理会报错,起初我以为是视频包含B帧的原因,但是在删除B帧后,仍然无法推理。
并且同一个视频的360p版本(包含B帧)却能够正常运行推理,所以应该不是B帧的原因。然后我看官方DVPP也是支持4K解码的,不知道为什么无法运行。
4k视频ffmpeg解析结果:
2022-11-18 14-25-51 的屏幕截图
报错:
2022-11-18 14-26-58 的屏幕截图
2022-11-18 14-27-22 的屏幕截图
2022-11-18 14-27-40 的屏幕截图
同一视频360p版本(可以运行)ffmpeg解析结果:
2022-11-18 14-31-14 的屏幕截图

运行时间问题

你好,尝试了yolov3 stream和deepsort stream,并且用你提供的tracing查看了运行时间,有几个问题和疑惑想咨询一下:
1、前处理,模型预测,后处理等操作是并行处理的,处理一帧所消耗的时间是由所有操作中消耗时间最长的那个模块决定的,如下图所示,本次消耗时间为40.876ms,由FFMPEGOUT::SendFrame操作决定。这样理解对吗?
1643247433(1)

2、yolov3中其中有一帧FFMPEGOUT::SendFrame操作消耗了近1000ms,这是什么原因?
1643243568(1)

3、我用时长一分钟视频测试,yolov3大约等了好几分钟才出结果(两三分钟),yolov3+deepsort时间更长,请问这是正常的吗?

4、运行了deepsort算法以后,发现DeepSortTracker占用时间较长(150ms左右),deepsort有没有加速的方法?
1643245672(1)

5、你在200dk上跑的时候有没有关注过AIcore的利用率?跑yolov3的时候发现,AICore的利用率在80%-90%,占用率较高;但是跑yolov3+deepsort的时候发现占用率只有10%左右,按我的理解后者不应该是更高的嘛?这是为什么?

写的比较杂~

请问YOLOv5(6.0)进行ATC转换问题

作者你好,我导出onnx模型后,使用你提供的ATC命令进行转换,结果异常停止
log显示
{
"cause": [
{
"code": 1,
"message": "The type is not supported."
}
],
"name": "Resize_117",
"result": "failed",
"type": "ai.onnx::13::Resize"
},
我用Netron查看,应该是upsample那里有问题。请问你是否也遇到过类似的问题,以及如何解决呢?

如何单独应用deepsort_mars.om

你好,首先感谢你的项目
我现在想把在200dk上,
在我自己的yolov4.om输出后面接上,deepsort_mars.om进行追踪。

使用mindstudio查看deepsort_mars.om结构,
得知其输入为[16, 128, 64, 3]。

我有以下疑问:

  1. [16, 128, 64, 3]的输入代表的意义
  2. yolov4的detct的输出怎么转化为deepsort_mars.om的输入
  3. 我使用的是python,对于这个转化过程可以参考你的那一些代码?

以上,再次感谢!

yolov4_1_3_416_416_aipp.om,无法运行

参考教程https://zhuanlan.zhihu.com/p/384506398后,
得到二进制文件https://zhuanlan.zhihu.com/p/384506398,
运行代码:
./run.sh config/yolov4_demo.json

total dev count: 1
[FFMPEGInput::Init] test.mp4 codec name:h264
avcc profile: 100
frame h: 720 frame w: 1280
ticks_per_frame: 2
framerate.num: 30
framerate.den: 1
ref frame num: 1
has B frame: 0
pix format: 0
codec_tag 828601953
extra_data size: 46
[DvppDecoder::Init] h: 720 w:1280output_size: 1382400
/home/HwHiAiUser/deepsort/src/acl_model.cpp:13 aclError:145000
/home/HwHiAiUser/deepsort/src/acl_model.cpp:14 aclError:100000
/home/HwHiAiUser/deepsort/src/acl_model.cpp:15 aclError:100000
./run.sh: line 5: 6097 Segmentation fault ./build/acl_demo_app -c $1

yolox+bytetrack运行失败

[EVENT] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:06.102.646 [dvpp_statistic.cc:76][PrintGlobalStatisticInfo][tid:32660][DVPP_KERNELS] JPEG_ENCODE statistic: {receive:0, submit:0, success:0, failed:0}.
[EVENT] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:06.102.666 [dvpp_statistic.cc:76][PrintGlobalStatisticInfo][tid:32660][DVPP_KERNELS] PNG_DECODER statistic: {receive:0, submit:0, success:0, failed:0}.
[EVENT] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:06.102.690 [vdec_statistic.cc:186][PrintStatisticInfo][tid:32660][DVPP_KERNELS] Vdec statistic: sendFrame{total:47, cache:5, success:42}, callback{image:29, eos:0, err:1}, getFrame{total:31, cache:5, success:26}.
[EVENT] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:06.102.710 [venc_statistic.cc:117][PrintStatisticInfo][tid:32660][DVPP_KERNELS] Venc statistic: sendFrame{total:0, cache:0, process cache:0, success:0}, callback{total:0, success:0}, release{total:0}.
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.103.028 [dvpp_timeout_manager.cc:33][OnPulse][tid:32660][DVPP_KERNELS] WaitId[0] task timeout, userData=0xfffef4003e70, timeout=30, duration=30.498840.
[EVENT] DVPP(32636,aicpu_scheduler):2022-05-05-11:25:09.103.125 [omx_adapt.cpp:2620][VDEC] [PrintVdecStatistic:2620] [T208] DFX[VDEC]: chn[0] frames statistic: total frames[42], eos(recv: no, send: no); aicpu queue[full], not-full to full(5), full to not-full(5), max transfer timecost: 249387; current time: 268284.928658; normal callback frames[28], average timecost: 0 us, max: 129735 us, min: 954 us, start time: 268254.537992, end time: 268254.533678; abnormal callback frames[1], average timecost: 0 us, max: 46 us, min: 46 us, start time: 268253.565208, end time: 268253.565254
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.103.159 [dvpp_vdec_kernels.cc:520][OnTimeout][tid:32660][DVPP_KERNELS] Dvpp channel[0] send vdec frame timeout, streamId:[16], taskId:[88], waitId:[0].
[EVENT] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.103.195 [vdec_statistic.cc:121][PrintStatisticInfo][tid:32660][DVPP_KERNELS] Vdec channel[0] statistic: sendFrame{total:47, cache:5, success:42}, callback{image:29, eos:0, err:1}, getFrame{total:31, cache:5, success:26}.
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.112.913 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32644][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[90], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.112.956 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32644][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.112.979 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32644] Aicpu engine process failed, result[4].
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.123.224 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32643][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[92], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.123.268 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32643][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.123.290 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32643] Aicpu engine process failed, result[4].
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.133.846 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32648][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[94], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.133.890 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32648][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.133.911 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32648] Aicpu engine process failed, result[4].
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.144.760 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32646][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[96], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.144.804 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32646][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.144.826 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32646] Aicpu engine process failed, result[4].
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.155.125 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32644][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[98], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.155.155 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32644][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.155.172 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32644] Aicpu engine process failed, result[4].
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.166.070 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32643][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[100], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.166.102 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32643][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.166.121 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32643] Aicpu engine process failed, result[4].
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.176.945 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32648][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[102], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.176.982 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32648][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.177.002 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32648] Aicpu engine process failed, result[4].
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.188.480 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32646][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[104], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.188.516 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32646][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.188.536 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32646] Aicpu engine process failed, result[4].
[ERROR] AICPU(32636,aicpu_scheduler):2022-05-05-11:25:09.198.910 [dvpp_vdec_kernels.cc:306][DoCompute][tid:32644][DVPP_KERNELS] Kernel:DvppSendVdecFrameV2 vdecDescInfoPtr is abnormal. taskId:[106], streamId:[16], channelId is 0.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.198.939 [ae_kernel_lib_aicpu.cc:237][TransformKernelErrorCode][tid:32644][AICPU_PROCESSER] call aicpu api DvppSendVdecFrameV2 in libdvpp_kernels.so failed, ret:4.
[ERROR] CCECPU(32636,aicpu_scheduler):2022-05-05-11:25:09.198.957 [aicpusd_event_process.cpp:1138][ExecuteTsKernelTask][tid:32644] Aicpu engine process failed, result[4].

rtsp视频流输出具体该怎么操作呢?

如果需要rtsp视频流输出,具体该怎么操作呢?
除了将config配置文件中dst的内容改成视频流地址,还需要做什么才能使检测结果返回成视频流形式输出?

demo支持MP4输入

看起来MP4输入可以直接使用RTSP输入的代码,但是有一个问题:
MP4输入的AVPacket实际上可能很可能包含多帧,而ACL VDEC只支持单帧的输入,现在暂时没有找到好的方案。
最差的情况可能考虑软件解码,因为目前看来瓶颈可能不在编解码。

请问yolov5的aipp.cfg参数怎么得来能,可以解释一下参数吗?谢谢!

YOLOV3的aipp_yolov3_pp.cfg参数如下:

aipp_op {
aipp_mode : static
related_input_rank : 0
input_format : YUV420SP_U8
src_image_size_w : 416
src_image_size_h : 416
crop : false
csc_switch : true
rbuv_swap_switch : false
matrix_r0c0 : 256
matrix_r0c1 : 454
matrix_r0c2 : 0
matrix_r1c0 : 256
matrix_r1c1 : -88
matrix_r1c2 : -183
matrix_r2c0 : 256
matrix_r2c1 : 0
matrix_r2c2 : 359
input_bias_0 : 0
input_bias_1 : 128
input_bias_2 : 128
min_chn_0 : 104
min_chn_1 : 117
min_chn_2 : 123
var_reci_chn_0 : 0.0039216
var_reci_chn_1 : 0.0039216
var_reci_chn_2 : 0.0039216
}

YOLOV5的yuv420sp_aipp.cfg参数如下:
aipp_op {
aipp_mode: static
input_format : YUV420SP_U8
csc_switch : true
rbuv_swap_switch : false
matrix_r0c0 : 298
matrix_r0c1 : 0
matrix_r0c2 : 459
matrix_r1c0 : 298
matrix_r1c1 : -55
matrix_r1c2 : -136
matrix_r2c0 : 298
matrix_r2c1 : 541
matrix_r2c2 : 0
input_bias_0 : 16
input_bias_1 : 128
input_bias_2 : 128
var_reci_chn_0 : 0.0039216
var_reci_chn_1 : 0.0039216
var_reci_chn_2 : 0.0039216
}

查了其它资料,不太明白您YOLOV3和YOLOV5的参数差别很大。能解释一下这些参数怎么得来的吗?

编译失败

apt-get install libopencv-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libopencv-dev

没有libopencv-dev包

编译失败,
20.1版本,
python3.6
gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0
cmake version 3.10.2
Atlas200DK

root@davinci-mini:/home/HwHiAiUser/Atlas200DK_ACL# ./build.sh
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/HwHiAiUser/Atlas200DK_ACL/build
Scanning dependencies of target acl_demo
[ 20%] Building CXX object CMakeFiles/acl_demo.dir/src/ffmpeg_output.cpp.o
[ 20%] Building CXX object CMakeFiles/acl_demo.dir/src/dvpp_decoder.cpp.o
[ 20%] Building CXX object CMakeFiles/acl_demo.dir/src/acl_model.cpp.o
[ 20%] Building CXX object CMakeFiles/acl_demo.dir/src/ffmpeg_input.cpp.o
In file included from /home/HwHiAiUser/Atlas200DK_ACL/src/acl_model.cpp:1:0:
/home/HwHiAiUser/Atlas200DK_ACL/src/acl_model.h:4:10: fatal error: acl/acl.h: No such file or directory
 #include "acl/acl.h"
          ^~~~~~~~~~~
In file included from /home/HwHiAiUser/Atlas200DK_ACL/src/ffmpeg_input.cpp:1:0:
/home/HwHiAiUser/Atlas200DK_ACL/src/ffmpeg_input.h:5:10: fatal error: libavcodec/avcodec.h: No such file or directory
 #include "libavcodec/avcodec.h"
          ^~~~~~~~~~~~~~~~~~~~~~
In file included from /home/HwHiAiUser/Atlas200DK_ACL/src/dvpp_decoder.cpp:1:0:
/home/HwHiAiUser/Atlas200DK_ACL/src/dvpp_decoder.h:5:10: fatal error: libavcodec/avcodec.h: No such file or directory
 #include "libavcodec/avcodec.h"
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
compilation terminated.
compilation terminated.
In file included from /home/HwHiAiUser/Atlas200DK_ACL/src/ffmpeg_output.cpp:1:0:
/home/HwHiAiUser/Atlas200DK_ACL/src/ffmpeg_output.h:6:10: fatal error: libavcodec/avcodec.h: No such file or directory
 #include "libavcodec/avcodec.h"
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
CMakeFiles/acl_demo.dir/build.make:110: recipe for target 'CMakeFiles/acl_demo.dir/src/acl_model.cpp.o' failed
make[2]: *** [CMakeFiles/acl_demo.dir/src/acl_model.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/acl_demo.dir/build.make:62: recipe for target 'CMakeFiles/acl_demo.dir/src/dvpp_decoder.cpp.o' failed
make[2]: *** [CMakeFiles/acl_demo.dir/src/dvpp_decoder.cpp.o] Error 1
CMakeFiles/acl_demo.dir/build.make:134: recipe for target 'CMakeFiles/acl_demo.dir/src/ffmpeg_output.cpp.o' failed
make[2]: *** [CMakeFiles/acl_demo.dir/src/ffmpeg_output.cpp.o] Error 1
CMakeFiles/acl_demo.dir/build.make:86: recipe for target 'CMakeFiles/acl_demo.dir/src/ffmpeg_input.cpp.o' failed
make[2]: *** [CMakeFiles/acl_demo.dir/src/ffmpeg_input.cpp.o] Error 1
CMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/acl_demo.dir/all' failed
make[1]: *** [CMakeFiles/acl_demo.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

rtsp h265 摄像头,运行提示 Segmentation fault

运行:

./run.sh config/yolov5_v6_rtsp_demo.json

报错:

total dev count: 1
[FFMPEGInput::Init] rtsp://192.168.144.25:554/user=admin&password=&channel=1&stream=0.sdp? codec name:hevc
avcc profile: 1
frame h: 1440 frame w: 2560
ticks_per_frame: 1
framerate.num: 20
framerate.den: 1
ref frame num: 1
has B frame: 0
pix format: 12
codec_tag 0
extra_data size: 111
[DvppDecoder::Init] h: 1440 w:2560output_size: 5529600
./run.sh: line 15: 21612 Segmentation fault      ./build/acl_demo_app -c $1

其中 config/yolov5_v6_rtsp_demo.json 文件是 fork 的 config/yolov5_v6_demo.json,只是更改了 src 字段,完整内容如下:

{
    "streams": [
        {
            "name": "yolov5_demo_stream1_rtsp",
            "stream_type": "yolov5_demo",
            "src": "rtsp://192.168.144.25:554/user=admin&password=&channel=1&stream=0.sdp?",
            "dst": "freecar_yolov5_v6_rtsp.mp4",
            "model_height" : 640,
            "model_width" : 640,
            "model_box_num": 25220,
            "model_class_num": 80,
            "hw_encoder": true,
            "enable_neon": false,
            "yolov5_version": "v6",
            "yolov5_model_path": "./model/yolov5s_v6.om"
        }
    ],
    "config": {
        "app_perf": true,
        "perflog_path": "."
    }
}

由于这个 rtsp 流是 hevc / h265 的,因此源码中将src/ffmpeg_input.cpp中的 h264_mp4toannexb 改为了 hevc_mp4toannexb

-    bsf_filter = av_bsf_get_by_name("h264_mp4toannexb");
+    bsf_filter = av_bsf_get_by_name("hevc_mp4toannexb");

其中,模型文件 ./model/yolov5s_v6.om 也是刚在同一台机器上参考教程刚转换出来的,都是使用的 root 账号,应该都有权限。

图像序列输入的推理

感谢您的工作!

但在实际部署使用中,通常需要进行实时处理,即单张单张的输入图像。

我尝试基于您的代码进行修改。1)初始化模型参数,获得跟踪器;2)对于输入的单张图像运行跟踪器,获得跟踪结果。大概是去除您代码中的task node之间的关系,重新缕为单线程。方便在总体调用的函数进行多线程的改造,并进行online的实时跟踪。(目前的修改主要修改的是yolox_bytetrack_stream.cpp和yolox_bytetrack_stream.h

但我还是个C的初学者,您看我的思路是可行的吗,有没有可以借鉴参考的例子呢

期待您的回复~

处理后的mp4全绿色

您好,使用yolov3-demo处理过后的视频全是绿色,请问您有见过这样的情况吗
image

编译运行步骤

请问,此工程的编译可以在20.1环境下进行吗?
如果可以,具体的build流程方便介绍一下吗?

Atlas 200DK 编译

[100%] Linking CXX executable benchmark_demo
/usr/bin/ld: warning: libdevmm.so, needed by /usr/local/Ascend/acllib/lib64/libruntime.so, not found (try using -rpath or -rpath-link)

关于如何测试Atlas200DK上模型的mAP以及profiling中postprocess的一些疑问

问题一:
你好,我近期在做Atlas200DK上yolov5剪枝模型的部署工作,想要对比模型剪枝前后性能的变化,其中速度可以通过profiling去看,但是mAP不知道怎么测试。我找到了源码中和画框相关的代码段,请问是只能修改源码去做一个bbox坐标提取后,再进行mAP计算吗?还是说项目中有自带的bbox坐标输出接口?
image

问题二:
在看profiling生成的yolov5的perflog.json文件时,注意到中间有一段很长的postprocess过程,而同时期并没有其他接口被调用。请问这时的postprocess是在做一个什么工作呢?
以下是yolov5m v6.0的perflog.json文件:
1667539745775
1667539710384

yolov5推理速度

yolov5模型推理时间最快50ms,看你测试的在20ms左右,是需要修改哪里的参数吗?
另外,换了yolov5n以及yolox,推理速度(不算后处理)都差不多在50ms以上,这是为什么呢

如果想用yolov4 608x608 + deepsort,应该要怎么修改

目前的需求是使用Tianxiaomo /pytorch-YOLOv4,把yolov4官方的weights转成608x608 yolov4.om
然后把config文件改成,如下:
{
"streams": [
{
"name": "deep_sort_demo_stream1",
"stream_type": "deep_sort_demo",
"src": "test.mp4",
"dst": "output1.mp4",
"hw_encoder": false,
"yolov3_model_path": "./model/company.om",
"deepsort_model_path": "./model/deepsort_mars.om"
}
],
"config": {
"app_perf": true,
"perflog_path": "."
}
}
运行./run.sh config/deep_sort_demo.json
无法正常推理。
/home/HwHiAiUser/deepsort/src/yolov3_stream.cpp:40 aclError:100000
/home/HwHiAiUser/deepsort/src/acl_model.h:58 aclError:107000
/home/HwHiAiUser/deepsort/src/yolov3_stream.cpp:40 aclError:100000
terminate called after throwing an instance of 'std::length_error'
what(): vector::reserve
./run.sh: line 5: 4679 Segmentation fault ./build/acl_demo_app -c $1
是需要该哪里的代码吗?

编译环境

大佬 你这个工程的编译环境是直接在200DK上面编的吧,有没有x86下交叉编译的版本呢

量化过程中出现报错

image
yolov3进行量化,amct报错如上,看文档说是caffe错误,但是caffe没有报错。不知道是否有人踩过坑

有关fairmot等单阶段的目标跟踪算法

冒昧地问一下您有没有计划做单阶段的目标跟踪算法在atlas上的推理部署
这个项目应该也是支持在atlas200ai加速模块ep模式上的部署吧,毕竟都是用的ascend310,还在调研阶段所以想先问问

关于focus.cpp文件的几个问题

您好,最近在学习您的这份把代码,有几个不太明白的地方
1.focus_op.cpp文件中的FocusTransformNEON,FocusTransformNEONFuse,CvtFocusNEONFuse这几个函数有什么区别吗?2.CvtFocusNEONFuse函数是不是包含了色彩空间转换和focus两个功能?Cvt转换得到的是rgb格式的吗,如果想得到bgr格式的该如何改进呢,NEON这部分代码还不太懂。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.