TinyMS推理可视化体验

结合OpenCV图像视觉库,TinyMS v0.3.1聚焦可视化特性。通过简单直观的图片可视化,帮助用户更快地了解模型推理的效果。

针对不想编写代码的用户,TinyMS提供了WEB UI可视化界面,用户只需在浏览器页面上传待推理的图片即可轻松体验,当前提供了LeNet5CycleGanSSD300模型的支持。

WEB UI推理可视化

用户需要先部署可视化服务器,详情请看Nginx版本的TinyMS安装。服务器部署成功后,访问浏览器呈现的首页和推理效果页(以CycleGan模型为例)如下:

../_images/tinyms_web_index.jpg首页

../_images/tinyms_web_reasoning.jpg推理页

针对想运行代码的用户,TinyMS提供了模型推理可视化模块,仅需5步骤代码即可快速体验,当前仅提供SSD300对象检测模型的支持。

模型推理可视化模块应用

如果您需要第一时间体验模型推理可视化模块应用,可下载TinyMS官方仓项目代码,执行如下操作:

  • 静态图像检测

  1. 环境准备

    • 有可视化桌面的操作系统(比如Window_x64或者Ubuntu18.04

  2. 验证模块应用

    # 下载tinyms项目
    git clone https://github.com/tinyms-ai/tinyms.git
    cd tinyms/tests/st/app/object_detection/
    # 运行静态图像检测
    python opencv_image_app.py
    

    待检测图片和执行推理后的图片展示如下:

    ../_images/tinyms_visulization_origin.jpg待检测图片

    ../_images/tinyms_visulization_reasoning.jpg推理效果图

  • 摄像头采集的动态视频图像检测

  1. 环境准备:

    • 带有可视化桌面的操作系统(Window_x64或者Ubuntu18.04

    • 确保操作系统可以正常访问摄像头

      注:

      对于在主机(比如Window_x64Ubuntu 18.04)下的操作系统,一般来说都可以正常访问摄像头;而对于在虚拟机下的操作系统,请确保开启了相关的虚拟机服务以及连接了摄像头驱动。我们以在window下的虚拟机VMware Workstation为例:

      1. 首先我们在terminal(您的测试系统的terminal,比如挂在VM的Ubuntu 18.04系统下的terminal)下输入命令ls /dev/v*查看是否有/dev/video0驱动程序,若有,则说明是正常的,请忽略以下操作,若没有,则我们执行以下操作。

      2. 开启相关的虚拟机服务,在windows主机中开启服务VMware USB Arbitration Servcie,即键盘Win+R输入services.msc找到相应服务并开启。开启之后需将虚拟机重启。

      3. 连接摄像头驱动,在VMware Workstation的菜单栏上点击虚拟机(M)=>可移动设备=>摄像头名称=>主机连接,并且在虚拟机(M)=>设置(S)=>USB中,选择USB3.0

      4. 你可以通过cheese测试摄像头是不是可以正常访问。

  2. 验证模块应用

    对于不同操作系统的选型以及不同测试方式的选择,我们提供以下具体环境的验证,请您在对应环境进行验证,注意以下环境均已满足环境准备的俩个条件,这很重要

    • 环境一:Windows

      • 若您采用主机测试

        环境需求:

        • 操作系统:Window_64

        • 环境依赖: Git + Python 3. 7.5 + TinyMS 0.3.1 + Microsoft Visual C++ 14.0 or greater

        • 命令行工具:Git Bash

          注:有关vc++ 14.0 的环境依赖详情请参考Pypi安装TinyMS下的注释

        满足环境需求后执行以下命令:

        # 1.在容器内下载tinyms项目
        git clone https://github.com/tinyms-ai/tinyms.git
        cd tinyms/tests/st/app/object_detection/
        # 2.运行摄像头采集的动态视频图像检测
        python opencv_camera_app.py
        
      • 若您采用虚拟机测试

        我们以Window_x64下的虚拟机VMware Workstation为例,VM连接摄像头请参考环境准备中的注释:

        环境需求:

        • 操作系统:Ubuntu18.04 LTS Desktop

        • 环境依赖: Docker 18.06.1-ce

        • 命令行工具:Terminal

        满足环境需求后执行以下命令:

        # 1.在宿主机内安装xserver,并设置权限
        apt install x11-xserver-utils
        # 2.允许所有用户访问显示接口
        xhost +
        # 3.运行容器
        docker run -it --rm --device=/dev/video0 -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix tinyms/tinyms:0.3.1 /bin/bash
        # 4.在容器内下载tinyms项目
        git clone https://github.com/tinyms-ai/tinyms.git
        cd tinyms/tests/st/app/object_detection/
        # 5.运行摄像头采集的动态视频图像检测
        python opencv_camera_app.py
        
    • 环境二:Ubuntu

      • 若您采用主机测试:

        环境需求:

        • 操作系统:Ubuntu 18.04 LTS Desktop

        • 环境依赖:Git + Python 3.7.5 + TinyMS 0.3.1

        • 命令行工具:Terminal

        满足环境需求后执行以下命令

        # 1.在容器内下载tinyms项目
        git clone https://github.com/tinyms-ai/tinyms.git
        cd tinyms/tests/st/app/object_detection/
        # 2.运行摄像头采集的动态视频图像检测
        python opencv_camera_app.py
        
      • 若您采用docker访问

        环境需求:

        • 操作系统:Ubuntu 18.04 LTS Desktop

        • 环境依赖: Docker 18.06.1-ce

        • 命令行工具:Terminal

        满足环境需求后执行以下命令:

        # 1.在宿主机内安装xserver,并设置权限
        apt install x11-xserver-utils
        # 2.允许所有用户访问显示接口
        xhost +
        # 3.运行容器
        docker run -it --rm --device=/dev/video0 -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix tinyms/tinyms:0.3.1 /bin/bash
        # 4.在容器内下载tinyms项目
        git clone https://github.com/tinyms-ai/tinyms.git
        cd tinyms/tests/st/app/object_detection/
        # 5.运行摄像头采集的动态视频图像检测
        python opencv_camera_app.py
        

    目前文档还在完善中:smile:,如果您的环境不在以上参考中,在您尝试过后,依然有问题,欢迎您在我们的社区,提出您的Issues和Pull requests,我们会及时回复您。