当前位置: 首页 > news >正文

中通建设工程管理公司网站wordpress php安装

中通建设工程管理公司网站,wordpress php安装,汉川网站制作,申请免费网站主页空间前言 当下#xff0c;视频内容火爆#xff0c;带有争议性或反差大的换脸视频总能吸引人视线。虽然 AI 换脸在市面上已经流行了许久#xff0c;相关制作工具或移动应用也是数不胜数。但是多数制作工具多数情况下不是会员就是收费#xff0c;而且替换模板有限。以下在实战的角…前言 当下视频内容火爆带有争议性或反差大的换脸视频总能吸引人视线。虽然 AI 换脸在市面上已经流行了许久相关制作工具或移动应用也是数不胜数。但是多数制作工具多数情况下不是会员就是收费而且替换模板有限。以下在实战的角度用阿里 ModelScope 的图像人脸融合实现一下 AI 视频换脸。 流程 提供一段视频和一张替换的人脸图片用 opencv-python 将视频根据帧率拆成图片用 FFmpeg 提取视频里的音频为单独文件 (mp3)。遍历目录下的每一帧的图片通过 ModelScope 的人脸融合模型传入新的人脸和帧率图片得到替换过人脸的帧图片。最后再通过 opencv-python 将替换的人脸图片组合成新视频FFmpeg 添加提取出的音频文件。 环境 1. Python 3.7.16 2. ModelScope 1.4.2 3. OpenCV-Python 4.7.0 4. FFmpeg 12.2.0 环境安装 1. Python 虚拟环境添加 conda create -n modelscope python3.7 conda activate modelscope 2. 安装 ModelScope使用了国内镜像源 pip install modelscope --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple 3. 安装 OpenCV pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 4. 安装 FFmpeg 因为单是图片用不上所以安装方法放在下面视频换脸里 图片换脸 1. 素材准备 我这里分别准备了一个画面里出现正脸侧脸和两张脸的图片然后分别用一张图片替换最后运行代码查看效果。(可能是模型原因感觉光看图片的换脸好像相差不大倒有点像只是开了个美颜也有可能是俩演员有点像认真看还有有点不同)。 2. 代码部分 import cv2 from modelscope.outputs import OutputKeys from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasksimage_face_fusion pipeline(Tasks.image_face_fusion, modeldamo/cv_unet-image-face-fusion_damo) template_path 181.jpg user_path face.jpg result image_face_fusion(dict(templatetemplate_path, useruser_path))cv2.imwrite(result.png, result[OutputKeys.OUTPUT_IMG]) print(finished!)视频换脸 1.  FFmpeg 安装 如果是 windows10 可以按我下面的选择shared 是动态版本不带的是静态版本所有的功能都集合在一起。 2. FFmpeg 环境配置 下载后解压会生成一下目录将 bin 文件放入电脑环境变量中然后通过 ffmpeg -version 查看是否安装成功。 3. FFmpeg 用法 3.1. 从视频中抽取音频 (输入视频和输出音频的地址可以是相对路径) ffmpeg -i videos\11.mp4 -q:a 0 -map a audio\audio.mp3 3.2. 将独立音频文件添加到视频里 (接收输入视频输入音频输出新视频) ffmpeg -i videos/ldh.mp4 -i audio/audio.mp3 -c:v copy -c:a aac -strict experimental videos/new_ldh.mp4 4. 开始编码 from pathlib import Path import cv2 import osdef video2mp3_img(video_path, save_path):def video_split(video_path, save_path):if not os.path.exists(save_path):os.makedirs(save_path)cap cv2.VideoCapture(video_path)i 0while True:ret, frame cap.read()if ret:cv2.imwrite(save_path / str(i) .jpg, frame)i 1else:breakcap.release()if not os.path.exists(save_path):os.makedirs(save_path)# 视频分割video_split(video_path, save_path)# 视频转音频os.system(ffmpeg -i {} -q:a 0 -map a {}/audio.mp3.format(video_path, save_path))def face_replace(user_path):from pathlib import Pathimport cv2from modelscope.outputs import OutputKeysfrom modelscope.pipelines import pipelinefrom modelscope.utils.constant import Tasksimport osos.environ[KMP_DUPLICATE_LIB_OK] Truedef my_function(img_path):image_face_fusion pipeline(Tasks.image_face_fusion, modeldamo/cv_unet-image-face-fusion_damo)template_path img_pathfilename os.path.splitext(os.path.basename(img_path))[0]# 替换面部依赖result image_face_fusion(dict(templatetemplate_path, useruser_path))cv2.imwrite(fvideo_imgout/{filename}.jpg, result[OutputKeys.OUTPUT_IMG])threads []BASE_PATH os.path.dirname(__file__)for dirpath, dirnames, filenames in os.walk(rD:\3code\3Python\modelscope\mv_face_change-main):for filename in filenames:print(filename)if filename.endswith(.jpg):file_path Path(os.path.join(dirpath, filename))print(file_path)my_function(str(file_path))def img2mp4(video_path, save_name):BASE_PATH D:\3code\3Python\modelscope\mv_face_change-mainimg cv2.imread(video_img/0.jpg)imgInfo img.shapesize (imgInfo[1], imgInfo[0])files []for dirpath, dirnames, filenames in os.walk(rD:\3code\3Python\modelscope\mv_face_change-main\video_imgout):for filename in filenames:fileName Path(os.path.join(dirpath, filename))files.append(os.path.join(dirpath, filename))files [file.replace(\\, /) for file in files]files.sort(keylambda x: int(x.split(/)[-1].split(.)[0]))fourcc cv2.VideoWriter_fourcc(*mp4v)videoWrite cv2.VideoWriter(rD:\3code\3Python\modelscope\mv_face_change-main\videos\ldh.mp4, fourcc, 25, size) # 写入对象 1 file name 3: 视频帧率for i in files:print(i)img cv2.imread(str(i))videoWrite.write(img)# 将video_img中的音频文件添加到视频中os.system(ffmpeg -i {} -i {} -c:v copy -c:a aac -strict experimental {}.format(videos/ldh.mp4, audio/audio.mp3, videos/newlest_ldh.mp4))if __name__ __main__:BASE os.path.dirname(__file__)video_path os.path.join(BASE, videos/demo.mp4) save_path os.path.join(BASE, video_img) # 视频 imgsvideo2mp3_img(video_path, save_path)# 人脸替换face_replace(user_pathzsy.jpg)# imgs 视频img2mp4(video_path, save_namezsy) 5. 报错汇总 当运行上面代码如果出现 Output file does not contain any stream那就是分离音频或追加音频到视频的这两个地方报的错误大部分情况下输出路径不正确或命令参数不对。还有一个错误我没有记录就是让视频压根没有声音再执行分离操作时也会报错。这个是我上班时随便拿的视频测试 (因为不能戴耳机刚好视频就是没声音的)所以使劲测使劲报错换了视频就好了关键是错误提示也没说是视频没声音。 6. 效果演示 由于时间原因没有用杨过的视频就用没有声音的视频做了换脸演示。以后还要对换脸图片替换做多线程处理。
http://www.dnsts.com.cn/news/35471.html

