1、1基 于 PCA 的 人 脸 识 别 算 法Alen Fielding摘 要 :文 章 具 体 讨 论 了 主 成 分 分 析 ( PCA)人 脸 识 别 算 法 的 原 理 及 实 现 。 它 具 有 简 单 、 快 速 和 易 行等 特 点 ,能 从 整 体 上 反 映 人 脸 图 像 的 灰 度 相 关 性 具 有 一 定 的 实 用 价 值 。关 键 词 :人 脸 识 别 ;PCA;生 物 特 征 ;识 别 技 术中 图 分 类 号 : TP302 文 献 标 识 码 : AFace recognition method based on PCAZhangjinhua(Informat
2、ion engineering college, Southwest university of science and technology, Sichuan, 621010,China)Abstract : The paper discussed the principal component analysis (PCA) face recognition algorithm ofprinciple and realization. It is simple, rapid and easy wait for a characteristic, can reflect from whole
3、faceimage gray correlation has certain practical value.K ey words : Face recognition; PCA; Biological characteristics; Recognition technology1 引 言PCA, 即 Principal Component Analysis, 主 成 分 分 析 方 法 , 是 一 种 得 到 广 泛 应 用的 事 实 上 的 标 准 人 脸 识 别 方 法 。 传 统 主 成 分 分 析 方 法 的 基 本 原 理 是 : 利 用 K-L 变 换 抽取 人 脸 的 主 要
4、 成 分 , 构 成 特 征 脸 空 间 , 识 别 时 将 测 试 图 像 投 影 到 此 空 间 , 得 到 一 组 投影 系 数 , 通 过 与 各 个 人 脸 图 像 比 较 进 行 识 别 。 这 种 方 法 使 得 压 缩 前 后 的 均 方 误 差 最 小 ,且 变 换 后 的 低 维 空 间 有 很 好 的 分 辨 能 力 。2 K-L变 换PCA 方 法 是 由 Turk和 Pentlad提 出 来 的 , 它 的 基 础 就 是 Karhunen-Loeve 变 换 ( 简称 K-L变 换 ) , 是 一 种 常 用 的 正 交 变 换 。 首 先 对 K-L变 换 作 一
5、 个 简 单 介 绍 :假 设 X为 n维 的 随 机 变 量 , X可 以 用 n个 基 向 量 的 加 权 和 来 表 示 :X= ni a1i i式 中 : i是 加 权 系 数 , i是 基 向 量 , 此 式 可 以 用 矩 阵 的 形 式 表 示 :X =( 1 , 2, 3 , , n)( 1, 2 , n)= 2系 数 向 量 为 : = TX综 上 所 述 , K-L展 开 式 的 系 数 可 用 下 列 步 骤 求 出 :步 骤 一 求 随 机 向 量 X 的 自 相 关 矩 阵 R=EXTX,由 于 没 有 类 别 信 息 的 样 本 集 的 均 值 向量 , 常 常 没
6、 有 意 义 , 所 以 也 可 以 把 数 据 的 协 方 差 矩 阵 =E(x- )(x- )T作为 K-L坐 标 系 的 产 生 矩 阵 , 这 里 是 总 体 均 值 向 量 。步 骤 二 求 出 自 相 关 矩 阵 或 者 协 方 差 矩 阵 R的 本 征 值 i和 本 征 向 量 i, =( 1 , 2, 3 , , n)步 骤 三 展 开 式 系 数 即 为 = TXK-L变 换 的 实 质 是 建 立 一 个 新 的 坐 标 系 , 将 一 个 物 体 主 轴 沿 特 征 矢 量 对 齐 的 转 变 换 ,这 个 变 换 解 除 了 原 有 数 据 向 量 的 各 个 分 量
7、之 间 相 关 性 , 从 而 有 可 能 去 掉 那 些 带 有 较 少信 息 的 坐 标 系 以 达 到 降 低 特 征 空 间 维 数 的 目 的 。3 PCA方 法PCA方 法 , 也 被 叫 做 特 征 脸 方 法 (eigenfaces), 是 一 种 基 于 整 幅 人 脸 图 像 的 识 别 算 法 ,被 广 泛 用 于 降 维 , 在 人 脸 识 别 领 域 也 表 现 突 出 。 一 个 N N的 二 维 脸 部 图 片 可 以 看 成 是 N的 一 个 一 维 向 量 , 一 张 112 92的 图 片 可 以 看 成 是 一 个 10, 304维 的 向 量 , 同 时
8、 也 可 以看 成 是 一 个 10, 304维 空 间 中 一 点 。 图 片 映 射 到 这 个 巨 大 的 空 间 后 , 由 于 人 脸 的 构 造 相对 来 说 比 较 接 近 , 因 此 , 可 以 用 一 个 相 应 的 低 维 子 空 间 来 表 示 。 我 们 把 这 个 子 空 间 叫 做“ 脸 空 间 ” 。 PCA的 主 要 思 想 就 是 找 到 能 够 最 好 地 说 明 图 片 在 图 片 空 间 中 的 分 布 情 况 的 那些 向 量 。 这 些 向 量 能 够 定 义 “ 脸 空 间 ” , 每 个 向 量 的 长 度 为 N, 描 述 一 张 N N的 图
9、 片 ,并 且 是 原 始 脸 部 图 片 的 一 个 线 性 组 合 。 对 于 一 副 M*N的 人 脸 图 像 , 将 其 每 列 相 连 构 成 一个 大 小 为 D=M*N维 的 列 向 量 。 D就 是 人 脸 图 像 的 维 数 , 也 即 是 图 像 空 间 的 维 数 。 设 n是训 练 样 本 的 数 目 ; Xj表 示 第 j幅 人 脸 图 像 形 成 的 人 脸 向 量 , 则 所 需 样 本 的 协 方 差 矩 阵 为 :Sr= 1 ( )( )N Tj ij x u x u (1)其 中 u为 训 练 样 本 的 平 均 图 像 向 量 :u = 11 n jj x
10、n (2)令 A=x1-u x2-u xn-u,则 有 Sr=AAT,其 维 数 为 D*D。3根 据 K-L变 换 原 理 , 需 要 求 得 的 新 坐 标 系 由 矩 阵 AAT的 非 零 特 征 值 所 对 应 得 特 征 向量 组 成 。 直 接 计 算 的 计 算 量 比 较 大 , 所 以 采 用 奇 异 值 分 解 ( SVD) 定 理 , 通 过 求 解 ATA的 特 征 值 和 特 征 向 量 来 获 得 AAT的 特 征 值 和 特 征 向 量 。依 据 SVD定 理 , 令 li(i=1,2, ,r)为 矩 阵 ATA的 r个 非 零 特 征 值 , vi为 ATA对
11、应于 li的 特 征 向 量 , 则 AAT的 正 交 归 一 特 征 向 量 ui为 :1i iiu Avl (i=1,2, r) (3)则 特 征 脸 空 间 为 : w=(u1 ,u2 ur,)。将 训 练 样 本 投 影 到 “ 特 征 脸 ” 空 间 , 得 到 一 组 投 影 向 量 =wTu, 构 成 人 脸 识 别 的 数据 库 。 在 识 别 时 , 先 将 每 一 幅 待 是 识 别 的 人 脸 图 像 投 影 到 “ 特 征 脸 ” 空 间 , 再 利 用 最 近邻 分 类 器 的 比 较 其 与 库 中 人 脸 的 位 置 , 从 而 识 别 出 该 图 像 是 否 是
12、 库 中 的 人 脸 , 如 果 是 ,是 哪 一 个 人 脸 。4 利 用 PCA进 行 人 脸 识 别完 整 的 PCA人 脸 识 别 的 应 用 包 括 几 个 步 骤 : 人 脸 图 像 预 处 理 ; 读 入 人 脸 库 , 训 练 形成 特 征 子 空 间 ; 把 训 练 图 像 和 测 试 图 像 投 影 到 上 一 步 骤 中 得 到 的 子 空 间 上 ; 选 择 一 定 的距 离 函 数 进 行 识 别 。本 文 采 用 matlab7.5作 为 工 具 平 台 , 实 现 了 一 个 人 脸 自 动 识 别 的 系 统 原 型 。 实 验 在样 本 图 库 英 国 剑 桥
13、 大 学 的 ORL( Olivetti Research Laboratory) 人 脸 库 上 进 行 ,它 为 网上 下 载 的 国 外 标 准 人 脸 数 据 库 。 ORL 库 包 含 40 个 人 ,每 个 人 10 副 图 像 ,共 计 400 幅 人脸 正 面 图 像 ,每 幅 图 像 大 小 为 92 112,图 像 是 在 不 同 时 间 ,光 线 轻 微 变 化 的 条 件 下 摄 制的 ,其 中 包 括 姿 态 、 光 照 和 表 情 的 差 别 。 其 中 部 分 如 图 1 所 示 :图 1 ORL 人 脸 数 据 库 中 的 5幅 图 像该 数 据 库 提 供 了
14、 经 过 预 处 理 的 人 脸 训 练 集 和 测 试 集 。 选 取 前 5 张 人 脸 图 像 作 为 训 练样 本 ,后 5 张 人 脸 图 像 作 为 测 试 样 本 。 本 实 验 运 行 的 环 境 是 IntelCelero n CPU 2.00GHz处 理 器 、 512MB 内 存 ,Window s XP 操 作 系 统 ,对 ORL 人 脸 库 样 本 训 练 时 间 为 70. 91s,4识 别 率 为 90% ,训 练 样 本 数 目 多 增 加 人 脸 特 征 库 的 容 量 ,会 几 何 级 增 加 人 脸 识 别 核 心 算法 的 时 间 和 空 间 复 杂
15、度 。 在 识 别 结 果 的 显 示 窗 口 中 , 一 共 显 示 了 在 整 个 人 脸 图 像 库 中 最小 的 10 个 欧 氏 距 离 ,它 们 的 排 列 也 是 从 小 到 大 进 行 排 列 的 ,同 时 , 换 句 话 说 ,这 10 个 欧氏 距 离 ,也 就 分 别 代 表 了 与 实 验 中 选 取 的 待 识 别 的 人 脸 图 像 最 相 近 的 10 幅 人 脸 图 像 。 距离 最 近 , 当 然 也 就 是 我 们 实 验 所 需 识 别 的 人 脸 图 像 。下 面 详 细 描 述 整 个 过 程 :4.1 读 入 人 脸 库归 一 化 人 脸 库 后 ,
16、 将 库 中 的 没 人 选 择 一 定 数 量 的 图 像 构 成 训 练 集 , 其 余 的 构 成 测试 集 。 设 归 一 化 后 的 图 像 时 n*m维 , 按 列 相 连 就 构 成 N=n*m维 矢 量 , 可 视 为 N维 空 间 中的 一 个 点 , 可 以 空 过 K-L变 换 用 一 个 低 维 子 空 间 描 述 这 个 图 像 。4.2 计 算 通 过 K-L变 换 的 生 成 矩 阵所 有 训 练 样 本 的 协 方 差 矩 阵 为 ( 以 下 三 个 等 价 ) ;a. C1=( 1 .M k kk x x T)/M-mx.mxTb. C1=(A.AT)/M (
17、1)c. C1= 1 ( )( )M Ti x i xi x m x m /MA=( 1 2, , m), i=xi-mx, 其 中 mx是 平 均 人 脸 , M 是 训 练 人 脸 数 , 协 方 差 矩阵 C1是 一 个 N*N的 矩 阵 , N是 xi的 维 数 。为 了 方 便 计 算 特 征 值 和 特 征 向 量 , 一 般 选 用 第 二 个 公 式 。 根 据 K-L 变 换 原 理 , 我们 所 求 的 新 坐 标 即 由 矩 阵 A.AT的 非 零 特 征 值 所 对 应 的 特 征 向 量 组 成 。 直 接 求 N*N 大 小矩 阵 的 C1的 特 征 值 和 正 交
18、 归 一 特 征 向 量 是 很 困 难 的 , 根 据 奇 异 值 分 解 原 理 , 可 以 通 过求 解 ATA的 特 征 值 和 特 征 向 量 来 获 得 AAT的 特 征 值 和 特 征 向 量 。4.3 识 别利 用 公 式 Y=UT*X, 首 先 把 所 有 图 片 进 行 投 影 , 然 后 对 于 测 试 图 片 也 进 行 同 样 的 投影 , 采 用 判 别 函 数 对 投 影 系 数 进 行 识 别 。5 结 论 与 展 望5人 脸 识 别 是 目 前 较 活 跃 的 研 究 领 域 , 本 文 详 细 给 出 了 基 于 主 成 分 分 析的 人 脸 特 征 提 取
19、 的 原 理 与 方 法 。 并 使 用 matlab 作 为 工 具 平 台 , 实 现 了 一 个人 脸 自 动 识 别 的 系 统 原 型 。 实 验 结 果 表 明 , 该 系 统 识 别 率 为 85%, 达 到 预 期的 效 果 。 如 果 想 进 一 步 提 高 人 脸 识 别 率 , 可 以 考 虑 与 其 他 方 法 结 合 。 仅 单独 使 用 任 何 一 种 现 有 的 方 法 一 般 都 不 会 取 得 很 好 的 识 别 效 果 , 将 其 他 人 脸识 别 方 法 组 合 是 今 后 研 究 的 一 种 趋 势 。 也 可 以 考 虑 改 进 分 类 决 策 的 方
20、 法 。本 系 统 采 用 的 最 小 距 离 分 类 法 属 于 线 性 的 分 类 器 , 而 利 用 神 经 网 络 这 类 学习 能 力 更 强 的 非 线 性 分 类 器 对 高 维 人 脸 识 别 问 题 可 能 会 有 更 好 的 解 决 。参 考 文 献 :1 邓 楠 , 基 于 主 成 份 分 析 的 人 脸 识 别 . 2006.06.2 龚 勋 , PCA 与 人 脸 识 别 及 其 理 论 基 础 . 2007.04.3 田 印 中 , 董 志 学 , 黄 建 伟 , 基 于 PCA 的 人 脸 识 别 算 法 研 究 及 实 现 . 2010.03.4 李 华 胜 ,
21、 杨 桦 ,袁 保 宗 . 人 脸 识 别 系 统 中 的 特 征 提 取 . 2001,06.5 温 福 喜 , 刘 宏 伟 . 基 于 2D PCA 和 2D LDA 的 人 脸 识 别 方 法 . 2007.08.6 李 刚 , 高 政 .人 脸 识 别 理 论 研 究 进 展 . 2003, 01.7 张 翠 平 , 苏 光 大 .人 脸 识 别 技 术 综 述 . 2000, 05.8 罗 昊 , 孟 传 良 .基 于 特 征 脸 和 LDA 的 人 脸 识 别 .2005,12附 录-Matlab源 代 码 :functionFaceRecognition6clear%calcxm
22、ean,sigmaanditseigendecompositionallsamples=;%所 有 训 练 图 像fori=1:40forj=1:5a=imread(strcat(D:rawdataORLs,num2str(i),num2str(j),.pgm);%imshow(a);b=a(1:112*92);%b是 行 矢 量1N, 其 中N10304, 提 取 顺 序 是 先 列 后 行 , 即 从 上到 下 , 从 左 到 右b=double(b);allsamples=allsamples;b;%allsamples是 一 个M*N矩 阵 ,allsamples中 每 一 行 数 据
23、 代 表 一 张 图 片 , 其 中M200endendsamplemean=mean(allsamples);%平 均 图 片 ,1Nfori=1:200xmean(i,:)=allsamples(i,:)-samplemean;%xmean是 一 个MN矩阵 ,xmean每 一 行 保 存 的 数 据 是 “ 每 个 图 片 数 据-平 均 图 片 ”end;sigma=xmean*xmean;%M*M阶 矩 阵vd=eig(sigma);d1=diag(d);d2index=sort(d1);%以 升 序 排 序cols=size(v,2);%特 征 向 量 矩 阵 的 列 数fori=
24、1:colsvsort(:,i)=v(:,index(cols-i+1);%vsort是 一 个M*col(注:col一 般 等 于M)阶 矩 阵 , 保 存 的 是 按 降 序 排 列 的 特 征 向 量,每 一 列 构 成 一 个 特 征 向 量dsort(i)=d1(index(cols-i+1);%dsort保 存 的 是 按 降 序 排 列 的 特 征 值 ,是 一 维 行 向 量end%完 成 降 序 排 列%以 下 选 择90%的 能 量dsum=sum(dsort);dsum_extract=0;p=0;while(dsum_extract/dsum0)base(:,i)=ds
25、ort(i)(-1/2)*xmean*vsort(:,i);%base是Np阶 矩阵 , 除 以dsort(i)(1/2)是 对 人 脸 图 像 的 标 准 化 , 详 见 基 于PCA的 人 脸 识 别 算 法 研 究 p317i=i+1;end%addbywolfsky就 是 下 面 两 行 代 码 , 将 训 练 样 本 对 坐 标 系 上 进 行 投 影,得 到 一 个M*p阶 矩阵allcoorallcoor=allsamples*base;accu=0;%测 试 过 程fori=1:40forj=6:10%读 入40x5副 测 试 图 像a=imread(strcat(D:rawd
26、ataORLs,num2str(i),num2str(j),.pgm);b=a(1:10304);b=double(b);tcoor=b*base;%计 算 坐 标 , 是1p阶 矩 阵fork=1:200mdist(k)=norm(tcoor-allcoor(k,:);end;%三 阶 近 邻dist,index2=sort(mdist);class1=floor(index2(1)/5)+1;class2=floor(index2(2)/5)+1;class3=floor(index2(3)/5)+1;ifclass1=class2elseifclass1=class2class=class1;elseifclass2=class3class=class2;end;ifclass=iaccu=accu+1;end;end;end;accuracy=accu/200%输 出 识 别 率