色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

搭建了一款GIF動圖生成器,其中使用的是OpenCV

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-11-10 09:27 ? 次閱讀

編者按:今天的介紹的教程輕松有趣,作者Adrian Rosebrock搭建了一款GIF動圖生成器,其中使用的是OpenCV,這一過程中會提到以下幾點技術:

如何用基于深度學習的方法進行人臉檢測

如何用dlib庫進行人臉標記檢測并提取眼睛部分(因為動圖會在眼睛區域添加眼鏡)

如何計算旋轉角度,讓動圖眼鏡調整到合適位置

最后,如何用OpenCV生成動態GIF

想了解更多細節,就繼續讀下去吧!

準備工作和依賴環境

OpenCV和dlib

OpenCV是常用的人臉識別和基礎圖像處理工具,論智君此前也介紹過OpenCV,感興趣的同學可以閱讀:

Node.js遇上OpenCV深度神經網絡

用OpenCV實現八種不同的目標跟蹤算法

此外,Dlib是用來檢測面部標志的工具,可以讓我們定位眼睛在臉部的位置,并且讓“眼鏡”的圖標下降到這一位置。dlib的安裝教程:www.pyimagesearch.com/2018/01/22/install-dlib-easy-complete-guide/

ImageMagick

ImageMagick是一個跨平臺的、基于命令行的工具,能提供多種圖片處理功能,例如只用一行指令就能將PNG/JPG圖像轉換成PDF;多張圖片可以集合在一份PDF中;還可以繪制多邊形、線條或其他形狀。利用ImageMagick,我們還可以用一系列輸入圖像生成GIF圖片。

在Ununtu(或Raspbian)上用apt安裝ImageMagick的指令如下:

$ sudo apt-get install imagemagick

如果你用的是macOS,可能會用到HomeBrew:

$ brew install imagemagick

imutils

Imutils是一些列基礎圖像處理功能,包括轉換、旋轉、縮放等等。安裝指令:

$ pip install imutils

項目架構

我們的項目分為兩個目錄:

images/:也就是想要對其處理的原始圖像。

assets/:這一文件夾包含了我們的人臉探測器、面部標志檢測器和所有圖像以及相關掩碼。利用這些工具,我們會將“墨鏡”和“Deal With It”的文字添加到輸入圖像中。

由于配置參數較多,我決定創建一個JSON配置文件,不僅能在編輯參數時更容易,命令行的參數也更少。在這一任務中我們所需的所有配置參數都包含在config.json中。

用OpenCV生成GIFs

了解JSON配置文件

首先,我們從JSON配置文件開始。打開config.json,插入以下命令:

第2行和第3行是OpenCV深度學習人臉探測器的模型文件,第四行是dlib的面部標志探測器的路徑。

接下來我們打開一些圖片文件路徑:

5—8行是“墨鏡”和文字“Deal With It”以及相關掩碼的路徑,如下所示:

墨鏡

墨鏡的掩碼

文字

文字的掩碼

掩碼的作用是在照片上覆蓋對應的圖像。現在我們要對這個GIF生成器設置參數:

min_confidence表示人臉識別結果為正的最低概率。

steps表示生成的GIF所需要的幀數。每一個step我們都會將墨鏡從上至下逐幀移動,直到達到目標位置(眼睛)。

delay表示各幀之間的時間延遲。

final_delay表示最后一針的時間延遲。

loop表示GIF是否循環播放。

temp_dir表示臨時輸出的目錄,每一幀都會先存儲在這個文件夾中,再創建最終的GIF圖像。

開始創建

創建一個新文件夾,將其命名為create_gif.py,插入以下代碼,載入imutils、dlib、OpenCV:

接著,定義overlay_image函數:

overlay_image函數是將前景圖像(fg)覆蓋在背景圖像(bg)上,坐標coords通過(x, y)的坐標點表示。

之后,進行alpha合成完成重疊結果:

46—48行中,我們將前景、背景和alpha層轉換為[0,1]之間的浮點。接著,我們在51和52行執行alpha合成。最后,添加前景和背景,得出輸出,返回函數(37—40行)。

