1. 程式人生 > >使用PCA實現人臉變換(從一個人臉漸變為另一個)(一)

使用PCA實現人臉變換(從一個人臉漸變為另一個)(一)

原理

        PCA方式用於提取相似樣本的共有特徵,將樣本投影到特徵向量構成的特徵空間可以使用較少的量表示原本複雜的量。在此的基礎上,使用投影值可以重構出樣本。若特徵空間提取優良的話,重構出來的樣本與原始樣本將非常相似。因此可以通過重構的方式來實現人臉的變換。

        本文原理:①將兩個不同的人臉投影到特徵空間,獲得兩個樣本各自的投影座標(n維,n為特徵向量的數量);②在n維空間連線兩個樣本的投影座標,均勻劃分為m段(將產生m-1箇中間變化人臉),得到m-1箇中間座標;③使用獲得的中間座標重構出相應的人臉,即為人臉變換中間臉。

實驗一

        使用一維PCA方式提取特徵臉,使用前十個特徵臉用於投影和重構,計算5箇中間臉。

步驟

        ①使用“FERET_80_80人臉資料庫”,提取每個人的第一張臉的特徵臉,獲得前5個特徵臉如下:

            

        ②載入兩張人臉,並嘗試重構:

        

        ③計算中間臉

            

結果

        效果奇差,重直接重構的效果可以看出,人臉特徵提取不明顯,或者選取的特徵臉太少。

相關推薦

使用PCA實現人臉變換一個人臉漸變一個

原理         PCA方式用於提取相似樣本的共有特徵,將樣本投影到特徵向量構成的特徵空間可以使用較少的量表示原本複雜的量。在此的基礎上,使用投影值可以重構出樣本。若特徵空間提取優良的話,重構出來的樣本與原始樣本將非常相似。因此可以通過重構的方式來實現人臉的變換。  

程式設計:判斷一個字串是否一個字串的子串。

#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *str, *ptr; int i, len_str, len_pt

[LeetCode] Is Subsequence 判斷一個字串是否一個的子序列

宣告:原題目轉載自LeetCode,解答部分為原創 Problem : Given a string s and a string t, check if s is subsequence of t. You may assume that there is on

給定兩個字串,請設計一個方法來判定其中一個字串是否一個字串的置換(容易)

在vs2013寫的程式,使用sort進行排序,然後對比是否完全一樣即可/* 給定兩個字串,請設計一個方法來判定其中一個字串是否為另一個字串的置換。 置換的意思是,通過改變順序可以使得兩個字串相等。 */ #include "stdafx.h" #include <i

編碼實現一個文字檔案圖片一個地方複製到一個地方源路徑到目的路徑可以通過方法引數傳入

public class MyTest { public static void main(String[] args) { try { test(); } catch (Exception e) { e.printStackTrace(); } } publi

android 使用startActivity一個fragment 跳轉一個activity出錯

系統沒有崩潰,run裡也沒有明顯的錯誤,但是event Log裡提示跳轉失敗: 20:14:44 error: cannot connect to daemon 20:14:44 'E:\sdk\platform-tools\adb.exe,start-server' failed --

Java程式碼之JDBC實現資料庫之間定時的表格傳輸一個庫讀取到一個例項,親測有效

package com.openup.system.service.imp;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import ja

Android中AudioFlinger:將AudioTrack一個device切到一個device輸出的實現邏輯

目前在調查AudioFlinger,想做到從一個裝置輸出到輸出到兩個裝置的轉換。面臨以下問題: 1,  某個thread如何改變某個playback執行緒的輸出route. 根據調查的結果,這個route只支援在同一個裝置上的切換,比如在primary裝置內部切換路由,

C#實現一個範圍對映到一個範圍功能

前幾天專案中使用到需要從一個範圍對映到另一個範圍的小功能,在此做一下記錄。如下圖所示,我們需要將input中每個值和output中每個值對應;對應數學公式:化簡得到:在這裡我們使用Unity做簡單測試(如上公式是通用的),我們新建一個空物件,起名RemapTest,新建Rem

使用iframe如何通過url傳參把資料一個頁面傳到一個頁面contentWindow

最近做的專案使用Iframe,使用起來感覺挺方便的。但是唯一感覺不開森的就是使用Iframe後,頁面的位址列的是不改變的哦,那麼我們如何通過url將資料從一個頁面傳到另一個頁面? <div style="background-color: trans

Mac OS X下服務程序中啟動一個應用程式Cocoa Application

- (void) launchAppliction: (NSString*) appPath{ //appPath指向可執行檔案的絕對地址 NSTask *softTask = [[NSTask alloc]init]; [softTask setLaunchPath:appPath]; [softTask

微信開發申請微信到註冊上線的一整套流程第四章 實現天氣預報功能

這一章裡,我們來實現微信上的天氣預報功能,我們使用方倍工作室的天氣預報介面,其介面為 http://apix.sinaapp.com/weather/ 這個介面的引數appkey為公眾號原始id,引數city為城市名 例如,查詢深圳的天氣預報時,將city值做urlenc

suitecrm 如何backup and restore ,一個server 轉移到一個 server . 並保證customer package , customer module 不丟

config apache 技術 command with led ins data mage 原server部分 1 : suite backup 分為 數據庫和 網站 兩部分 , 在 網站目錄下 config.php , 可以看到 數據庫名字 等信息 。 在

springmvc怎麽重定向,一個controller跳到一個controller

save exce exception pac pro 方式 con .net 它的 第一種情況,不帶參數跳轉: 方法一:使用ModelAndView     return new ModelAndView("redirect:/toList");     這樣可以重

IDEA 在某個工程下一個module如何使用一個module中的資源文件.xml .prop等

blog mave 一個 pid 技術 mage module 如何使用 依賴關系 問題如題,經google,解決方案有四種,選擇了比較直觀有效的一種羅列如下: 因為項目采用maven管理,所以我們可以在module2下的pom.xml制定<resource

TP5中通過一個表去取一個表的相對應的名稱

一個 數據庫實例 分享 tp5 nbsp 網頁 名稱 分享圖片 一個表 1.數據庫實例 2.控制器內,先使數據先使頁面(此控制器內為sign表格) 3.封裝一個方法(通過用戶id獲取名稱,此表為name表格的數據) 4.靜態頁面(調用name表格的內容,與sign表格

劍指offer-整數中1出現的次數1到n整數中1出現的次數

cme 劍指offer int gin num count pan acmer n) 題目描述 求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對

一個目錄複製到一個目錄

/// <summary> /// 拷貝oldlab的檔案到newlab下面 /// </summary> /// <param name="sourcePath">lab檔案所在目錄(@"~\labs\oldlab")</param> /// <

劍指offer:(32時間效率 :整數中1出現的次數1到n整數中1出現的次數

求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。ACMer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。 //主要思路

Qt如何將訊息在2個沒有關係的類中一個類傳送到一個類中

條件: ①2個類直接沒有任何關係; ②接收訊息的類必須有一個全域性變數; ③ QMetaObject::invokeMethod((QObject*)全域性變數類, "接收的方法", Qt::AutoConnection, Q_ARG(接收的引數型別, 接收的引數)); cla