clmtrackr.js

一、简介

clmtrackr是一个javascript库,GitHub地址,用于将面部模型与视频或图像中的面部进行拟合。正如Jason M.Saragih的论文所描述的,它目前是由正则化的地标均值漂移拟合的约束局部模型的实现。clmtrackr跟踪一个面,并将面模型的坐标位置输出为一个数组,遵循下面的模型编号:
在这里插入图片描述

参考-概述
该库提供了一些在MUCT数据库上训练的通用人脸模型和一些附加的自注释图像。查看用于构建自己模型的clmtools。
为了在视频中进行跟踪,建议使用支持WebGL的浏览器,尽管库应该可以在任何现代浏览器上工作。
有关受约束的本地模型的更多信息,请参阅Yang Xiaoguang的优秀教程,该教程对实现此库有很大帮助。
功能

  • 图像跟踪
  • 视频跟踪
  • 人脸替换
  • 面部遮盖
  • 实时人脸变形
  • 情绪检测
  • 漫画脸

二、获取人脸坐标

下载GitHub源码,然后获取人脸坐标点:

在clmtrackr-dev\examples\face_mask.html页面中添加,拟合人脸的打印

var currentMask = 0;
				var animationRequest;
				var face_list = new Array()
				var face_list_index = 0
				var temp_face 
				function addFace(){
					
					var mycars = new Array()
						for(var j=0;j<71;j++){
							mycars[2* j] = temp_face[j][0];
							mycars[2 * j + 1] = temp_face[j][1];
						}
						face_list[face_list_index] = mycars
						face_list_index += 1
						console.log(face_list)
						//展示
//						alert(document.getElementById('name_input').value)
						alert("已添加" + face_list.length + "组人脸\n还差" +  (5 - face_list.length) + "组")
						data = JSON.stringify({
								'name': document.getElementById('name_input').value,
								'face': face_list
							})
						if(face_list.length == 5){
							alert("感谢你的帮助!")
							$.ajax({				
								url: 'http://127.0.0.1:80/login',
								data:data,
								type: 'post',			
								dataType: 'json',
								success:function(result){			
									console.log("succ")	
								},			  
								error:function(res){	
									console.log(res);
//									alert("res")			
								}			
							});
						}
				}
				//询问是否将这组人脸添加进去
				function thrownQustion(){
					if(window.confirm('你确定要添加这组人脸信息吗?')){
		                 addFace()
		                 return true;
		              }else{
		                 //alert("取消");
		                 return false;
		             }
				}

flask服务器端接收人脸信息

#_*_coding:utf8_*_
from face_compute.face_csv import *
from flask import Flask, request, jsonify, render_template, make_response, Response
import json
from flask_cors import CORS


app = Flask(__name__)
CORS(app, resources=r'/*')

@app.route('/test',methods = ['POST', 'GET'])
def test():
    return "sucess"


@app.route('/login', methods=['POST', 'GET'])
def login():
    face1 = []
    name1 = ""
    get_data = json.loads(request.get_data())
    print(get_data)
    result = []
    face = get_data['face']
    name = get_data['name']
    print(face)#打印出人脸信息
    print(name)

    addFacePointList(face, name)#添加人脸信息,可以注释掉
    return_dict = {'result': "sucess"}
    return Response(json.dumps(return_dict), content_type='application/json')
    # return "sucess"



if __name__ == '__main__':
    app.run(host="0.0.0.0", port=80)


三、人脸编码:

第一步:后端收到的人脸特征点坐标,排列方式( x 0 , y 1 , . . . , x 70 , y 70 x_0, y_1, ... , x_{70}, y_{70} ):

68.02969417,170.7858152,67.55409637,187.2565698,70.32396463,202.385734,75.22430006,217.1625959,82.79318217,229.8786489,93.14250218,239.6412101,105.3708386,246.6468553,119.3302982,248.5015418,132.9314337,244.8064023,144.25398,236.2561254,153.2946349,225.0977126,159.1491445,211.2710388,......,114.7377799,183.5704604,86.72838982,163.9496996,96.6436329,162.8250621,96.59075575,167.0019398,87.42136891,168.0661804,139.7337411,160.195897,129.7450104,160.5052976,130.4119868,164.6114374,139.6415895,164.3760974

第二步:将71个坐标点转换为2485个距离