接著創建一個幫助函數,可以用ImageMagick從一系列圖片路徑中生成一個GIF:

create_gif函數可以處理一系列圖片,將它們組合成一張GIF動圖,并且還能在幀和幀之間設置一定的延遲或循環。具體來說,在這一函數中我們可以:

提取imagePaths(63行)

提取最后一張圖像的路徑,因為可能有分離的延遲(66行)

重新分配imagePaths,刪除最后一張圖片的路徑(67行)

組合命令行,開始執行convert創建GIF(72—75行)

創建自己腳本的命令行參數:

下載配置文件和“墨鏡”及其掩碼:

將OpenCV深度學習人臉檢測器載入內存中:

為了下載OpenCV的深度學習人臉檢測,我們會調用cv2.dnn.readNetFromCaffe(101和102行)。dnn模塊只能在OpenCV3.3及之后的版本中使用。人臉識別器會呈現出如下結果:

在103行,我們下載了dlib的人臉標志預測器,可以定位臉部以及各器官,例如眼睛、眉毛、鼻子、嘴巴、下巴等等:

接著,讓我們開始檢測臉部:

在這一部分,我們會:

下載輸入的照片image(106行)

創建一個blob,輸入進人臉檢測神經網絡(108和109行)

執行人臉檢測(113和114行)

確定人臉檢測的概率,檢查置信區間(119—124行)。如果標準不符合,我們就簡單地推出腳本(125行),反之則繼續。

提取面部并計算人臉的標記:

得到眼睛的坐標后,我們就能計算將“墨鏡”放置在哪里、應該怎樣放置:

首先,計算每只眼睛的中心以及二者之間的角度(145—151行)。之后對“墨鏡”進行旋轉(155行)和尺寸縮放(161和162行)。

之后,還要對掩碼進行移動,但是首先,我們需要將掩碼轉換成灰度并進行二值化運算(170和171行)。之后在進行旋轉和縮放(172和173行)。

創建GIF的幀:

動圖中,“墨鏡”會從上至下落到圖片中,所以每一幀都呈現的是墨鏡逐漸靠近人臉的過程。利用JSON配置變量steps對墨鏡位置進行調整。

最后一步是添加“DEAL WITH IT”的文字,這需要用另一個掩碼逐幀操作:

生成結果

現在可以看看我們的表情包生成器結果怎樣了,保證你已經下載了源代碼(原文地址見文末),打開終端,執行以下命令:

$ python create_gif.py --config config.json --image images/adrian.jpg

--output adrian_out.gif

[INFO] loading models...

[INFO] computing object detections...

[INFO] creating GIF...

[INFO] cleaning up...

可以看到,生成器能在不同角度檢測到眼睛的位置,結果比較理想!

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

    關注

    27

    文章

    1295

    瀏覽量

    56799
  • 生成器
    +關注

    關注

    7

    文章

    317

    瀏覽量

    21050
  • 深度學習
    +關注

    關注

    73

    文章

    5507

    瀏覽量

    121266

原文標題:用OpenCV創建GIFs,給你的照片戴上墨鏡

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

