デジタル画像処理 - Matlabの上の顔検出に基づきます

A. プロジェクトの目的

特徴抽出は、コンピュータビジョンと画像処理の概念です。それは、画像情報を抽出するために、コンピュータの使用を意味する画像特徴の各画像点か否かを判定する。顔認識と機能の認識は、主要なアプリケーションです。

このプロジェクトのMatlabに基づく顔認識アルゴリズムを設計し、実装するには、顔の特徴のセットを取得し、新しい画像から顔を識別するために、人間の顔の訓練の色を設定します。最後に、拡張は、異なる状況で効果、ならびに顔又は他のいくつかの個人的なオブジェクトを認識するための機能をテストします。

II。原理プロジェクト

1.特徴抽出

特徴抽出の結果は、サブセットは、しばしば孤立ドットの連続曲線または連続した領域である異なるサブセットに分割された画像上の点です。特徴抽出は、一次画像処理動作であり、すなわち、それが画像上の第1の演算処理です。これは、画素が特徴を表しているかどうかを決定するために各ピクセルを検査します。

2.色ヒストグラム法

アイテム取るため、多くのコンピュータ画像特徴抽出アルゴリズムは、プライマリ計算ステップとして使用し、そのため特徴抽出アルゴリズムが多数開発されているのでアルゴリズムの色特性に基づいて色ヒストグラム

多くの画像検索システムにおける色のカラーヒストグラム特徴は、広く使用されています。これは比率が全体画像に異なる色で占められることを説明するが、すなわち、画像またはオブジェクト内のオブジェクトを記載していない各色の空間的な位置のどの、気にしません。色ヒストグラムは難しい画像の自動セグメンテーションのために記載したものに特に適しています。

3.カラー量子化器

オペレータは、各セルは、ヒストグラムになり間、いくつかの小さな色の間隔に分割された色ヒストグラムの色空間に必要なビンこのプロセスが呼び出される色量子化(色量子化)次に、色ヒストグラムは、各セル間の色の範囲内にある画素の数を計算することによって得ることができます。多くのカラー量子化方法、ベクトル量子化、例えば、またはニューラルネットワーククラスタリング方法があります。最も一般的な方法は、均等分割された各成分(次元)の色空間です。対照的に、クラスタリングアルゴリズムは、画像全体の色特徴空間の分布に考慮されるように非常にまばらな特定のビン回避の画素数、より効率的な量子化。

この方法は、上述したカラー量子化は、いくつかの問題を生じます。画像の色ヒストグラムは、我々は、ユークリッド距離または距離L1は、2つの間の類似度を計算を使用する場合は、次に、小さな類似度値となり、ほぼ同一の両者を想定するが、互いにAビンからのオフセット。この欠点を克服するために、同様のではなく、同じ色との類似度を考慮する必要があります。第二の方法は、距離の式を使用することです。別の方法は、いくつかの隣接ビンの各ビン内の画素も寄与するすなわち色ヒストグラム平滑化フィルタを、前進することです。このように、ヒストグラムの類似度と類似ではなく、同じ色との間の類似性にも寄与しました。

適切な選択カラーセルに色(すなわち、ヒストグラムビン)色量子化方法と番号特定のアプリケーションの性能及び効率の要件を。一般に、より高い色を区別する強力な能力の色ヒストグラムとの間のセルの数。しかし、唯一の計算上の負担を増加させないであろう多数のビンカラーヒストグラムは、大きな画像ライブラリのインデックスの確立を助長されていません。そして、いくつかの用途のために、非常に微細な色空間の分割方法を使用すると、検索結果、許容ミスのために特にアプリケーションに関連するイメージを向上させることが必ずしも可能ではありません。

4.プロジェクトアプローチ

この研究では、フォトギャラリーディレクトリの下の28人は、試験サンプル顔訓練基準Vとして、顔を顔。次に、カラー画像の全ての画素について、特性Uを得るために、各色の出現頻度を算出することを特徴とします。

