?

芻議基于人工智能的圖像處理技術

2023-08-09 06:39周媛媛
計算機應用文摘·觸控 2023年15期
關鍵詞:圖像處理人工智能

摘 要:文章對基于人工智能的圖像處理技術中多任務卷積神經網絡的實現原理、應用場景進行了介紹,旨在為從業者提供一定的參考,以及為行業外感興趣之人提供一定的科普知識。

關鍵詞:人工智能:圖像處理:多任務卷積神經網絡

中圖法分類號:TP391文獻標識碼:A

基于人工智能的圖像處理主要進行“數字圖像處理”,即通過編制計算機程序控制算法,在原始數字圖像中定向執行某些功能作業。在圖像處理的過程中,可以從數字圖像中完成基本信息的提取。在現代生活中,大眾已經習以為常的“相機美顏” 功能、電影《流浪地球2》中令劉德華、吳京等人飾演的角色“年輕化”的方法均應用了人工智能圖像技術??傮w而言,對此技術的實現原理及應用展開分析具有重要意義。

1 基于人工智能的圖像視覺處理技術原理

當前應用較為廣泛的圖像處理技術以多任務卷積神經網絡(Multi?Task Convolutional Neural Network,MTCNN)為代表[1] 。此項技術的核心原理是,能夠將“人臉區域檢測” 以及“人臉關鍵點檢測” 融合于一體,形成類似cascade 的主題框架[2] 。MTCNN 網絡一般分成P,R,O 三層?NET 網絡結構。在上述三個級聯網絡形成圖像檢測跟蹤模型之后,進一步添加“候選框+分類器”處理機制,能夠自動捕捉人臉圖像并進行檢測。上述三個級聯網絡各自具有的功能是:P?NET 具有“快速生成候選窗口”功能;R?NET 具有“基于高精度候選窗口過濾選擇”的功能;O?NET 具有“生成最終邊界框與人臉關鍵點”的功能[3] 。

2 基于人工智能的圖像視覺處理技術的應用歷程

MTCNN 網絡模型在人臉識別領域的應用范圍最廣,處理人臉圖像信息的過程如下。

(1)圖像金字塔的構建。首先,在處理一張人臉圖像之前,需要對圖片進行縮放,但縮放的程度并不固定[4] 。如圖1 所示,右側的效果便是“圖像金字塔”。這一過程在計算機圖像處理軟件中的實現方法為設定縮放系數factor。經過對不同人臉圖像的反復試驗,研究人員得出一個結論,將factor 取值設定為0.709,取得的縮放效果最佳。于是“factor= 0.709”被編入控制程序中。圖1 右側的“金字塔”型人臉圖像的“金字塔具體分層” 取決于人臉圖像的原始大小———“factor= 0.709”實際上是縮小比例,將原始圖像的長度、寬度均乘以這一系數,一直到長度、寬度低于某個特定值(不同處理軟件有不同的標準,同樣可以自行設定) 便停止。經過幾輪的“縮放”,圖像的“金字塔層級”便是多少?;谏鲜鲈韺δ橙四槇D片進行處理,核心處理程序如下。

def calculateScales(img):

copy_img = img.copy()

pr_scale = 1.0

h,w,_ = copy_img.shape

if min(w,h)>500:

pr_scale = 500.0/ min(h,w)

w = int(w?pr_scale)

h = int(h?pr_scale)

elif max(w,h)<500:

pr_scale = 500.0/ max(h,w)

w = int(w?pr_scale)

h = int(h?pr_scale)

scales = []

factor = 0.709

factor_count = 0

minl = min(h,w)

while minl >= 12:

scales. append(pr_scale?pow(factor,

factor_count))

minl ?= factor

factor_count += 1

return scales

按照上述程序對圖片進行比例縮放,其中存在2個數據,分別是“500”和“12”。前者指利用處理軟件處理圖片前,可通過人工方式對圖片的長度、寬度進行調整,使其高于500,否則軟件處理的圖片過小,信息提取容易失真[5] 。后者指經過多輪次自動縮放,當圖片的長度、寬度達到12 時,縮放即可停止。

