影樓精修-手部青筋祛除算法解析

注意:本文樣例圖片為了避免侵權,均使用AIGC生成;

手部青筋祛除科普

????????手部青筋祛除是影樓精修中一個非常精細的工作,需要較高的修圖技巧,目前市面上很少有自動化的青筋祛除功能的,而像素蛋糕目測是第一個做到的。我們先給大家看一下效果示例圖。

????????如示例圖所示,效果圖中美女的手部曝露的青筋消失了,整體效果對比肌膚要更加豐滿一點。

????????這里我將給大家介紹一下這個功能算法要如何實現,我們的目標是自動化處理照片,達到手部青筋祛除的效果,并可調節祛除強度。

算法實現

????????像素蛋糕為了這個效果申請了算法專利CN 119624835 A:一種模擬人工修圖的級聯式人物圖像祛青筋方法。

????????算法流程如下圖所示:

這里我們先看整體流程:

  1. 假設用戶照片原圖為S,手部祛除青筋的效果圖為D。對S進行手部區域檢測,比如手部關鍵點檢測,根據關鍵點計算手部區域圖像位置,將手部區域圖像裁剪出來得到手部圖像A,這里需要記錄裁剪位置,以及仿射變換矩陣H以及逆矩陣NH等,變換主要指縮放旋轉等操作;

  2. 將手部圖像A進行灰度化處理,得到灰度圖A_gray;

  3. 將A和A_gray送入“中性灰平整網絡”,輸出中性灰蒙版圖層,即為圖B;

  4. 將A和B進行柔光圖層混合,得到中性灰平整結果圖C;

  5. 將C和B送入“顏色調整網絡”,得到顏色調整后的結果圖M,M即為祛除青筋且顏色正常的效果圖;

  6. 將M按照仿射變換逆矩陣NH,貼回原圖S,得到最終效果圖D;

????????這個流程中,像素蛋糕設計了兩個網絡模塊“中性灰平整網絡”和“顏色調整網絡”,其中,中性灰平整網絡是用來獲取青筋區域的中性灰調整蒙版,用于調節青筋區域的亮度,將突出的青筋區域亮度平整,變得光滑均勻;而顏色調整網絡用于將青筋區域顏色調整為原圖正常的膚色;

????????中性灰平整網絡如下圖所示:

????????網絡很好理解,輸入手部灰度圖和原圖,輸出中性灰圖層,網絡使用了transformer模塊,從個人角度理解,應該是一個GAN網絡,采用Unet結構,難點在于如何構建數據集。當然,像素蛋糕應該是不缺乏數據的。

????????顏色調整網絡如下圖所示:

????????網絡輸入中性灰平整結果圖+中性灰圖層蒙版,輸出顏色調整結果圖,其中中性灰圖層蒙版實際上是導向作用,與中性灰平整網絡類似。這一步實際上也可以使用GAN網絡來實現,或者使用LUT調色網絡等。

????????上面就是像素蛋糕手部青筋祛除功能的算法流程。

????????針對上面的過程,大體思路是沒有問題的,個人認為是正確的(畢竟是專利,需要以謹慎的思考來看待),但是,從我個人經驗,這里提供一個更為簡單的算法流程,或者說對上述流程進行改進。

????????本人改進的思路原理:手部暴露的青筋,整體上表現出來為亮度明暗突變+青綠顏色變化,而中性灰的概念,我們前面中性灰磨皮也介紹過,他的作用就是改變亮度信息,但實際上,以RGB顏色空間為例,我們如果在三通道上分別做中性灰蒙版,他就可以變成一個即改變亮度,也改變顏色的彩色中性灰蒙版,因此,從這個角度來看,我們不需要顏色調整網絡,也可以達到最終的效果。

????????因此,本人算法流程如下:

  1. 假設用戶照片原圖為S,手部祛除青筋的效果圖為D。對S進行手部區域檢測,比如手部關鍵點檢測,根據關鍵點計算手部區域圖像位置,將手部區域圖像裁剪出來得到手部圖像A,這里需要記錄裁剪位置,以及仿射變換矩陣H以及逆矩陣NH等,變換主要指縮放旋轉等操作;

  2. 構建一個彩色中性灰平整網絡,輸入為手部區域圖像A,輸出為彩色中性灰蒙版圖層A_color;

  3. 將A_color按照仿射變換逆矩陣NH貼回原圖S,與原圖S對應區域直接進行柔光圖層混合,同時設定混合強度調節參數k,用于調節混合效果的程度,這一步直接可以得到青筋祛除效果圖D;

