【ModelScope测评】实现对视频上传的自动化分类

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: 对不起,我是开发小白,纯纯新手OvO

    ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!(来自官方文档)

ModelScope提供了模型库,数据集与文档,在拥有ModelScope Library环境的情况下,我们可以使用开放的模型,将模型应用到实际中;也可以对预训练模型进行调优测试;同样也能借助文档了解学习模型的实现方式。

当然,我肯定是不会人工智能开发的,纯纯新手,但是也要借着写测评文章的机会好好玩一下ModelScope模型库

image.png

 

前言:

在这个信息量爆炸的互联网时代,各类视频平台成了我们娱乐消遣的方式之一,当然,我本人每天也喜欢拿着手机刷视频。同样,偶尔也会创作一些视频作品传到平台上。在平台的创作中心里,当我们将自己的视频上传到平台时,往往会对视频进行一个分类分区,这个视频分类在不同的平台有不同的方式。有些平台是需要自己手动去选择视频所属的分类,而有些平台会自动帮我们选择好分类,但是自动分类的结果往往不如我们心意。

 

在国内某个头部弹幕视频网站中,上传视频时选择的分区是平台自动选择的,很多视频的基本系统平台会帮我一键填写,这里我们上传测试的视频是动漫的番剧,平台自动选择了动画的分区,没有毛病

image.png

 

可是当我们把相同的视频文件,重命名为其他名字,如图中的test,再进行上传时

image.png

 

 

平台自动分区就不再准确了,而是变为了科技区的计算机技术

image.png

虽然咱也不是搞开发的,确实不明白它对上传视频的自动分区是利用哪种技术进行实现的,可能与文件名解析有关。不过可以肯定的是,视频上传时的自动分区,存在很大的误差

 

回到我们模型测评的话题,在modelscope模型库中提供了这样一个模型:达摩视频分类模型-cv_resnet50_video-category

 

模型描述:模型采用resnet50网络结构提取视觉特征,采用NextVLAD网络对连续视频帧进行特征聚合。

使用方式:直接推理,对输入的视频片段,输入视频url直接进行推理。

使用场景: 适合主题明确的短视频,视频不超过30秒。

如何使用:提供输入视频,即可以通过简单的Pipeline调用来识别结果。

