AI 圖像智能修復老照片,效果驚豔到我了!| 附代碼

2020-12-14 中國軟體網
近些年,基於深度學習的發展,計算機視覺在人工智慧和深度學習的大背景下方興未艾,與此同時,當越來越多的應用場景被挖掘出來時,也意味著計算機視覺的發展前景將無比廣闊,其中圖像處理技術就是最熱門的應用之一,而最近一段時間,圖像處理技術中最受歡迎的必須是圖像修復功能,一鍵修復老照片等App應用,在社交網絡上掀起一股潮流。

 

圖像識別技術本身的原理並不複雜,信息的處理是這一技術的關鍵點所在。近年來,由於深度學習的發展,大大提高了圖像識別的準確率,深度學習通過大量圖像數據信息特徵的積累與分析,可自動完成特徵提取和圖像匹配等任務。最近一段時間,最受歡迎的必須是圖像修復功能。

早在文藝復興時期,人們就開始修復一些中世紀的藝術品,其目的在於通過填補一些裂縫來使畫面恢復原貌,這一工作就稱之為"Inpainting"(修復,潤飾)或"Retouching"。M.Bertalmio首次提出許多圖像修復能被簡化為一個數學表達式,利用計算機能自動加以實現。圖像修復現已是計算機圖形學和計算機視覺中的一個研究熱點,在文物保護、影視特技製作、虛擬實境、多餘物體剔除(如視頻圖像中刪除部分人物、文字、小標題等)等方面有著重大的應用價值。

其中常見的修複方法有:

偏微分方程的方法:Bertalmio採用偏微分方程(PDE)的方法進行圖像修復,取得了較好的效果。用戶需指定需要修復的區域,算法將待修補的區域邊界的等值線外部的信息沿輪廓法向擴散到中間待修補的象素上。該算法利用局部顏色的光滑度沿著等值線擴散,考慮了各向異性的擴散,以保證邊緣處的邊界連續,但該方法計算不穩定。

整體變分方法和基於曲率的擴散模型:整體變分方法(TV,TotalVariational)採用了歐拉-拉格朗日方程和各向異性的擴散,基於曲率的擴散模型(CDD,Curvature-DrivenDiffusion)方法是整體變分方的一種擴展,在擴散過程中考慮了輪廓的幾何信息(曲率),可以處理較大的區域,但邊界處往往很模糊。

高斯卷積核對圖像進行濾波的方法:利用了高斯卷積核對圖像進行濾波,能快速地修復破損區域,但該算法僅考慮了破損區域邊緣一周的圖像顏色值,使得其僅適用於破損區域為2-3個象素寬度的情形。

紋理合成的方法:紋理合成的方法,能較好地去除圖像中的大塊汙斑,但由於算法運行時間不是與掩模區域成正比,而是與圖像大小成正比,因此修復時間相對較長。

而今天我們就將藉助Python實現我們的修圖效果。

 

實驗前的準備

首先我們使用的python版本是3.6.5。所測試的系統有windows10,windows7,Linux系統以及蘋果系統。從這點也可以看出python多平臺和多拓展性、易於遷移的優點。

所使用的的python庫有cv2庫,目的是用來讀取圖片,處理圖片像素值和保存圖片等;numpy用來對讀取過來的像素值矩陣進行運算。

 

修復程序處理一的搭建

1、圖像處理第一步:

首先我們所藉助常用的OpenCV處理手段進行處理圖片。首先進行的是圖片二值化處理和創建結構元素,其中詳細代碼如下:

import cv2import numpy as nppath = "13.jpg"img = cv2.imread(path)hight, width, depth = img.shape[0:3]#圖片二值化處理,把[240, 240, 240]~[255, 255, 255]以外的顏色變成0thresh = cv2.inRange(img, np.array([240, 240, 240]), np.array([255, 255, 255]))#創建形狀和尺寸的結構元素kernel = np.ones((3, 3), np.uint8)

2、擴張修復區域:

識別到修復區域並根據相鄰像素值進行擴張達到彌補像素值修復圖片的效果。cv2.inpaint()函數主要涉及兩種算法。

一種算法是從該區域的邊界開始,然後進入區域內,逐漸填充邊界中的所有內容。它需要在鄰近的像素周圍的一個小鄰域進行修復。該像素由鄰居中所有已知像素的歸一化加權和代替。選擇權重是一個重要的問題。對於靠近該點的那些像素,靠近邊界的法線和位於邊界輪廓上的像素,給予更多的權重。

另一種是基於流體動力學並利用偏微分方程。基本原則是heurisitic。它首先沿著已知區域的邊緣行進到未知區域(因為邊緣是連續的)。它繼續等照片(連接具有相同強度的點的線,就像輪廓連接具有相同高度的點一樣),同時在修復區域的邊界處匹配漸變矢量。為此,使用來自流體動力學的一些方法。獲得顏色後,填充顏色以減少該區域的最小差異。