相关文章:

  • 网站经常做封面的那些番号建设公司自己的网站
  • 经典软文案例100例海外seo
  • 网站多语言包装设计网页
  • 网站建设mdf平面设计鉴赏网站
  • 附近手机网站建设市场营销成功案例分析
  • 好看的网站案例哪里有建设
  • 域名备案后怎样做网站建站自学
  • wordpress 4.7.4 主题湖南网站seo地址
  • seo1网站查询什么是seo推广
  • 台州网站排名公司网站设计图能用ps做么
  • 网站保留密码 怎么做在线生成器免费
  • 朔州做网站的公司常州网站建设电话
  • 网站后缀名59一起做网站
  • 贵州网站建设 零玖伍壹网络有多少种做网站后台程序
  • 哈尔滨做网站价格什么是行业网站?
  • 关于做书的网站开网站做网站赚钱吗
  • wordpress怎么用SSHsem和seo哪个工作好
  • 浙江省城乡建设网站济南联通网站备案
  • 无法更新网站主页 dedecms甘肃省城乡建设局网站
  • 做网站推广那家好最新网站备案
  • 怎么做一款贷款网站程序员培训学费
  • 网站建设公司宣传词项目网址大全
  • 企业网站建设产品设计书快速建站教程
  • 试用网站要怎么做上海网站设计团队
  • 天津市建设厅官方网站做英文版网站
  • 做京东网站的摘要闵行兼职招聘信息
  • 网站更新升级副业做网站软件
  • 如何用文档创建一个网站福建省建设厅网站建造师证转出
  • 做电影网站技术网校网站建设多少钱
  • 的物appwordpress博客seo优化插件