开发者社区> 嚯嚯嚯www> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 对不起,我是开发小白,纯纯新手OvO
+关注继续查看

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>

? ??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

?

选择启动实例,可以是CPU或GPU,CPU环境完全免费一次启动可以使用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

?

?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
DevOps | 实现命令行交互自动化
DevOps | 实现命令行交互自动化
112 0
【愚公系列】华为云轻应用之手把手教你用搭一个WeLink上的出差应用丨【AppCube X WeLink双剑合璧】(2)
【愚公系列】华为云轻应用之手把手教你用搭一个WeLink上的出差应用丨【AppCube X WeLink双剑合璧】(2)
125 0
LINUX编译OpenJDK 11
LINUX编译OpenJDK 11
42 0
龙芯OpenJDK更新策略:没必要跟进小版本,最后大版本更新
龙芯OpenJDK更新策略:没必要跟进小版本,最后大版本更新
126 0
OpenGL 实现视频编辑中的转场效果
转场效果是什么? 转场效果,简单来说就是两段视频之间的衔接过渡效果。
210 0
Dsm as deepin mate(3):离线编辑初始镜像,让skynas本地验证启动安装/升级
本文关键字:啥是真正的黑群,压缩skynas磁盘布局为5G内
261 0
RecyclerView实现探探卡片滑动功能及优化
title: RecyclerView实现探探卡片滑动功能 date: 2018-10-07 10:35:56 tags: RecyclerView 代码实现 博客地址:https://blog.csdn.net/qq_39085422/article/details/78612132 我只掌握了RecyclerView基础用法,所以参考别人博客的代码实现。
1790 0
《 自动化测试最佳实践:来自全球的经典自动化测试案例解析》一一1.3 建立自动化策略
本节书摘来自华章出版社《 自动化测试最佳实践:来自全球的经典自动化测试案例解析 》一 书中的第1章,第1. 43节,作者:(英)Dorothy Graham Mark Fewster 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1335 0
LOGFILE LAYER OPCODE 汇总
? ? Layer 1 : Transaction Control - KCOCOTCT ? ? ?? Opcode 1 : KTZFMT ?? Opcode 2 : KTZRDH ?? Opcode 3 : KTZARC ? Opcode 4 : KT...
779 0
+关注
嚯嚯嚯www
呀,怎么一不小心二十岁了QAQ
73
文章
11
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载
http://www.vxiaotou.com