如何使用eiigui工具将实时数据(camera)使用UDF推理
eiigui 工具是一款UI界面的边缘化工具,将eii以可视化界面的形式操作。
下面以eiigui中自带的demo:pcb演示
安装
参考链接:
https://blog.csdn.net/weixin_42009030/article/details/121742251
使用eiigui
1,直接 Ctrl + Alt + T 打开一个新的中断,输入 eiigui
, 可弹出界面:
2, 创建 Data stream, 点击 Create New Data Stream
, 点击 ...
按钮选择你的本地eii源码:IEdgeInsights
文件夹所在路径。填写你创建的Data stream的名字,比如下图中选的是存在于eii-deployment文件夹下的eii源码—eii-deployment-tool/ eii/code/IEdgeInsights, Data stream的名字为: pcb:
3,使用实时数据(camera)跑demo
-
命名后进入Data stream 里面,先判断你的Data stream 是否有VideoAnalytics模块,如果有的话,在
Switch Mode
栏选择VI+VA
, 反之则选VI
, 此处选择VI+VA
, -
注意:要使用相机必须保证当前机器与相机在同一网段
点击Video Ingestion
-
在右侧的
Ingestor
标签下,source
栏选择2D Camera
,Camera Type
选择你手里的相机类型,目前有三种可选:GigE, USB, RTSP
,目前暂不支持USB
相机(请谅解,后续支持的话会继续更新)
-
如果选择
GigE
相机,点击Tuner
按钮可进行调试相机,其中必填字段为Serial
,具体指相机序列号,其他字段可随用户修改,不填即为默认值。
-
如果想要配置或者修改相机IP,可以点击
IPConfig
按钮打开第三方工具mvIPconfig。点击Configure
按钮,修改完后点击Apply Changes
即可修改成功,有些相机或许需要断一次电才可以被修改成功。
-
其中
Pixel Format
可以通过第三方工具wxPropView的显示选择正确的Pixel Format。其对应关系为:-
{ “Mono8”: “mono8”,
“YCbCr411_8”: “ycbcr411_8”,
“YUV422_8”: “ycbcr422_8”,
“YUV422_YUYV_Packed”: “ycbcr422_8”,
“YCbCr422_8”: “ycbcr422_8”,
“BayerBG8”: “bayerbggr”,
“BayerRG8”: “bayerrggb”,
“BayerGR8”: “bayergrbg”,
“BayerGB8”: “bayergbrg”,
“RGB8”: “rgb8”,
“RGB8Packed”: “rgb8”,
“BGR8”: “bgr8”,
“BGR8Packed”: “bgr8”}
也可以使用wxPropView查看相机信息,通过Use–setting–Base–Camera-GenICam–Image-Format–PixelFormat可以查看相机支持的Pixel Format
然后Acquire按钮可以打开相机看到视图,鼠标滚轮可缩放视图。
点击PropView
打开wxPropView工具,
需要注意的是,如果你想配置相机的帧率frame rate
,必须将相机中帧率设置的开关打开,如在工具wxPropView中,打开帧率开关:
Use–setting–Base–Camera-GenICam–AcquisitionTrigger–AcquisitionFrameRateEnable 勾选上,帧率数值可以在eiigui中配置,此处只需要将开关打开即可。
-
-
将camera的参数配置好后,可以点击
Tune
按钮进行预览,不满意的话可继续调试参数,各参数最后配置完成后点击Apply
,会自动将pipeline写入Ingestor
下的Ingestion Pipeline
标签中
-
-
如果选择
RTSP
相机,点击Tuner
按钮可进行调试相机,其中必填字段为ip, port, user
,具体指RTAP相机IP端口用户名,相机可能会不设置密码,所以password字段可以为空,相机品牌需要正确选择,因为不同品牌pipeline也不同,其他字段可随用户修改,不填即为默认值。- 这里介绍一下如果RTSP相机后处理想要使用igpu(需要确保机器已经安装了openvino或者有igpu的驱动),那么可以选择ROI–decode–vaapi264dec, ROI–postproc–vaapipostproc, 此时width和height便是后处理的宽高了。
- RTSP相机的延迟会有点高,要改善的话可以修改Advanced–RTSPSRC–latency=100即可
- 将camera的参数配置好后,可以点击
Tune
按钮进行预览,不满意的话可继续调试参数,各参数最后配置完成后点击Apply
,会自动将pipeline写入Ingestor
下的Ingestion Pipeline
标签中
Poll Interval
在摄取数据方式为camera时不适用,参数无意义。
-
在
Algorithm
标签下面,可以勾选UDF
, 点击Import
即可导入你自己的对于VideoIngestion模块的UDF,此处要导入的是将UDF以及配置文件以特定格式准备好的文件夹,eiigui对此有几个自带的sample可选,如下图可点击vi
文件夹,导入后下面的标签会自动填入,可手动修改以及增加,如果选导入了错误的文件夹,可以点击旁边的Reset
按钮进行清除重置,继续点击Import
导入即可:
(但是此处camera pcb示例并没有在VI中使用UDF,所以不勾选UDF) -
在
Interface
标签下面,可以选择Server 和 Publisher以TCP/IPC的协议将摄入的数据分发出去,TCP协议的端口号是随机生成的,可以修改,IPC是默认以sockets文件载入,不可修改,发布数据的协议可以根据需求选择,订阅方会自动根据你的选择而变换EndPoint,(一般VI发布摄取到的数据给VA) 一般默认的就可以了:
-
-
配置完VI后,继续配置VA
点击Video Ingestion
- 在右侧的
Algorithm
标签下,与VI模块一样,可以勾选UDF
, 点击Import
即可导入你自己的对于VideoAnalytics模块的UDF,此处要导入的是将UDF以及配置文件以特定格式准备好的文件夹,eiigui对此有几个自带的sample可选,如下图可点击va
文件夹,导入后下面的标签会自动填入,可手动修改以及增加,如果选导入了错误的文件夹,可以点击旁边的Reset
按钮进行清除重置,继续点击Import
导入即可:
- 在
Interface
标签下面,可以选择Subscriber 和 Publisher以TCP/IPC的协议将摄入的数据分发出去,TCP协议的端口号是随机生成的,可以修改,IPC是默认以sockets文件载入,不可修改,发布数据的协议可以根据需求选择,订阅方会自动根据你的选择而变换EndPoint(一般VA订阅VI的数据,并把推理好的数据发布给Visualizer或其他边缘程序), 一般默认的就可以了(因为VI的Publisher协议已经被设置成TCP了,所以此处订阅的ip:port不可改):
- 在右侧的
-
配置完VI和VA后,如果没有输出模块可以不选,如果有输出模块,可以点击
Output Modules
- Image Store模块可以将推理后的图片以Web的形式在浏览器打开,将VA推理后的图片提供下载,但是图片无法预览,且文件名也是时间戳的数字无法识别是哪一张。在
Image Store
标签下面,勾选Enable
, 可以修改其中的配置。 - OPC UA的操作与Image Store模块一样,在
OPC UA
标签下面,勾选Enable
- TCP/IP的操作与前两个输出模块一样,在
TCP/IP
标签下面,勾选Enable
- Image Store模块可以将推理后的图片以Web的形式在浏览器打开,将VA推理后的图片提供下载,但是图片无法预览,且文件名也是时间戳的数字无法识别是哪一张。在
-
Config界面完成后,点击
Next
按钮进入Test
界面,可以看到Data stream
name,点击Component
旁边的下拉单,可以看到Config界面所配置的所有模块,以Json格式呈现,如果此时还需要修改,有两种方式,可以选择Prev
回到Config界面修改,还可以直接在json界面框修改,然后点击save
即可,右上角的Home
键也可以直接回到首页。
-
完成所有配置后就可以进行编译了,如果已经准备好了相应的镜像,可以跳过编译直接点击
Start
,如果要重新编译,可以点击Build
后再进行Start
,编译需要一点时间请耐心等待:
-
点击
Start
,可以看到推理后的视频