999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于人像識別的圖片處理App的設計與實現

2021-04-13 08:46:36陳昊天劉雪飛王碩珩羅凱鴻段棟梁吳靖文
電腦知識與技術 2021年5期

陳昊天 劉雪飛 王碩珩 羅凱鴻 段棟梁 吳靖文

摘要:為了使用戶獲得更加專業的人像處理支持,并且提供更加智能、便捷的人像圖片操作功能,實現了基于一些特定的人像情景的人像深度處理軟件。該軟件使用Android studio進行開發,使用OpenCV和OpenGL實現人像五官的細化處理、人像的補強裝飾、區域渲染、離屏渲染等,實現了一個擁有完整布局、人機交互友好,具有針對人像進行美化、裝飾功能的軟件。

關鍵詞:Android;OpenCV;OpenGL

1 背景

隨著經濟的發展和人民生活水平的進一步提高,人們對于休閑娛樂的質量需求也在日益提高,無論是在微信朋友圈,QQ空間還是微博,隨處可見臉部精美、五官端正的人像照片。目前,各大社交軟件,例如QQ、微信等都自帶簡易的圖片處理功能,然而,這些軟件都不能對人像進行復雜處理或者進行二次加工以提高圖片輸出的質量。另外,PS等專業軟件進行圖片處理對使用者的要求又比較高。即使市場上已有大量諸如此類的圖片處理軟件,如美圖秀秀、VSCO等,但大部分已上市的app在一些功能方面仍然具有局限性,不能完全滿足使用者的個性化需求。因此,開發一個可滿足用戶個性化需求的圖像處理軟件很有必要。

本文實現了一款人像深度處理app,本軟件能根據用戶的個性化需求,對于一張未經處理的圖片,在使用本軟件進行個性化處理后,呈現出自然、美觀的效果。并且給用戶提供更加智能、便捷的圖片操作過程,操作過程簡潔明了,只需幾步便可完成復雜的操作,對于圖片處理不太擅長的用戶,還提供了方案市場這一功能,使用已經預留好的方案,一鍵即可完成人像處理。而那些精通圖片處理的用戶,也可以將自己設計的方案上傳至方案市場,供其他用戶使用。

2 核心技術概述

2.1 OpenGL ES

OpenGL ES(OpenGL for Embeded System)是OpenGL(Open Graphics Library)的精簡子集,是以手持和嵌入式設備為目標的高級3D圖形API,如現在火爆的智能手機,支持桌面系統,還是瀏覽器3D圖形標準WebGL[1]的基礎,支持多個平臺,如桌面端的Linux、Windows,移動端的Android、iOS等。

開發者可以使用Android自帶的OpenGL ES實現創建二維或者三維圖形,以及對圖片進行渲染的功能。現在大多數用的是OpenGL ES2.0[2],較第一個版本增加特殊的效果,能利用最新的硬件所提供的優勢。通過OpenGL ES,將圖片進行著色器渲染。

2.2 OpenCV

OpenCV作為一款開源的計算機視覺框架,封裝了超過1000個常見的圖像處理算法,其SDK語言支持Java、C++、Python等。借助OpenCV提供的SDK,Android開發可以實現圖像處理、識別、關鍵點定位、實時視頻分析與處理等移動端應用開發。

對于人像處理,要實現對皮膚細節的模糊,保留眼睛、鼻子、嘴等部分,通過OpenCV識別這些關鍵點[3],用OpenGL ES著色器渲染,將對應點映射過去,實現離屏渲染。

3 軟件界面設計

3.1 基本界面布局

對于軟件界面的設計,使用activity,一共設計6個界面,分別為主界面、圖片處理界面、選擇方案界面、自定義方案界面、簡易方案界面和設置界面。每個activity包含了用xml編寫的前端界面和用Java編寫的后端代碼。

3.2 前端界面設計

主界面樣式如圖1所示。

先是要選擇處理的文件類型。視頻擬定在下一步改善功能時添加,這里先預留好入口。主頁用來實現核心功能,方案市場提供了一個用戶自由免費分享方案碼的場所。所謂方案碼,是一種儲存每次生成人像方案的一串不規則字符,每個用戶都可以使用這一個方案碼生成同一種方案供自己使用。