詳細代碼如下:

#擴張待修復區域hi_mask = cv2.dilate(thresh, kernel, iterations=1)specular = cv2.inpaint(img, hi_mask, 5, flags=cv2.INPAINT_TELEA)cv2.namedWindow("Image", 0)cv2.resizeWindow("Image", int(width / 2), int(hight / 2))cv2.imshow("Image", img)cv2.namedWindow("newImage", 0)cv2.resizeWindow("newImage", int(width / 2), int(hight / 2))a=cv2.imshow("newImage", specular)cv2.imwrite("43.jpg",specular)cv2.waitKey(0)cv2.destroyAllWindows()

 

修復程序處理二的搭建

1、圖像處理第二步:

轉換成hsv值,根據hsv值判斷圖片的前景和後景。HSV是一種將RGB色彩空間中的點在倒圓錐體中的表示方法。HSV即色相(Hue)、飽和度(Saturation)、明度(Value),又稱HSB(B即Brightness)。色相是色彩的基本屬性,就是平常說的顏色的名稱,如紅色、黃色等。飽和度(S)是指色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數值。明度(V),取0-max(計算機中HSV取值範圍和存儲的長度有關)。HSV顏色空間可以用一個圓錐空間模型來描述。圓錐的頂點處,V=0,H和S無定義,代表黑色。圓錐的頂面中心處V=max,S=0,H無定義,代表白色。其中主要用到的函數是cv2庫中的cv2.cvtColor()函數,將RGB圖像(在opencv中設計BGR圖像)轉換為HSV圖像用到了參數cv2.COLOR_BGR2HSV。

詳細代碼如下:

import cv2import osimport numpy as npsta=0for file in os.listdir("cut_test"): sta=sta+1 print("正在處理"+"cut_test/" + file) img = cv2.imread("cut_test/" + file) #img=cv2.imread('1.jpg') rows,cols,channels = img.shape cropped = img[0:479, 0:cols] #轉換hsv hsv=cv2.cvtColor(cropped,cv2.COLOR_BGR2HSV) # 圖片二值化處理,把[240, 240, 240]~[255, 255, 255]以外的顏色變成0 thresh = cv2.inRange(hsv, np.array([90,10,125]), np.array([135,180,255])) erode = cv2.erode(thresh, None, iterations=2) dilate = cv2.dilate(erode, None, iterations=0) # 創建形狀和尺寸的結構元素 kernel = np.ones((3, 3), np.uint8)

2、圖像修復:

在擴張修復區域的基礎上外加調整像素值圖片處理。

其中腐蝕操作詳細如下:

定義了一個十字形結構元素 其實是一個矩陣,我們知道在圖片的腐蝕過程,對圖片的每個點,使用這個結構掃描每一個點,用結構元素與其覆蓋的二值圖像做「與」操作,如果都為1,結果圖像的該像素為1。否則為0,腐蝕處理的結果是使原來的二值圖像減小一圈。使用的函數:cv2.erode(img,kernel);

膨脹操作詳細如下:

使用同樣的結構,對圖片的每個點,使用這個結構掃描每一個點,用結構元素與其覆蓋的二值圖像做「與」操作,如果出現1,結果圖像的該像素為1。否則為0,腐蝕處理的結果是使原來的二值圖像擴大一圈。使用的函數:cv2.dilate(img,kernel)

詳細代碼如下:

# 擴張待修復區域 hi_mask = cv2.dilate(dilate, kernel, iterations=1) specular = cv2.inpaint(cropped, hi_mask, -5, flags=cv2.INPAINT_NS) #合併 htich = np.vstack((specular, img[479:rows, 0:cols])) ''' blue=[] #獲取mask,調整lower中h控制顏色 lower_blue=np.array([90,10,125]) upper_blue=np.array([135,180,255]) mask = cv2.inRange(hsv, lower_blue, upper_blue) erode=cv2.erode(mask,None,iterations=1) dilate=cv2.dilate(erode,None,iterations=1) #腐蝕膨脹 erode=cv2.erode(mask,None,iterations=1) cv2.imshow('erode',erode) dilate=cv2.dilate(erode,None,iterations=1) cv2.imshow('dilate',dilate) for i in range(rows): for j in range(cols): if dilate[i,j]==255: blue.append([i,j]) for w in blue: x=w[0] y=w[1] img[x,y]=[255,255,255] ''' cv2.imwrite("dels_test/" + str(sta) + ".jpg", htich)''' cv2.imshow('Mask', img) cv2.waitKey(0) cv2.destroyAllWindows()'''

最終效果如圖所示(右邊是修復效果):

怎麼樣?這修復效果還不錯吧?趕緊動手練起來,掌握一門千萬修圖師技能吧!