????????柔光計算公式(A為原圖像素,B為中性灰像素):

????????其中,彩色中性灰平整網絡可使用CGAN,設置輸入為512×512×3,實際也可以更小,比如384×384×3,由于得到的是中性灰圖層,縮放到高分辨率后與原圖進行柔光處理,并不會有損原圖清晰度信息,因此,可以很好的應對影樓大圖處理的清晰度要求。

????????這里,給出一組測試:

????????可以看到,本人方案效果與像素蛋糕效果幾乎一致,方案流程上要更加簡單,算法完全可以做到毫秒級快速處理高分辨率大圖;

注意:彩色中性灰的思想,用途非常廣泛,可以用于磨皮,祛除各類皺紋(黑眼圈/眼角紋/抬頭紋/頸紋/法令紋等等),大家可以自行發揮,對于本人專欄中,部分思路相同的功能,也可能不會再重復介紹,有興趣的也可以私聊,共勉!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80520.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80520.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80520.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智慧景區國標GB28181視頻平臺EasyGBS視頻融合應用全場景解決方案

一、方案背景? 隨著旅游業的蓬勃發展,景區的規模不斷擴大,游客數量持續增長,對景區的安全管理和游客服務質量提出了更高要求。打造一個高效、智能的視頻監控及管理系統成為景區運營的關鍵。EasyGBS作為一款基于國標GB28181協議的視頻云服務…

dedecms織夢arclist標簽noflag屬性過濾多個參數

織夢dedecms系統arclist標簽noflag屬性默認是只能過濾一個參數,比如過濾推薦是noflagc,過濾有圖片的文章是noflagc,在模板制作過程中,有時候我們為了seo和避免重復,需要過濾多個參數。今天小編就來跟大家講講織夢dedec…

如何用go語言搭MCP

1.什么是MCP? MCP是“模型上下文協議(Model Context Protocol)”的簡稱,用一句簡單通俗易懂的話描述: 是一種讓 AI 模型能夠無縫連接到外部工具和數據源的標準化方式。想象它就像 AI 的“萬能接口”,能讓 AI 像用 USB 線連接設備一樣,輕松調用其他程序或服務。2.官方M…

js 的call 和apply方法用處

主要用于ECMAScript與宿主環境(文檔對象(DOM)、瀏覽器對象(BOM))的交互中; 例子:function changeStyle(attr, value){ this.style[attr] value; } …

移動通信行業術語