簡易方案界面樣式如圖2所示。

簡易方案界面擬設定一屏幕的按鈕,每個按鈕代表了一個簡易功能,包括打馬賽克、濾鏡、翻轉等功能,用戶可以選擇一個或多個功能進行組合,達到自己想要的效果。相對于自定義方案,選擇簡易方案對于那些修圖要求不高的用戶來說可以大大節省時間成本而獲得一個較為滿意的結果。

4 基于OpenCV和OpenGL渲染實現

4.1 環境搭建

軟件開發基于Android Studio,android自帶OpenGL ES,所以不需要另外下載,只需要調用android的OpenGL庫。而OpenCV需要額外配置,大致步驟為將OpenCV的Android版本導入到工程中,之后在Modules選項中,將其中的OpenCVLibrary420的Sdk version和tools version改為和app中的Sdk version和tools version相同的版本。配置完之后,將下載好的OpenCV中的兩個文件復制到工程中。通過JNI配置OpenCV環境。

4.2 渲染機制

圖3為OpenGL渲染[4]的流程線。UI對象使用CPU處理為多維圖形與紋理,然后通過OpenGL ES調用GPU,使用GPU對圖形進行光柵化[5],之后開始繪制渲染后的圖形,渲染完成后再屏幕顯示。

OpenGL通過GLSurfaceView類,將結果直接顯示到屏幕,在頂點里進行紋理的操作,通過片源著色器渲染,可以看到效果。實際中有很多情況并不需要渲染到屏幕上,這個時候使用幀緩沖對象(FBO)就可以很方便地實現這類需求。幀緩沖對象可以讓渲染不渲染到屏幕上,而是渲染到離屏Buffer中,在FBO中進行特效的描述。將每種效果寫到單獨的一個類,并且在屏幕顯示之前的所有效果都不需要顯示到屏幕中,在屏幕顯示之前都將其使用幀緩沖對象進行緩存[6]。

4.3 進行渲染繪制的原理

OpenGL的顯示效果通過一個攝像頭進行,根據攝像頭的不同位置和坐標,會呈現出不同的效果。下面的圖4至圖7展示了部分本軟件使用的技術的原理。

通過OpenGL進行渲染的模板如圖4和圖5所示。在Java層聲明OpenGL世界坐標中的頂點數據,將頂點著色器實例化到OpenGL,通過put方法放入到GPU中。在GPU中聲明的mVertexBuffer只聲明了內存,處于游離狀態。在GPU中同樣包含一個片元著色器,將游離狀態的mVertexBuffer綁定到vPosition,確定要進行的操作。GPU中單獨存在一個采樣器中,對攝像頭進行采樣,從攝像頭中不斷獲取到數據。

以濾鏡處理為例,以上渲染方式可以使用圖5這張更加精簡的圖來概括。

簡要來說,可以將渲染濾鏡的步驟分為三步,第一步是攝像頭收集SurfaceTexture類采集到的數據,第二步是使用OpenGL進行處理,最后一步是將處理好的結果再次渲染到攝像頭。

圖6顯示了兩個所需的著色器程序的調用過程。這兩個著色器程序位于GPU,在頂點著色器中,vPosition為攝像頭采樣形狀,vCoord將坐標傳遞給aCoord,aCoord經過vary修飾,從頂點著色器傳遞到片元著色器,使片元著色器確定上色位置。在片元著色器上,控制vTexture等參數實現改變顏色、質感等操作。

圖7顯示了攝像頭通過FBO的渲染過程。在這里,攝像頭采集到的數據直接輸出到屏幕上是無效數據,需要用FBO進行截流,進行編輯即濾鏡處理,之后傳遞給攝像頭,以實現效果。

4.4 軟件實現特效舉例

下面展示一類渲染過程:眼睛部分渲染,如圖8。

先聲明眼睛坐標的屬性索引。在設置視窗后,要渲染到FBO緩存中,不直接顯示到屏幕。之后使用著色器程序,進行渲染和傳值。編寫頂點數據,傳值后激活;紋理坐標,傳值后激活;傳mFace眼睛坐標給著色器,分別進行左右眼的換算到紋理坐標的操作。

之后進行激活圖層、綁定、傳遞參數、通知OpenGL繪制、解綁FBO、返回FBO的紋理id。

