时光相册应用效果

团队模型、论文、博文、直播合集,点击此处浏览

一、物料

人脸检测:https://modelscope.cn/models/damo/cv_resnet101_face-detection_cvpr22papermogface/summary

时光相册: https://modelscope.cn/studios/damo/face_album/summary

二、背景

最近有两个计算机应用发展的方向正在潜移默化的汇拢中:1.)模型即服务 2.)人工智能(AI)。它们的会师正逐渐形成模型即服务AI热潮,开源典型的代表有国外的huggingface以及国内的modelscope。

什么是模型即服务呢?顾名思义模型即服务(MaaS)是一种用较少的代码、以较快的速度来调用AI功能以及部署AI服务的平台。通过少量代码或不用代码实现AI场景应用创新。

什么是人工智能呢?虽老生常谈,但本着空杯的心态,这里亦引用了百度百科上的定义:“人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。”

近几年模型即服务一直被人津津乐道,这是提升AI编程效率、加速AI创新应用的大趋势。人工智能领域近几年非常火热,基于AI的行业创新应用层出不穷,尤其今年的AI绘画又大有元年之势,相应介绍可查阅《人工智能内容生成元年—AI绘画原理解析》。如下章节将重点介绍如何通过模型即服务来完成AI功能调用以及相应AI应用搭建。

三、方法

1.)模型即服务AI功能调用:

首先打开notebook,可以通过示例右上角创建账号申领。亦或通过本地python环境安装直接调用(若本地环境暂无pip,则查看文档中“Python环境配置”部分)。等到环境ready后,试跑如下示例代码:

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasksmog_face_detection_func = pipeline(Tasks.face_detection, 'damo/cv_resnet101_face-detection_cvpr22papermogface')
src_img_path = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/mog_face_detection.jpg'
raw_result = mog_face_detection_func(src_img_path)
print('face detection output: {}.'.format(raw_result))# if you want to show the result, you can run
from modelscope.utils.cv.image_utils import draw_face_detection_no_lm_result
from modelscope.preprocessors.image import LoadImage
import cv2
import numpy as np# load image from url as rgb order
src_img = LoadImage.convert_to_ndarray(src_img_path)
# save src image as bgr order to local
src_img  = cv2.cvtColor(np.asarray(src_img), cv2.COLOR_RGB2BGR)
cv2.imwrite('src_img.jpg', src_img)
# draw dst image from local src image as bgr order
dst_img = draw_face_detection_no_lm_result('src_img.jpg', raw_result)
# save dst image as bgr order to local
cv2.imwrite('dst_img.jpg', dst_img)
# show dst image by rgb order
import matplotlib.pyplot as plt
dst_img  = cv2.cvtColor(np.asarray(dst_img), cv2.COLOR_BGR2RGB)
plt.imshow(dst_img)

这样就完成了模型即服务的AI功能调用了。可以将这快速应用在平时需要调用人脸检测的场景中了。

2.)模型即服务AI应用搭建:

在完成1.)步骤之后,可能有人会有疑问:“1.)步骤中的代码只适合自己调用,如何形成模型即服务的AI应用服务给更多人分享使用呢?”。本节重点介绍如何基于1.)进而完成相应模型即服务的样例AI应用。该应用的搭建将基于gradio实现,具体步骤如下:

a.)按照手册完成gradio环境配置。

b.)建立app.py文件并填充如下代码:

import gradio as gr
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.cv.image_utils import draw_face_detection_no_lm_result
from modelscope.preprocessors.image import LoadImage
from PIL import Image
import cv2
import numpy as np###########################################
# gradio demo app 推断入口
############################################ gradio app demo 算法运行函数
def inference(input_file):mog_face_detection_func = pipeline(Tasks.face_detection, 'damo/cv_resnet101_face-detection_cvpr22papermogface')src_img_path = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/mog_face_detection.jpg'raw_result = mog_face_detection_func(src_img_path)print('face detection output: {}.'.format(raw_result))# load image from url as rgb ordersrc_img = LoadImage.convert_to_ndarray(src_img_path)# save src image as bgr order to localsrc_img  = cv2.cvtColor(np.asarray(src_img), cv2.COLOR_RGB2BGR)cv2.imwrite('src_img.jpg', src_img) # draw dst image from local src image as bgr orderdst_img = draw_face_detection_no_lm_result('src_img.jpg', raw_result)# convert to rgb orderdst_img  = cv2.cvtColor(np.asarray(dst_img), cv2.COLOR_BGR2RGB)return dst_img# gradio app 环境参数
css_style = "#fixed_size_img {height: 240px;} " \"#overview {margin: auto;max-width: 600px; max-height: 400px;}"
title = "AI人脸检测应用"###########################################
# gradio demo app
###########################################
with gr.Blocks(title=title, css=css_style) as demo:gr.HTML('''<div style="text-align: center; max-width: 720px; margin: 0 auto;"><divstyle="display: inline-flex;align-items: center;gap: 0.8rem;font-size: 1.75rem;"><h1 style="font-family:  PingFangSC; font-weight: 500; font-size: 32px; margin-bottom: 7px;">AI人脸检测应用</h1>''')with gr.Row():img_input = gr.Image(type="pil", elem_id="fixed_size_img")img_output = gr.Image(type="pil", elem_id="fixed_size_img")with gr.Row():btn_submit = gr.Button(value="一键生成", elem_id="blue_btn")examples = [['https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/mog_face_detection.jpg']]examples = gr.Examples(examples=examples, inputs=img_input, outputs=img_output, label="点击如下示例试玩", run_on_click=True)btn_submit.click(inference, inputs=[img_input], outputs=img_output)# btn_clear清除画布if __name__ == "__main__":demo.launch(share=True)

c.)在本地或者线上环境执行如下指令:python app.py

d.)复制粘贴如下红框相应服务链接进行分享使用

3.)模型即服务AI复杂应用:

在完成2.)步骤之后,相信很多同学对模型即服务AI功能调用、AI应用搭建有了很好的初体验,可能有些同学还是意犹未尽。本节重点介绍如何基于人脸检测搭建“时光相册”, 随意上传您心仪的照片合集(宝宝成长相册、同学毕业相册),通过人脸五官对齐,一键生成样貌变化效果图,点点鼠标即可下载分享给亲朋好友。效果图如下:

代码可直接拷贝这里(所有文件.py文件以及images文件都下载下来)。然后在本地或者线上环境执行如下指令:

python app.py

命令行log信息如下所示,将红色框的链接粘贴至浏览器即可体验该应用:

效果与官网应用“时光相册”类似。

四、讨论

回首过往,作为2007级本科生,当时是大类招生的,到了2008年大二的时候就需要选方向了。当时大二选方向时,有很多热门的专业,如“自动化”、“信息与通信”等,“计算机”在当时不可不谓是冷门的存在。由于当时大一参加了软件协会(后孵化了ACM集训队),迷上了程序设计语言的创造力,所以选择了计算机专业。

转眼进入了专业课的学习,当时上了一门人工智能课程,里面讲到了“手写数字识别”这样BP神经网络案例,当即被人工智能的创造力吸引到了。在当时实现手写数字识别还需要用较重的MFC应用搭建方式,如果不太熟悉的话,应用入门成本还是比较高的。现如今结合模型即服务AI热潮,相应应用搭建将会越来越方便,大把的精力可以集中放到AI技术与应用的普及和相应创新上了。

同学们如有想要简单快速实现的其他AI应用也可在评论区留言,作者将择机对需求呼声较高的AI应用做模型即服务实现分享。

五、应用

接下来给大家介绍下我们研发的各个域上的开源免费模型,欢迎大家体验、下载(大部分手机端即可体验):

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

ModelScope 魔搭社区