收藏 人收藏

    評論

    相關推薦

    82 Gi Hub上一款寶藏開源項目----美女生成器

    編程語言生成器
    小凡
    發布于 :2022年08月28日 18:34:02

    懶人C51代碼生成器

    懶人C51代碼生成器一款小軟件
    發表于 11-30 00:18

    AllJoyn C++代碼生成器

    AllJoyn 團隊非常激動地向廣大開發商宣布,一款新工具已經問世——代碼生成器。如果您擁有定義的 AllJoyn 服務接口規范,即可通過運行此代碼生成器,為您的服務端和客戶端生成工作
    發表于 09-19 18:11

    為什么我無法從ip core向導生成器生成我的項目中使用的原理

    你好我正在嘗試使用內存接口生成器(MIG)來控制開發板sp601的DDR3外部RAM問題是我無法從ip core向導生成器生成我的項目中使用的原理
    發表于 11-07 06:09

    推薦一款:【靈生】單片機代碼自動生成器(自動編程工具)

    推薦一款:【靈生】單片機代碼自動生成器(自動編程工具)以往編寫單片機程序全靠程序員敲代碼,門檻高,學習困難,不容易入門,而且編程繁瑣,本軟件只需要鼠標拖拽模塊,再模塊間功能連線下,再點生成
    發表于 12-21 16:53

    介紹下ABOV提供的代碼生成器

    的開發,下面介紹下ABOV提供的代碼生成器,絲毫不輸CUBEMX,且ABOV單片機基本都支持keil開發環境。。2. ABOV的代碼生成器ABOV代碼生成器的風格非常適合國內軟件工
    發表于 11-19 08:06

    python生成器

    python生成器1. 什么是生成器生成器(英文名 Generator ),是個可以像迭代器那樣使用for循環來獲取元素的函數。生成器
    發表于 02-24 15:56

    自制酸奶生成器

    自制酸奶生成器
    發表于 04-23 11:48 ?935次閱讀
    自制酸奶<b class='flag-5'>生成器</b>

    c語言流程生成器下載

    本內容提供了c語言流程生成器下載,歡迎大家下載學習
    發表于 05-10 11:10 ?178次下載

    C語言流程生成器

    電子發燒友網站提供《C語言流程生成器.rar》資料免費下載
    發表于 07-06 16:54 ?7次下載

    代碼生成器的應用

    jeesite框架代碼生成器,可以很方便的生成代碼,挺不錯的。
    發表于 01-14 15:19 ?0次下載

    python生成器是什么

    python生成器 1. 什么是生成器生成器(英文名 Generator ),是個可以像迭代器那樣使用for循環來獲取元素的函數。 生成器
    的頭像 發表于 02-24 15:53 ?3674次閱讀

    Arduino贊美生成器

    電子發燒友網站提供《Arduino贊美生成器.zip》資料免費下載
    發表于 11-09 14:22 ?1次下載
    Arduino贊美<b class='flag-5'>生成器</b>

    通用RFID生成器

    通用RFID生成器資料分享
    發表于 02-10 15:35 ?1次下載

    Versal GTY/GTYP:使用PRBS生成器和檢查器

    本文涵蓋了在 Versal GTY 和 GTYP 中使用模式生成器和檢查器時對以下操作的限制
    的頭像 發表于 07-10 17:18 ?1131次閱讀
    主站蜘蛛池模板: 国产AV无码一二三区视频| 日韩精品无码久久一区二区三| 日韩免费精品视频| 国产精华av午夜在线观看| 性色AV一区二区三区咪爱四虎| 最新国产成人综合在线观看| 国产区免费在线观看| 亚洲综合视频| 国产品无码一区二区三区在线| 亚洲绝美精品一区二区| 麻豆国产96在线日韩麻豆| 夜色55夜色66亚洲精品网站| 蜜芽在线播放免费人成日韩视频| 在线中文字幕视频| 久久电影午夜| 伊人影院网| 日本xxxx96| 动漫美女人物被黄漫在线看| 日本伦理片 中文字幕| QVOD在线播放| 小货SAO边洗澡边CAO你动漫| 在线 亚洲 日韩 欧洲视频| 欧洲-级毛片内射八十老太婆| 国产免费播放一区二区三区| 456亚洲人成在线播放网站| 免费看黄色小说| 国产美女一区二区| 97在线精品视频免费| 午夜一区欧美二区高清三区| 国产午夜精品一区二区理论影院| 最近中文字幕MV高清在线视频| 甜性涩爱免费下载| 久久综合伊人 magnet| bbw videos 欧美老妇| 亚洲国产中文在线视频免费| 亲嘴扒胸摸屁股视频免费网站| 儿子好妈妈的HD3中字抢劫| 樱桃熟了A级毛片| 性色AV乱码一区二区三区视频| 琪琪电影午夜理论片77网| 久久婷五月综合色啪网|