(模型链接:https://modelscope.cn/models/damo/cv_resnet50_video-category/summary

 


使用模型时,我们需要ModelScope环境,平台为我们提供了安装好的在线环境供我们测试,当然我们也可以自己在本地搭建ModelScope library。官方提供了详细的使用文档,不过我这里再简单整理一下在线环境与本地环境的使用。


一、在线测试使用视频分类模型

1.1 在线Notebook实验环境

进入到我们所需要实验的模块页面,在页面的右上角点击【在Notebook中打开】

 

image.png

 

选择启动实例,可以是CPUGPUCPU环境完全免费一次启动可以使用4个小时,自然得白嫖免费的

选择【方式一】,点击【启动】,等待几分钟后即可【查看notebook,跳转到在线测试平台

不过这里免费的环境有832G,比我自己的ECS配置高多了,真是舒舒服服的测试哇

image.png

 

在启动页面,点击【Python3】进入代码调试环境,点击【Terminal】进入linux终端,可以使用pip安装一些其他所需要的库,当然notebook在线环境预装了ModelScope Library,测试使用完全没有问题

image.png

 

1.2 在线环境测试模型

我们在调试框中输入代码范例来进行测试,点击运行即可

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
category_pipeline = pipeline(
            Tasks.video_category, model='damo/cv_resnet50_video-category')
result = category_pipeline('1.mp4')
print(result)

 

image.png

 

当然我们需要上传测试视频分类的样本,我这里传了一段国产动漫的视频,直接拖到notebook就行

image.png

 

模型精准的推理出我所传视频的分类,返回了测试结果,分类到【游戏>>短片动画】

{ 'scores': [0.38548532128334045], 'labels': ['游戏>>短片动画']}

image.png

 

二、搭建简易本地短视频分类应用

2.1 本地Notebook实验环境

参考了官方提供的环境配置文档(https://www.modelscope.cn/docs/%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85

在本地龙蜥系统(推荐使用Anolis接替CentOS)下利用anaconda环境创建python37环境

image.png

 

//Anaconda创建python37环境,名为modelscope

[root@k8s ~]# conda create -n modelscope python=3.7

//进入创建好的modelscope,安装深度学习框架,安装ModelScope library所有领域功能(也可以单独安装)

[root@k8s bin]# source activate modelscope
(modelscope) [root@k8s bin]# pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
(modelscope) [root@k8s bin]# pip install --upgrade tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple
(modelscope) [root@k8s bin]# pip install "modelscope[audio,cv,nlp,multi-modal]" -fhttps://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

 

//漫长的下载安装编译后,进入python交互,输入命令测试环境是否正常

>>> from modelscope.pipelines import pipeline
>>> p = pipeline('video-category', model='damo/cv_resnet50_video-category')

image.png

 

//本地测试模型,同样样本执行成功,返回正确分类的结果

>>> result = category_pipeline('/root/1.mp4')
>>> print(result)

image.png

 

 

2.2 安装报错解决

我本地搭建时还是遇到不少缺包少包的报错,我这里再多嘴分享一下叭!

 

  1. pip安装modelscope时报没gcc

//安装系统开发环境软件,这个少GCC是我自己没注意的问题

(modelscope) [root@k8s bin]# yum -y install gcc
(modelscope) [root@k8s bin]# yum -y groupinstall "Development Tools"

image.png

 

  1. 导入库 from modelscope.pipelines import pipelinenumpy报错初始化失败

//安装numpy,这里我numpy版本用的是1.21

(modelscope) [root@k8s bin]# pip install numpy==1.21 -i https://pypi.tuna.tsinghua.edu.cn/simple

image.png

 

  1. 导入damo时报少decord

//少了pip装上就行哈

(modelscope) [root@k8s bin]# pip install decord -i https://pypi.tuna.tsinghua.edu.cn/simple

image.png

 

 

2.3 ***搭建简易视频上传页面***

我这里利用flask框架,简单写了一张文件上传的页面

(modelscope) [root@k8s app]# cat index.py
# coding=utf-8
from flask import Flask,request
from werkzeug.utils import secure_filename
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
@app.route('/')   #首页
def index():
    return '''<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>短视频上传-视频分类测试</title>
    <link href="https://example-static.oss-cn-beijing.aliyuncs.com/web-framework/style.css" rel="stylesheet" type="text/css"/>
</head>
<br>
<div class="website">
    <div class="ri-t">
        <h2>短视频上传-视频分类测试</h2>
    </div>
    <form action = "http://model-test.tao.com/uploadtest" method = "POST" enctype = "multipart/form-data">
        <input type = "file" name = "file" />
        <input type = "submit" value="上传"/>
    </form>
</div>
</body>
</html>
'''
@app.route('/uploadtest', methods=['GET', 'POST'])  #上传
def upload_file():
    if request.method == 'POST':
        f = request.files['file']
        f.save(secure_filename(f.filename))
        category_pipeline = pipeline(Tasks.video_category, model='damo/cv_resnet50_video-category')
        result = category_pipeline(f.filename)
        checkres = '/'.join(result.get('labels','暂无法自动找到分类~'))
        fname ='【' + f.filename + '】视频上传成功,视频所对应分类为:' + checkres
        return fname
    else:
        return '文件上传失败'
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=80)

 

 

2.4 体验短视频上传后自动分类的效果

运行我们的python代码,页面访问测试都ok

image.png

 

这里我从网络上找了六个测试文件,分别是不同类别不同分区的视频片段,视频大小也有不同,横板竖版都有


本人比较喜欢云撸猫,一天不看个几十只猫猫浑身难受。先测试宠物类视频

 萌宠动物2022951757352.gif

 

image.png

 

上传视频后,自动分类结果显示【生活>>萌宠】,准的!

image.png

 

 

刷到的彩妆试装推广视频,小姐姐试口红

Cosmetics2022952232437.gif

上传测试

image.png

 

 

上传视频后,自动分类结果显示【生活>>好物推荐】,牛逼,我以为会是美妆类视频,没想到模型它直接看穿了这是个赤裸裸的带货广告

image.png

 

周董前段日子的新专辑MV视频

周董MV202295182226.gif

上传最伟大的作品

image.png

 

上传视频后,自动分类结果显示【音乐>>MV】,准啊

image.png

 

前几天五菱宏光MINIev发布了敞篷款,不少UP出了测评

五菱测评2022951759234.gif

上传测试一下

image.png

 

 

上传视频后,自动分类结果显示【交通>>玩车】,准的可以啊

image.png

 

 

当然少不了科技区的

手机测评2022951758383.gif

上传一个手机测评的视频

image.png

 

 

上传视频后,自动分类结果显示【数码科技>>手机平板】,精准!

image.png

 

测试电影片段,拿了头文字D的一截

影视片段202295180105.gif

排水渠过弯,上传!

image.png

 

 

上传视频后,自动分类结果显示【影视>>短片】,可以的,还是很牛逼的

image.png

这样的应用方式比文章前面所使用的上传视频自动分类的精准度要高很多,真的很厉害了。我现在贼羡慕会人工智能开发的大佬们5555

 

其他:

第一希望平台可以开放更多的模型(白嫖脸),我在学习模型使用准备找模型做测试时一开始选择的是:达摩日常行为检测-cv_ResNetC3D_action-detection_detection2d,想借这个测试模块实现【监控家中老人跌倒并自动告警】的应用

image.png

准备测试之前还简单想了应用测试场景,但是使用模型时报错,自己这也排不出错,壮壮胆子去群里问了才发现这个模型没有正式发布

image.png

其他就是模型库里的模型,文档可以再完善一下,部分模块的应用说明太简略了哈哈

 

 

总结:

本次测评对ModelScope的cv_resnet50_video-category达摩视频分类模型做了一个简单的使用测试,测试结果相当精准,平台开放模型库与数据集对开发者学习应用人工智能技术有很大的帮助,像我这样的开发零基础小白也可以简单使用。看到大家对模型有各种各样的骚操作学习到了,有美化人像的还有游戏锁头的,希望模型库和数据集生活中的各个方面有所应用,提升人们的智能生活~

 

image.jpeg

 

 

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6月前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库
65 2
|
6月前
|
弹性计算 持续交付 开发工具
【阿里云幻兽帕鲁全攻略】一分钟自动化部署教程,大咖视频讲解,游戏FAQ持续更新中
帕鲁攻略全集:从云服务器选购,到完成自动化部署,还有视频教程手把手教学,各类游戏FAQ持续更新中
|
2月前
|
Python
Python办公自动化:xlwings对Excel进行分类汇总
Python办公自动化:xlwings对Excel进行分类汇总
62 1
|
7天前
|
自然语言处理 监控 API
"阿里云ModelScope深度测评:从预训练模型到一键部署,揭秘高效模型开发背后的秘密,开发者必备利器!"
【10月更文挑战第23天】阿里云ModelScope是一款便捷的模型开发、训练、部署和应用平台。它提供丰富的预训练模型,涵盖自然语言处理、计算机视觉等领域,支持一键式模型训练和部署,具备模型版本管理和监控功能,显著降低开发门槛,提高模型应用效率。
25 0
|
2月前
|
JSON 编解码 搜索推荐
使用Ruby进行视频内容的自动化分析
使用Ruby进行视频内容的自动化分析
自动化爬取网易云视频,一个是获取网易云视频列表 一个是 获取视频真实播放地址
自动化爬取网易云视频,一个是获取网易云视频列表 一个是 获取视频真实播放地址
|
6月前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库【1月更文挑战第4天】【1月更文挑战第20篇】
79 2
|
6月前
|
传感器 存储 数据采集
LabVIEW通过视频识别开发布氏硬度机自动化测量系统
LabVIEW通过视频识别开发布氏硬度机自动化测量系统
44 4
|
机器人 测试技术 开发者
ModelScope中文模型测评
Modelscope可以帮助研究人员和开发者对模型进行性能分析等。本次我体验了知识常识,人类价值观和写作创作相关这三个对话类型场景,下面是我对测试模型的分析与看法
326 1
 ModelScope中文模型测评
|
机器学习/深度学习 人工智能 JavaScript
Modelscope 中文竞技场的测评
Modelscope 是一种用于观察和分析模型的工具,它提供了一个直观的界面,使用户能够轻松地浏览和分析模型,而无需深入了解复杂的数学和编程。 以下简单和大家探讨一下Modelscope 中文竞技场的测试分享,将从写作创作相关、代码相关、人类价值观三个方面对进行综合测评,带大家多方面了解这一平台的综合实力。
509 2