標準トレーニング顔V:(色ビットLのすなわち数)が異なる長さを有する確立するために、ブロック後の画像を量子化する固有ベクトルは、V、およびLは、3,4,5,6-四つの異なるを与えるために採取しましたV。3/4/5/6適切な、3/4/5/6特徴として各ビットを最初UINT8を選択するための手段をとる場合。Lそのため、情報の量が各要素Vに含まれるより大きな、より小さなL、V及び各点の色に対応するより多く。例えば:Lは、V 4、フロント3つのRGB確率と密度と同じ色としてLに対応する各要素(色、すなわち確率密度)がV 3です。同じ理由で5 L。訓練は33回、平均化した後、各ブロック(即ち、分布)、色計算の確率分布の対応するカラーヒストグラムを取得し、最後に標準取得Vを

色特徴量Uを得る:入力画像と(JPEG符号化に類似する)を作成する画像処理ブロック。u®を算出各々の画像ブロックR、及び閾値判定とブロックの係数Vu®計算メジャーの面に隣接し、統一識別ブロック(ブロックで囲まれた)は、ヒトの顔か否かを判定する。小さな正方形の画像、顔認識についての人間の顔と最後のフレーム。

III。デザインのアイデア

設計アルゴリズムのステップは次の通りである:
訓練エクササイズの1 V標準機能セットと、
前記入力画像と(JPEGと同様の符号化)を作成する画像処理ブロック、
3u®算出された各画像ブロックRについては、
4。 ;ブロックは人間の顔であるか否かを閾値判定とVのu®メトリック係数計算、
5隣接面及び統一識別ブロック(ブロックで囲まれました)。

IV。実現

以下の試験結果をアルゴリズムで達成されました。

1.学習特徴標準

我々は、画像のトレーニングセットのみが人間の顔で構成されていると言うことができるようにトレーニング試料観察中面は、各画像は、基本的には唯一のいくつかの他の干渉の顔です。したがって、我々は、定義された関数は、feature_extract()スクリプト研修を実施train.m書き込み、内標準機能のV face_standard.matに結果のファイル、単一画像の特徴抽出を実行します。

feature_extract()キーコードは次の通りであります

pic = double(reshape(pic,size(pic,1)*size(pic,2),1,3));
%新数组pic的维数大小为长*宽*3(有RGB三组值)

v = zeros(2^(3*L),1);%建立特征向量的数组,维数是2的3*L次幂
basic = 2^(8-L);
%初始化 

for i = 1:size(pic,1)    
    a = [pic(i,1,1),pic(i,1,2),pic(i,1,3)]; %取出像素,
    index = sum(floor(a/basic).*(2.^(2*L:-L:0)))+1;
    %计算该颜色对应的下标    
    v(index) = v(index) + 1;             %次数+1
end
v = v/size(pic,1);
%循环统计每个颜色出现的次数并求出频率

フローチャートは次のとおりです。
ここに画像を挿入説明
次のようにtrain.mキーコードがあります

for i = 1:num        
    v{L-2} = v{L-2} + feature_extract('Faces/',strcat(num2str(i),'.bmp'),L);    end

v{L-2} = v{L-2}/num;%进行num次提取特征训练,再取平均值end

%得到v数组

このフローチャートは以下のようになる:
ここに画像を挿入説明
図のV(L = 3)で得られた結果。
ここに画像を挿入説明

2.入力画像処理とそのブロック

、長いサイズの正方形のタイルが処理され、」ブロックを取ることを試みる(16 <= block_l <= 50を、異なる画像に応じて変化する)、撮影ブロックプログレッシブ順序取り込み

どこラインサイズのすべての最後のピースが少ないblock_l * block_lサイズよりも場合でも、一つのことは、補完を行うことが、缶の残りの部分に直接アクセスしません。このブロック・コードは、ブロック内で、シンプルでJPEGエンコードに似て、ここではそれらを繰り返すありません。face_detect()関数を参照してください。

3.計算機能画像ブロックU

