- 对pipeline可视化和代码的解读
在README中其实就已经有比较直观的对与各个插件模块的介绍,总体上如下图所示,整个Stream分成了输入---前处理---推理---后处理---输出。首先先将图像输入,放入imagedecoder中进行解码,之后将图像通过resize模块重塑成1024*2048的大小,这一步是为了适应模型的输入数据要求,在加载tensorinfer模块中的FASTSCNN.om的模型中进行推理,之后在后处理模块dataserialize,将stream结果组装成json字符串输出中,最后通过appsink输出结果。
在pipeline文件中呈现的形式如下图所示
在实际设置中,最主要的是注意模块支持的数据类型,以及模块绑定的路径,如模型推理中的model Path,要绑定远端的模型路径,因为整个推理过程是要在远端跑的。在设置完pipeline之后在TEXT里也可以看到各个模块的一些属性。
到此为止,我们就构建好了text.pipeline这个可视化的流程文件,之后我们只需要在main.py函数里利用这个文件就能就能构建Stream了
-----下面是对main.py各个部分的解读-----
0.注意,这类if语句是报错语句,旨在某一部分出错时通过特定的提醒快速反应修正,在阅读代码时可以无视。
- Import 各个库
- 构建一个初始化的Stream和上色的调色板
- 通过创建好的test.pipeline构建Stream
- 构建输入对象
此时要注意测试的图片名是否与代码里的路径一致
- 从Stream中得到结果
- 对结果进行后处理
还原到原图片大小,并保存为mask.png。