英文縮寫英文全稱中文名稱解釋/上下文舉例IMSIP Multimedia SubsystemIP多媒體子系統SIPSession Initiation Protocol會話初始化協議常見小寫sip同。ePDG/EPDGEvolved Packet Data Gateway演進分組數據網關 EPDG是LTE(4G)和后續蜂窩網絡架構(…

c++11新特性隨筆

1.統一初始化特性 c98中不支持花括號進行初始化&#xff0c;編譯時會報錯&#xff0c;在11當中初始化可以通過{}括號進行統一初始化。 c98編譯報錯 c11: #include <iostream> #include <set> #include <string> #include <vector>int main() {std:…

Spark-Streaming簡介 核心編程

1. Spark-Streaming概述 定義&#xff1a;用于處理流式數據&#xff0c;支持多種數據輸入源&#xff0c;可運用Spark原語運算&#xff0c;結果能保存于多處。它以離散化流&#xff08;DStream&#xff09;為抽象表示&#xff0c;是RDD在實時數據處理場景的封裝。 特點&#x…

SpringbootWeb開發(注解和依賴配置)

Lombok 工具 Spring Web web開發相關依賴 MyBatis Framework MyBatis驅動 MySQL Driver MySql驅動包 Restful 風格 Slf4j 記錄日志對象 RequestMapping(value “/depts”, method RequestMethod.GET) //指定請求方式為GET method 指定請求方式 GetMapping 限定請求方式為Get…

雜項知識點

雜項 1 激活函數1.1 sigmoid1.2 tanh1.3 Relu1.4 leakRelu 1 激活函數 常用的激活函數包括sigmoid tanh Relu leakRelu 1.1 sigmoid import torch import numpy as np import matplotlib.pyplot as plt # sigmoid tanh Relu leakRelu ## 1 sigmoid ### 1.1 代碼復現sig…

計算機組成原理:指令系統

計算機組成原理:指令集系統 指令集體系結構(ISA)ISA定義ISA包含的內容舉個栗子指令的基本組成(操作碼+地址碼)指令分類:地址碼的個數定長操作碼變長操作碼變長操作碼的原則變長操作碼的設計指令尋址尋址方式的目的尋址方式分類有效地址直接在指令中給出有效地址間接給出有效地…

Rust實現高性能目錄掃描工具ll的技術解析

Rust實現高性能目錄掃描工具ll的技術解析 一、項目概述 本項目使用Rust構建了一個類ls命令行工具&#xff0c;具備以下核心特性&#xff1a; 多格式文件信息展示并行目錄掃描加速人類可讀文件大小運行時性能統計交互式進度提示 二、技術架構 1. 關鍵技術棧 clap&#xff…

【深度強化學習 DRL 快速實踐】策略梯度算法 (PG)

PG&#xff08;1984&#xff0c;Sutton&#xff09; 核心改進點 策略梯度算法 (PG): 直接對策略函數進行建模&#xff0c;可以適用于連續的動作空間 model-free, on-policy, PG, stochastic 策略 核心改進點說明策略梯度優化通過Actor網絡直接優化策略&#xff0c;適應連續動作…

G1垃圾回收器中YoungGC和MixedGC的區別

在 G1 垃圾回收器中&#xff0c;Mixed GC 和 Young GC 的區別主要體現在以下幾個方面&#xff1a; 作用范圍 Young GC&#xff1a;僅針對年輕代中的Region進行回收&#xff0c;包括 Eden 區和 Survivor 區的 Region。Mixed GC&#xff1a;會回收所有年輕代的 Region 以及部分…

從LLM到AI Agent的技術演進路徑:架構解析與實現邏輯

人工智能技術正經歷從基礎語言模型到智能執行體的關鍵躍遷。解析LLM→RAG→Agent的技術演進三層架構&#xff0c;拆解大模型與知識庫、工具鏈的融合機理&#xff0c;揭示感知-決策-執行閉環系統的構建邏輯。通過架構范式解析、代碼實現示例及多模態實踐案例&#xff0c;為開發者…

commix

Commix 基礎用法和高級用法 基礎用法 Commix 是一個自動化的命令行注入工具&#xff0c;用于檢測和利用 Web 應用程序中的命令注入漏洞。以下是基本使用方法&#xff1a; 基本掃描 python commix.py -u "http://example.com/vuln.php?id1"指定注入點 python commi…

Git刪除指定歷史版本

問題&#xff1a; 在Git提交版本&#xff0c;有時有些小版本相比較于后續的大版本&#xff0c;都會包含&#xff0c;且后續存在的意義不太大&#xff0c;一般認為是可以刪除的。或者&#xff0c;中間一些版本有問題但是也提交了&#xff0c;拉取這些版本根本沒用&#xff0c;這…

使用 Pandas 進行多格式數據整合:從 Excel、JSON 到 HTML 的處理實戰

前言 在數據處理與分析的實際場景中&#xff0c;我們經常需要整合不同格式的數據&#xff0c;例如 Excel 表格、JSON 配置文件、HTML 報表等。本文以一個具體任務&#xff08;藍橋杯模擬練習題&#xff09;為例&#xff0c;詳細講解如何使用 Python 的 Pandas 庫結合其他工具&…

今日行情明日機會——20250425

指數依然在震蕩&#xff0c;等待方向選擇&#xff0c;整體量能不搞但個股紅多綠少。 2025年4月25日漲停板行業方向分析如下&#xff1a; 一、核心行業方向及驅動邏輯 一季報增長&#xff08;17家漲停&#xff09; 核心個股&#xff1a;惠而浦、鴻博股份、衛星化學驅動邏輯&am…

Python 快速獲取Excel工作表名稱

文章目錄 前言準備工作Python 獲取Excel中所有工作表的名稱Python 獲取Excel中隱藏工作表的名稱 前言 在數據分析與辦公自動化領域&#xff0c;通過Python處理Excel文件已成為必備技能。通過獲取工作表名稱&#xff0c;我們可以&#xff1a; 快速了解文件結構自動化處理多工作…

寧德時代25年時代長安動力電池社招入職測評SHL題庫Verify測評語言理解數字推理真題

測試分為語言和數字兩部分&#xff0c;測試時間各為17分鐘&#xff0c;測試正式開始后不能中斷或暫停