国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

教你如何用OpenCV、Python和深度學習技術對圖像和實時視頻進行神經風格遷移

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

掃碼添加小助手

加入工程師交流群

編者按:在這篇教程中,作者Adrian Rosebrock將教你如何用OpenCV、Python深度學習技術對圖像和實時視頻進行神經風格遷移。

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

用OpenCV進行神經風格遷移

首先說明的一點是,今天討論的方法在一個CPU上可以達到近乎實時的效果,如果在GPU上則完全可以實現實時效果。

首先我們會簡單塔倫下什么是神經風格遷移,以及它是如何運作的。之后我們會用OpenCV和Python動手操作。

什么是神經風格遷移?

從左至右:我們的內容圖像;風格圖像;輸出的風格遷移圖像

神經風格遷移主要有兩個過程:

提取某張圖片的風格

將該種風格應用到另一張圖片上

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

問題就是,我們應該如何定義一個神經網絡,讓它執行神經風格遷移呢?

神經風格遷移如何工作?

在Gatys等人提出的首篇論文中,神經風格遷移算法不需要新的架構。相反,我們可以用一個預訓練網絡(通常在ImageNet上進行的預訓練),并且定義一個損失函數,能讓我們達到風格遷移的目標,然后對損失函數不斷優化。

那么,這里的問題就不是“該用什么神經網絡”了,而是“該用什么損失函數”。

答案包括:內容損失、風格損失和總變差損失。每個部分都是單獨計算,然后在一個元損失函數中結合。通過將元損失函數最小化,我們將依次對內容、風格和總變差損失進行優化。

雖然Gatys等人的方法能生成不錯的神經風格遷移結果,但是它的速度非常慢。2016年,Johnson等人在Gatys的基礎上提出的全新算法速度快了三倍,但同時也存在著缺點,即用戶不能隨機選擇想要應用的風格圖像。用戶首先要訓練一個網絡,生成你想要的風格。網絡訓練好后,你可以將它應用到任意內容圖像上。

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

項目結構

在開始今天的教程前,請先下載我提供的資料(點擊文末原文地址獲取資料)。準備好了腳本、模型和圖像后,你可以用tree指令檢查項目的結構:

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

開始神經風格遷移

接下來讓我們用OpenCV和Python進行神經風格遷移的實踐。

首先打開neural_style_transfer.py文件,插入如下代碼:

首先,我們導入所需的包并解析命令行參數。

導入的有:

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

OpenCV:你需要一個OpenCV 3.4或者更高版本。

該腳本下需要兩個命令行:

--model:神經風格遷移的模型路徑。在“下載”區中,我加入了11中經過與訓練的模型。

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

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

接下來的部分比較有趣,我們要下載圖像和模型,然后計算神經風格遷移:

在這部分代碼中,我們進行了:

將下載的預訓練神經風格遷移模型稱為net(第17行);

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

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

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

接下來,重要的是對輸出圖像進行后處理:

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

神經風格遷移結果

當你下載好文件后,打開終端執行以下命令:

現在,對命令行參數做簡單改變,然后用《侏羅紀公園》中的截圖作為內容圖像,進行風格遷移:

另一個例子:

這是我最喜歡的案例,感覺都能當做酒吧的裝飾畫了。

實時神經風格遷移

上面我們講了如何在單一圖像上應用風格遷移,現在我們要把這一過程放在視頻上。

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

利用一個特殊的Python迭代器,它可以讓我們在模型路徑中循環使用所有可用的神經風格遷移模型。

啟動網絡攝像頭視頻流,我們會(近乎)實時處理攝像頭的幀。對于某些較大的模型,系統可能會慢一些。

在每一幀上應用風格遷移,對輸出進行后處理,并將結果顯示在屏幕上。

如果用戶按下“n”鍵,我們將把迭代器循環運用到下一個神經風格遷移模型上,不用重啟腳本。

首先,打開neural_style_transfer_video.py文件,插入以下代碼:

之后,創建模型路徑迭代器:

一旦我們開始在while循環中處理幀,“n”按鍵就會在迭代器中下載“下一個”模型。

為了創建模型迭代器,我們:

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

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

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

讓我們開始下載第一個模型并對視頻進行處理:

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

之后在幀與幀之間進行循環:

接著進行后處理并將輸出圖像展示出來:

對按鍵的處理:

兩種不同的按鍵會對腳本運行產生不同的影響:

“n”:抓取下一個模型的路徑和ID,并進行下載。如果我們已經獲取上一個模型,迭代器就會從頭開始循環。

“q”:按下q會退出while循環。

實時風格遷移的結果

執行以下命令就可以在視頻上運用風格遷移啦:

可以看到,只需要按一個按鍵就能輕松地進行循環。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11277

    瀏覽量

    224955
  • 圖像
    +關注

    關注

    2

    文章

    1096

    瀏覽量

    42326
  • 深度學習
    +關注

    關注

    73

    文章

    5598

    瀏覽量

    124396

原文標題:無需GPU,只用OpenCV和Python實現圖像和視頻的風格遷移

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    穿孔機頂頭檢測儀 機器視覺深度學習

    LX01Z-DG626穿孔機頂頭檢測儀采用深度學習技術,能夠實現頂頭狀態的在線實時檢測,頂頭丟失報警,頂頭異常狀態報警等功能,響應迅速,異常狀態視頻
    發表于 12-22 14:33

    沒有專利的opencv-python 版本

    視頻處理 視頻讀取/寫入、幀提取、運動檢測(背景差分) 繪圖功能 畫直線/矩形/圓、添加文字、標注關鍵點 關鍵總結: 對 Python 3.13 來說,最優選擇是安裝 opencv-pyt
    發表于 12-13 12:37

    那些年我用OpenCV+Qt趟過哪些坑?寫給視覺應用開發者的避坑指南

    預處理、二值化分析、測量) 16. 案例:圖像修復與水印智能移除工具 (傳統圖像算法與深度學習的結合、交互式編輯) 回過頭看,從早期寫一個按鈕功能都要百度半天,到現在能規劃整個系統的
    發表于 12-02 09:43

    從0到1,10+年資深LabVIEW專家,手把手教你攻克機器視覺+深度學習(5000分鐘實戰課)

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

    自動駕駛中常提的卷積神經網絡是個啥?

    在自動駕駛領域,經常會聽到卷積神經網絡技術。卷積神經網絡,簡稱為CNN,是一種專門用來處理網格狀數據(比如圖像)的深度學習模型。CNN在
    的頭像 發表于 11-19 18:15 ?2072次閱讀
    自動駕駛中常提的卷積<b class='flag-5'>神經</b>網絡是個啥?

    【「AI芯片:科技探索與AGI愿景」閱讀體驗】+神經形態計算、類腦芯片

    AI芯片不僅包括深度學細AI加速器,還有另外一個主要列別:類腦芯片。類腦芯片是模擬人腦神經網絡架構的芯片。它結合微電子技術和新型神經形態器件,模仿人腦
    發表于 09-17 16:43

    基于FPGA利用sm4進行實時圖像加密

    求一份在fpga上利用sm4進行實時圖像加密的文件
    發表于 09-15 19:05

    如何在機器視覺中部署深度學習神經網絡

    圖 1:基于深度學習的目標檢測可定位已訓練的目標類別,并通過矩形框(邊界框)對其進行標識。 在討論人工智能(AI)或深度學習時,經常會出現“
    的頭像 發表于 09-10 17:38 ?900次閱讀
    如何在機器視覺中部署<b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>神經</b>網絡

    【Sipeed MaixCAM Pro開發板試用體驗】基于MaixCAM-Pro的AI生成圖像鑒別系統

    技術落地到了一個小小的邊緣設備MaixCAM-Pro上。它不僅展示了深度學習圖像取證領域的強大能力,更體現了邊緣AI在現實世界中的應用價值——無需依賴云端,即可在本地快速、安全、低成
    發表于 08-21 13:59

    深度學習對工業物聯網有哪些幫助

    深度學習作為人工智能的核心分支,通過模擬人腦神經網絡的層級結構,能夠自動從海量工業數據中提取復雜特征,為工業物聯網(IIoT)提供了從數據感知到智能決策的全鏈路升級能力。以下從技術賦能
    的頭像 發表于 08-20 14:56 ?1022次閱讀

    【GM-3568JHF開發板免費體驗】OpenCV開發環境安裝和計數程序開發

    、 Android 等系統上運行,并通過Python接口簡化操作。 sudo apt install libopencv-dev python3-opencv 四、OpenCV圖像
    發表于 08-09 13:30

    itop-3568開發板機器視覺opencv開發手冊-圖像繪制-畫線

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

    【「# ROS 2智能機器人開發實踐」閱讀體驗】視覺實現的基礎算法的應用

    : 一、機器人視覺:從理論到實踐 第7章詳細介紹了ROS2在機器視覺領域的應用,涵蓋了相機標定、OpenCV集成、視覺巡線、二維碼識別以及深度學習目標檢測等內容。通過學習,我認識到:
    發表于 05-03 19:41

    基于LockAI視覺識別模塊:C++圖像采集例程

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

    何用OpenCV的相機捕捉視頻進行人臉檢測--基于米爾NXP i.MX93開發板

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