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

网站托管平台设计方案参考网站

网站托管平台,设计方案参考网站,上海网站建设服务市价,织梦中英文网站源码一键抠图1#xff1a;Python实现人像抠图 (Portrait Matting) 目录 一键抠图1#xff1a;Python实现人像抠图 (Portrait Matting) 1. 项目介绍 2. 抠图算法 3. Matting数据集 4. MODNet模型 (1) 项目安装 (2) 数据集说明 (3) MODNet模型 5. Demo测试效果 6. 源码下载…一键抠图1Python实现人像抠图 (Portrait Matting) 目录 一键抠图1Python实现人像抠图 (Portrait Matting) 1. 项目介绍 2. 抠图算法 3. Matting数据集 4. MODNet模型 (1) 项目安装 (2) 数据集说明 (3) MODNet模型 5. Demo测试效果  6. 源码下载(Python) 7.人像抠图C版本 8.人像抠图Android版本 1. 项目介绍 抠图算法英文中一般称为Matting有多种实现方式一种是基于辅助信息输入的加入一些先验信息(如Trimap,背景图,用户交互信息深度等信息)提供抠图效果如比较经典的Deep Image Matting和Semantic Image Matting这些算法加入Trimap Background Matting算法需要提供背景图等另一种是无需辅助信息输入RGB图像直接预测matte的方法其效果相对第一种方法会差很多。而对Portrait Matting(人像抠图)现在有很多方案在无需Trimap条件下也可以获得不错的抠图效果比如MODNetFast Deep Matting等算法真正实现一健抠图的效果。 本篇博客是一键抠图项目系列之《Python实现人像抠图 (Portrait Matting)》项目将在MODNet人像抠图算法基础上进行模型压缩和优化开发一个效果相当不错的Matting算法可以达到头发细致级别的人像抠图效果为了方便后续模型工程化和Android平台部署项目提供高精度版本人像抠图和轻量化快速版人像抠图并提供Python/C/Android多个版本 【尊重原创转载请注明出处】https://blog.csdn.net/guyuealian/article/details/134784803 Android Demo APP下载地址https://download.csdn.net/download/guyuealian/63228759 先展示一下一键人像抠图效果 更多项目《一键抠图》系列文章请参考 一键抠图1Python实现人像抠图 (Portrait Matting)https://blog.csdn.net/guyuealian/article/details/134784803一键抠图2C/C实现人像抠图 (Portrait Matting)https://blog.csdn.net/guyuealian/article/details/134790532一键抠图3Android实现人像抠图 (Portrait Matting)https://blog.csdn.net/guyuealian/article/details/134801795 2. 抠图算法 基于深度学习的Matting分为两大类 一种是基于辅助信息输入。即除了原图和标注图像外还需要输入其他的信息辅助预测。最常见的辅助信息是Trimap即将图片划分为前景背景及过度区域三部分。另外也有以背景或交互点作为辅助信息。 一种是不依赖任何辅助信息直接对Alpha进行预测。如本博客复现的MODNet 第一种方法需要加入辅助信息而辅助信息一般较难获取这也限制其应用为了提升Matting的应用性针对Portrait Matting领域MODNet摒弃了辅助信息直接实现Alpha预测实现了实时Matting极大提升了基于深度学习Matting的应用价值。 更多抠图算法(Matting)请参考我的一篇博客《图像抠图Image Matting算法调研》 图像抠图Image Matting算法调研_image matting调研-CSDN博客文章浏览阅读4.3k次点赞8次收藏68次。1.Trimap和StrokesTrimap和Strokes都是一种静态图像抠图算法现有静态图像抠图算法均需对给定图像添加手工标记以增加抠图问题的额外约束。Trimap三元图是对给定图像的一种粗略划分即将给定图像划分为前景、背景和待求未知区域Strokes则采用涂鸦的方式在图像上随意标记前景和背景区域剩余未标记部分则为待求的未知区域Trimap是最常用的先验知识多数抠图算法采用了Trimap作为先验知识顾名思义Trimap是一个三元图每个像素取值为{0128..._image matting调研https://blog.csdn.net/guyuealian/article/details/119648686可能有小伙伴搞不清楚分割(segmentation)和抠图(matting)有什么区别我这里简单说明一下 分割(segmentation)从深度学习的角度来说分割本质是像素级别的分类任务其损失函数最简单的莫过于是交叉熵CrossEntropyLoss(当然也可以是Focal LossIOU LossDice Loss等)对于前景和背景分割任务输出Mask的每个像素要么是0要么是1。如果拿去直接做图像融合就很不自然Mask边界很生硬这时就需要使用抠图算法了 抠图(matting) 而抠图本质是一种回归任务其损失函数可以是MSE LossL1 Loss,L2 Loss等对于前景和背景抠图任务输出Mask的每个像素是0~1之间的连续值可看作是对图像透明通道Alpha的回归预测。可以用公式表示为C αF (1-α)B 其中α不透明度、F前景色和B背景色alpha是[0, 1]之间的连续值可以理解为像素属于前景的概率。在人像分割任务中alpha只能取0或1而抠图任务中alpha可取[0, 1]之间的连续值本质上就是一句话分割是分类任务而抠图是回归任务。 3. Matting数据集 一些开源的matting数据集 数据集 说明 matting_human_datasets 本数据集为目前已知最大的人像matting数据集包含34427张图像和对应的matting结果图。数据集由北京玩星汇聚科技有限公司高质量标注使用该数据集所训练的人像软分割模型已商用。数据集中的原始图片来源于Flickr、百度、淘宝。经过人脸检测和区域裁剪后生成了600*800的半身人像。GitHub - aisegmentcn/matting_human_datasets: 人像matting数据集包含34427张图像和对应的matting结果图。PSMatting比较粗糙没有达到头发细致抠图不过数据比较大可以作为pretrained数据集使用 Deep Image Matting Adobe Research论文《Deep Image Matting》提供的Matting Dataset。大约有455张图片论文将MSCOCO和PASCAL VOC当做背景图与455张图片进行合成后大概有45500张训练图片和1000张测试图片论文地址https://sites.google.com/view/deepimagematting项目地址GitHub - Joker316701882/Deep-Image-Matting: This is tensorflow implementation for paper Deep Image MattingPS该数据集发邮箱给作者申请即可一般作为通用物体Matting数据集比较精细如果用于人像抠图需要自行把含有人的图片挑选出来 PPM-100 PPM-100 是论文 MODNet (Github | Arxiv) 中提出的一个人像抠图基准它包含了100张来自Flickr的人像图片具有以下特点 精细标注 - 所有图像都被仔细标注并检查。丰富多样 - 图像涵盖全身/半身人像和各种姿态。高分辨率 - 图像的分辨率介于1080P和4K之间。自然背景 - 所有图像都包含原始无替换的背景。项目地址GitHub - ZHKKKe/PPM: A High-Quality Photograpy Portrait Matting BenchmarkPPM-100下载https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.3/contrib/Matting RealWorldPortrait-636 real-world portrait dataset项目地址GitHub - yucornetto/MGMatting: This repository includes the official project of Mask Guided (MG) Matting, presented in our paper: Mask Guided Matting via Progressive Refinement Network  Compsition-1k 使用Deep Image Matting合成的数据集项目地址GitHub - Yaoyi-Li/GCA-Matting: Official repository for Natural Image Matting via Guided Contextual Attention HAttMatting 项目地址GitHub - yuhaoliu7456/CVPR2020-HAttMatting: Attention-Guided Hierarchical Structure Aggregation for Image Matting(CVPR2020)  AM-2k AM-2k contains 2,000 high-resolution natural animal images from 20 categories along with manually labeled alpha mattes. Some examples are shown as below, more can be viewed in the video demo (YouTube | bilibili | Google drive). AM-2k can be accessed from here (Google Drive | Baidu Wangpan (pw: 29r1)), please make sure that you have read this agreement before accessing the dataset. Please refer to the readme.txt in the dataset folder for more details. 项目地址GitHub - JizhiziLi/GFM: [IJCV 2022] Bridging Composite and Real: Towards End-to-end Deep Image Matting BG-20k BG-20k contains 20,000 high-resolution background images excluded salient objects, which can be used to help generate high quality synthetic data. Some examples are shown as below, more can be viewed in the video demo (YouTube | bilibili | Google drive). BG-20k can be accessed from here (Google Drive | Baidu Wangpan (pw: dffp)), please make sure that you have read this agreement before accessing the dataset. Please refer to the readme.txt in the dataset folder for more details. 项目地址GitHub - JizhiziLi/GFM: [IJCV 2022] Bridging Composite and Real: Towards End-to-end Deep Image Matting VideoMatte240K Background Matting V2 数据集 PhotoMatte85 其他的 VideoMatte240KPhotoMatte85GitHub - thuyngch/Human-Segmentation-PyTorch: Human segmentation models, training/inference code, and trained weights, implemented in PyTorchAutomatic Portrait Segmentation for Image Stylization: 1800 imagesSupervisely Person: 5711 images 4. MODNet模型 (1) 项目安装 整套工程项目基本结构如下 项目依赖python包请参考requirements.txt使用pip安装即可 numpy1.21.6 matplotlib3.2.2 Pillow8.4.0 bcolz1.2.1 easydict1.9 onnx1.8.1 onnx-simplifier0.2.28 onnxoptimizer0.2.0 onnxruntime1.6.0 opencv-contrib-python4.5.2.52 opencv-python4.5.1.48 pandas1.1.5 PyYAML5.3.1 scikit-image0.17.2 scikit-learn0.24.0 scipy1.5.4 seaborn0.11.2 sklearn0.0 tensorboard2.5.0 tensorboardX2.1 torch1.7.1cu110 torchvision0.8.2cu110 tqdm4.55.1 xmltodict0.12.0 pycocotools2.0.2 pybaseutils0.9.4 basetrainer 项目安装教程请参考初学者入门麻烦先看完下面教程配置好开发环境 项目开发使用教程和常见问题和解决方法视频教程1 手把手教你安装CUDA和cuDNN(1)视频教程2 手把手教你安装CUDA和cuDNN(2)视频教程3 如何用Anaconda创建pycharm环境视频教程4 如何在pycharm中使用Anaconda创建的python环境 (2) 数据集说明 关于训练数据如何生成的问题 原论文MODNet使用了PPM-100数据集私有的数据集并合成了大部分训练数据鄙人复现时先使用matting_human_datasets数据集训练base-model当作pretrained模型然后合并多个数据集PPM-100 RealWorldPortrait-636  Deep Image Matting采用背景图来自VOCCOCOBG-20k 一共合成了5W的训练数据和500的测试数据合成的方法有两种方法1利用公式合成图 前景*alpha背景*(1-alpha) ;方法二前景mask背景通过GAN生成 这是Python实现的背景合成需要提供原始图像image,以及image的前景图像alpha,和需要合成的背景图像bg_img: def image_fusion(image: np.ndarray, alpha: np.ndarray, bg_img(219, 142, 67)):图像融合合成图 前景*alpha背景*(1-alpha):param image: RGB图像(uint8):param alpha: 单通道的alpha图像(uint8):param bg_img: 背景图像,可以是任意的分辨率图像也可以指定指定纯色的背景:return: 返回与背景合成的图像if isinstance(bg_img, tuple) or isinstance(bg_img, list):bg np.zeros_like(image, dtypenp.uint8)bg_img np.asarray(bg[:, :, 0:3] bg_img, dtypenp.uint8)if len(alpha.shape) 2:# alpha cv2.cvtColor(alpha, cv2.COLOR_GRAY2BGR)alpha alpha[:, :, np.newaxis]if alpha.dtype np.uint8:alpha np.asarray(alpha / 255.0, dtypenp.float32)sh, sw, d image.shapebh, bw, d bg_img.shaperatio [sw / bw, sh / bh]ratio max(ratio)if ratio 1:bg_img cv2.resize(bg_img, dsize(math.ceil(bw * ratio), math.ceil(bh * ratio)))bg_img bg_img[0: sh, 0: sw]image image * alpha bg_img * (1 - alpha)image np.asarray(np.clip(image, 0, 255), dtypenp.uint8)return image 当然为了方便JNI调用我这里还实现C版本图像合成算法这部分图像处理的基本工具都放在我的base-utils中 /**** 实现图像融合out imgBGR * matte bg * (1 - matte)* Fix a Bug: 1-alpha实质上仅有B通道参与计算多通道时(B,G,R)需改Scalar(1.0, 1.0, 1.0)-alpha* param imgBGR 输入原始图像* param matte 输入原始图像的Mask,或者alpha,matte* param out 输出融合图像* param bg 输入背景图像Mat(可任意大小)也可以通过Scalar指定纯色的背景*/ void image_fusion(cv::Mat imgBGR, cv::Mat matte, cv::Mat out, cv::Mat bg) {assert(matte.channels() 1);out.create(imgBGR.size(), CV_8UC3);vectorfloat ratio{(float) imgBGR.cols / bg.cols, (float) imgBGR.rows / bg.rows};float max_ratio *max_element(ratio.begin(), ratio.end());if (max_ratio 1.0) {cv::resize(bg, bg, cv::Size(int(bg.cols * max_ratio), int(bg.rows * max_ratio)));}bg image_center_crop(bg, imgBGR.cols, imgBGR.rows);int n imgBGR.channels();int h imgBGR.rows;int w imgBGR.cols * n;// 循环体外进行乘法和除法运算matte.convertTo(matte, CV_32FC1, 1.0 / 255, 0);for (int i 0; i h; i) {uchar *sptr imgBGR.ptruchar(i);uchar *dptr out.ptruchar(i);float *mptr matte.ptrfloat(i);uchar *bptr bg.ptruchar(i);for (int j 0; j w; j n) {//float alpha mptr[j] / 255; //循环体尽量减少乘法和除法运算float alpha mptr[j / 3];float _alpha 1.f - alpha;dptr[j] uchar(sptr[j] * alpha bptr[j] * _alpha);dptr[j 1] uchar(sptr[j 1] * alpha bptr[j 1] * _alpha);dptr[j 2] uchar(sptr[j 2] * alpha bptr[j 2] * _alpha);}} } (3) MODNet模型 本文主要在MODNet人像抠图算法基础上进行模型压缩和优化关于《MODNet: Trimap-Free Portrait Matting in Real Time》请参考 Paper https://arxiv.org/pdf/2011.11961.pdf官方Github: GitHub - ZHKKKe/MODNet: A Trimap-Free Solution for Portrait Matting in Real Time  MODNet模型学习分为三个部分分别为语义部分S细节部分D和融合部分(F)。 在语义估计中对high-level的特征结果进行监督学习标签使用的是下采样及高斯模糊后的GT损失函数用的L2-Loss用L2loss应该可以学到更soft的语义特征在细节预测中结合了输入图像的信息和语义部分的输出特征通过encoder-decoder对人像边缘进行单独地约束学习用的是交叉熵损失函数。为了减小计算量encoder-decoder结构较为shallow同时处理的是原图下采样后的尺度。在融合部分把语义输出和细节输出结果拼起来后得到最终的alpha结果这部分约束用的是L1损失函数。 官方GitHub仅仅放出推理代码并未提供训练代码和数据处理代码 鄙人参考原论文花了几个星期的时间总算复现了其基本效果并做了一些轻量化和优化的工作主要有 复现Pytorch版本的MODNet训练过程和数据处理增加了数据增强方法如多尺度随机裁剪Mosaic(拼图)随机背景融合等方法提高模型泛化性对MODNet骨干网络backbone进行轻量化减少计算量模型压缩目前提供三个版本高精度人像抠图modnet快速人像抠图modnet0.75超快人像抠图modnet0.5转写模型推理过程实现C版本人像抠图算法实现Android版本人像抠图算法支持CPU和GPU提供高精度版本人像抠图可以达到精细到发丝级别的抠图效果Android GPU 150ms,  CPU 500ms左右提供轻量化快速版人像抠图满足基本的人像抠图效果可以在Android达到实时的抠图效果Android GPU 60ms,  CPU 140ms左右 高精度人像抠图modnet快速人像抠图modnet0.75超快人像抠图modnet0.5的模型参数量和计算量 模型input sizeFLOPs and Paramsmodnet416×416Model FLOPs 10210.24M, Params 6.44Mmodnet0.75320×320Model FLOPs 3486.23M, Params 3.64Mmodnet0.5320×320Model FLOPs 1559.07M, Params 1.63M 最近发现百度PaddleSeg团队也复现了MODNet算法(基于PaddlePaddle框架非Pytorch版本)提供了更丰富的backbone模型选择如MobileNetV2,ResNet50,HRNet_W18可适用边缘端、服务端等多种任务场景有兴趣的可以看看 PaddlePaddle版本https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.3/contrib/Matting 5. Demo测试效果  项目环境配置好后运动demo.py即可测试抠图效果方法 测试图片 # 测试图片 python demo.py --model_type modnet --model_file work_space/modnet_416/model/best_model.pth --image_dir data/test_images测试视频文件 # 测试视频文件 python demo.py --model_type modnet --model_file work_space/modnet_416/model/best_model.pth --video_file data/video/video-test1.mp4 测试摄像头 # 测试摄像头 python demo.py --model_type modnet --model_file work_space/modnet_416/model/best_model.pth --video_file 0 下图GIF是Python版本的视频抠图效果 实际使用中建议你 背景越单一抠图的效果越好背景越复杂抠图效果越差建议你实际使用中找一比较单一的背景如墙面天空等上半身抠图的效果越好下半身或者全身抠图效果较差本质上这是数据的问题因为训练数据70%都是只有上半身的白种人抠图的效果越好黑人和黄种人抠图效果较差这也是数据的问题因为训练数据大部分都是隔壁的老外 下图是高精度版本人像抠图和快速人像抠图的测试效果相对而言高精度版本人像抠图可以精细到发丝级别的抠图效果而快速人像构图目前仅能实现基本的抠图效果 高精度版本人像抠图快速人像抠图 6. 源码下载(Python) 项目源码下载地址Python实现人像抠图 (Portrait Matting) 项目源码内容包含 提供Python的推理代码不含训练代码和不含数据集提供高精度版本人像抠图模型(modnet_416)可以达到精细到发丝级别的抠图效果提供轻量化快速版人像抠图模型(modnet0.75_320和modnet0.5_320)满足基本的人像抠图效果Demo支持图片抠图视频抠图摄像头抠图 7.人像抠图C版本 一键抠图2C/C实现人像抠图 (Portrait Matting)https://blog.csdn.net/guyuealian/article/details/134790532 8.人像抠图Android版本 一键抠图3Android实现人像抠图 (Portrait Matting)https://blog.csdn.net/guyuealian/article/details/134801795
http://wiki.neutronadmin.com/news/220103/

