91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

教你如何用OpenCV、Python和深度學(xué)習(xí)技術(shù)對(duì)圖像和實(shí)時(shí)視頻進(jìn)行神經(jīng)風(fēng)格遷移

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:李倩 ? 2018-08-31 09:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編者按:在這篇教程中,作者Adrian Rosebrock將教你如何用OpenCV、Python深度學(xué)習(xí)技術(shù)對(duì)圖像和實(shí)時(shí)視頻進(jìn)行神經(jīng)風(fēng)格遷移。

2015年,Gatsys等人在論文A Neural Algorithm of Artistic Style中提出了最初的神經(jīng)風(fēng)格遷移算法。2016年,Johnson等人發(fā)表了Perceptual Losses for Real-Time Style Transfer and Super-Resolutioin一文,將神經(jīng)網(wǎng)絡(luò)遷移作為用感知損失處理超分辨率問(wèn)題的框架。結(jié)果表明該算法比Gatys等人的方法快了三倍。接下來(lái),我將介紹如何在自己的圖像和視頻流中應(yīng)用神經(jīng)風(fēng)格遷移。

用OpenCV進(jìn)行神經(jīng)風(fēng)格遷移

首先說(shuō)明的一點(diǎn)是,今天討論的方法在一個(gè)CPU上可以達(dá)到近乎實(shí)時(shí)的效果,如果在GPU上則完全可以實(shí)現(xiàn)實(shí)時(shí)效果。

首先我們會(huì)簡(jiǎn)單塔倫下什么是神經(jīng)風(fēng)格遷移,以及它是如何運(yùn)作的。之后我們會(huì)用OpenCV和Python動(dòng)手操作。

什么是神經(jīng)風(fēng)格遷移?

從左至右:我們的內(nèi)容圖像;風(fēng)格圖像;輸出的風(fēng)格遷移圖像

神經(jīng)風(fēng)格遷移主要有兩個(gè)過(guò)程:

提取某張圖片的風(fēng)格

將該種風(fēng)格應(yīng)用到另一張圖片上

上圖就是將梵高著名的畫(huà)作《星夜》的風(fēng)格應(yīng)用到普通的生活照上,我們保留了原照片中的山、人物和啤酒等所有內(nèi)容,但全部替換成了梵高的油畫(huà)風(fēng)格。

問(wèn)題就是,我們應(yīng)該如何定義一個(gè)神經(jīng)網(wǎng)絡(luò),讓它執(zhí)行神經(jīng)風(fēng)格遷移呢?

神經(jīng)風(fēng)格遷移如何工作?

在Gatys等人提出的首篇論文中,神經(jīng)風(fēng)格遷移算法不需要新的架構(gòu)。相反,我們可以用一個(gè)預(yù)訓(xùn)練網(wǎng)絡(luò)(通常在ImageNet上進(jìn)行的預(yù)訓(xùn)練),并且定義一個(gè)損失函數(shù),能讓我們達(dá)到風(fēng)格遷移的目標(biāo),然后對(duì)損失函數(shù)不斷優(yōu)化。

那么,這里的問(wèn)題就不是“該用什么神經(jīng)網(wǎng)絡(luò)”了,而是“該用什么損失函數(shù)”。

答案包括:內(nèi)容損失、風(fēng)格損失和總變差損失。每個(gè)部分都是單獨(dú)計(jì)算,然后在一個(gè)元損失函數(shù)中結(jié)合。通過(guò)將元損失函數(shù)最小化,我們將依次對(duì)內(nèi)容、風(fēng)格和總變差損失進(jìn)行優(yōu)化。

雖然Gatys等人的方法能生成不錯(cuò)的神經(jīng)風(fēng)格遷移結(jié)果,但是它的速度非常慢。2016年,Johnson等人在Gatys的基礎(chǔ)上提出的全新算法速度快了三倍,但同時(shí)也存在著缺點(diǎn),即用戶不能隨機(jī)選擇想要應(yīng)用的風(fēng)格圖像。用戶首先要訓(xùn)練一個(gè)網(wǎng)絡(luò),生成你想要的風(fēng)格。網(wǎng)絡(luò)訓(xùn)練好后,你可以將它應(yīng)用到任意內(nèi)容圖像上。