0.38659066955769267, 0.7223637236753394, 1.0810676454524326, 1.3883569015206871, 1.6681271001648377, 1.9425862744959284, 2.140958203982484, 2.267891019413084, 2.308863056902609, 2.327477293980102, 2.3083959311270386, 2.2449703634643914, 2.199704449299509, 2.1411648452599037, 1.9274771927241987, 1.7544168410961314, 1.4935329069368664, 1.3043984822909573, 0.3131415525488529, 0.517698226695609, 0.7268392570343718, 0.9020058785182141, 0.3925691835675478, 0.5816029501224887, 0.7832372910423839, 0.5740743738173669, 0.572848207906318, 1.7884353025189976, 1.5905333496642842, 1.3635778938575827, 1.5742992075414561, 1.573036474744068, 1.070033016732407, 0.9417472646771409, 0.9413788595720405, 1.0890383851739773, 1.2852518132351805, 1.4925626066007005, 1.5133739129217227, 1.3570717112406758, 1.1421641063009111, 1.1519398908328409, 1.4002788973639917, 1.2611262035905806, 1.2694596028234995, 1.36627124196009, 1.459236442860787, 1.5062684632032766, 1.6514995833582546, 1.8194824991699843, 1.8176820903201716, 1.773752858686713, 1.6775988741262045, 1.5485675280909417, 1.4215249296357513, 1.433792083121146, 1.571125741620734, 1.7114837686899234, 1.6690835037112421, 1.5105331537742588, 1.3509530889267114, 1.2188912465853792, 0.4743063208497699, 0.7021255053610914, 0.6926236928863241, 0.4637610094738789, 1.7093176551268394, 1.4752316992639696, 1.460504158917304, 1.6949267579736451, 0.3393579541566442, 0.7028263773228611, 1.0196173455480853, 1.314341558892699, 1.6085399328140502, 1.8341208302422807, 1.9977015191688887, 2.0838985599830573, 2.1484940672691244, 2.179698546296041, 2.1783186579432425, 2.1982317535346994, 2.2023656077260987, 2.0336637927004637, 1.882142368809373, 1.6388065441052917, 1.4512716854543677, 0.6517691882823418, 0.8255267883242731, 0.9662929115501923, 1.0920744827532025, 0.570393425715104, 0.7631569982772055, 0.8878949064464204, 0.6773270733981744, 0.7190365156517607, 1.8551183555693218, 1.6822215826426157, 1.4384626953081983, 1.6321804586439672, 1.6506930825451134, 1.1803018450344966, 0.8807211303589276, 0.7961926254236059, 0.9216572745199365, 1.1443052555254407, 1.389043622638973, 1.4432479266759473, 1.324511892121308, 1.1539094310177664, 1.0161710667651778, 1.3027157250955919, 0.9784252649881753, 1.0255542509540951, 1.1565873894864007, 1.262484577619161, 1.3266127036326445, 1.4832313085048408, 1.6499603104566334, 1.6167507763239706, 1.5468128534863692, 1.4232113357761291, 1.27386272320533, 1.1385359093021639, 1.1769666700422177, 1.3384602219310688, 1.5105746710006462, 1.4852349410620116, 1.2980751268774537, 1.1026464181039337, 1.1293899049375449, 0.6671051423389095, 0.8525101038300643, 0.7883796526993572, 0.5966811732356216, 1.7913639152466811, 1.5667664915930475, 1.5244792512000156, 1.7553087096630433, 0.3646362302950507, 0.6865967124485541, 0.9915939100987798, 1.3004219261042773, 1.5480947585056366, 1.7432115594156237, 1.8700356696151275, 1.976092846708532, 2.052950383275769, 2.107981301529457, 2.1854336996693307, 2.2440919053149258, 2.1182150486069555, 1.9891253719974724, 1.768470447675535, 1.5901769881664536, 0.9597192929614888, 1.1084948976808937, 1.1997493630249731, 1.2837740321037938, 0.8147667602856584, 0.9797235156800024, 1.0380132611658959, 0.8582914147206047, 0.9201193060915223, 1.9116885627407427, 1.7662802974652703, 1.5200610540912698, 1.6899858843521356, 1.7243389945038312, 1.3067717832249657, 0.8975479286921498, 0.7450826725953476, 0.8271294315867979, 1.0528560812601528, 1.3159442617576251, 1.3980987814698727, 1.3211138029936753, 1.2027066994673496, 0.9428135559219368, 1.2409770095595711, 0.745136201514867, 0.834245821282636, 0.9927609179993166, 1.1050177383471211, 1.1827140493591253, 1.3422855349565381, 1.5006333888390024, 1.4380578294558528, 1.344851185751595, 1.1978878015129297, 1.033053970121349, 0.8948922864747805, 0.9604319612366582, 1.1393134334799333, 1.3360412354023288, 1.3287957898870744, 1.1221378296983957, 0.9003399181883519, 1.0895268009841597, 0.903112171438062, 1.03851591051704, 0.9456648311581243, 0.811654766894475, 1.8631916998274682, 1.655651168741805, 1.5924900020059956, 1.8101497378601488, 0.327609194440963, 0.644368366553419, 0.9692861034074115, 1.2425593788755325, 1.4748362753446567, 1.6498673370661103, 1.8036990806434305, 1.932280641902042, 2.0499603918290976, 2.1883618100397055, 2.3033251297193815, 2.2247047258511103, 2.1215672532772683, 1.929639272205305, 1.7662959220898176, 1.2957089063867988, 1.4229134609094567, 1.473054525742425, 1.519438312339822, 1.1144215494837115, 1.250361796636379, 1.2532453746678645, 1.1117606901576766, 1.1832673817282064, 1.995675200747712, 1.8829676505066217, 1.6445292682243142, 1.7833429625458368, 1.832220403557613, 1.4843713246005845, 1.0100898059494128, 0.8152328714558259, 0.833347945265423, 1.0306491200384997, 1.2909746636977177, 1.3986991110837277, 1.3717058549736476, 1.3146572023401755, 0.9551845357425194, 1.234627258259218, 0.5748577108734321, 0.713256745141602, 0.8874984737768056, 0.9959777379153067, 1.0838980332387957, 1.235115716442157, 1.373915228053832, 1.2778858422806203, 1.1594668712775147, 0.9894045617468656, 0.8140629350499488, 0.6851071000778244, 0.7849582494556651, 0.9715338446298059, 1.1869804240414452, 1.2032128796519572, 0.987236983363704, 0.7533274138175378, 1.1212478539106505, 1.1919840587408628, 1.2824050854749598, 1.1739111861832117, 1.0924509880190694, 1.9642738491946772, 1.7813072594849202, 1.7002477048949027, 1.895865888979859, 0.32245340507773673, 0.6567622246651827, 0.9489308112533177, 1.2115276977605243, 1.4282273960264342, 1.6232104257806506, 1.796639442273896, 1.9688260230114556, 2.1590135629659946, 2.3219031548267095, 2.2870881006909127, 2.209213783670177, 2.047084076486406, 1.9010759578445748, 1.5775484348271243, 1.6834806617337295, 1.6977260622361903, 1.7116663259475227, 1.3703014091069317, 1.4793745459676138, 1.4389754898807101, 1.333209082454174, 1.4089437788843768, 2.0437094514967105, 1.962945074636433, 1.7391314364784694, 1.8460790396058422, 1.9060495489650435, 1.629902482050452, 1.1322557671263178, 0.9268826396247787, 0.8899161510427419, 1.0368382986781655, 1.2725045054008448, 1.3966552522818487, 1.4155069891644194, 1.4140318338333737, 1.0006128849603055, 1.2370965956322197, 0.5147031731450973, 0.6717015648258369, 0.8318622479622344, 0.9230000267163672, 1.0121221841976293, 1.1427949300227287, 1.2538381118753779, 1.1301243092380375, 0.9933380902849066, 0.811577674774715, 0.6433403676813639, 0.5475788445292401, 0.6698593767102469, 0.8401153754355147, 1.0563618457037225, 1.0950206932889732, 0.888851033890887, 0.6757405004819987, 1.1665399072126559, 1.4371126268423766, 1.4893191431073114, 1.3734443925580673, 1.3349660516113935, 2.028252688310726, 1.8722011380768553, 1.7784104866644994, 1.9483038661124645, 0.3379340164650909, 0.6434299908499992, 0.9315924286940999, 1.1863415398688761, 1.4187459582520767, 1.633372924534878, 1.856026279733502, 2.0932131293880727, 2.29997675127014, 2.30891734176991, 2.2573922998396125, 2.127856162838436, 2.002116190260515, 1.8278322851484898, 1.9107181795348733, 1.8897411460403402, 1.8724247350589238, 1.5992967939555456, 1.6806862325484675, 1.6017850007661605, 1.5319742674404841, 1.6091556638763376, 2.0568779008932907, 2.0093603764339036, 1.806199369798805, 1.8790161229262272, 1.948027479511553, 1.7489366603791008, 1.2532728824996713, 1.055459630978239, 0.9745698003693486, 1.0586778661090237, 1.2513611151866435, 1.3844747714125603, 1.447054650853753, 1.4983529343435427, 1.0631721726091172, 1.2390711899623614, 0.5677560350034766, 0.699819899063048, 0.816468873986568, 0.8770410630190921, 0.9575319907444653, 1.0547896184492194, 1.1284939363116864, 0.9825230545053928, 0.8355144994458823, 0.6593843016832984, 0.5302196826844688, 0.5036559681662715, 0.6193007193937682, 0.740109196818626, 0.9336194510692253, 0.9937402869711384, 0.8196857501003335, 0.6656797532819994, 1.2148438657492366, 1.6544791016846951, 1.6699194752177267, 1.5511116409748287, 1.5526564995733487, 2.057402502136047, 1.9316730843998355, 1.8283897949594141, 1.9682720082153575, 0.31784802951306573, 0.6322215413062904, 0.9269370768459011, 1.1964611249913752, 1.4517185622023943, 1.7240008617816223, 2.00586681494099, 2.2545908596813176, 2.309311558335417, 2.2863266483273796, 2.1933345630961405, 2.0913228904015875, 2.070033091852545, 2.128412757175039, 2.072695412702272, 2.024763867965579, 1.8246568976242534, 1.8774495100559276, 1.763618171048263, 1.730253106494479, 1.8066730199149608, 2.0541489503182677, 2.0424661289380683, 1.8665251098464029, 1.9019808988807891, 1.9782666605124841, 1.8633093242929704, 1.3904182823589157, 1.2123744350527208, 1.0989511654970718, 1.1149697856346648, 1.2475019136183425, 1.3815309101288964, 1.4859919753319013, 1.5877727438712859, 1.158781746976784, 1.2603069086922238, 0.7282087930288517, 0.8103282037124576, 0.8647542408857362, 0.8842315646097443, 0.9448306143623625, 0.9939786433966179, 1.0174422258346878, 0.8578444180959234, 0.715931790057504, 0.5805824866079868, 0.539902652880719, 0.5978165702074799, 0.6713993630066005, 0.7092850871097678, 0.8451650902319618, 0.9239111632415131, 0.8100879910419112, 0.7473395469135984, 1.2846862792106761, 1.8673898687823434, 1.846915450919443, 1.7287820442223374, 1.7683170472362435, 2.071328454165527, 1.980393892496936, 1.870533580122155, 1.9750861617325037, 0.3275629550523468, 0.6491316932921913, 0.9436935089435017, 1.2281982166865282, 1.5381063161127309, 1.8538123622053826, 2.1356851157102317, 2.2315292924008414, 2.235606754317319, 2.178974743156708, 2.101795400882994, 2.2317353644418847, 2.2637830778989056, 2.174230554406792, 2.0973846434570897, 1.9736462243330657, 1.996850514200759, 1.8521419838274902, 1.8548338024252968, 1.9285238641293847, 1.9789700089215656, 2.001112853433356, 1.8556392529460863, 1.8548908107030526, 1.9358844481074784, 1.9036704774932447, 1.469816326495563, 1.3193030207865972, 1.1845982107364017, 1.1379140723905663, 1.204098267789644, 1.3308070380106027, 1.4693940642011418, 1.6140062095079712, 1.214154160521327, 1.2397813928368948, 0.8825784742075575, 0.9135758283093072, 0.9068518027483548, 0.8859950930919024, 0.9200998535595628, 0.9167207713849499, 0.8870977573485336, 0.7307074205076104, 0.617086931425923, 0.5591131408697907, 0.6152922866589464, 0.7257393631877816, 0.7492354010802978, 0.7038675954637977, 0.7580314958593551, 0.845492883053513, 0.8068058532049752, 0.8359837464762923, 1.3079292946064989, 2.002995999649386, 1.947764535866401, 1.833504777229944, 1.9089450107403356, 2.0112838655534877, 1.955340652965668, 1.8423993785555113, 1.9108301269577213, 0.3358988631563051, 0.6446121320227516, 0.9486167395163552, 1.2862527515283573, 1.6271734975870384, 1.9353267007128527, 2.0691119475002773, 2.099730873088592, 2.0806505436216245, 2.03044181120628, 2.3164017301669397, 2.3193142772524995, 2.1955980036073104, 2.090226171706123, 2.0500442889270265, 2.041230163108347, 1.8681647790022342, 1.9084931593562109, 1.977262555374406, 1.8242378168814692, 1.8796598533124478, 1.7690552420525267, 1.7315162082382756, 1.815050205369086, 1.8682454130025878, 1.4910211450188435, 1.3764550735559815, 1.2289810794561251, 1.1223349866171353, 1.114088264763112, 1.2249336976573446, 1.3917151078168533, 1.5740691766950148, 1.2258449626828865, 1.1713227904630739, 1.0194419998239528, 0.9996670690022024, 0.9343486954079389, 0.875290852233015, 0.8771478661299527, 0.8170860934584111, 0.7305578167540924, 0.6012358484230418, 0.547865025682147, 0.5928390524954502, 0.7244208042266652, 0.8591988306955967, 0.8341341200350734, 0.7165506725550093, 0.6709792643925796, 0.7541059086149619, 0.8026573159504947, 0.9178836446419609, 1.280422484769727, 2.064402476930322, 1.9739151854761652, 1.8669840337462305, 1.978068293351212, 1.8708575920186707, 1.851521326863688, 1.7386262772463021, 1.7686541145666785, 0.3120284595129755, 0.6246719914275742, 0.9783071207115726, 1.3346532448623245, 1.6606644485450277, 1.8258188733461618, 1.8802672292754907, 1.897183447909394, 1.874392397712128, 2.311888917156498, 2.284549541371918, 2.128571341575705, 1.9968079490574109, 2.043161580798664, 2.0015696232361, 1.804559661841139, 1.8821868913002788, 1.9438544839664078, 1.5923624554975988, 1.6782629297948497, 1.604873651290925, 1.5320239760734158, 1.6158222345448752, 1.752392244749884, 1.447914859852711, 1.3764266360672999, 1.2257130747906086, 1.0660786234853572, 0.9793507713148181, 1.0650029803253074, 1.251678237913071, 1.4642566616479813, 1.1893513290361921, 1.055099214157027, 1.1249606780127606, 1.0583577046267116, 0.9426614989843982, 0.8525717202448986, 0.8199975292028375, 0.7061801584513296, 0.5662193752073578, 0.5020659393104578, 0.5380560719645329, 0.672363659374012, 0.8419676891125938, 0.9785748501837422, 0.9121354540108068, 0.7457375512795782, 0.6039815755127028, 0.6638782366108816, 0.7983392937927966, 0.981824061864797, 1.1993805655613878, 2.041644488414724, 1.9174562618827524, 1.821271633111695, 1.965637373989567, 1.6514945483238948, 1.6679763928053144, 1.5582604798043913, 1.5499543779350609, 0.3177634895535031, 0.6829424325780997, 1.0498406589951084, 1.3891480392478923, 1.5822248868714084, 1.658969580622399, 1.7108051306704994, 1.7154194744167341, 2.2882608499530543, 2.2331367358016903, 2.049866824278408, 1.8958560188605136, 2.0230919985884688, 1.9517422133262419, 1.7373794939330744, 1.8481473642010673, 1.9014203288981635, 1.3639491031406616, 1.4787283849129569, 1.4449083251077333, 1.3381983565694089, 1.4199968840978296, 1.6361004224912126, 1.4140232389792338, 1.3867251352413914, 1.241967247854133, 1.044370609449599, 0.8852607357096524, 0.9359380769833079, 1.1315031339850297, 1.3643133874077003, 1.1769234191762028, 0.9737495201784032, 1.2430828376082788, 1.1421796983697106, 0.9934582427831704, 0.8860280026085158, 0.8253912044615573, 0.6759920266968067, 0.5080830198422543, 0.5380652011232843, 0.6442440786659467, 0.8180883703627522, 0.9932382702149605, 1.1185978729210198, 1.0253500808837317, 0.8402364494270119, 0.6414418612107817, 0.6641167046141787, 0.8560594209284196, 1.0767177652771338, 1.1428083925515502, 2.0067478620595507, 1.853879800146149, 1.7706626118515014, 1.9423389174652808, 1.43446909495431, 1.4866712943756997, 1.3832725699408526, 1.3359183680600186, 0.370962550997012, 0.7432400728331781, 1.0912122629045273, 1.308496795272951, 1.406390470204779, 1.493280047341215, 1.5265569857467602, 2.226844877371026, 2.1443753110324595, 1.9368443274660656, 1.7633588180160507, 1.9710015340660676, 1.8708351437233126, 1.6445494742543685, 1.7863443749855616, 1.8294638679327828, 1.1095989368834043, 1.2526275361519068, 1.2629289366088885, 1.1225530221696274, 1.1995430285191195, 1.4947495394275285, 1.3689177659744631, 1.3884682621728381, 1.2581031576249904, 1.0370386397726228, 0.8167734526410105, 0.8210145764396899, 1.009994444239199, 1.2514233555710759, 1.1683633386117067, 0.9095127339065977, 1.3577601538049027, 1.2308255592335566, 1.0628021484192363, 0.9501921706755072, 0.8702608044111912, 0.7108141569993822, 0.5590157422029743, 0.6665297675351859, 0.806013379367669, 0.9883457059706395, 1.1533036508097683, 1.2605043083429206, 1.1495499936569629, 0.9652542104858295, 0.7472042796992409, 0.7312522226230925, 0.9464498224201229, 1.1803523285822024, 1.0905191539354513, 1.9398406864435926, 1.7613489234417432, 1.6940432230558697, 1.8889830665231646, 1.190676868730826, 1.2800616567267784, 1.1869616615442309, 1.0979386294058933, 0.3734799404435202, 0.7259290735304917, 0.9652876198995615, 1.0860360002987164, 1.213819926874688, 1.2820172710690207, 2.1156227661392575, 2.0028729392319673, 1.7720474174670808, 1.5804518911844918, 1.8779986120875436, 1.746747932841059, 1.5148024060445677, 1.688270996250032, 1.7175852619599865, 0.7954012023708739, 0.9705762327964015, 1.0393488565980114, 0.8613866026821867, 0.9274969815598691, 1.3116249396656754, 1.3125177342062755, 1.3862738456111812, 1.2820041695756543, 1.0552366117980843, 0.7945643630298991, 0.7376147503194593, 0.8895694694398677, 1.1193156600065985, 1.1714519986704646, 0.8768067388886852, 1.4838434502383757, 1.337264526817068, 1.1630769581327667, 1.0574910622210607, 0.9681766022126232, 0.8265739714730632, 0.7275909173961658, 0.8768998007422848, 1.024515849981013, 1.1966807397747212, 1.3394966874036187, 1.4212528435861467, 1.2995184107493185, 1.1322378419222032, 0.9240595824229221, 0.8747640278255162, 1.0811040962933687, 1.3065476907407734, 1.0492606334901629, 1.8302077799175585, 1.6271887076793994, 1.5818734939995116, 1.7972205350278174, 0.887555710094902, 1.0227150439255448, 0.9485819999752266, 0.8068376595930428, 0.35638967140440375, 0.626291281112157, 0.7779922363121056, 0.9586647108379855, 1.070049488216883, 2.0236111228585627, 1.8814483044564692, 1.6327350488147006, 1.4285277385990882, 1.8135082663949698, 1.6539530392704733, 1.4273034357307208, 1.6264584142028389, 1.6394463735091165, 0.5186491474624537, 0.7291053255739698, 0.8750280270821251, 0.6649788287554054, 0.7058627806297, 1.1751330827028172, 1.318088290764095, 1.4409366515221083, 1.369363399842079, 1.1582797384211898, 0.8979743309462475, 0.7929001490161699, 0.874639874180727, 1.0601981655515136, 1.2485151203681581, 0.9558992467581169, 1.6507734222585912, 1.4952257659982675, 1.3280149078183616, 1.237289585026427, 1.1493408167232877, 1.038425099914899, 0.9884249999006062, 1.1483007571438038, 1.2905373635169957, 1.4453531081220723, 1.563756119299246, 1.620769670654859, 1.496483788172208, 1.3532717000499892, 1.1687559692721186, 1.100840558010317, 1.280752813603188, 1.4832926199034495, 1.0959217652664996, 1.7497149799214196, 1.528757265623764, 1.5101159390671424, 1.7373053597198496, 0.6203336536558528, 0.8129888608434455, 0.7742471327601415, 0.5695780758428846, 0.31297518011662656, 0.500414306010221, 0.7373777405780273, 0.8922225101326238, 1.9242269915799426, 1.7571764881097625, 1.499713230795858, 1.2924437687964592, 1.7485961905841252, 1.5675573237984246, 1.3584228568395365, 1.572350563073409, 1.568453868051233, 0.35276843820527265, 0.5590668698974017, 0.7779067831997821, 0.5717584171472203, 0.5686059085123242, 1.0737188914247564, 1.3478466417461454, 1.5079250342336654, 1.4699868736355477, 1.2874398410721228, 1.0537050542727084, 0.9257022047787923, 0.9332054237183146, 1.0511646118318174, 1.3483328406213275, 1.0850312610095425, 1.8072032614238431, 1.6502946366918163, 1.4972937054688953, 1.4238436971915627, 1.3424911631748164, 1.2624334619624216, 1.250572106048899, 1.4101093049875035, 1.5426395098377985, 1.6781297766856664, 1.7723039747446931, 1.806383195766757, 1.6845349821742222, 1.5670931580135523, 1.4095747916982473, 1.331346045970519, 1.4808129432788513, 1.654861824833007, 1.1821683630222346, 1.6714850531442942, 1.4428628843663462, 1.452199476368123, 1.6800183528409294, 0.43673965525532654, 0.6702996220226064, 0.6832464649450719, 0.44885555678007866, 0.19718863568955022, 0.4571882620260247, 0.6337139249577645, 1.686422519384341, 1.5062294591182162, 1.24839282159814, 1.0449463017919305, 1.5379464223267962, 1.3462290681376698, 1.1572495968772705, 1.3745070407472455, 1.3582141304848505, 0.25516284268860195, 0.3530352765605578, 0.5995328821662703, 0.4425911595498352, 0.3948146313674861, 0.8622639128844309, 1.2269233725671516, 1.4107278166464376, 1.4039272314847646, 1.2570296199063358, 1.0651847266485428, 0.93044911914352, 0.8718712643711876, 0.9182491722375603, 1.288000842317182, 1.0698474269367253, 1.7787083440800424, 1.625904489192646, 1.4925424766641027, 1.4389331838847657, 1.3680708302651587, 1.3223562084663407, 1.3497880834482836, 1.5017051741988219, 1.6187220585128055, 1.7291353735764867, 1.7954939248529143, 1.8058098526576947, 1.6903050884951483, 1.602613487996521, 1.47903931342857, 1.3940126652866764, 1.5062890424890603, 1.6458450358722319, 1.120899009254615, 1.453207409487405, 1.225753653875421, 1.2556396200632984, 1.476655867461137, 0.26059413349583055, 0.46723720153560516, 0.5273827993006784, 0.3409169483337023, 0.2664420842515996, 0.4511948610549528, 1.5037826857357912, 1.3189989746175503, 1.0621355044647731, 0.8618260330831915, 1.3684974775987313, 1.173028489269841, 0.9969324705586953, 1.2131179330453847, 1.1904968757339585, 0.29690196843574135, 0.24813531647335843, 0.47704790000602626, 0.38438494208584345, 0.3098058461327439, 0.7022096712378901, 1.1128925621468555, 1.3070630194443635, 1.3194846199279266, 1.1987144407406087, 1.040537031634609, 0.9084540818605421, 0.8105956113810626, 0.806967399396892, 1.210004090262725, 1.0280454756772068, 1.7104400795063994, 1.5626614283917593, 1.4441601334159424, 1.4042145436136795, 1.3417625121465595, 1.3189697994850116, 1.3704615486845038, 1.5138401018268017, 1.6185810802808875, 1.7111133581661466, 1.7589256144077452, 1.7543113205211338, 1.6446038935464768, 1.5771440750808579, 1.4776336865789144, 1.3903904031147838, 1.4765241715661401, 1.591748113805861, 1.0476353859448408, 1.2806467849449168, 1.0558797723377038, 1.0964225677233714, 1.3113677209810626, 0.2293557682369772, 0.3403222138105232, 0.4314138508205611, 0.33155710470356325, 0.1898649448352733, 1.2382009733447243, 1.052559852369939, 0.7958150751576246, 0.596703934357036, 1.1111122900570343, 0.9134038088430155, 0.7509382146269061, 0.963822838757233, 0.9353720617722543, 0.4400159203007955, 0.24350309135227338, 0.32683014895085705, 0.3731273568053861, 0.2937805625946451, 0.4630485312602057, 0.922525881191219, 1.125288797998926, 1.1626561124582286, 1.0809840641177935, 0.9764898250196221, 0.8566979080656452, 0.7113545558551574, 0.634127878322826, 1.0650896141757948, 0.9410045245845805, 1.566539409093949, 1.428054953397638, 1.332035347252807, 1.3115330160515075, 1.2623794559645185, 1.2713803936693344, 1.3536224453061827, 1.4811671749642261, 1.5667160371913644, 1.6332683511328931, 1.6555603679520232, 1.6314373329803589, 1.53139100891959, 1.4922945471872655, 1.4276918441365352, 1.3400757805152392, 1.388461218830385, 1.4685575119833607, 0.915749592058105, 1.0211306762309433, 0.7996418762923645, 0.8504274552204663, 1.0577718891341232, 0.33848221564386355, 0.22982091246686018, 0.3420931212524365, 0.40717502255180216, 1.0535053677967154, 0.8728937572938119, 0.6148580466374791, 0.41152581526769516, 0.921267095625672, 0.7237985921518558, 0.5640609058810465, 0.775202958127694, 0.7455946321262528, 0.5627608846728536, 0.34435906987074544, 0.27097749713826375, 0.42128046304242167, 0.36513284607134044, 0.2843053857491629, 0.7692059177610917, 0.9744271105607857, 1.0286049844950544, 0.9772032705750703, 0.9163591960792421, 0.811695705878004, 0.6392278158734067, 0.5057907114219193, 0.9417050863772718, 0.8651472206571547, 1.4357972071889333, 1.3053112427079687, 1.2265882318180095, 1.2203646888759012, 1.18187193473262, 1.2135996915058356, 1.3159221080789771, 1.4294665449479134, 1.4998802871879833, 1.5471476023902133, 1.551422254474177, 1.5142098077611748, 1.4220327565494661, 1.4033668826597583, 1.3647177553152507, 1.2786893361026102, 1.2990712505231679, 1.3531484079321312, 0.8067173928427611, 0.8315299696405883, 0.6098094282044413, 0.6631831041881824, 0.868134525837026, 0.4637022839495461, 0.26121063001967326, 0.33983214351618957, 0.5005402383296322, 0.20858202604851708, 0.4455841007707558, 0.6420551450380777, 0.2687814959011552, 0.37101957010400477, 0.6022150734640213, 0.4416240822184839, 0.3993531952575743, 1.5748189253042175, 1.3657394303223485, 1.1580004938287722, 1.3725452014380068, 1.3579601077133272, 0.855202163649959, 0.8743666156393338, 0.9421876907313881, 1.0922581863331127, 1.2511536594216486, 1.4158600032340334, 1.408990540177067, 1.231365191039773, 0.9963993225419786, 1.1235199291425806, 1.3235823974664482, 1.3534410078508623, 1.3251260284991595, 1.3858269675129962, 1.4625814876382475, 1.4924815642858549, 1.6216559402197663, 1.7847325086383754, 1.8105960903665803, 1.791787063124056, 1.7247829223986126, 1.6202280242423612, 1.506475421354115, 1.4928560490269778, 1.6017301213134052, 1.707935972325722, 1.6520412173532442, 1.5253593630912585, 1.4060995513768528, 1.1474031028824208, 0.28745639236340803, 0.4951612127386361, 0.5356629172471717, 0.347029721018058, 1.4876294535864152, 1.254069109734527, 1.2585743874620539, 1.487863564405024, 0.2581733705030187, 0.4647846953635935, 0.3133189634777442, 0.28314835067704586, 0.5000196139449025, 0.41130672206854585, 0.3425428289512215, 1.412564225444877, 1.1984684480750603, 1.00728758292117, 1.2206246783691168, 1.197254144761464, 0.7064370064468803, 0.8371744411944626, 0.9477160693021711, 1.0914426197127387, 1.2187401627322467, 1.3493502426181274, 1.3235746586662402, 1.1357640182109152, 0.8947083210271677, 1.0999057342742846, 1.259572724079281, 1.4015216538097415, 1.3502158087601168, 1.3852951105467128, 1.4491578953129538, 1.4668156847057383, 1.5822997740101103, 1.7390739954510117, 1.7830215484289134, 1.7812924141256072, 1.7348553843075256, 1.6484940100813643, 1.545910041201023, 1.515637332636179, 1.603223848514059, 1.684533069051289, 1.62067585649882, 1.5180633400266892, 1.4285213740460139, 1.092983068149334, 0.26154787565294263, 0.3830556535973773, 0.46426356612131764, 0.3602708767945216, 1.321038411924093, 1.090740306405334, 1.1084309950471725, 1.330833822339837, 0.2075100558128909, 0.3962644664911795, 0.22287535341914821, 0.3274959489558107, 0.3647461072590086, 0.2903554510728947, 1.1565266263129237, 0.9414089101198366, 0.7577524241859822, 0.969184601221668, 0.9421503735590461, 0.46247264279980344, 0.7074241462054649, 0.8617514791551772, 0.9897510122059644, 1.0752637845101212, 1.1658619765717508, 1.1220118171004592, 0.928316375709873, 0.6884103509829301, 0.9709992341558983, 1.0806964714389389, 1.3473346446234042, 1.2694437374540828, 1.27308301086995, 1.3204685064355197, 1.3240339067626912, 1.4224074501363315, 1.570171868455322, 1.632404406713513, 1.6493037412192941, 1.626991871786569, 1.5637871861139254, 1.4770920116781787, 1.4274126913125662, 1.4880310568051833, 1.5399597542213326, 1.4686106801445757, 1.3946875959112448, 1.3421808577660703, 0.9294792614773051, 0.3007759330030726, 0.22680906483936153, 0.34396570467441234, 0.38813751891831005, 1.0639842159948911, 0.8350135461426818, 0.8584982215964327, 1.0767616781284306, 0.5329011350659143, 0.3325904006424619, 0.27291200728227494, 0.4263958180707734, 0.37354854787293257, 0.9490544593465566, 0.7339528245279524, 0.5545897053910274, 0.7639803180410889, 0.7349615800537072, 0.2702289681317334, 0.6346430885708669, 0.8191979688853437, 0.9262435885777425, 0.9699960689499483, 1.0207143839340056, 0.9605684615876807, 0.7648322499374441, 0.5342005629213957, 0.8832315937755214, 0.9417424455901279, 1.3128227814944333, 1.214450801852606, 1.1905492950376075, 1.2221925385418317, 1.2130909262103093, 1.2944130391909305, 1.4322518642672457, 1.509683103834988, 1.542479348821202, 1.5412117527016715, 1.4987945315913767, 1.427233225673488, 1.3621174472881725, 1.3982636312966557, 1.423734053524255, 1.3468563975246803, 1.2995527037260084, 1.2804752232672092, 0.8101023661734208, 0.4376046876442983, 0.2455299344451753, 0.3456230541483661, 0.49540748277297875, 0.8565320702137931, 0.6276500025191739, 0.6546324124589906, 0.8699476509112181, 0.2005557355899448, 0.39101758946034854, 0.18986754931305044, 0.1804645270277132, 1.395870471760857, 1.1986403375255703, 0.971066957772629, 1.182194209180866, 1.1805001699816597, 0.6781697466546184, 0.6094104201472601, 0.6744136286347098, 0.8240737529504959, 0.983509529182011, 1.156376969083133, 1.1583223350483116, 0.9887765901101423, 0.7627435904557796, 0.8551599774553732, 1.0636806128418408, 1.10110544358704, 1.0630565620435446, 1.1180998919975518, 1.1938772612989659, 1.223907969557897, 1.3543559166936867, 1.5182498590453375, 1.5419811174539655, 1.5233829431151695, 1.4593578920017813, 1.3598940863914268, 1.2503752854292365, 1.2304401651952188, 1.3345441446490403, 1.4391948604952443, 1.3837673382937632, 1.2570533127118846, 1.1433851392093755, 0.8852787950385347, 0.09718592964261275, 0.312691628163688, 0.303392646031473, 0.08202926952887248, 1.3170191006278118, 1.083122943775467, 1.0682649944884248, 1.3025422913275404, 0.23197212122089772, 0.14873465032240726, 0.07153576180196901, 1.2157806508169755, 1.0125837291086714, 0.7940198793472746, 1.0078924615138287, 0.9990854949482081, 0.4938583134210147, 0.5548179745533963, 0.6775489245912939, 0.8166798706362196, 0.9359928972754935, 1.0693855068341778, 1.05007311960463, 0.8669231701636098, 0.6287895345238379, 0.8186218822825706, 0.9788511482674346, 1.1494084035018313, 1.0846946553460723, 1.108626528752577, 1.1687920629915287, 1.184420635032176, 1.2991595121799644, 1.456251740900845, 1.5001959669326348, 1.5008395983260239, 1.4603677711462157, 1.3823298092439054, 1.2866908558374515, 1.2476151669808455, 1.326305922500921, 1.4021597902957632, 1.337692427399686, 1.2389344185060711, 1.1609603979926464, 0.810396542393873, 0.10773162069119539, 0.12575355653965783, 0.18135839370666879, 0.1697743026226824, 1.1328144900618793, 0.89830187760076, 0.8936065826826161, 1.1256071214179475, 0.21725813798361318, 0.2127369212850445, 1.0056562316485205, 0.8123098565371397, 0.5805551529178921, 0.7911804180122763, 0.7911103649529332, 0.2954464609388947, 0.3824967343844588, 0.5524867122428704, 0.6700492065655467, 0.7479214734556117, 0.8522438938205564, 0.8236256497479627, 0.6372571801298849, 0.39763362704276317, 0.6442747844414239, 0.7640056044960137, 1.0454957602795236, 0.9549220333466525, 0.9480934548496933, 0.9931423226380682, 0.996884390290742, 1.0985836841475758, 1.2497661868384498, 1.306684401556352, 1.3218106386001833, 1.3018320660989797, 1.2453252100422, 1.1659171511876423, 1.1085191391757032, 1.1618989217574773, 1.2132008761683863, 1.1429586909138543, 1.0676906772680754, 1.0246303613023753, 0.605351443941579, 0.32244985169970697, 0.11710604925933939, 0.09964599375092892, 0.32192220711019925, 0.9288898663610782, 0.6962247416567438, 0.6772902232885358, 0.9116956582802251, 0.07720053274918216, 1.2197692583801603, 1.0290886493147928, 0.7947327656005544, 1.0027831202212363, 1.0064069634307289, 0.512542034258556, 0.4361690512104344, 0.536825801152467, 0.6801777765107458, 0.8168595904957092, 0.974263178037344, 0.9708705132259273, 0.7992597528110019, 0.5731119276666288, 0.6935165456228092, 0.881959485178957, 1.0020597384334238, 0.941553374886852, 0.9742557646997522, 1.040477042322646, 1.0624348279668254, 1.1853492378326103, 1.3465184350279513, 1.3801209728100508, 1.37239248557492, 1.3235566453386016, 1.2397024822980796, 1.1412071574451372, 1.1059211984369959, 1.1921788772463036, 1.2796607457519011, 1.2193127269186357, 1.1081135526074595, 1.0189516172834452, 0.7061731554858873, 0.159628248423913, 0.18090208115421602, 0.12018684522153487, 0.11089147844376042, 1.1449144844915764, 0.9129280658187816, 0.8896324128829722, 1.1244043494387612, 1.2157802527057768, 1.0181933430305838, 0.7912285742058671, 1.003037452858318, 1.000204693174633, 0.4977572700076324, 0.49593994120072654, 0.6095043759526003, 0.7505859602381683, 0.8777760957010229, 1.022308266843985, 1.0103184991136747, 0.8320618775248233, 0.5983771730876493, 0.7575738174236293, 0.9308082047689674, 1.0785400133961633, 1.0157437889267151, 1.0436629142140248, 1.1066161507712362, 1.1251468185552134, 1.2437260397945915, 1.4028133465751589, 1.4419840357862288, 1.438750016061751, 1.394399492632027, 1.3136619758435797, 1.2166937982574142, 1.1793559533964448, 1.2615383705024605, 1.3427793265601466, 1.2801774620338262, 1.1756493035756754, 1.0925403975055659, 0.7586669043734341, 0.1126246122447309, 0.13606019917491283, 0.13630972448692855, 0.12359655136185692, 1.1365708486715222, 0.9026587492785311, 0.8889446569464572, 1.122921155239493, 0.2186375112139859, 0.4251663255636837, 0.22341670326881755, 0.21693646673529918, 0.7219794738499761, 1.0143384272859783, 1.1869818724261123, 1.1674076913994327, 1.009418470000166, 0.8106205769582885, 0.6759152196589532, 0.6294144195417383, 0.7104457575274116, 1.0488722784409088, 0.8182722584505743, 1.5326317631878492, 1.378447785834448, 1.2410371009999124, 1.184938322651604, 1.1132628685205779, 1.0678863491766106, 1.100313001796338, 1.2501845624960304, 1.364965133442647, 1.473986291559086, 1.5413477813573802, 1.5544032096497378, 1.437793130108167, 1.3476132878781029, 1.2249689022660715, 1.1395902302659568, 1.2516521032801982, 1.395442921441211, 0.880923763794776, 1.3192424321268192, 1.0908055764121707, 1.099597708152267, 1.3272840038117453, 0.1019243977637375, 0.3218629825678863, 0.33171336144683555, 0.10153900023265469, 0.24658983489322753, 0.14814391205664368, 0.06524203416878234, 0.5205172374514407, 0.8785700337997844, 1.067735367674397, 1.0737823582856887, 0.9506945405759035, 0.8000724469949733, 0.6704607900457233, 0.5628623905148645, 0.5700552346357411, 0.9629493664596872, 0.7826224174211506, 1.4626715411187658, 1.3145719051604858, 1.1967061964442858, 1.1590844931328927, 1.0990002506718854, 1.0850539327109607, 1.1491586291633673, 1.2863168137258782, 1.3843362107635082, 1.4696699285038124, 1.512796772552231, 1.5063994508191578, 1.3972622792963227, 1.333859493645538, 1.243568864612147, 1.1558622947642867, 1.2323781464298849, 1.343752813518629, 0.7998291060491775, 1.117926881022418, 0.8891005297313584, 0.9093409334685495, 1.1337620903315138, 0.12257988902762856, 0.11620704959843534, 0.18462041527760786, 0.16499989154176034, 0.21456688537607488, 0.21282608783654336, 0.3030258581320253, 0.6361982996208446, 0.8302762656921603, 0.8498121656754763, 0.7549961852201602, 0.6573508972267131, 0.5454387294586515, 0.38631206842057964, 0.3300518115772694, 0.7461338006255988, 0.6161179047335157, 1.2488093467916939, 1.106696458330794, 1.0058733861039855, 0.9848764843774321, 0.9372009213469468, 0.9543972617358673, 1.0490528499311162, 1.1678963706733736, 1.2462991066937024, 1.3074517919678774, 1.3289869926317943, 1.30746203671905, 1.205626715988886, 1.1659713341460627, 1.1086405540581121, 1.0215446282072802, 1.0620117521867551, 1.14435694379792, 0.5917434615045939, 0.8960064220806604, 0.6684587391679172, 0.6745473391558939, 0.9021182878826378, 0.3531462831844412, 0.13704480511815187, 0.10116362432547364, 0.33188080543356313, 0.08395738226947694, 0.517573181268327, 0.7933370113241481, 0.9708761179552733, 0.9614076378887291, 0.8216540032797893, 0.6564143962911327, 0.5251390124109291, 0.4334217694541064, 0.4877294092022759, 0.8460556641460397, 0.644750385216085, 1.3400607095100998, 1.1890290082681145, 1.0636067973504428, 1.0204182386365999, 0.9573775823479784, 0.9383914631872423, 1.0010201718177314, 1.138480542681175, 1.2378948825087328, 1.326906503525678, 1.3757666508263626, 1.3753895955153392, 1.2635205994323495, 1.1927704537398645, 1.0970218444272157, 1.0094245097708723, 1.092298114348079, 1.2136379963685793, 0.6795408082587748, 1.1090700242410025, 0.8822100852862784, 0.8828694603551356, 1.1114749136323945, 0.18235165875790574, 0.16140419197861924, 0.11429926223009672, 0.12317200435426282, 0.5052300895268462, 0.8321121444222718, 1.0173752650495873, 1.0179702054265911, 0.8894231502573262, 0.7351045673498348, 0.605269941039081, 0.5010060010705358, 0.5234401362134047, 0.90550558974464, 0.7188428414093353, 1.4036820845676168, 1.2545758525321318, 1.1343714984224815, 1.095238067704598, 1.0344586533170628, 1.0198123315556205, 1.0846233776820882, 1.221265186999824, 1.3190965625323452, 1.404930634810614, 1.4494382407163235, 1.4447696809394661, 1.3347998532789667, 1.2694646761465962, 1.178327114662894, 1.0906218569664008, 1.1682024813153329, 1.2823480499932134, 0.7410814111667724, 1.1028791606558637, 0.8742768447623142, 0.88624810003745, 1.1130128387199862, 0.14071860775531103, 0.10813988527726326, 0.13260165160042892, 0.13684984434674238, 0.49953249780638675, 0.7041498846813208, 0.7757707484271457, 0.7657623347307602, 0.7730539491495683, 0.700434258409094, 0.5056369802020898, 0.29419803757371565, 0.7045327823661611, 0.7014574051572079, 1.1812138364047386, 1.0611327922572087, 1.0052399641889247, 1.0181802938593374, 0.9956021814906508, 1.0585439805516599, 1.1861773762949477, 1.2762361826802113, 1.323933625581707, 1.344573687506453, 1.3260651991164454, 1.2737837735490742, 1.1921348976223152, 1.1998029963241084, 1.1974247225410735, 1.1162116193159137, 1.0972330297595354, 1.1169570306898289, 0.5962399219471892, 0.5980651270811146, 0.3692593136108396, 0.3945791385360343, 0.6146013649286124, 0.6396125087626185, 0.4052744227287584, 0.4039508305803898, 0.6329201066370262, 0.20537382459373796, 0.2916089938180894, 0.3818362617717136, 0.5521476706054336, 0.5755588460963312, 0.4438178376134028, 0.30877517236478774, 0.26526468761741073, 0.4594602625345965, 0.686854741363394, 0.5801355966507394, 0.5658326210609148, 0.6161606537028188, 0.6296625731633612, 0.7491892664798568, 0.9107116442010603, 0.9460770912747763, 0.9475312916655616, 0.919706182701481, 0.865245180638106, 0.7933404910843279, 0.728410382791672, 0.7806934558141269, 0.8473952796962811, 0.784273170714356, 0.688630810276666, 0.6460039349718084, 0.27847730006854693, 0.5957312045886245, 0.483333622430167, 0.37681139064321184, 0.5283753768991263, 0.9690512772066623, 0.7732405750948737, 0.6995450485874245, 0.9128071796410395, 0.1508759549477075, 0.35164354903596023, 0.593622273238226, 0.6588645714893385, 0.577888628093424, 0.5002304786056618, 0.22055319401880016, 0.5095128784242785, 0.49366083876623046, 0.4083311070375102, 0.4436981238040918, 0.5239032827502071, 0.5652173312168682, 0.7108557005382041, 0.8791498844236265, 0.8793089480178692, 0.850189567119244, 0.7879824310572701, 0.7050522680853646, 0.6155635363845536, 0.5700687817121769, 0.6603289426885449, 0.7740493660516854, 0.7279802652151084, 0.5836278019569896, 0.4834910136566983, 0.3459586543877006, 0.6894381208459055, 0.6352662954861721, 0.5180121459727104, 0.6016134309070117, 1.1506858895146814, 0.966743120863765, 0.8852071421173523, 1.0861525339374098, 0.2275568943067788, 0.4888257780486416, 0.5767277529697737, 0.5396163567484893, 0.5286973242304311, 0.12226767097024785, 0.4157972189277744, 0.40730353082331716, 0.28893404672734363, 0.29477704136429683, 0.3731433160525145, 0.41763997536838404, 0.5675451287173187, 0.7358688490823098, 0.7294876882803438, 0.6996429368597878, 0.643823345212293, 0.575279235465895, 0.5024543613648563, 0.438493218644155, 0.5124307769425844, 0.62387221620146, 0.5803801763455975, 0.4331303770471099, 0.3548629995709748, 0.2881733464241352, 0.8354300456589688, 0.7631847407973157, 0.649236388099219, 0.7500845610149571, 1.1437070442554442, 0.9823319132394978, 0.8891635575168757, 1.0690596895535076, 0.26510516751661395, 0.36860130171173705, 0.3886329180045043, 0.477990003183219, 0.13339249515252938, 0.2046774940821813, 0.5235971842324139, 0.3690712109888425, 0.25110745733025364, 0.2533451179580815, 0.2493598349845602, 0.3710694754290032, 0.5367669496002576, 0.5642969787216137, 0.5747744686018167, 0.5788114744754578, 0.5755084292610083, 0.5558768355501412, 0.4506570061587845, 0.4340522430502399, 0.4667512381008973, 0.40253594832503636, 0.33197275716613905, 0.3930669778757032, 0.17135034001007185, 0.9764709816997865, 0.8570232489484555, 0.7564462812094938, 0.9041241491567423, 1.0016900441762526, 0.8755945931957706, 0.7703390266152744, 0.9163739456911942, 0.13473563148190676, 0.27809219713810174, 0.48658631841536837, 0.37693467359996174, 0.09282265267019042, 0.7589787035909981, 0.6020171909909411, 0.44370507998522546, 0.37524849921996817, 0.3032427596359943, 0.29743194452486116, 0.41316094053541513, 0.5133226978692679, 0.5902275609812109, 0.6705848568701506, 0.7309993135137067, 0.7533635416267414, 0.632791205264331, 0.5385865730922947, 0.45152706534734094, 0.36423247976124723, 0.44110706330527844, 0.6013567085017261, 0.27383093724315166, 1.1304656063250644, 0.9689059581192707, 0.8891707372795266, 1.074481728419325, 0.823829494089776, 0.7513687532016184, 0.6383303049770999, 0.7281604075236038, 0.1957404082333476, 0.4336408766076772, 0.4566555736509742, 0.16408886533916878, 0.882020458778168, 0.7249564614975983, 0.5730324051351141, 0.5094424515136887, 0.4378402777061734, 0.4160773719144474, 0.5042338501725501, 0.6245830655487115, 0.7144328551704235, 0.8035243869024375, 0.8655502537898947, 0.8847899605470372, 0.7653699961180813, 0.6729782250760263, 0.5739864502978652, 0.4861602300363774, 0.5758420112123077, 0.7301583844342805, 0.3146703328244512, 1.1215589639524577, 0.9405190067462758, 0.8743860026879857, 1.076459204488559, 0.6899702388857494, 0.6287693845525935, 0.5154669692669522, 0.5937006157582182, 0.24146813306321932, 0.41982826942706325, 0.2298326010158409, 0.9071650021240919, 0.7556203209640635, 0.6339350158533489, 0.6020232568529589, 0.5511000649742676, 0.5746435879582259, 0.6864700931518624, 0.7913152823960952, 0.8618055070048719, 0.9219407560079422, 0.9520608513039935, 0.9437652404912269, 0.8345606766302514, 0.7814641016382, 0.7256756057520948, 0.6394726200040382, 0.6779890286331759, 0.7813791728552212, 0.2518689010633822, 0.9443909814892681, 0.7532948980984984, 0.6957815952648811, 0.9077888832396399, 0.6143927759448111, 0.4944022003352418, 0.385262565072987, 0.5328762021654284, 0.4361710279489815, 0.40984136094217377, 0.9339980457809353, 0.8000949612192577, 0.7239452013418655, 0.7280324923144627, 0.7020111077529363, 0.7659616791992673, 0.8987894436291958, 0.9832340930212086, 1.0298885195893448, 1.055440457268915, 1.0481006548174718, 1.0084312772185342, 0.9172690120597727, 0.9106597083293476, 0.9033120827879663, 0.8225099524258437, 0.807233513644443, 0.847422141303442, 0.3067425458317734, 0.7109979365992913, 0.5128191232592546, 0.46304265414079276, 0.6835805112859659, 0.6610008454195704, 0.4666646682285106, 0.39093531224833084, 0.6090713172722295, 0.298214977188114, 0.502679068182965, 0.36401888709992625, 0.30732636500831706, 0.35090229055431343, 0.3693599250949916, 0.5021759965191763, 0.6689797523211816, 0.6874729968769212, 0.6824886072554316, 0.6591095578322679, 0.6222548418570055, 0.5728240047988686, 0.4876662332480616, 0.5178862155850178, 0.5861953750811347, 0.5286171536177456, 0.42378071414268403, 0.41326208516918145, 0.16798482199448167, 0.8526937835278681, 0.748148226869366, 0.6418680577152738, 0.7767434806102318, 1.028380700121007, 0.8757702074195274, 0.7786690482976157, 0.951320355152339, 0.7225087581244223, 0.5659328702170292, 0.422810099567583, 0.3764661213050051, 0.32137961457402375, 0.35723673665004985, 0.4910316515096844, 0.5751560158490759, 0.6348630741266366, 0.6926129888485046, 0.7310302148356845, 0.7361720682193914, 0.6207289861828643, 0.5532207220508367, 0.5013848225637391, 0.4172294397631907, 0.4505337908303312, 0.5774955517417171, 0.18138765286260242, 1.0385220749714157, 0.8802727973474473, 0.798247563057659, 0.9818084787637089, 0.8199509143949442, 0.7218671992158926, 0.6108268975075217, 0.7292913722568807, 0.15712874397674673, 0.3242094169206245, 0.4263529069953985, 0.5157855348836313, 0.6622585928635469, 0.7991306737799676, 0.7092364943540012, 0.6031096362374169, 0.4531995093846596, 0.2954912774833664, 0.1612535594983815, 0.2180363575618898, 0.4032037789994525, 0.6143944887131516, 0.6283933773894687, 0.41243052378821216, 0.17890313999113433, 0.6628424532084165, 1.1401595904308537, 1.1227699125392718, 1.004052882924151, 1.0419515704388178, 1.521507966194026, 1.3780476874332805, 1.2791159918505848, 1.4386378404231568, 0.174270628815766, 0.28371937958936994, 0.3707646226988513, 0.5244238561926039, 0.6727619730566062, 0.604136954709476, 0.5215717696031319, 0.4081426718089948, 0.2982838616731726, 0.2135830780350469, 0.1677678370539775, 0.313083798914323, 0.5018179892138336, 0.5000427951496277, 0.2884671547999085, 0.08180961751199259, 0.5162156590236744, 1.0895557202671164, 1.0427145422642874, 0.9260664601517249, 0.9963416717173976, 1.369821147687637, 1.2333970017923743, 1.1320010973370453, 1.2853651149341851, 0.11262519505944586, 0.1969399208070497, 0.3530960306443323, 0.5078857711719308, 0.46032496710173093, 0.4088324494602968, 0.3539088900010729, 0.324892095676002, 0.31336788726803494, 0.2006762440183126, 0.21793015066152494, 0.35399770345892656, 0.33620722392300806, 0.14439906544629072, 0.1576728585888376, 0.419936376315506, 1.130086910153311, 1.0480359894276707, 0.9373081747293222, 1.0447078009353115, 1.2411801517320968, 1.1250663388143407, 1.0183601679908425, 1.1518267500901778, 0.0897472470184302, 0.24100337078408993, 0.39568322404962086, 0.3589945408025243, 0.332136842957867, 0.3276146552875389, 0.3566219881958887, 0.38500079389341285, 0.26147024069970104, 0.18313025495690693, 0.2524393649397294, 0.2248457547622127, 0.07920300161631567, 0.24992568673756638, 0.4220513137735651, 1.1986492479804747, 1.0986764625502234, 0.9927194134063756, 1.1179274907459853, 1.1934571875438873, 1.0963623767698867, 0.9863036298424356, 1.1001483087444497, 0.15967615607395452, 0.3235151366619997, 0.3181561997186374, 0.3296336075369809, 0.37161277899489276, 0.43095699104851054, 0.4715942262564361, 0.34740610384471876, 0.23556912473261624, 0.21773917799438183, 0.1628152958240996, 0.1391092794360756, 0.3396728823204298, 0.40339656584577427, 1.2217933691807863, 1.106369169311393, 1.0053861321028033, 1.1459096648258869, 1.1267954767195596, 1.0425738901936297, 0.9308892918845943, 1.031401956747937, 0.1684014369951258, 0.21800191175353933, 0.2996362641055286, 0.41569637013147276, 0.5257751312897002, 0.5955146002388557, 0.4730723960916707, 0.31509745664339783, 0.1586894629957265, 0.07174667536060887, 0.2545468842208677, 0.48349980672914195, 0.49326909012478715, 1.3449203383285209, 1.2119798286796928, 1.1181553735393914, 1.274678131836746, 1.0954754885280114, 1.044400343202987, 0.9310832201801227, 0.9957115303813034, 0.16054535675996187, 0.30286542177791087, 0.4692900887734991, 0.6153684327542864, 0.7095166588005253, 0.5940325708196593, 0.41406476846023926, 0.1982686108598909, 0.1727250030943507, 0.38743609900843384, 0.6213927348624134, 0.6462476397335905, 1.5058250186439652, 1.3646924159421963, 1.2749132900677036, 1.4380478739713356, 1.1421423283546384, 1.1239298857927869, 1.0116656155127266, 1.0401323321620004, 0.1476843348607307, 0.32547812248369756, 0.4867839460682415, 0.5973078790998037, 0.49344258690148035, 0.3066723161995573, 0.10671650030909723, 0.16379511493663543, 0.3193793743952275, 0.5394123986230187, 0.7034697574209121, 1.539583904588504, 1.4183381570696758, 1.3202809545815941, 1.4640636669355767, 1.2870128687629128, 1.25268639978983, 1.1395137780478064, 1.1855973790773617, 0.182416946910081, 0.3525025145852245, 0.47438961560627896, 0.38531494638521907, 0.20849441295225712, 0.1409505240412359, 0.2284823625688931, 0.26656285133823354, 0.4472420622818266, 0.7330260461727387, 1.5302991024140682, 1.4290256067712013, 1.3243038315952524, 1.4483560654234213, 1.3947273126220674, 1.3411616803473825, 1.2279527327531208, 1.2946357347270745, 0.1756113995515894, 0.30772675552445, 0.24660713267558185, 0.14481877928244877, 0.27710193784992704, 0.34753239227719884, 0.2484768251063654, 0.32671127001195743, 0.7490498579298464, 1.4773958304547132, 1.4018629486196084, 1.2906095093983039, 1.3887606303325197, 1.4933835859815776, 1.414165207015517, 1.3024956397562475, 1.3961780668253208, 0.13818318526986273, 0.13685556590360268, 0.21068707100123768, 0.4171089878534387, 0.4675490005418339, 0.29192857368759, 0.22175541089516396, 0.7448240644374494, 1.3877689603197987, 1.3369920495989842, 1.2213847571421148, 1.29413935212962, 1.5497879910416201, 1.4456980695206265, 1.3373231768513658, 1.4567580049581654, 0.12429897515138186, 0.29589814134473524, 0.5141396894237237, 0.5477577369358216, 0.34248076913726166, 0.1631767590259372, 0.7158569304807725, 1.2843965609884422, 1.2507741858382384, 1.1331668094610683, 1.1881048749499576, 1.5537797820458012, 1.4307326195429393, 1.3261805134149973, 1.4650279075598245, 0.18677690841505015, 0.40262867540944147, 0.4283434199776864, 0.21901761476516993, 0.08719297581731637, 0.6169517717186834, 1.255471206246314, 1.2006469264778046, 1.0853588304098156, 1.1630899137751034, 1.4403719681261211, 1.3255960967017038, 1.2190335572121809, 1.349957168103606, 0.2183090774138033, 0.2580034924188685, 0.10432393337416794, 0.2395630028359751, 0.6042331179735563, 1.3478568847725392, 1.2638082808226665, 1.1541523566510028, 1.26184505817678, 1.3623184291864863, 1.2750172961120416, 1.1640237320668112, 1.2666711978051335, 0.08783252140562511, 0.21461975320720453, 0.44066506777763553, 0.6141574608020642, 1.4388881942829939, 1.3234254807750938, 1.2230599873956447, 1.3618175764406288, 1.2538997356969153, 1.2014894366531716, 1.0882163071248252, 1.1539258325117545, 0.21597614127228637, 0.4499982304305267, 0.5397456033003726, 1.3789000855229065, 1.2548047047660218, 1.1574649502034404, 1.3051420049071605, 1.1671200906645463, 1.1137218078693927, 1.0004394576156292, 1.0674204437046395, 0.2340775853828035, 0.5011824933236355, 1.2653964803310946, 1.1718478762243316, 1.0643307022986481, 1.182387326359069, 1.263478775218162, 1.1719326376222625, 1.0612857246439973, 1.1688648928647702, 0.5528573619432785, 1.1682995710736688, 1.115374725352291, 0.9996436329967688, 1.075907661535972, 1.3926503000020383, 1.267579603664647, 1.1632161735269435, 1.30493762564356, 0.8642078423111633, 0.7192031728894304, 0.6290436349563472, 0.8036422211354842, 0.8617262697923527, 0.7171995898807323, 0.616414246491178, 0.7835632865157375, 0.22885883283002606, 0.24864898820932105, 0.10233160223994968, 1.2376256700694757, 1.0031820566231655, 0.994797775005381, 1.2278775672337885, 0.11896551534961602, 0.2594296072650961, 1.0087746013041055, 0.7743240272152445, 0.7679172877683345, 1.0001572928859273, 0.22892521375171127, 1.0248540648111137, 0.7931509902035256, 0.7695935557125103, 1.0043532475180412, 1.2507630918148511, 1.017792151641958, 0.9979844890335181, 1.232668570784366, 0.23451271034352555, 0.27079967906633223, 0.10225336912778275, 0.11332070754408008, 0.24486019010592142, 0.23477519403200076]

