国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python使用AI photo2cartoon制作屬于你的漫畫頭像

這篇具有很好參考價(jià)值的文章主要介紹了Python使用AI photo2cartoon制作屬于你的漫畫頭像。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

git clone https://github.com/minivision-ai/photo2cartoon.git
cd ./photo2cartoon
python test.py --photo_path images/photo_test.jpg --save_path images/cartoon_result.png

1. 效果圖

官方效果圖如下:

Python使用AI photo2cartoon制作屬于你的漫畫頭像
效果圖1如下:
Python使用AI photo2cartoon制作屬于你的漫畫頭像
效果圖2如下:

Python使用AI photo2cartoon制作屬于你的漫畫頭像
效果圖3如下:

Python使用AI photo2cartoon制作屬于你的漫畫頭像

2. 原理

人像卡通風(fēng)格渲染的目標(biāo)是,在保持原圖像 ID 信息和紋理細(xì)節(jié)的同時(shí),將真實(shí)照片轉(zhuǎn)換為卡通風(fēng)格的非真實(shí)感圖像。

但是圖像卡通化任務(wù)面臨著一些難題:

  • 卡通圖像往往有清晰的邊緣,平滑的色塊和經(jīng)過簡化的紋理,與其他藝術(shù)風(fēng)格有很大區(qū)別。使用傳統(tǒng)圖像處理技術(shù)生成的卡通圖無法自適應(yīng)地處理復(fù)雜的光照和紋理,效果較差;基于風(fēng)格遷移的方法無法對細(xì)節(jié)進(jìn)行準(zhǔn)確地勾勒。
  • 數(shù)據(jù)獲取難度大。繪制風(fēng)格精美且統(tǒng)一的卡通畫耗時(shí)較多、成本較高,且轉(zhuǎn)換后的卡通畫和原照片的臉型及五官形狀有差異,因此不構(gòu)成像素級的成對數(shù)據(jù),難以采用基于成對數(shù)據(jù)的圖像翻譯(Paired Image Translation)方法。
  • 照片卡通化后容易丟失身份信息?;诜浅蓪?shù)據(jù)的圖像翻譯(Unpaired Image Translation)方法中的循環(huán)一致性損失(Cycle Loss)無法對輸入輸出的 id 進(jìn)行有效約束。

小視科技的研究團(tuán)隊(duì)提出了一種基于生成對抗網(wǎng)絡(luò)的卡通化模型,只需少量非成對訓(xùn)練數(shù)據(jù),就能獲得漂亮的結(jié)果??ㄍL(fēng)格渲染網(wǎng)絡(luò)是該解決方案的核心,它主要由特征提取、特征融合和特征重建三部分組成。

3. 源碼

源碼及示例文件模型等見資源:https://download.csdn.net/download/qq_40985985/87739184

Python使用AI photo2cartoon制作屬于你的漫畫頭像

  • 代碼下載 https://github.com/minivision-ai/photo2cartoon

  • 模型下載 https://drive.google.com/uc?id=1eDNGZT3jszHLXQ9XGIUPtcu72HdBmHuX&export=download

    人像卡通化預(yù)訓(xùn)練模型:photo2cartoon_weights.pt,存放在 models 路徑下。
    頭像分割模型:seg_model_384.pb,存放在 utils 路徑下。
    人臉識別預(yù)訓(xùn)練模型:model_mobilefacenet.pth,存放在 models 路徑下。
    卡通畫開源數(shù)據(jù):cartoon_data,包含 trainB 和 testB文章來源地址http://www.zghlxwxcb.cn/news/detail-431076.html

# 使用預(yù)訓(xùn)練的模型生成漫畫頭像
# python test.py --photo_path images/ml.jpg --save_path images/cartoon_ml_result.png

import argparse
import os

import cv2
import numpy as np
import torch

from models import ResnetGenerator
from utils import Preprocess

parser = argparse.ArgumentParser()
parser.add_argument('--photo_path', type=str, default='images/photo_test.jpg', help='input photo path')
parser.add_argument('--save_path', type=str, default='images/photo_test_cartoon.jpg', help='cartoon save path')
args = parser.parse_args()

os.makedirs(os.path.dirname(args.save_path), exist_ok=True)