単一イメージトレーニング基準の正の特徴と一致する方法を模索するために来ます。ノー料金後で。

4.計算メトリック係数、それによって検出

コードは以下の通りであります:

u = feature_extract(block,L);%获取该图像的特征u             
cor = sqrt(u)'*sqrt(v);%计算系数        
if cor >= threshold%如果大于阈值              
identify(i,j) = 1;%则是人脸            
rectangle('Position',...);%将该图像用红色小方框框出        
end  

このフローチャートは以下のようである:
ここに画像を挿入説明
ただし、ここでの閾値は、好ましくは、より良い認識結果の前に必要な設定されています。この目的のために、書き込みのための異なる閾値のパフォーマンスを比較するためのスクリプト(即ち、図の効果は全て表示する)、次いで、手動による方法のための最適な閾値を選択します。次のような効果があります
ここに画像を挿入説明

5.隣接する正方形の団結とアイデンティティ

彼らは入力して、別の小さなボックスは無視するボックスにちょうど隣接します。レンダリングを(ほとんど)以下のようにGeが修正ケアコードファイルface_detect.mを一緒に移動することができます。
ここに画像を挿入説明

6.テスト

私たちは、その後、テストするための写真を選択:
ここに画像を挿入説明
、。図から分かるように、人間の顔を検出したが、しかし、箱があまりにも多く、人々はまた、顔や他の皮膚アウトを認識し、これは色ヒストグラムに起因する色特徴に基づいているものです、ボディカラーと類似した特性の露出面が、それはまた、同定され得ます。

二つの溶液は、一方が露出し、人体の皮膚を識別するために定義された認識することで、ある一つは、カラーセットからの色のような他の方法を考慮し、そしてようにされています。しかし、L = 6の一般的なケースでは、幾分良好のようです。

V. 延長試験

変換後の1及ぼす影響

次のように画像が変換される
回転()を90度時計回り
(b)に示すように、一定の高さを維持する2倍延伸(imresize)幅
©表面5適宜変更色(imadjust)アルゴリズムによって得られた結果。

コードは以下の通りであります:

img = imread('test.jpg');
[y,num,identify] = face_detect(img,L,thresholds(L-2));
%原图 

img2 = rot90(img);
%将原图翻转90[y,num,identify] = face_detect(img2,L,thresholds(L-2)); 

img3 = imresize(img,[size(img,1) 2*size(img,2)],'nearest');
%将原图宽扩大2[y,num,identify] = face_detect(img3,L,thresholds(L-2)); 

img4 = imadjust(img,[.2 .3 0; .6 .7 1],[]);
%改变颜色对比度和颜色种类,即改变颜色[y,num,identify] = face_detect(img4,L,thresholds(L-2));

:結果は以下の通りである
ここに画像を挿入説明
ように、サイズ、検出のために全く影響を変更した後、画像回転、見ることができます。しかし、変更を行うための色のために、あなたは人の顔を検出することができない、その理由は、あなたが効果的に識別できない場合、アルゴリズムは、訓練された色、色、よりに基づいていることです。かかわらず、色、サイズ変更操作を回転させる、結果が一致しています。

2.拡張

特定の人種や張顔の認識を達成するためのトレーニングセットの数を増やすことによって。あなたはまた、猫などの動物だけでなく、他のいくつかのオブジェクトを識別する考慮し、識別され、限られた認識されないことができます。

VI。リファレンス

コンピュータビジョンによる色ベースの特徴抽出認識https://blog.csdn.net/u012507022/article/details/51614851 https://ww2.mathworks.cn/discovery/face-recognition.html MATLAB認識https://blog.csdn.net/baidu_34971492/article/details/78713367画像特徴抽出アルゴリズム機能extractionhttps://blog.csdn.net/sinat_39372048/article/details/81461636「デジタル画像処理」著者:[米国]ゴンザレス出版社:電子工業プレス

公開された17元の記事 ウォン称賛12 ビュー1668

おすすめ

転載: blog.csdn.net/weixin_42784535/article/details/104672675