相关文章:

  • 如何根据仿站做网站个人能网站建设
  • 红色文化网站建设山东建设主管部门网站
  • 网站开发一般多钱软件外包项目平台
  • 玩网页游戏的网站西安网站建设网晨雨
  • 企业网站免费建站centos wordpress
  • 好看的seo网站白宫 wordpress
  • 临沂网站改版小程序搭建需要多久
  • 帝国网站单页做301重庆市建设安全信息网
  • 企业网站开发总结做网站一月工资
  • 网站修改文案发布 php 微网站
  • 青岛高端网站建设公司wordpress 301重定向插件
  • 青海住房和建设厅网站做网站要求什么软件
  • 微营销 网站模板福田网站建设报价
  • 做响应式网站的体会企业网站管理系统设计报告
  • 上海网站建设找缘魁营销策略怎么写范文
  • 网站建设入门培训专做医药中间体的网站
  • 西安北郊做网站个人介绍网页设计模板图片
  • 东莞新感染一例阳性苏州优化哪家公司好
  • 做网站怎么收费wordpress sql插件
  • 有没有专门做商铺招商的网站黄冈论坛百度贴吧
  • 英文WordPress站点切换为中文小程序app系统开发
  • windows10php网站建设wordpress 音乐列表
  • 网站编辑的工作内容深圳招聘网站排名
  • 怎么把别人做的网站变成自己的未成年直播免费观看
  • 网站开发数据库成都百度网站优化
  • 软件网站怎么做的苏州网站建设制作公司
  • 网站设计工资怎么样网站建设素材网页
  • 网站建设微信商城开发最好看免费观看高清大全追风者
  • 10个免费网站惠安通网站建设
  • 网站建设pc指什么房子做水电的时候是不是要先埋网站