class Photo2Cartoon:
    def __init__(self):
        self.pre = Preprocess()
        self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
        self.net = ResnetGenerator(ngf=32, img_size=256, light=True).to(self.device)

        assert os.path.exists(
            './models/photo2cartoon_weights.pt'), "[Step1: load weights] Can not find 'photo2cartoon_weights.pt' in folder 'models!!!'"
        params = torch.load('./models/photo2cartoon_weights.pt', map_location=self.device)
        self.net.load_state_dict(params['genA2B'])
        print('[Step1: load weights] success!')

    def inference(self, img):
        # face alignment and segmentation
        face_rgba = self.pre.process(img)
        if face_rgba is None:
            print('[Step2: face detect] can not detect face!!!')
            return None

        print('[Step2: face detect] success!')
        face_rgba = cv2.resize(face_rgba, (256, 256), interpolation=cv2.INTER_AREA)
        face = face_rgba[:, :, :3].copy()
        mask = face_rgba[:, :, 3][:, :, np.newaxis].copy() / 255.
        face = (face * mask + (1 - mask) * 255) / 127.5 - 1

        face = np.transpose(face[np.newaxis, :, :, :], (0, 3, 1, 2)).astype(np.float32)
        face = torch.from_numpy(face).to(self.device)

        # inference
        with torch.no_grad():
            cartoon = self.net(face)[0][0]

        # post-process
        cartoon = np.transpose(cartoon.cpu().numpy(), (1, 2, 0))
        cartoon = (cartoon + 1) * 127.5
        cartoon = (cartoon * mask + 255 * (1 - mask)).astype(np.uint8)
        cartoon = cv2.cvtColor(cartoon, cv2.COLOR_RGB2BGR)
        print('[Step3: photo to cartoon] success!')
        return cartoon


if __name__ == '__main__':
    img = cv2.cvtColor(cv2.imread(args.photo_path), cv2.COLOR_BGR2RGB)
    c2p = Photo2Cartoon()
    cartoon = c2p.inference(img)
    if cartoon is not None:
        cv2.imwrite(args.save_path, cartoon)
        print('Cartoon portrait has been saved successfully!')
        origin = cv2.resize(cv2.imread(args.photo_path), (256, 256))
        res = cv2.imread(args.save_path)
        print(origin.shape, res.shape)
        cv2.imshow("origin VS cartoon", np.hstack([origin, res]))
        cv2.waitKey(0)

參考

  • https://blog.csdn.net/weixin_47196664/article/details/106542463
  • 代碼下載 https://github.com/minivision-ai/photo2cartoon
  • 模型下載 https://drive.google.com/uc?id=1eDNGZT3jszHLXQ9XGIUPtcu72HdBmHuX&export=download
  • https://blog.csdn.net/kexuanxiu1163/article/details/105858528