「模型即服务AI」1分钟调用SOTA人脸检测,同时搭建时光相册小应用相关推荐

  1. 神策数据首批入驻「WPS企业服务联盟」

    近几年,国内企业服务行业的创业浪潮可谓风起云涌,各种企业级服务公司如雨后春笋般大量涌现.国内企业服务市场之所以在近两年爆发,除了得益于资本的热捧之外,更主要的原因在于企业级服务市场在国内发展的条件日益 ...

  2. AI入门级的开发技巧:人脸检测的4种常见方法以及优缺点对比

    这是一篇纯干货文章,旨在与AI初学者分享关于人脸检测的4种常见方法,以及它们的各自优缺点的对比.同时我也从一位资深的AI开发者角度,给大家提出一些个人的开发技巧和建议,便于大家找到适合自己需求的方法. ...

  3. 百度AI之图像识别SDK:实现人脸检测+比对(python)

    之前的博客中体验了百度AI图像识别的SDK,相信很多人跟我一样对人脸识别也有着很深的兴趣,今天来试一下这套SDK里的face相关的模块.其中SDK的下载和部署这里不再赘述,详细的可以参考上一篇博客. ...

  4. 企业短信防火墙应用-爱侬「北京市家政服务龙头企业」

    ▌1. 爱侬网站及需求 董事长:穆丽杰女士 既是政协石景山区第十届委员会委员,也是爱侬家政服务的创始人. 北京家政服务协会会长,北京爱侬养老科技发展股份有限公司董事长. 史总: 爱侬技术负责人 ( 需 ...

  5. 前装定点3000万辆+,极豆科技打造行业最大「品牌车主服务平台」

    智能网联汽车的生态正在发生翻天覆地的变化,这也带动了产品价值链的系列改变. 首先,软件在汽车价值链中的占比持续上升,这将会驱动整车厂在软件开发能力.系统测试与验证能力.系统集成能力各方面快速提升.同时 ...

  6. 3模型大小_分布式训练中数据并行远远不够,「模型并行+数据并行」才是王道...

    选自arXiv 作者:Saptadeep Pal等 机器之心编译参与:魔王.杜伟 数据并行(DP)是应用最广的并行策略,对在多个设备上部署深度学习模型非常有用.但该方法存在缺陷,如随着训练设备数量不断 ...

  7. 企业动态 | 数商云公司入选崔牛会「2023中国企业服务云图」

    近日,B2B领域知名企服平台崔牛会发布了「2023中国企业服务云图」,清晰描绘出当前中国企业服务领域的全新格局,为企业开展数字化转型及建设提供选型参考.「数商云」凭借在供应链数字化服务中成熟的解决方案 ...

  8. AI各种模型的聊天机器人的接入聊天平台(服务器和本地搭建)

    探索ChatGPT,协助工作学习创作.公众号「阿杰与AI」回复AI,加入社群,一同探讨,一同成长,比他人更进一步. 我们一起维护一个完全免费开源知识库. 1.AI.OpenAI.MidJourney发 ...

  9. 雷军谈小米10售价:不贵,交个朋友;百度开源首个口罩人脸检测模型;优麒麟18.04.4 LTS发布 | 极客头条...

    整理 | 郭芮 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

最新文章

  1. 使用oracle和sqlserver的几点区别【转】
  2. OpenVINO 2020版没有cpu_extension.dll问题解决
  3. 如何将git上的代码迁移到Coding上
  4. 2019年寒假作业1编辑总结
  5. 以高端牌乘风破浪的飞鹤,究竟是“实力派”还是“偶像派”?
  6. Java教程之RabbitMQ介绍
  7. SQLServer删除登录帐户
  8. 特别推荐:开发者的10个最佳代码游乐场
  9. 修改/etc/resolv.conf又恢复到原来的状态?[转]
  10. 武汉新增职位数同比下降44.25%,这些企业却在猛招人,“来多少,要多少”
  11. 《浪潮之巅》十八十九章笔记
  12. ActiveRecord 复合主键时 实体转换为DataRow
  13. 一种基于DCNN模型的云检测方法介绍
  14. android edittext格式验证,EditText实现输入限制和校验功能实例代码
  15. 关于Vue vue-cli安装遇到的一些问题
  16. 电压比较器,电压比较器原理
  17. Docker搭建rtmp视频直播
  18. 数字媒体概论——系统篇
  19. 51单片机最小系统板制作
  20. Wireshark 基础 | 简介篇

热门文章

  1. mac电脑打不开html文件怎么处理,苹果电脑mac系统打不开rar文件怎么办?mac电脑打不开rar文件的解决方法...
  2. 哪个牌子无线蓝牙耳机性价比最高?平价好用的蓝牙耳机品牌
  3. 王者荣耀服务器信息共享,王者荣耀账号时长共享怎么使用 账号时长共享使用方法介绍...
  4. 传智教育“大同互联网职业技术学院”奠基仪式盛大举行,开拓高等职业教育发展新版图
  5. 多对多关系的处理办法
  6. 客户体验CX策略7步走,打造优秀客户体验的秘诀
  7. 5年测试工程师成功入职美团,看看面霸是如何养成的,他的路子真的野
  8. 实现多线程的三种方式
  9. 英语时态:特殊疑问句(10个句子练到极致,不能有停顿连续三遍)
  10. linux升级gcc版本详细教程