5 結束語

本文基于Android的渲染過程出發,立足于研究Android、OpenCV、OpenGL相關技術和方法,克服了直接通過攝像頭渲染的不足和延遲過高等缺點,實現了通過FBO緩存渲染的方法。運用Android技術實現離屏渲染圖片,便于用戶能夠快速地進行圖片渲染分析,實現了快捷的圖片操作,能更好地適用于處理大量圖片和提高渲染效率,有利于用戶在更短的時間獲得更優質的體驗。下一階段將進一步研究實現對圖片像素操作的關聯分析和智能渲染,使其成為功能更加豐富,性能更加強大的人像深化處理的專業軟件。

參考文獻:

[1] Kang S,Lee J.Developing a tile-based rendering method to improve rendering speed of 3D geospatial data with HTML5 and WebGL[J].Journal of Sensors,2017,2017:1-11.

[2] 李文瑞.基于OpenGL2.0標準的圖像處理單元設計與實現[D].西安:西安電子科技大學,2017.

[3] 沈娟,徐英君.基于OpenCV的視頻人臉檢測[J].數碼世界,2019(10):1-2.

[4] 官酩杰.基于OpenGL ES的移動平臺圖形渲染引擎研究與實現[D].北京:北京交通大學,2010.

[5] 王志方.嵌入式GPU中圖元光柵化的設計與實現[D].長沙:湖南大學,2016.

[6] 高光磊,陳炳發.基于FBO和GPU的動態CEM算法及實現[J].世界科技研究與發展,2008,30(4):440-442.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 亚洲成a人片| 蝌蚪国产精品视频第一页| 国产一区亚洲一区| 天天婬欲婬香婬色婬视频播放| 一区二区理伦视频| 亚洲成人网在线观看| 网久久综合| 久久综合色视频| 久久99精品久久久大学生| 国产伦片中文免费观看| 国产精品香蕉在线观看不卡| 在线五月婷婷| 亚洲精品爱草草视频在线| 欧美日韩第三页| 日韩免费成人| 人妻中文久热无码丝袜| 亚洲一区二区三区香蕉| 久久综合久久鬼| 天堂av综合网| 大香伊人久久| 国产成人综合久久精品下载| 网友自拍视频精品区| 欧美三级日韩三级| 日本免费精品| 国产95在线 | 国产日韩精品欧美一区灰| 亚洲精品国产综合99| 四虎影视库国产精品一区| 国产女人在线视频| 国产精品一区在线观看你懂的| 国产成人一级| 欧美成人A视频| 无码AV高清毛片中国一级毛片| 久久国产精品影院| 久久永久免费人妻精品| 欧美第二区| 久久久久无码精品国产免费| 国产在线一区视频| 亚洲av日韩综合一区尤物| 国产JIZzJIzz视频全部免费| AⅤ色综合久久天堂AV色综合| 欧美一级夜夜爽| 国产女人18毛片水真多1| 国产日本视频91| 色综合网址| 91青青视频| 99热线精品大全在线观看| 国产三级国产精品国产普男人 | 国产精品嫩草影院av | 日韩欧美国产中文| 91福利在线观看视频| 亚洲成A人V欧美综合| 特级毛片免费视频| 亚洲一区二区三区国产精品| 日韩欧美综合在线制服| 国产原创演绎剧情有字幕的| 广东一级毛片| 欧美日韩午夜| 精品欧美视频| 国产一级精品毛片基地| 中文字幕资源站| 奇米精品一区二区三区在线观看| 中文字幕在线一区二区在线| 91精品视频网站| 日韩AV无码一区| 亚洲成人精品在线| 亚洲嫩模喷白浆| 国产精品九九视频| 亚洲bt欧美bt精品| 高清国产va日韩亚洲免费午夜电影| 久热中文字幕在线| 极品av一区二区| 免费jjzz在在线播放国产| 91人人妻人人做人人爽男同| 99这里只有精品6| 激情五月婷婷综合网| 欧美日韩国产成人高清视频| 精品久久久久成人码免费动漫| 午夜福利无码一区二区| 97精品国产高清久久久久蜜芽| 六月婷婷精品视频在线观看| 成人免费视频一区|