到了這里,關(guān)于Python使用AI photo2cartoon制作屬于你的漫畫頭像的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uniapp中使用photo-sphere-viewer.js實(shí)現(xiàn)全景VR圖

    uniapp中使用photo-sphere-viewer.js實(shí)現(xiàn)全景VR圖

    最近項(xiàng)目中要求vr功能,可以進(jìn)行圖片的全景查看,在此,用到了vue里的一個(gè)實(shí)現(xiàn)全景預(yù)覽的插件:photo-sphere-viewer.js。這些插件,在uniapp中不能直接用。不過uniapp有個(gè)組件web-view,可以引入內(nèi)部或外部的HTML。 首先寫一個(gè)html,在html中引入三個(gè)js文件 在body中放一個(gè)div 在js中ne

    2024年02月11日
    瀏覽(75)
  • P2207 Photo(區(qū)間取點(diǎn)問題)

    核心思路: 其實(shí)就是區(qū)間取點(diǎn)問題 兩個(gè)照片之間相當(dāng)于有一個(gè)斷點(diǎn),那么就相當(dāng)于取最少的斷點(diǎn),使得每一對關(guān)系不好的牛之間都有斷點(diǎn),這樣子每一對關(guān)系不好的牛都不會(huì)出現(xiàn)在同一個(gè)照片里。 那么問題就轉(zhuǎn)化為了給出K個(gè)區(qū)間,求出最少取幾個(gè)點(diǎn),使得每個(gè)區(qū)間都有點(diǎn)。

    2024年02月16日
    瀏覽(11)
  • 專業(yè)修圖軟件 Affinity Photo 2 mac中文版編輯功能

    專業(yè)修圖軟件 Affinity Photo 2 mac中文版編輯功能

    Affinity Photo for Mac是應(yīng)用在MacOS上的專業(yè)修圖軟件,支持多種文件格式,包括psD、PDF、SVG、Eps、TIFF、JPEG等。 Affinity Photo mac提供了許多高級圖像編輯功能,如無限制的圖層、非破壞性操作、高級的選擇工具、高級的調(diào)整層、HDR合成、全景圖拼接、RAW文件處理、高級的濾鏡和效果

    2024年02月07日
    瀏覽(22)
  • 群暉DSM7.0-7.1.1 Synology Photos 視頻縮略圖處理

    群暉DSM7.0-7.1.1 Synology Photos 視頻縮略圖處理

    提前安裝礦神SPK源里面的ffmpeg套件 DSM7.x礦神SPK套件源:https://spk7.imnks.com/ 僅適用于X86_64的黑群暉7.0-7.1.1機(jī)型,目前測試識別正常,索引期間CPU占用率也不高。 原理修改為不調(diào)用GPU顯卡,只用CPU,所以不算完美!僅測試了DS918+、DS920+,其它機(jī)型自行研究! 進(jìn)入DSM后臺(tái),“控制

    2024年02月11日
    瀏覽(25)
  • 1109 Group Photo(40行代碼+超詳細(xì)注釋+題目分析,雙端隊(duì)列實(shí)現(xiàn))

    分?jǐn)?shù)?25 全屏瀏覽題目 切換布局 作者?CHEN, Yue 單位?浙江大學(xué) Formation is very important when taking a group photo. Given the rules of forming?K?rows with?N?people as the following: The number of people in each row must be?N/K?(round down to the nearest integer), with all the extra people (if any) standing in the last row; All the

    2024年02月07日
    瀏覽(53)
  • photo-sphere-viewer 全景圖Vr 720全景查看(vue篇)

    圖庫列表切換場景及圖標(biāo)點(diǎn)擊切換實(shí)現(xiàn)場景 注:圖庫插件本身對于圖庫列表切換,場景的標(biāo)記點(diǎn)會(huì)是初始時(shí)設(shè)置的標(biāo)記點(diǎn),不會(huì)更新新的標(biāo)記點(diǎn),需要自己寫監(jiān)聽調(diào)用更新標(biāo)記的方法(handleGalleryChange)。同時(shí)對于標(biāo)記切換場景用了viewer.setPanorama,圖庫列表當(dāng)前選中的active沒

    2024年02月11日
    瀏覽(33)
  • 【Python】使用百度AI能力

    【Python】使用百度AI能力

    大家好!我是初心,希望我們一路走來能堅(jiān)守初心! 今天跟大家分享的文章是 Python調(diào)用百度AI能力進(jìn)行植物識別。 ,希望能幫助到大家!本篇文章收錄于 初心 的 Python從入門到精通 專欄。 ?? 個(gè)人主頁:初心%個(gè)人主頁 ?? 個(gè)人簡介:大家好,我是初心,和大家共同努力 ??

    2024年02月06日
    瀏覽(14)
  • 使用python進(jìn)行AI選股之同花順問財(cái)

    使用python進(jìn)行AI選股之同花順問財(cái)

    ? 通過問財(cái)python庫,可以輸入中文就能獲取AI選股結(jié)果,而不需要寫很多代碼來進(jìn)行股票選取,如上圖就是輸入中文”均線多頭排列的股票”獲取的結(jié)果。本文主要介紹問財(cái)python庫的選股功能和使用步驟。 同花順i問財(cái)是同花順旗下的AI投顧平臺(tái),專注于使用AI技術(shù)改進(jìn)財(cái)經(jīng)數(shù)

    2024年01月18日
    瀏覽(116)
  • Python使用Open-AI接口實(shí)現(xiàn)ChatGPT

    一、前言 近年來,人工智能技術(shù)的廣泛應(yīng)用,為社會(huì)帶來了自動(dòng)化和智能化的效率提升。自然語言處理技術(shù)的快速發(fā)展也提供了更多的人工智能應(yīng)用場景。本文將介紹如何使用Python編程語言,結(jié)合Open-AI接口實(shí)現(xiàn)ChatGPT的簡單應(yīng)用。 二、介紹 ChatGPT是一個(gè)能夠執(zhí)行在線對話的人

    2024年02月02日
    瀏覽(22)
  • 使用Python語言和TensorFlow Lite快速搭建AI模型

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 人工智能(Artificial Intelligence,AI)是指機(jī)器具有可以模仿或自己學(xué)習(xí)的能力,能夠從經(jīng)驗(yàn)中獲取知識并解決問題。它可以自動(dòng)分析、理解、交流及學(xué)習(xí)數(shù)據(jù)以提高決策力、洞察力以及創(chuàng)造力。近年來,基于深度學(xué)習(xí)(Deep Learning)技術(shù)的計(jì)算機(jī)

    2024年02月06日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包