免責聲明:

本站系本網編輯轉載,會儘可能註明出處,但不排除無法註明來源的情況,轉載目的在於傳遞更多信息,並不代表本網贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請在30日內與本網聯繫, 來信: liujun@soft6.com 我們將在收到郵件後第一時間刪除內容!

[聲明]本站文章版權歸原作者所有,內容為作者個人觀點,不代表本網站的觀點和對其真實性負責,本站擁有對此聲明的最終解釋權。

相關焦點

  • 這款AI 智能修復老照片軟體,效果驚豔到我了!
    手頭上總有一些老爸老媽的美照想要分享給親友們,讓他們看看什麼才叫神仙顏值,但以前可能礙於傻瓜機的局限,拍出來的照片效果不是很好,只能看出個輪廓,沒能完全還原他們的「美貌」,不免讓人為之感到遺憾而找專業的人修復老照片,價格昂貴,後來想到萬能的某寶,價格也是是50元左右,具體也是按照修復難度而定,難度係數也高,價格也越高,這讓很多吃土的學生黨望而止步。
  • AI一鍵翻新!vivo X50修復老照片,重溫歲月美好
    AI超清圖像,重溫舊時光 最近vivo X50的老照片修復館開始營業了,通過修復舊照片來重現往昔畫面,幫助各位朋友找回珍貴回憶,重溫舊時光
  • 老照片修復和翻新AI技術等綜合運用還原美好記憶
    老照片修復翻新中幾個重要的名詞包括:老照片修復、老照片翻新、老照片上色,具體的解釋為:老照片修復:老照片修復,就是針對各種類型的受損老照片,通過計算機技術進行修復,包括掃描褪色、殘損照片或膠片,調整暗調/高光以改善面效果,修正曝光斑痕,利用曲線調整圖層進行局部遮光和局部額外曝光,掃描並修護曝光過度的照片,最終達到完美無缺的圖片。
  • vivo X50 Pro老照片修復體驗:一鍵修復1957年的老照片
    ▲AI圖像修復工具PLUSE的修複流程不過以上幾項技術十分複雜,普通人很難掌握這些工具的使用方法。其實現在有了更簡單的照片修複方法,只需一臺vivo X50 Pro就可以輕鬆搞定照片修復。正正用爺爺的老照片進行嘗試,這是一張拍攝於1957年6月的照片,上面有不少摺痕和汙漬。
  • 一鍵修復老照片 iQOO Z1x可抵百元會員
    老照片修復這件事的受歡迎程度,從風靡一時的三方應用《你我當年》中就能夠略知一二。這是一款基於AI圖像生成技術的在線圖像增強軟體,能夠帶來後期AI視覺效果,實現照片的解析度提升與畫質增強。並且可能由於伺服器限制等因素,在線人數多的時段需要排隊等待圖像處理。iQOO Z1x直到手機廠商將這項技術內置到系統相冊裡,才使得AI修復技術真正免費且好用。
  • 這些老照片如何用算法修復?
    各位,我是一位來自Mail.ru Group計算機視覺團隊的研發工程師,在這篇文章當中,我將講述我們如何為老軍人的照片創造一個基於AI技術的照片修復項目。什麼是照片修復呢?它由以下三個步驟組成:我們找到所有的照片缺陷:摺痕,磨損,破洞我們基於所發現的照片缺陷周圍的像素值來進行圖像修復我們為圖像上色接下來,我將闡釋照片修復的每一個步驟,並且告訴你我們如何獲得數據,用哪種網絡訓練,取得了哪些成就,以及犯了什麼錯誤。尋找缺陷我們需要在一張已經上傳的照片當中找到所有與缺陷相關的像素值。首先,我們需要弄清楚人們會上傳什麼樣的照片。
  • 老照片修復軟體有哪些 明星童年修復照是哪個app
    一款標榜「AI圖像增強」的微信小程序「你我當年」於近日意外走火。通過其上傳模糊老照片,可獲得免費處理的清晰版本;而多組明星童年照、舊照的處理前後效果在網上引發廣泛傳播與熱議,「明星童年修復照」一度以3億次加閱讀量登上微博熱搜。小程序使用峰值期顯示,「前方有33285人排隊,大約等待665700小時」。
  • 老照片自動上色,效果不錯,免費簡單速度快
    今天就要介紹一個全自動在線AI黑白上色工具,這個黑白照片上色工具最大的特點就是,免費、簡單、快速、效果還可以。這是一個由百度開發的AI智能黑白圖像上色工具,今天介紹的是在線使用的電腦端網頁版,打開頁面上傳圖片,幾秒鐘就可以把黑白照片上色完畢,而且可以保存無水印大圖!!!
  • 老照片修復PS教程:如何對老照片人物臉部,進行上色?
    教程解析本文主要講解老照片修復的教程方法,主要以PS為主要修復工具,適合自己想嘗試修復老照片的朋友。今天讓我們一起來學習,如何對老照片的人物臉部,進行上色?處理後效果對比第一步選擇工具欄中多邊形套索工具(快捷鍵L)(如圖1),框出臉部區域複製圖層(如圖2)。
  • Arnold渲染器之aiImage(ai圖像)著色器介紹及渲染測試
    今天繼續和大家分享Arnold渲染器的aiImage著色的特性首先在Maya軟體中打開「Hypershade「,在窗口右邊」創建「視圖,Arnold選項卡下的「Texture「中尋找到」aiImage「著色器
  • AI等科技技術在老照片修復和翻新中的應用效果展示
    翻翻你家裡抽屜,柜子,藏寶箱,會發現有大批的老照片吧?其實很多照片存放的時間久了都會發黴老化,有的老照片還嚴重老化,破損得很厲害,照片上面還出現很多汙漬。看著心愛的這些珍貴老照片,心裡很是遺憾的,那這些老照片該怎麼辦?難道就沒有讓它復原的可能?
  • 老照片模糊不清?試試Reno4 Pro這個功能,效果太驚豔
    可能在幾年前這樣的想法似乎是天方夜譚,但是隨著AI人工智慧技術的進步,把老照片進行高清修復已經不再是遙不可及的夢想了,比如前段時間OPPO發布的Reno4系列就擁有照片AI修復功能,號稱能將老照片「煥然一新」。
  • 最新舊照片修復技術:細緻到面部毛孔
    最近,幾個中國小夥組成的微軟研究團隊開發了一種全新的修復舊照片的工具,那些我們想要留在心底或未曾經歷過的從前,都可以通過翻看老照片找回來,目前已在 GitHub 上開源。
  • 美圖秀秀AI幫你一鍵修復老照片
    你是不是也有一些這樣的老照片?記錄著你童年、青春和團聚的美好瞬間。但是伴著歲月流逝,一張張紙質照片漸漸變得模糊、泛黃和破損,也增加了摺痕。面對像素感人、噪點滿滿的老照片,是不是遺憾滿滿,感慨心疼,只能對著老照片回味過去的舊時光。可以寫一下專業設計人員可以通過專業軟體實現老照片修復,但普通用戶沒有這一渠道,即便有,也會產生費用。
  • vivox50又添加實用功能,超清修復功能,泛黃的老照片有救了
    而到了現在,消費者們拍照的主流器材變成了智慧型手機。同時用相機拍照的一代長大之後,看到以前泛黃的老照片,起了修復的念頭。因此,vivo近期發布的專業影像旗艦機型——vivo X50配備了超清修復功能,可以將過去的老照片修復成超清大片。
  • 中國小夥開發最新舊照片修復技術
    那些我們想要留在心底或未曾經歷過的從前,都可以通過翻看老照片找回來。為了不讓心底的溫暖消逝,也為了能把歷史的真容留住,各種圖像修復工具層出不窮。我們看到了百年前的北京,看到了民國時的摩登女郎,還有被重新修復的母親的老照片。
  • OPPO助力父親節,照片AI修復功能還原老照片中的父親
    這個父親節,OPPO官博在6月15日-6月20日推出了老照片修復活動,收集網友發來的老照片,通過OPPO Reno4系列ColorOS系統的照片AI修復功能進行修復,讓不少網友追憶起了年輕時的父親,此活動也獲得了網友的一致好評。拿著被修復的照片送給父親,可以說是這個父親節最好的禮物了吧。
  • 如何在手機上使圖像更清晰?這麼做很簡單!
    沒看錯哦,在手機上就已經可以對圖片進行優化圖像的清晰度,使圖片更加清晰自然。下面小編就來和大家分享一下如何在手機上就優化圖片清晰度的方法。工具手機老照片智能修復圖片步驟第一步可以使用【老照片智能修復】這款軟體對圖片進行圖像清晰。
  • 老照片修復教程解析:手機拍攝照片,局部反光如何處理?
    教程解析本文主要講解老照片修復的教程方法,主要以PS為主要修復工具,適合自己想嘗試修復老照片的朋友。今天讓我們一起來學習,手機拍攝老照片,如何處理局部反光?(紅色區域)處理後效果對比第一步選擇工具欄中多邊形套索工具(快捷鍵L),框出曝光區域(如圖1)。
  • PS2021鎖死各項AI新技術,幾個鍵搞定老照片修復、變妝、繪畫風格轉換
    △相比於PS 2020,圖標少了個框PS 2021中,新增的功能「神經濾鏡」 (Neural Filters)令人驚豔,將近期有意思的CV(計算機視覺)技術都收入其中。「神經濾鏡」功能,用法簡單如美圖秀秀,效果卻比肩設計作品,一起來看看。