然而到了2017年,Ulyanov等人發(fā)表了Instance Normalization: The Missing Ingredient for Fast Stylization一文,他們表示將batch normalization替換成instance normalization(然后在訓(xùn)練和測(cè)試時(shí)都應(yīng)用instance normalization),可以達(dá)到更快的效果,并且藝術(shù)效果也更好。

項(xiàng)目結(jié)構(gòu)

在開(kāi)始今天的教程前,請(qǐng)先下載我提供的資料(點(diǎn)擊文末原文地址獲取資料)。準(zhǔn)備好了腳本、模型和圖像后,你可以用tree指令檢查項(xiàng)目的結(jié)構(gòu):

如果你從下載了.zip文件,就無(wú)需上網(wǎng)找其他素材了。我在其中提供了很多測(cè)試用的圖像和模型。同時(shí)還有三種Python腳本。

開(kāi)始神經(jīng)風(fēng)格遷移

接下來(lái)讓我們用OpenCV和Python進(jìn)行神經(jīng)風(fēng)格遷移的實(shí)踐。

首先打開(kāi)neural_style_transfer.py文件,插入如下代碼:

首先,我們導(dǎo)入所需的包并解析命令行參數(shù)。

導(dǎo)入的有:

imutils:這個(gè)包可以通過(guò)pip install --upgrade imutils安裝。最近我發(fā)布了imutils==0.5.1,所以不要忘記更新!

OpenCV:你需要一個(gè)OpenCV 3.4或者更高版本。

該腳本下需要兩個(gè)命令行:

--model:神經(jīng)風(fēng)格遷移的模型路徑。在“下載”區(qū)中,我加入了11中經(jīng)過(guò)與訓(xùn)練的模型。

--image:需要進(jìn)行風(fēng)格遷移的圖像(輸入圖像)。在其中我放入了四張圖片。

你不需要改變命令行代碼,參數(shù)會(huì)在運(yùn)行過(guò)程中進(jìn)行處理。如果你不熟悉這一過(guò)程,可以閱讀我另一篇文章:www.pyimagesearch.com/2018/03/12/python-argparse-command-line-arguments/

接下來(lái)的部分比較有趣,我們要下載圖像和模型,然后計(jì)算神經(jīng)風(fēng)格遷移:

在這部分代碼中,我們進(jìn)行了:

將下載的預(yù)訓(xùn)練神經(jīng)風(fēng)格遷移模型稱為net(第17行);

下載輸入圖像并調(diào)整尺寸(21和22行);

用均值減法創(chuàng)建blob(27和28行);

執(zhí)行forward,獲取output圖像(31行)。

接下來(lái),重要的是對(duì)輸出圖像進(jìn)行后處理:

最后一步是將輸出圖像顯示在屏幕上:

神經(jīng)風(fēng)格遷移結(jié)果

當(dāng)你下載好文件后,打開(kāi)終端執(zhí)行以下命令:

現(xiàn)在,對(duì)命令行參數(shù)做簡(jiǎn)單改變,然后用《侏羅紀(jì)公園》中的截圖作為內(nèi)容圖像,進(jìn)行風(fēng)格遷移:

另一個(gè)例子:

這是我最喜歡的案例,感覺(jué)都能當(dāng)做酒吧的裝飾畫(huà)了。

實(shí)時(shí)神經(jīng)風(fēng)格遷移

上面我們講了如何在單一圖像上應(yīng)用風(fēng)格遷移,現(xiàn)在我們要把這一過(guò)程放在視頻上。

大致流程和圖像處理差不多,在這一腳本中,我們將:

利用一個(gè)特殊的Python迭代器,它可以讓我們?cè)谀P吐窂街醒h(huán)使用所有可用的神經(jīng)風(fēng)格遷移模型。

啟動(dòng)網(wǎng)絡(luò)攝像頭視頻流,我們會(huì)(近乎)實(shí)時(shí)處理攝像頭的幀。對(duì)于某些較大的模型,系統(tǒng)可能會(huì)慢一些。

在每一幀上應(yīng)用風(fēng)格遷移,對(duì)輸出進(jìn)行后處理,并將結(jié)果顯示在屏幕上。

如果用戶按下“n”鍵,我們將把迭代器循環(huán)運(yùn)用到下一個(gè)神經(jīng)風(fēng)格遷移模型上,不用重啟腳本。

首先,打開(kāi)neural_style_transfer_video.py文件,插入以下代碼:

之后,創(chuàng)建模型路徑迭代器:

一旦我們開(kāi)始在while循環(huán)中處理幀,“n”按鍵就會(huì)在迭代器中下載“下一個(gè)”模型。

為了創(chuàng)建模型迭代器,我們:

搜集所有神經(jīng)風(fēng)格遷移模型并分類(18和19行)

為每種模型分配ID(23行)

利用itertools和cycle創(chuàng)建迭代器(27行)。

讓我們開(kāi)始下載第一個(gè)模型并對(duì)視頻進(jìn)行處理:

在32行,我們讀取了第一個(gè)模型利用的路徑。在36和37行,啟動(dòng)了視頻,從攝像頭中采集幀。

之后在幀與幀之間進(jìn)行循環(huán):

接著進(jìn)行后處理并將輸出圖像展示出來(lái):

對(duì)按鍵的處理:

兩種不同的按鍵會(huì)對(duì)腳本運(yùn)行產(chǎn)生不同的影響:

“n”:抓取下一個(gè)模型的路徑和ID,并進(jìn)行下載。如果我們已經(jīng)獲取上一個(gè)模型,迭代器就會(huì)從頭開(kāi)始循環(huán)。

“q”:按下q會(huì)退出while循環(huán)。

實(shí)時(shí)風(fēng)格遷移的結(jié)果

執(zhí)行以下命令就可以在視頻上運(yùn)用風(fēng)格遷移啦:

可以看到,只需要按一個(gè)按鍵就能輕松地進(jìn)行循環(huán)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11277

    瀏覽量

    224952
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1096

    瀏覽量

    42326
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5598

    瀏覽量

    124396