第三步:将2485个距离与一个平均脸做对比,计算偏离平均脸的程度
平均脸,从源码中得到,同样也要做人脸的2485个距离:

"average" : [[121.92799191984679,184.19216240419755],[118.74113263254269,253.7017373484083],[128.07732840700828,314.0651648786312],[145.50341586402052,377.3404382903117],[175.0470179047746,428.3720278198884],[216.26268310246033,469.2344402538887],[267.42588166495466,502.128073946532],[323.6864139765614,512.5053811316307],[381.1889691089136,499.48530971536445],[429.71357990120225,463.4214900408549],[467.1292936657478,421.537754329594],[493.2308725208873,370.6466670145585],[507.3945907183312,305.3965374123],[514.1098885852615,238.51000761747102],[507.2009944162471,174.7364492942625],[465.59705810723074,136.75665747531139],[432.10874975324265,125],[384.15174446143584,125],[351.54488594535763,135.22963355336668],[162.16177451030518,144.72103952617107],[194.70376235949394,126],[241,130],[277.5198647210173,137.82992220884094],[192.5627380181407,182.35373455399292],[225.1658086004223,166.85817167285668],[262.9021389237093,184.72604899079232],[224.82421319031323,193.62679469584918],[224.9386274222809,179.73191446260716],[443.75218061508883,177.1556294105885],[407.36102478935464,162.1785032964798],[367.3426762945685,181.37362678808685],[405.2498567443763,188.75927101523848],[404.863153412407,173.65270066194788],[314, 170],[277.2539320006613,252.0592473714927],[258.790607031229,284.0832945003201],[276.64778558874696,304.54255347445314],[317.4772090972725,307.7859653833357],[364.4959193923387,299.6561959465791],[377.27275089177823,279.043842539653],[357.1140334647449,250.14961061471956],[324,222],[296.770695143374,295.6331974142146],[350.24114846328195,290.942330984987],[248.8532880314441,372.38004806995957],[272.1557077756945,356.35352520595814],[302.9902196911147,350.59821534914704],[323.11457426149127,353.0358352022737],[338.3055779254553,347.5427982113969],[366.49269601972713,353.1538257295358],[392.63652105652415,368.4911974180641],[375.0778975047938,391.4413420753004],[352.32935954043757,405.19247889714825],[320.19499419206926,411.930992226806],[288.9192573286629,407.35752671668797],[267.61253113280924,394.527019223827],[286.6817714614754,382.82667526139215],[320.16223074694074,385.86502934549657],[359.1212544588326,380.7487964985724],[361.7270998810554,365.15603335898066],[322.91210334135167,367.2901736762333],[280.7920218316411,368.2798825278876],[320.66814785515174,277.11007275979364],[206.36606604411398,171.6086547538323],[247.5375468161923,170.29657636660522],[246.36866333618227,191.67729410789994],[205.19888043799355,189.99033691329964],[429.0603263358775,166.1691180598579],[386.8504393293843,166.2774220754911],[384.7938981921405,186.5701136634426],[426.9983448269614,184.45786533091854]]					