(2)基于P?NET(Proposal Network)的網絡層。經過步驟(1)的縮放處理,在“人臉金字塔”圖像中形成一個“全卷積網絡”。這一過程的主要作用是通過全卷積網絡,對圖片中的重要區域———人臉所在位置進行“邊框標定”,之后初步提取人臉特征,完成上述作業,還可進行窗口調整及大部分窗口過濾作業。需要注意,在該階段,P?NET 存在2 個“輸出”,應用層的核心控制程序是:

classifier = Conv2D ( 2, ( 1, 1), activation = 'softmax', name='conv4?1')(x)

設置classifier 指令的作用是,對網格點上框的可信度進行判斷。在該條控制程序之下,還需編制:

bbox_ regress = Conv2D (4, (1, 1), name = 'conv4?2')(x)

對這一條程序的深度理解是:雖然bbox_regress能夠表示相框的位置,但這一位置是經過縮放后的圖像中的人臉所在位置,并非原始真實位置。

(3)將bbox_regress 映射到真實圖像上,然后完成一次解碼作業。在編制控制程序時,上述“映射+解碼”過程的實現需要調用函數庫中的detct_face_12net函數[6] 。具體的程序是:

def detect _ face _12net ( cls _ prob, roi, out _ side,

scale,width,height,threshold):

# 0,1 表示維度的翻轉

cls_prob = np.swapaxes(cls_prob, 0, 1)

roi = np.swapaxes(roi, 0, 2)

stride = 0

# stride 略等于2,圖片壓縮比例(經過p?net導致的),(x,y)是有人臉概率大于threshold 的點

if out_side ! = 1:

stride = float(2?out_side?1) / (out_side?1)

(x,y) = np.where(cls_prob>=threshold)

boundingbox = np.array([x,y]).T上述程序對應的解析內容是:針對經過縮放及P?NET 處理后的圖片,找到其對應原圖的位置,反向復盤“P?NET 比例+圖像黃金比例”,最后完成映射。完成函數調用及編制程序控制語句后,需要解決的問題如下。

①bbox_regress 映射到真實圖像后,圖片中會出現多個網格點。這些網格點的置信程度有高有低,需要從中篩選出具有高置信度的網格點[7] 。具體的篩選原理是:圍繞“置信程度” 設定一個“ 臨界值”,超出該臨界值,意味著該網格點內存在“人臉信息”;低于該臨界值,表明該網格點內不存在人臉信息。為便于理解,筆者舉一個更簡單、更容易驗證的例子。對很多圖像處理初學者而言,Photoshop 一般是所接觸的第一個圖片處理軟件。在Photoshop軟件中打開一張圖片后,很多人都嘗試過“前推鼠標滑輪,放大圖片”的操作。之后看到的景象是,圖片仿佛被切割成多個“小方格”。這些小方格的本質是“像素”———如果一張背景是白色的人臉圖像,那么在一定深度色彩的像素區間內便“有圖像內容信息”;依然保持白色的像素區間便“沒有圖像內容信息”。這里還需注意一個問題,即當前階段的AI 人工智能(可理解為具有多種處理功能的軟件工具)依然停留在“類人化”的階段,而非“完全具備人類大腦的思維能力”。之所以提出該問題,是因為軟件控制程序的“思考判定邏輯”具有極強的“直觀性”,并不懂得“轉彎”。比如,在人工處理一張人臉圖片時,如果背景是白色,圖像中人的脖頸處出現了部分白色襯衫,那么其會將該“白色襯衫”所在的像素區域認定為“人臉的一部分”,在手動摳圖時會將該區域與人臉區域作為一個整體提取。圖像處理軟件則不具備上述功能,在相關控制程序啟動后,所有“白色像素區域”都會被認定為“該區域不存在人臉信息”,故會將該區域篩除[8] ?;诖?,所設定的“置信程度臨界值”不能引起歧義,否則會導致人臉識別效果大幅度降低。

②對網格點所在的位置進行記錄,即記錄框架內的x,y 軸信息。

③繼續利用函數,完成圖像中框的左上角基點、右下角基點之間的“像素差”。完成堆疊處理后,可以得到boundingbox。在此基礎上, 可以利用bbox _regress 完成對解碼結果的計算,對應的程序為:boundingbox = boundingbox + offset12.0scale

