华为云视频智能分析服务 VIAS 对接使用完全指南
1. 初识华为云视频智能分析服务 VIAS
视频智能分析服务(Video Intelligent Analysis Service,简称 VIAS)是华为云推出的一站式 AI 智能分析平台。它提供 AI 智能分析、预警事件上报、边缘资源池纳管等多项能力,依托于华为云人工智能和大数据的技术优势,实现智慧园区、城市治理、智慧水务、智慧交通等场景的事件感知、分析和决策能力,助力业务闭环。
VIAS 具体包含了入侵检测、高密度人群统计、戴口罩检测、工服工帽检测、烟火检测、共享单车检测、车辆违停检测、个体事件行为检测等多种视频 AI 算法,为用户提供快捷高效的视频分析能力。您可以在视频智能分析服务的管理控制台中使用服务,首次进入时需要同意授权,同意授权后进入总览页。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
1.1 方案架构
视频智能分析服务通过对泛园区场景的多源、多模态数据进行采集和接入,基于灵活的云上或边缘部署架构,提供面向人、车、物以及事件的多维度感知、认知和决策能力,同时满足不同领域的客户需求。VIAS 的架构设计围绕五个核心模块展开:
- 视频中心:负责视频源数据管理,是算法的前置输入模块
- 算法中心:支持使用者购买商用算法包,购买后可查看、部署、升级算法包中的算法服务
- 任务中心:支持在任务配置中选择已接入的视频源,完成从数据接入到算法推理的端到端功能配置
- 事件中心:可以针对视频算法抓拍的告警进行结果存储、查看等,实现事件的管理与分析
- 运维中心:负责边缘资源池的纳管与运维
1.2 产品优势
VIAS 具备以下核心产品优势:
- 部署形态灵活可选:除云上智能分析外,同步支持算法边缘节点部署,有效降低带宽成本。边缘与云上智能算法版本同步升级
- 高性能多模态数据分析:基于鲲鹏系列处理器和昇腾 AI 芯片,提供高并发低时延的多模态数据分析能力,保证园区场景业务的高效闭环
- 丰富的算法生态:面向泛园区场景提供多种智能分析算法,基于深度学习等领先技术,保证人、车辆、事件、行为的高精度感知和处理
- 多模态联合分析:通过视频分析、图像处理和自然语言处理技术,对园区和城市治理中的视频、图片和文本数据进行多模态联合分析,充分挖掘数据潜在关联性
2. 服务开通与权限配置
2.1 开通 VIAS 服务
使用 VIAS 服务的第一步是登录华为云控制台并开通服务。进入华为云官网后,在搜索框输入“视频智能分析服务”或“VIAS”即可找到服务入口。首次进入服务时,系统会提示授权,同意授权后即可进入总览页面。
具体操作步骤如下:
- 登录华为云官网(www.huaweicloud.com)
- 在搜索框输入“视频智能分析服务”或“VIAS”
- 点击搜索结果进入服务详情页
- 点击“立即使用”或“开通服务”按钮
- 阅读并同意服务协议,完成服务开通
2.2 购买算法包
根据业务需求选择购买不同的算法包,算法包包含了若干算法,创建作业前需要先购买算法包。华为云提供了两大类算法包:
- 云上算法视觉能力包:视频流数据需要通过 IVM 上传到华为云,在华为云上进行算法分析。包含云上专业类算法包和云上通用类算法包,涵盖高密度人群统计、个体事件行为检测、高点人群统计、共享单车检测、烟火检测、城管事件检测等数十种算法服务
- 边缘算法视觉能力包:算法模型下发到边缘节点的客户设备中,在客户设备中执行算法分析任务,视频流数据不需要提供到华为云上。算法能力与云上版本同步
购买算法包时,需要根据实际场景选择合适的算法类型。例如,智慧园区场景可以选择包含入侵检测、车辆违停检测等算法的园区管理算法包;智慧工地场景可以选择包含工服工帽检测、烟火检测等算法的安全监管算法包。
2.3 IAM 权限配置
为了安全地使用 VIAS 服务,建议通过 IAM(统一身份认证)创建子账号并授予最小权限。需要的权限策略包括:
- VIAS 服务的只读或读写权限
- OBS(对象存储服务)的读写权限(如需将结果输出到 OBS)
- DIS(数据接入服务)的写入权限(如需将结果输出到 DIS)
- IEF(智能边缘平台)的管理权限(如需使用边缘算法)
创建子账号并授权的具体步骤:
- 登录华为云控制台,进入“统一身份认证服务”
- 点击“用户” → “创建用户”
- 填写用户信息,选择“编程访问”和“管理控制台访问”
- 在“用户组”中点击“创建用户组”,命名为“vias_group”
- 为该用户组添加策略:VIAS FullAccess、OBS FullAccess 等
- 将创建的用户加入到该用户组中
3. 视频源接入
您在使用视频智能分析服务的算法服务前,需要先接入视频数据,才能用算法服务对接入的视频进行分析,获取结果。
3.1 支持的视频源类型
VIAS 支持多种视频数据来源,不同部署模式支持的视频源类型有所不同:
- 边缘算法支持的视频源:CAMERA(摄像头)、RESTful、VCN(视频云节点)
- 云上算法支持的视频源:OBS(对象存储服务)、URL、RESTful、VCN、IVM
视频源接入类型包括:obs、vcn、url、restful、camera 等。
3.2 接入 RESTful 视频源
视频智能分析服务使用 RESTful 的基本方式是:算法容器通过 REST 请求访问您提供的服务器地址,获取响应并解析视频流地址,然后接入并分析视频源。使用 RESTful 接入前,如果是云上模式,必须保证云上的 RESTful 地址可以被华为云的服务器访问;如果是边缘模式,则边缘的 RESTful 地址需要用户自己的边缘服务器能访问。
RESTful 视频源接入时,可以携带请求头(headers)参数,整体呈 JSON 格式,以键值对的形式表示请求头和取值,最多允许 10 组。
3.3 接入 OBS 视频源
云上算法支持接入 OBS(对象存储服务)中存储的视频文件。创建视频源时,接入类型选择 obs,然后指定 OBS 桶中的视频文件路径即可。这种方式适合对已存储的视频文件进行离线分析,例如对历史监控录像进行事后审查和分析。
3.4 接入 VCN 视频源
VCN(视频云节点)是华为云提供的视频管理平台,VIAS 支持直接从 VCN 中读取视频流数据。通过 VCN 接入,可以实现对大规模摄像头视频流的集中管理和智能分析。
3.5 创建视频源操作步骤
- 登录视频智能分析服务控制台
- 进入“视频中心”模块,选择“视频源列表”
- 点击“新增视频源”按钮
- 选择接入类型(cloud 或 edge)
- 选择视频源类型(obs、vcn、url、restful、camera 等)
- 填写视频源的相关配置信息(如地址、请求头、地理位置等)
- 点击“确认”完成视频源创建
4. 算法部署
4.1 边缘算法部署
使用边缘算法前需要将其部署到边缘资源池。边缘运行池是一组处理服务作业的边缘节点,在创建服务作业前,要求先创建边缘运行池。具体部署流程如下:
- 创建边缘运行池:在 IEF(智能边缘平台)中注册边缘节点并纳管
- 购买边缘算法包:根据业务需求选择购买对应的边缘算法包
- 部署算法服务:进入“算法中心”的“算法服务”页面,单击目标算法服务“操作”列的“部署”,进入“部署算法”页面
- 等待部署状态变为“运行中”后,即可创建任务使用
边缘算法部署需要确保边缘节点服务器与华为云之间网络连通并稳定。
4.2 云上算法部署
云上算法的部署相对简单:
- 华为自研云上算法:不需要额外创建资源池,也不需要手动部署,购买后即可直接使用
- 非华为自研算法:需要自行购买资源池来部署算法,购买后需要手动部署才可使用
4.3 边缘算法与云上算法的选型建议
在实际项目中,选择边缘算法还是云上算法需要根据业务场景综合考虑:
- 选择边缘算法的场景:对实时性要求高、网络带宽有限、数据安全性要求高(视频数据不出园区)、边缘节点具备一定算力
- 选择云上算法的场景:对算力要求高、需要集中管理、网络带宽充足、视频数据可以上传到云端
5. 创建分析任务
用户选择一种算法服务,对指定的视频源进行分析处理,即对应创建一条视频分析任务。任务管理模块提供了创建视频分析任务、查看任务详情与任务列表以及删除任务的能力。
5.1 创建任务的入口
创建任务有两种入口:
- 在任务中心模块“任务列表”页面,单击“新建任务”
- 在视频中心模块选择“视频源列表”页面,单击某条视频源“操作”列的“新建任务”
5.2 创建任务的前提条件
- 已经购买算法服务
- 已有接入的视频源
5.3 任务基本参数配置
创建任务时需要配置以下基本参数:
| 参数名称 | 参数说明 | 配置示例 |
|---|---|---|
| 任务名称 | 自定义任务名称,只能由中文、英文字母(a~z,A~Z)、数字(0~9)、中划线(-)、下划线(_)组成,长度范围为[1,100] | 入侵行为检测 |
| 接入方式 | 根据实际选择云上或边缘 | 云上 |
| 视频源 | 需分析的视频源来源,从下拉框中选择 | 园区摄像头 A |
| 视觉能力包 | 选择已购买的算法包 | 云上通用类算法包 |
| 订单号 | 选择购买该算法包的订单号(非商用算法包不显示) | cd80eef0611843ad99eee3b833xxxxxx |
| 算法服务 | 选择要使用的具体算法的名称 | 云上入侵检测 |
| 功能版本 | 选择功能版本 | 1.0 |
选完算法服务及功能版本后,会弹出该算法对应的 ROI 配置以及公共参数设置:
- 配置 ROI:配置感兴趣区域(Region of Interest),部分算法不需要配置
- 公共参数:各个算法服务版本对应的配置参数不同,具体参数含义请参见 API 概览
- 公共配置模板:可选择保存公共配置模板,保存后下次选择该算法进行视频分析的时候会延用当前的算法配置
5.4 任务执行计划配置
创建任务时可以设置任务的执行计划:
- 一直执行:任务立即启动并持续运行
- 周期执行:当勾选了周期执行的选项后,通过可视化的图表操作可选择任务每周执行的时间段,周期执行的最小时间段单位为 15 分钟
5.5 任务输出配置
选择视频处理后的结果文件的存放路径,可配置的输出方式有四种:
- OBS:支持将结果输出到 OBS 指定的文件夹,选择 OBS 文件或路径即可,需提前开通 OBS 服务
- DIS:支持将结果数据输出到 DIS 指定的通道,填写通道名即可,需要提前开通 DIS 通道
- Webhook:通过 HTTP 回调方式输出结果,仅支持云上推理
- 事件中心:将告警发送至事件中心进行统一管理
6. API 调用指南
通过 VIAS 开放的 API 和调用示例,您可以使用 VIAS 平台的接口和边缘算法服务、云上算法服务的 API。VIAS 提供了 REST 风格 API,支持通过 HTTPS 请求调用。
6.1 API 调用基础
API 调用的基础要素包括:
- 请求 URI:由服务 Endpoint 和资源路径组成
- 鉴权:通过 IAM 获取 Token 进行身份认证
- 终端节点:不同服务不同区域的终端节点不同
您可以在 API Explorer 中调试接口,支持自动认证鉴权,API Explorer 可以自动生成 SDK 代码示例。
6.2 Python SDK 调用示例
以下是使用 Python SDK 调用 VIAS API 的完整示例:
import requests
import json
# 配置信息
endpoint = 'https://vias.cn-north-4.myhuaweicloud.com'
project_id = 'your_project_id'
token = 'your_iam_token'
# 创建视频源
def create_video_source():
url = f'{endpoint}/v2/{project_id}/source/sources'
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': token
}
body = {
'video_source_name': 'test_camera',
'access_type': 'cloud',
'type': 'camera',
'url': 'rtsp://192.168.1.100:554/stream1',
'latitude': '39.9042',
'longitude': '116.4074'
}
response = requests.post(url, headers=headers, json=body)
return response.json()
# 创建分析任务
def create_analysis_task():
url = f'{endpoint}/v2/{project_id}/services/c-intrusion-detection-cloud/tasks'
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': token
}
body = {
'name': 'intrusion_detection_task',
'description': '园区入侵检测任务',
'input': {
'type': 'video_source',
'video_source_id': 'your_video_source_id'
},
'output': {
'obs': {
'bucket': 'vias-result-bucket',
'path': '/results/intrusion/'
}
},
'config': {
'common': {
'detection_interval': 5,
'sensitivity': 0.8
}
},
'schedule': {
'type': 'always'
}
}
response = requests.post(url, headers=headers, json=body)
return response.json()
# 查询任务状态
def get_task_status(task_id):
url = f'{endpoint}/v2/{project_id}/services/c-intrusion-detection-cloud/tasks/{task_id}'
headers = {'X-Auth-Token': token}
response = requests.get(url, headers=headers)
return response.json()
if __name__ == '__main__':
# 创建视频源
source_result = create_video_source()
print(f'视频源创建结果: {json.dumps(source_result, indent=2)}')
# 创建分析任务
task_result = create_analysis_task()
print(f'任务创建结果: {json.dumps(task_result, indent=2)}')
6.3 Java SDK 调用示例
以下是使用 Java SDK 调用 VIAS API 的示例:
import okhttp3.*;
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Map;
public class VIASClient {
private static final String ENDPOINT = 'https://vias.cn-north-4.myhuaweicloud.com';
private static final String PROJECT_ID = 'your_project_id';
private static final String TOKEN = 'your_iam_token';
private static final Gson gson = new Gson();
private static final OkHttpClient client = new OkHttpClient();
// 创建视频源
public static String createVideoSource() throws Exception {
String url = ENDPOINT + '/v2/' + PROJECT_ID + '/source/sources';
Map body = new HashMap<>();
body.put('video_source_name', 'test_camera');
body.put('access_type', 'cloud');
body.put('type', 'camera');
body.put('url', 'rtsp://192.168.1.100:554/stream1');
body.put('latitude', '39.9042');
body.put('longitude', '116.4074');
Request request = new Request.Builder()
.url(url)
.post(RequestBody.create(
MediaType.parse('application/json'),
gson.toJson(body)
))
.addHeader('Content-Type', 'application/json')
.addHeader('X-Auth-Token', TOKEN)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
// 创建分析任务
public static String createAnalysisTask() throws Exception {
String url = ENDPOINT + '/v2/' + PROJECT_ID +
'/services/c-intrusion-detection-cloud/tasks';
Map body = new HashMap<>();
body.put('name', 'intrusion_detection_task');
body.put('description', '园区入侵检测任务');
Map input = new HashMap<>();
input.put('type', 'video_source');
input.put('video_source_id', 'your_video_source_id');
body.put('input', input);
Map output = new HashMap<>();
Map obs = new HashMap<>();
obs.put('bucket', 'vias-result-bucket');
obs.put('path', '/results/intrusion/');
output.put('obs', obs);
body.put('output', output);
Map schedule = new HashMap<>();
schedule.put('type', 'always');
body.put('schedule', schedule);
Request request = new Request.Builder()
.url(url)
.post(RequestBody.create(
MediaType.parse('application/json'),
gson.toJson(body)
))
.addHeader('Content-Type', 'application/json')
.addHeader('X-Auth-Token', TOKEN)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
public static void main(String[] args) throws Exception {
String sourceResult = createVideoSource();
System.out.println('视频源创建结果: ' + sourceResult);
String taskResult = createAnalysisTask();
System.out.println('任务创建结果: ' + taskResult);
}
}
6.4 常见 API 接口
VIAS 平台 API 主要包括以下接口:
- 视频源管理:GET /v2/{project_id}/source/sources/{video_source_id}
- 边缘池管理:GET /v2/{project_id}/edge-pools、DELETE /v2/{project_id}/edge-pools/{id}
- 任务管理:POST /v2/{project_id}/services/{service_name}/tasks
7. 事件告警与结果处理
7.1 事件中心配置
事件中心可以针对视频算法抓拍的告警进行结果存储、查看等,实现事件的管理与分析。在创建任务时,可以将输出配置为事件中心,将告警发送至事件中心进行统一管理。
7.2 告警结果获取方式
根据不同的输出配置,获取任务分析结果的方式也不同:
- OBS 输出:登录 OBS 控制台,在指定的桶和路径下查看结果文件
- DIS 输出:通过 DIS SDK 或控制台消费通道中的数据
- Webhook 输出:配置回调 URL,VIAS 将结果通过 HTTP POST 方式推送到指定地址
- 事件中心:在 VIAS 控制台的事件中心页面查看告警事件列表和详情
7.3 Webhook 配置示例
Webhook 输出方式仅支持云上推理。配置 Webhook 时,需要提供一个可公网访问的 HTTPS 回调地址,VIAS 会将分析结果以 JSON 格式 POST 到该地址。
{
'output': {
'webhook': {
'url': 'https://your-server.com/vias/callback',
'headers': {
'Authorization': 'Bearer your_token'
}
}
}
}8. 典型应用场景
8.1 智慧园区
基于 AI、大数据、云计算技术,对商住园区进行智慧化管理,提供园区周界入侵检测、车辆车牌检测、车辆违停检测等智能分析技术,实现面向园区安防、人员进出、车辆信息的一体化综合园区管理解决方案。
8.2 城市治理
VIAS 可应用于城市治理场景,包括城管事件检测(如占道经营、违规摆摊)、共享单车乱停放检测、垃圾暴露检测等,助力城市精细化治理。
8.3 智慧水务
通过视频智能分析技术,实现对水务场景的智能监控,包括排口排水识别、水位监测、人员入侵等。
8.4 智慧交通
应用于交通场景的车流量统计、违章检测、交通事故识别等,提升交通管理效率。
8.5 智慧工地
提供工服工帽检测、烟火检测、区域入侵检测等算法,保障工地施工安全。
9. 常见问题解答
问1:VIAS 服务如何收费?
答:VIAS 服务采用按量计费模式,主要费用包括算法包购买费用和资源使用费用。算法包按年或按次购买,具体价格可在华为云官网的 VIAS 产品页查看。云上推理还涉及计算资源费用,按实际使用的 GPU/CPU 时长计费。
问2:边缘算法和云上算法有什么区别?
答:边缘算法是将 AI 模型下发到边缘节点的客户设备中执行,视频数据不需要上传到云端,适合对实时性要求高、网络带宽有限、数据安全性要求高的场景。云上算法是在华为云上执行分析,视频数据需要上传到云端,适合算力要求高、需要集中管理的场景。
问3:VIAS 支持哪些视频流协议?
答:VIAS 支持 RTSP、RESTful、URL 等多种视频流协议。同时支持从 VCN(视频云节点)、IVM 等平台直接拉取视频流。
问4:如何查看算法的分析结果?
答:分析结果的查看方式取决于任务输出配置。如果输出到 OBS,可在 OBS 指定路径下载结果文件;如果输出到 DIS,可通过消费 DIS 通道获取数据;如果输出到 Webhook,结果会推送到配置的回调地址;如果输出到事件中心,可在 VIAS 控制台的事件中心页面查看。
问5:VIAS 的算法准确率如何?
答:VIAS 基于华为云深度学习等领先技术,在园区、城市治理等场景中的人、车辆、事件、行为识别具备高精度感知和处理能力。但实际准确率受视频质量、光照条件、算法适用场景等因素影响,建议在正式使用前进行充分的测试验证。
问6:创建任务时提示“算法未部署”怎么办?
答:如果是边缘算法或非华为自研云上算法,需要先完成算法部署。进入“算法中心”的“算法服务”页面,找到对应的算法服务,点击“部署”按钮,等待部署状态变为“运行中”后再创建任务。华为自研云上算法不需要手动部署。