得到读入人脸的距离与平均人脸的距离的差值

扫描二维码关注公众号,回复: 11582444 查看本文章
 [-1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, -1, 2, 3, 2, 3, 2, 2, 1, -2, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -4, -4, -5, -4, -3, -2, -2, -5, -7, -4, -3, -4, -5, -4, -3, -2, -1, -2, -2, -3, -3, -3, -3, -3, -3, -4, -4, -3, -5, -1, -1, -2, -1, -2, -2, -1, -2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 3, 4, 4, 4, 3, 3, 3, 1, 1, 1, 1, 2, -1, 1, 1, 1...

第四步:将4个人,每个人提供5张脸数据,放入PCA中进行降维处理,最后保留100维数据例如:

[  0   1   2   9  10  13  30  14  15   7   8  31  32  26  27  23  24  36
  34  35  11  12  41  42  53  54  39  40  69  70  67  68  65  66  59  60
 102 103  98  99  61  62 119 120 104 105  89  90 123 124  79  80 139 140
 129 130 174  75  76 162 163 121 122 179 180 185 186  47  48 115 116 228
 229 222 223 172 173 238 239 113 114 262 263 226 227 177 178 170 171 127
 128 236 237 266 267 297 298 303 285 286]

第五步:将4个人,100维数据放入KNN中

# coding:utf-8

from numpy import *
import operator


##给出训练数据以及对应的类别
def createDataSet():

    group = array([[-1, 1, 1, 2, 1, -1, -1, -1, 2, 2, 2, -1, 1, -1, -2, -1, -1, -4, -5, -5, 1, 1, -7, -5, -2, -3, -2, -4, -2, 1, -1, -1, -1, -2, -5, -4, -1, -2, 2, 2, -5, -1, 1, 1, -3, -2, 5, 5, -3, -2, 2, 2, -1, 1, -3, -2, 1, 2, 2, 5, 4, -1, -1, 1, -3, 1, 1, -3, -2, -3, -2, 5, 5, 6, 6, 1, 2, 5, 3, -3, -4, -1, -1, 4, 5, 2, -1, 3, 2, -3, -3, 6, 5, 4, 4, 3, 5, 7, 8, 9]
,[-1, 1, 1, 3, 2, 2, 1, 1, 3, 1, 2, 1, 1, 1, -1, 1, -1, -4, -4, -5, 3, 3, -7, -5, -3, -3, -2, -4, -1, 1, -1, 1, -1, -1, -4, -4, 1, -2, 2, 2, -5, -1, 1, -1, -2, -2, 5, 4, -3, -3, 3, 3, -1, 1, -2, -2, 1, 1, 2, 5, 5, -2, -2, 1, -3, 1, 1, -3, -2, -3, -2, 5, 5, 6, 6, 1, 2, 5, 4, -3, -4, -1, -1, 4, 5, 2, -1, 3, 3, -3, -3, 6, 5, 5, 5, 4, 5, 7, 8, 8]
,[-1, 1, -1, 2, 2, 2, -2, -1, 1, -1, 1, -2, -2, -2, -3, -2, -2, -5, -6, -6, 2, 2, -8, -6, -4, -4, -4, -6, -3, 1, -3, -2, -2, -3, -6, -5, -3, -3, -1, -1, -7, -2, -2, -3, -4, -4, 2, 2, -4, -4, 3, 3, -1, 1, -4, -5, -3, -1, -1, 3, 3, -3, -3, -3, -4, -2, -1, -5, -4, -5, -4, 3, 3, 4, 4, -2, -2, 3, 1, -4, -5, -3, -3, 2, 3, -2, -4, 1, -1, -5, -5, 4, 3, 3, 3, 2, 3, 5, 6, 6]
,[-1, -1, -1, 2, 1, 1, -2, -2, 1, 2, 2, -2, -2, -2, -3, -2, -2, -3, -3, -4, 2, 1, -6, -4, -1, -1, -2, -5, -2, 1, -3, -2, -2, -3, -3, -1, -3, -2, -1, -1, -5, -3, 1, 1, -3, -2, -1, -1, -1, -1, 2, 2, 1, 2, -1, -4, -2, 3, 2, 1, -1, 1, 1, -2, -1, -1, -1, -2, -1, -3, -1, 1, 1, 2, 2, -2, -2, 1, -1, -1, -3, -3, -2, -1, -1, -3, -4, -2, -1, -2, -2, 2, 1, -1, -1, 1, 1, 3, 4, 5]
,[-2, -2, -3, -2, -2, -2, 1, 1, 3, -4, -3, 1, 1, 1, -1, 1, -1, -2, -3, -3, -2, -2, -5, -3, -4, -4, -1, -3, -1, 1, -1, 1, 1, -1, -4, -3, 1, -1, 1, 1, -3, -1, -1, -2, -2, -1, 3, 2, -3, -3, -2, -2, -1, -2, -1, -1, -1, -3, -3, 1, 1, -2, -2, 1, -2, 1, 1, -3, -2, -2, -1, 1, -1, 2, 2, 1, 2, 2, 2, -2, -2, -1, 1, -2, -1, 1, -1, 2, 2, -3, -2, 2, 2, -2, -1, -2, -1, 2, 4, 5]
,[-2, -1, 1, -6, -7, -5, -1, -3, -2, -2, -5, -2, -2, -1, -2, -3, -1, 7, 8, 7, -7, -6, 4, 5, 6, 7, 4, -1, -1, 2, -3, -1, -1, -3, 7, 9, -1, 4, -5, -4, 5, -3, 2, 3, 4, 4, -8, -8, 7, 5, -8, -8, 1, 2, 8, 1, -5, 1, -2, -10, -9, 5, 6, -5, 4, -2, -3, 6, 5, 4, 4, -9, -10, -4, -6, -3, -2, -9, -8, 8, 5, -7, -5, -9, -9, -10, -6, -7, -4, 3, 5, -9, -12, -9, -9, -9, -9, -14, -5, -5]
,[-2, -1, 2, -6, -7, -6, -1, -3, -2, 1, -3, -2, -1, -1, -2, -3, -1, 8, 9, 8, -8, -7, 5, 6, 8, 8, 5, 1, -1, 2, -3, -1, -1, -2, 8, 10, 1, 5, -5, -4, 7, -3, 3, 5, 5, 5, -8, -8, 8, 6, -8, -8, 2, 2, 9, 3, -5, 3, 1, -9, -9, 6, 8, -4, 6, -1, -3, 8, 6, 5, 6, -9, -9, -4, -6, -2, -2, -9, -7, 9, 6, -6, -4, -8, -9, -9, -5, -7, -3, 3, 6, -9, -11, -8, -9, -9, -9, -13, -5, -6]
,[-2, -1, 2, -2, -4, -4, -1, -3, -2, 3, 1, -2, -3, -1, -3, -3, -2, 7, 8, 7, -4, -4, 4, 4, 9, 10, 4, -1, -2, 2, -3, -1, 1, -3, 8, 11, -1, 5, -5, -4, 5, -3, 5, 7, 5, 4, -9, -9, 10, 7, -4, -5, 2, 3, 10, 1, -5, 5, 3, -11, -10, 8, 9, -5, 6, -1, -1, 7, 7, 5, 6, -10, -11, -4, -6, -2, -2, -9, -8, 9, 6, -6, -4, -10, -10, -10, -6, -7, -3, 4, 7, -10, -12, -10, -10, -9, -9, -13, -5, -5]
,[-2, 1, -1, 2, 2, 2, 3, 2, 4, 1, 2, 3, 3, 3, 2, 2, 2, 6, 6, 6, 2, 2, 4, 5, 4, 4, 5, 2, 3, 2, 2, 3, 2, 2, 6, 7, 4, 5, 2, 2, 5, 1, 4, 4, 5, 6, 1, 1, 5, 4, 3, 3, -1, 1, 8, 4, 2, 3, 2, -2, -1, 5, 5, 2, 4, 4, 3, 6, 5, 5, 6, -2, -3, 2, 1, 3, 4, -1, 1, 7, 6, 1, 2, -3, -2, -2, 1, 1, 3, 4, 6, -1, -3, -3, -2, -3, -2, -5, 3, 3]
,[-3, -1, 1, -4, -4, -2, 2, -2, -1, -2, -3, 1, 1, 2, -1, -1, 2, 11, 12, 11, -4, -3, 8, 8, 11, 11, 7, 3, 2, 2, -2, 2, 3, -1, 11, 14, 3, 8, -4, -3, 10, -1, 6, 8, 8, 8, -11, -10, 12, 9, -5, -5, 2, 2, 13, 5, -4, 2, -1, -12, -12, 9, 11, -3, 8, 1, -1, 10, 9, 8, 8, -12, -13, -8, -10, 1, 1, -10, -8, 12, 9, -5, -3, -12, -13, -10, -4, -7, -2, 6, 9, -12, -14, -13, -13, -11, -12, -17, -8, -9]
,[-1, 1, 1, 2, 2, 2, -2, -1, 1, -1, 1, -2, -3, -2, -2, -3, -2, -1, -1, -1, 2, 2, -4, -3, 1, 2, -2, -5, -2, 2, -3, -2, -2, -3, 1, 3, -3, -1, -2, -2, -4, -3, 1, -1, -1, -2, 1, -1, 2, -1, 3, 3, 1, 1, 3, -4, -4, 1, 1, -3, -2, 1, 2, -5, 1, -2, -1, -1, 1, -1, -1, -2, -2, 5, 4, -3, -3, -4, -4, 2, -1, -5, -4, -2, -1, -6, -5, -4, -3, -2, 1, -1, -5, -2, -2, -2, -2, -4, 4, 5]
,[-1, 2, 3, 2, 2, 2, 2, 2, 3, 4, 3, 1, 1, 1, 1, -1, 1, 5, 5, 5, 2, 2, 2, 2, 7, 7, 3, -1, 1, 2, -1, 1, 1, -1, 6, 8, 1, 4, 1, 1, 2, -2, 4, 5, 4, 4, -1, -1, 7, 5, 2, 2, 2, 3, 8, 1, -2, 5, 4, -2, -2, 6, 7, -1, 5, 2, 2, 5, 5, 4, 5, -1, -2, 4, 3, 1, 1, -3, -2, 7, 4, -3, -1, -2, -1, -4, -3, -2, 1, 3, 5, 1, -4, -1, -1, -1, -1, -4, 5, 5]
,[-2, 1, 1, 1, 1, 1, -1, -1, 1, -1, 1, -2, -2, -2, -2, -3, -2, 1, 2, 1, 2, 2, -3, -2, 2, 2, -1, -4, -2, 2, -3, -1, -2, -2, 2, 4, -2, 1, -2, -2, -3, -3, 1, 1, 1, -1, -1, -2, 3, 1, 2, 2, 1, 2, 4, -3, -4, 1, 1, -3, -2, 2, 2, -4, 2, -1, -1, 1, 2, 1, 1, -2, -3, 4, 3, -2, -2, -4, -4, 3, 1, -4, -3, -3, -2, -5, -5, -4, -2, -1, 1, -2, -5, -2, -2, -3, -2, -4, 4, 4]
,[-1, 2, 3, 2, 1, 2, 5, 5, 7, 3, 2, 4, 6, 4, 4, 4, 4, 7, 7, 7, 1, 2, 5, 6, 6, 6, 7, 4, 4, 2, 4, 5, 4, 4, 7, 8, 6, 7, 4, 5, 7, 3, 6, 6, 7, 8, 5, 5, 7, 6, 2, 2, 2, 3, 9, 7, 4, 4, 4, 2, 3, 7, 7, 5, 6, 5, 5, 7, 7, 7, 7, 3, 2, 6, 6, 6, 6, 3, 4, 8, 7, 2, 4, 1, 3, 3, 4, 4, 5, 6, 7, 5, 2, 2, 3, 2, 3, 1, 8, 8]
,[-1, 1, 1, 3, 3, 2, -2, -1, 1, 1, 2, -2, -2, -2, -2, -3, -2, -2, -1, -1, 3, 3, -4, -4, 1, 1, -2, -5, -2, 2, -3, -2, -2, -3, -1, 2, -2, -1, -2, -2, -4, -3, -1, -1, -1, -2, 1, -1, 2, -1, 3, 3, 1, 1, 3, -4, -4, 2, 2, -1, -1, -1, 1, -4, 1, -2, -1, -1, -1, -2, -1, 1, -1, 5, 4, -2, -3, -2, -3, 2, -1, -4, -3, -1, 1, -4, -5, -3, -2, -2, -1, 1, -3, 1, 1, -1, 1, -2, 5, 5]
,[-2, -1, -1, -4, -6, -4, 3, -1, 3, 1, -2, 2, 3, 2, 1, 2, 2, 7, 5, 5, -5, -5, 2, 5, 6, 5, 5, 2, 2, 1, 2, 3, 2, 1, 6, 7, 3, 4, 2, 2, 6, 1, 5, 5, 4, 6, 2, 2, 5, 5, -5, -5, 1, 1, 7, 5, 2, 3, 1, -1, -1, 6, 6, 3, 4, 4, 3, 7, 6, 5, 7, -2, -2, 2, 2, 2, 3, -3, -2, 6, 5, -1, 1, -2, -2, -2, -1, -1, 1, 4, 6, 1, -4, -2, -2, -2, -2, -5, 3, 4]
,[-2, -2, -2, -6, -7, -5, -3, -5, -4, -4, -5, -3, -5, -3, -5, -5, -4, -1, 1, -1, -6, -6, -4, -3, 2, 2, -3, -6, -4, 1, -5, -3, -4, -5, 1, 3, -6, -3, -5, -5, -3, -5, -2, -1, -3, -3, -4, -5, 2, -1, -7, -7, -1, -1, 2, -6, -7, -3, -4, -6, -6, -1, 1, -7, -1, -4, -4, 1, 1, -2, -1, -6, -6, -1, -2, -7, -6, -9, -9, 1, -2, -8, -7, -5, -6, -11, -10, -9, -7, -3, -1, -6, -11, -5, -6, -6, -5, -10, -2, -1]
,[-2, -2, -2, -5, -6, -5, 2, -1, 3, -2, -4, 2, 3, 2, -1, 1, 1, 5, 3, 3, -6, -5, 1, 4, 3, 3, 4, 2, 1, 1, 1, 2, 1, 1, 4, 5, 2, 3, 2, 2, 4, 1, 3, 3, 3, 5, 3, 3, 3, 3, -6, -6, -1, -1, 5, 4, 1, 1, -2, -1, -1, 3, 4, 2, 3, 3, 2, 5, 4, 4, 5, -2, -2, 3, 2, 1, 3, -2, -1, 4, 3, -1, 1, -2, -2, -1, -1, -1, 1, 3, 4, 1, -3, -2, -2, -2, -2, -4, 3, 4]
,[-2, -1, -1, -6, -6, -4, -1, -2, 1, -4, -5, -2, -2, -2, -3, -2, -2, 1, 1, 1, -5, -5, -4, -2, 2, 2, -1, -4, -2, 1, -3, -1, -2, -2, 2, 3, -3, -2, -2, -2, -2, -3, -1, -1, -2, -1, 1, -1, 1, -1, -7, -6, -1, -1, 3, -3, -5, -3, -4, -3, -2, 1, 1, -4, -1, -2, -3, 2, 2, -1, 1, -2, -2, 3, 2, -4, -3, -5, -6, 2, -1, -6, -5, -2, -2, -6, -7, -5, -4, -2, -1, -2, -6, -2, -3, -3, -3, -6, 2, 4]
,[-2, -2, -2, -7, -8, -5, -3, -5, -3, -6, -7, -3, -4, -3, -5, -4, -4, -3, -2, -3, -7, -6, -6, -4, -2, -1, -3, -7, -4, 1, -5, -3, -4, -4, -2, 1, -6, -4, -5, -4, -5, -5, -3, -4, -5, -4, -2, -3, -2, -3, -8, -8, -1, -2, -1, -7, -8, -5, -6, -4, -4, -3, -2, -7, -3, -5, -5, -1, -2, -4, -3, -5, -4, 1, -1, -7, -7, -8, -8, -2, -4, -9, -8, -4, -4, -9, -10, -8, -7, -5, -3, -5, -9, -4, -5, -5, -5, -8, -2, 1]
])
    labels = ['A','A','A','A','A', 'B', 'B','B','B','B','C','C','C','C','C', 'D', 'D', 'D', 'D', 'D']
    return group, labels


###通过KNN进行分类
def classify(input, dataSet, label, k):
    dataSize = dataSet.shape[0]
    ####计算欧式距离
    diff = tile(input, (dataSize, 1)) - dataSet
    sqdiff = diff ** 2
    squareDist = sum(sqdiff, axis=1)  ###行向量分别相加,从而得到新的一个行向量
    dist = squareDist ** 0.5

    ##对距离进行排序
    sortedDistIndex = argsort(dist)  ##argsort()根据元素的值从大到小对元素进行排序,返回下标

    classCount = {}
    for i in range(k):
        voteLabel = label[sortedDistIndex[i]]
        print(voteLabel, end=" ")
        ###对选取的K个样本所属的类别个数进行统计
        classCount[voteLabel] = classCount.get(voteLabel, 0) + 1

    ###选取出现的类别次数最多的类别发
    maxCount = 0
    for key, value in classCount.items():
        if value > maxCount:
            maxCount = value
            classes = key

    return classes

在这里插入图片描述

第六步:将一个人脸输入到KNN模型中,分类:


#-*-coding:utf-8 -*-
import sys
sys.path.append("...文件路径...")
import one
from numpy import *
dataSet,labels = one.createDataSet()
input = array([
[-1, 1, 1, 2, 2, 1, -1, -1, 2, 1, 2, -1, -1, -1, -2, -1, -1, -4, -4, -5, 2, 1, -7, -4, -3, -3, -2, -5, -2, 1, -2, -1, -1, -2, -4, -3, -1, -2, 1, 1, -5, -1, 1, -1, -3, -2, 3, 3, -3, -3, 2, 2, -1, 1, -2, -2, -1, 1, 1, 3, 3, -2, -2, -1, -3, 1, 1, -3, -2, -3, -2, 3, 3, 4, 4, -1, 1, 3, 2, -3, -3, -2, -1, 2, 3, 1, -2, 2, 1, -3, -3, 4, 3, 2, 3, 2, 3, 5, 6, 6]
,[-2, -1, 1, -4, -5, -4, 1, -2, -1, -1, -2, -1, -1, 1, -2, -2, -1, 7, 8, 8, -5, -4, 4, 5, 8, 8, 5, 1, -1, 2, -2, 1, 1, -2, 8, 10, 1, 5, -5, -3, 6, -2, 4, 5, 5, 5, -8, -8, 8, 6, -5, -6, 2, 2, 9, 3, -4, 3, 1, -10, -9, 6, 8, -4, 5, -1, -2, 7, 6, 5, 6, -9, -10, -4, -6, -1, -1, -9, -8, 9, 6, -6, -4, -9, -9, -10, -5, -7, -3, 4, 6, -9, -12, -9, -9, -9, -9, -13, -5, -5]
,[-1, 1, 2, 2, 2, 2, -1, 1, 2, 1, 2, -1, -1, -1, -2, -2, -1, 2, 2, 2, 2, 2, -2, -1, 3, 3, 1, -4, -1, 2, -2, -1, -1, -2, 3, 5, -1, 1, -1, -1, -2, -3, 2, 2, 1, 1, 1, -1, 4, 2, 2, 3, 1, 2, 5, -2, -3, 2, 2, -2, -1, 3, 4, -3, 3, -1, -1, 2, 3, 1, 2, -1, -2, 4, 4, -2, -2, -3, -3, 4, 2, -4, -3, -2, -1, -4, -4, -3, -2, 1, 2, 1, -4, -1, -1, -1, -1, -3, 5, 5]
,[-2, -1, -2, -6, -6, -5, -1, -3, -1, -3, -5, -1, -1, -1, -3, -2, -2, 2, 2, 1, -6, -5, -3, -1, 2, 2, 1, -3, -2, 1, -2, -1, -2, -2, 2, 4, -3, -1, -2, -2, -1, -3, 1, 1, -1, 1, -1, -1, 2, 1, -7, -6, -1, -1, 3, -2, -4, -2, -3, -3, -2, 1, 2, -3, 1, -1, -2, 3, 2, 1, 2, -3, -3, 2, 1, -3, -3, -5, -5, 2, 1, -5, -4, -3, -3, -6, -6, -5, -4, -1, 1, -2, -6, -3, -3, -4, -3, -6, 1, 3]

])
K = 5
output = one.classify(input[3],dataSet,labels,K)
print("分类结果为:",output)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38234785/article/details/106321331
js