原文標(biāo)題:無(wú)需GPU,只用OpenCV和Python實(shí)現(xiàn)圖像和視頻的風(fēng)格遷移

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    穿孔機(jī)頂頭檢測(cè)儀 機(jī)器視覺(jué)深度學(xué)習(xí)

    LX01Z-DG626穿孔機(jī)頂頭檢測(cè)儀采用深度學(xué)習(xí)技術(shù),能夠?qū)崿F(xiàn)頂頭狀態(tài)的在線實(shí)時(shí)檢測(cè),頂頭丟失報(bào)警,頂頭異常狀態(tài)報(bào)警等功能,響應(yīng)迅速,異常狀態(tài)視頻
    發(fā)表于 12-22 14:33

    沒(méi)有專利的opencv-python 版本

    視頻處理 視頻讀取/寫(xiě)入、幀提取、運(yùn)動(dòng)檢測(cè)(背景差分) 繪圖功能 畫(huà)直線/矩形/圓、添加文字、標(biāo)注關(guān)鍵點(diǎn) 關(guān)鍵總結(jié): 對(duì) Python 3.13 來(lái)說(shuō),最優(yōu)選擇是安裝 opencv-pyt
    發(fā)表于 12-13 12:37

    那些年我用OpenCV+Qt趟過(guò)哪些坑?寫(xiě)給視覺(jué)應(yīng)用開(kāi)發(fā)者的避坑指南

    預(yù)處理、二值化分析、測(cè)量) 16. 案例:圖像修復(fù)與水印智能移除工具 (傳統(tǒng)圖像算法與深度學(xué)習(xí)的結(jié)合、交互式編輯) 回過(guò)頭看,從早期寫(xiě)一個(gè)按鈕功能都要百度半天,到現(xiàn)在能規(guī)劃整個(gè)系統(tǒng)的
    發(fā)表于 12-02 09:43

    從0到1,10+年資深LabVIEW專家,手把手教你攻克機(jī)器視覺(jué)+深度學(xué)習(xí)(5000分鐘實(shí)戰(zhàn)課)

    “告別檢測(cè)系統(tǒng)能力缺陷!10+年LabVIEW視覺(jué)資深專家手把手教你:5000+分鐘高清教程(含工具、算法原理、實(shí)戰(zhàn)操作、項(xiàng)目?jī)?yōu)化全流程講解)”——從傳統(tǒng)視覺(jué)算法→深度學(xué)習(xí)建模→工業(yè)級(jí)部署"
    的頭像 發(fā)表于 12-02 08:07 ?520次閱讀
    從0到1,10+年資深LabVIEW專家,手把手<b class='flag-5'>教你</b>攻克機(jī)器視覺(jué)+<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>(5000分鐘實(shí)戰(zhàn)課)

    自動(dòng)駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個(gè)啥?

    在自動(dòng)駕駛領(lǐng)域,經(jīng)常會(huì)聽(tīng)到卷積神經(jīng)網(wǎng)絡(luò)技術(shù)。卷積神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱為CNN,是一種專門(mén)用來(lái)處理網(wǎng)格狀數(shù)據(jù)(比如圖像)的深度學(xué)習(xí)模型。CNN在
    的頭像 發(fā)表于 11-19 18:15 ?2072次閱讀
    自動(dòng)駕駛中常提的卷積<b class='flag-5'>神經(jīng)</b>網(wǎng)絡(luò)是個(gè)啥?

    【「AI芯片:科技探索與AGI愿景」閱讀體驗(yàn)】+神經(jīng)形態(tài)計(jì)算、類腦芯片

    AI芯片不僅包括深度學(xué)細(xì)AI加速器,還有另外一個(gè)主要列別:類腦芯片。類腦芯片是模擬人腦神經(jīng)網(wǎng)絡(luò)架構(gòu)的芯片。它結(jié)合微電子技術(shù)和新型神經(jīng)形態(tài)器件,模仿人腦
    發(fā)表于 09-17 16:43

    基于FPGA利用sm4進(jìn)行實(shí)時(shí)圖像加密

    求一份在fpga上利用sm4進(jìn)行實(shí)時(shí)圖像加密的文件
    發(fā)表于 09-15 19:05

    如何在機(jī)器視覺(jué)中部署深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

    圖 1:基于深度學(xué)習(xí)的目標(biāo)檢測(cè)可定位已訓(xùn)練的目標(biāo)類別,并通過(guò)矩形框(邊界框)對(duì)其進(jìn)行標(biāo)識(shí)。 在討論人工智能(AI)或深度學(xué)習(xí)時(shí),經(jīng)常會(huì)出現(xiàn)“
    的頭像 發(fā)表于 09-10 17:38 ?900次閱讀
    如何在機(jī)器視覺(jué)中部署<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>神經(jīng)</b>網(wǎng)絡(luò)

    【Sipeed MaixCAM Pro開(kāi)發(fā)板試用體驗(yàn)】基于MaixCAM-Pro的AI生成圖像鑒別系統(tǒng)

    技術(shù)落地到了一個(gè)小小的邊緣設(shè)備MaixCAM-Pro上。它不僅展示了深度學(xué)習(xí)圖像取證領(lǐng)域的強(qiáng)大能力,更體現(xiàn)了邊緣AI在現(xiàn)實(shí)世界中的應(yīng)用價(jià)值——無(wú)需依賴云端,即可在本地快速、安全、低成
    發(fā)表于 08-21 13:59

    深度學(xué)習(xí)對(duì)工業(yè)物聯(lián)網(wǎng)有哪些幫助

    深度學(xué)習(xí)作為人工智能的核心分支,通過(guò)模擬人腦神經(jīng)網(wǎng)絡(luò)的層級(jí)結(jié)構(gòu),能夠自動(dòng)從海量工業(yè)數(shù)據(jù)中提取復(fù)雜特征,為工業(yè)物聯(lián)網(wǎng)(IIoT)提供了從數(shù)據(jù)感知到智能決策的全鏈路升級(jí)能力。以下從技術(shù)賦能
    的頭像 發(fā)表于 08-20 14:56 ?1022次閱讀

    【GM-3568JHF開(kāi)發(fā)板免費(fèi)體驗(yàn)】OpenCV開(kāi)發(fā)環(huán)境安裝和計(jì)數(shù)程序開(kāi)發(fā)

    、 Android 等系統(tǒng)上運(yùn)行,并通過(guò)Python接口簡(jiǎn)化操作。 sudo apt install libopencv-dev python3-opencv 四、OpenCV圖像識(shí)
    發(fā)表于 08-09 13:30

    itop-3568開(kāi)發(fā)板機(jī)器視覺(jué)opencv開(kāi)發(fā)手冊(cè)-圖像繪制-畫(huà)線

    用 imshow()函數(shù)對(duì)畫(huà)線之后的圖像進(jìn)行展示; 第 8 行使用了 waitKey()函數(shù),持續(xù)顯示展示照片直到按鍵的按下。 保存退出之后,在終端界面中輸入以下命令進(jìn)行 python
    發(fā)表于 06-04 10:38

    【「# ROS 2智能機(jī)器人開(kāi)發(fā)實(shí)踐」閱讀體驗(yàn)】視覺(jué)實(shí)現(xiàn)的基礎(chǔ)算法的應(yīng)用

    : 一、機(jī)器人視覺(jué):從理論到實(shí)踐 第7章詳細(xì)介紹了ROS2在機(jī)器視覺(jué)領(lǐng)域的應(yīng)用,涵蓋了相機(jī)標(biāo)定、OpenCV集成、視覺(jué)巡線、二維碼識(shí)別以及深度學(xué)習(xí)目標(biāo)檢測(cè)等內(nèi)容。通過(guò)學(xué)習(xí),我認(rèn)識(shí)到:
    發(fā)表于 05-03 19:41

    基于LockAI視覺(jué)識(shí)別模塊:C++圖像采集例程

    本文主要演示如何使用LockAI視覺(jué)識(shí)別模塊進(jìn)行視頻流的讀取,同時(shí)使用Edit模塊進(jìn)行圖像傳輸。基礎(chǔ)知識(shí)講解1.1OpenCV簡(jiǎn)介
    的頭像 發(fā)表于 04-30 18:23 ?747次閱讀
    基于LockAI視覺(jué)識(shí)別模塊:C++<b class='flag-5'>圖像</b>采集例程

    何用OpenCV的相機(jī)捕捉視頻進(jìn)行人臉檢測(cè)--基于米爾NXP i.MX93開(kāi)發(fā)板

    本文將介紹基于米爾電子MYD-LMX93開(kāi)發(fā)板(米爾基于NXPi.MX93開(kāi)發(fā)板)的基于OpenCV的人臉檢測(cè)方案測(cè)試。OpenCV提供了一個(gè)非常簡(jiǎn)單的接口,用于相機(jī)捕捉一個(gè)視頻(我用的電腦內(nèi)置
    的頭像 發(fā)表于 04-15 11:51 ?806次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>OpenCV</b>的相機(jī)捕捉<b class='flag-5'>視頻</b><b class='flag-5'>進(jìn)行</b>人臉檢測(cè)--基于米爾NXP i.MX93開(kāi)發(fā)板