TI中文支持网
TI专业的中文技术问题搜集分享网站

TDA4VM: 运行官方dl_demos中的app_tidl_seg,替换分割模型为自己的模型,图片为512*512YUV图片,在x86下结果正常,嵌入式端结果部分异常

Part Number:TDA4VM

运行官方demo中的app_tidl_seg,替换分割模型为自己的分割模型,图片为512*512YUV图片,在x86下结果正常,嵌入式端结果异常(只有图像下面的1/3异常)。

并且同一张图片在嵌入式端推理的结果也不完全一样,都是图像下面的1/3异常。

请问官方提供的app_tidl_seg demo, 替换为自己的模型和图片,这样的情况是问题出在哪里?

需要修改哪些地方吗?

x86下结果正常,图像为截取mosaic图像的有效部分,如下:

嵌入式端图像,下半部分异常,如下:

使用的config文件如下,只修改了模型和图片对应的部分。

# location of conifg
tidl_config./model/fs_seg/int8/tidl_io_fs_seg_1.bin

# location of network
tidl_network ./model/fs_seg/int8/tidl_net_fs_seg.bin

# location of input files
input_file_path./input

# location of output files
output_file_path ./out/fs_seg/int8

# start frame Number
start_frame 1

# number of frames
num_frames 2

# input size (width height)
in_size512 512

# size given to DL network (width height)
# This should should not be less than 4x of input width or height
dl_size512 512

# size given for display (width height)
# This should should not be less than 4x of input width or height
out_size 512 512

# Maximum number of Semantic Segmentation classes
num_classes 2

# delay in milli seconds (max 2000ms)
delay_in_msecs 0

# Enable or disable output image writing. 1 Enables it , 0 disables it
en_out_img_write1

# If 1 - Enable display 0 - Disable display
display_option0

# number of iterations to loop the inputs
num_iterations1

# interactive input mode 1: yes, 0: no
is_interactive0
Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复会尽快回复您。谢谢!

,

Cherry Zhou:

您好, 您能否先试下运行sequential flow(顺序流程)然后写入intermediate outputs(中间输入)?

在文件ti-processor-sdk-rtos-j721e-evm-08_00_01_10/vision_apps/apps/dl_demos/app_tidl_seg/main.c中。

请使能这些宏,重建并且重新运行demo。

请您更改以下信息:

从这样:

/* #define WRITE_INTERMEDIATE_OUTPUTS */

#ifndef x86_64
#define APP_ENABLE_PIPELINE_FLOW
#endif

改为以下这样:

#define WRITE_INTERMEDIATE_OUTPUTS
/*
#ifndef x86_64
#define APP_ENABLE_PIPELINE_FLOW
#endif
*/
#define APP_ENABLE_PIPELINE_FLOW

,

meng yu:

根据您的描述,宏的修改:

#define WRITE_INTERMEDIATE_OUTPUTS
/*
#ifndef x86_64
#define APP_ENABLE_PIPELINE_FLOW
#endif
*/
这一步写入中间结果。

最后又添加这一句
#define APP_ENABLE_PIPELINE_FLOW
那不是又变成pipeline模式了?根据您的描述,是先用sequential模式来测试结果。

,

Cherry Zhou:

是的,您需要先使用sequential flow验证中间结果,然后再切换回pipeline flow。

,

meng yu:

你好,我用sequential模式,在样件上跑,还是遇到和上面描述的同样的问题,保存的结果下面一部分异常。

,

Cherry Zhou:

您好用sequential mode的目的是写出intermediate outputs,这样您可以检查问题是出在哪里。

您可以在标量、预处理、 TIDL 和最终语义分段输出之后检查输出。 请您检查是在哪一个阶段输出发生错误。

,

meng yu:

在预处理pre_proc阶段发生错误,用同一种图片测试,x86下pre_proc的输出md5值是一样的,但在样件上跑时,同一张图片的pre_proc的输出,md5值不一样。图片输入是512*512,在pre_proc输出为513*515.

,

Cherry Zhou:

好的感谢您提供的信息,同时温馨提示您,由于圣诞节以及新年假期,英文论坛的回复将稍慢,敬请谅解!

,

meng yu:

pre_proc_output.zip

我对比了arm和x86下preproces的结果,错误原因在于preprocess生成的rgb文件,第三个通道的数值错误,不仅padding区域的值不为0,有效区域也会有大量为0的值,而前两个通道arm和x86下结果完全一样。513*515*3的特征图,第一和第二个通道的全部264195个数值arm和x86完全一致,而第三个通道只有236312个数值一样,大约89.4%的数值一样,我想这是产生最后结果错误的原因.

,

Cherry Zhou:

十分感谢您的更新!

请问您的问题是否已得到了解决?如您没有其他问题,我们会将该帖关闭。如您还需其他帮助,请随时联系我们!

,

meng yu:

只是定位了问题,并没有解决,现在问题定位到pre process 产生的结果其中一个通道错误,需要你们的支持解决

赞(0)
未经允许不得转载:TI中文支持网 » TDA4VM: 运行官方dl_demos中的app_tidl_seg,替换分割模型为自己的模型,图片为512*512YUV图片,在x86下结果正常,嵌入式端结果部分异常
分享到: 更多 (0)