(4)R?NET 層(Refine Network)處理。這一層同樣需要構造一個“卷積神經網絡”[9] 。與P?NET 層相比,該層多出一個“圈層連接”功能。這樣設置的目的是,以更加嚴格的標準,對圖像相關信息及輸入數據進行篩選。具體來說,當圖片進入P?NET 層時,很多用于“預測”的窗口會被留下。通過編制控制算法,將這些預測窗口送入R?NET 層,接受深度篩選。由于卷積神經網絡的存在,大量效果較差的候選框會在該環節被篩除,最后剩下的候選框均具有較為清晰的效果,之后會被送入Bounding?Box Regression,以完成深度優化預測??傮w而言,R?NET 層在使用最后一個卷積層后,還會對規模達到128 的全連接層進行充分利用,以實現“保留更多圖像特征”的目標?;诖?,R?NET 處理層的性能、對圖像信息處理的精確度均優于P?NET 層。

(5)O?NET 層(Output Network)處理。該層的基本結構是一個復雜程度更高的卷積神經網絡,比R?NET 層多一個卷積層[10] 。從某種程度上來看,相較于R?NET 層,O?NET 層的主要功能更接近“輔助回歸”功能———可對圖像中的人臉面部區域進行更具側重性的識別,之后對圖像中能夠體現出人臉面部特征的點位進行“回歸處理”。完成相關作業之后,在圖片中,篩選出一定數量的人臉面部信息對應的多個面部特征點(可進行設置,按照特征代表性由高到低分布),之后完成輸出。完成上述處理后,還需對NMS結果進行驗證處理,最終生成人臉識別信息。一張圖片中存在多個人,依次完成人臉信息的縮放、篩選、提取,可自動完成識別檢測,效率極高。

3 結束語

人工智能的本質是“程序控制”,是指人類編制出具有“定向控制、定向作業”功能的程序算法,在“跑程序”的過程中,將其對特定對象信息進行識別、捕捉、分析、處理,最終給出人們希望看到的結果。相關“處理”流程最初由人工完成,但隨著計算機計算能力的提升,人類大腦的計算速度已經遠遠低于計算機,人工處理過程還容易受到諸多因素的干擾,最終處理效果遠遠無法達到人們的要求。在這種情況下,人工智能技術應運而生,極大地提高了運算處理效率??傊?,相信在不久的未來,更多令人驚嘆的人工智能圖像處理技術會在各行各業得到應用,從而使人類世界更加“多姿多彩”。

參考文獻:

[1] 李峰泉.人工智能的皮革自適應視覺圖像處理切割技術研究[J].中國皮革,2022,51(9):44?48.

[2] 曾光華,肖洋.人工智能算法在圖像處理中的應用見解[J].電子元器件與信息技術,2022,6(7):97?100.

[3] 宋朝暉.人工智能算法在圖像處理中的應用探討[C] / /2022 年第五屆智慧教育與人工智能發展國際學術會議論文集,2022:278?279.

[4] 何映彤.人工智能技術下圖像處理教學的應用研究[J].科學咨詢(教育科研),2022(6):124?126.

[5] 劉云川,韓夢瑤,王浩全,等.人工智能算法在圖像處理中的應用分析[J].電子世界,2021(16):67?68.

[6] 劉磊,袁林德,王紫寧,等.基于人工智能算法的敦煌舞圖像處理技術[J].軟件,2021,42(8):39?41.

[7] 鄧晨曦,蔣一鋤.人工智能算法在圖像處理中的應用探討[J].中國新通信,2020,22(18):98?99.

[8] 張超.人工智能圖像處理的邊緣計算硬件優化[D].哈爾濱:哈爾濱工業大學,2020.

[9] 梁斌.試論人工智能算法在圖像處理中的應用[J].數碼世界,2018(9):220.

[10] 張薇.人工智能算法在圖像處理中的應用[J].通訊世界,2018(4):63?64.

作者簡介:

周媛媛(1988—),碩士,實驗師,研究方向:教育信息化、圖像識別技術、數據可視化。

猜你喜歡
圖像處理人工智能
我校新增“人工智能”本科專業
2019:人工智能
基于圖像處理的機器人精確抓取的設計與實現
機器學習在圖像處理中的應用
人工智能與就業
Bayesian-MCMC算法在計算機圖像處理中的實踐
改進壓縮感知算法的圖像處理仿真研究
數讀人工智能
下一幕,人工智能!
下一幕,人工智能!
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合