当前位置:首页 > 百科知识 > 正文

ai人工智能检测(ai人工智能写诗平台)

ai人工智能检测(ai人工智能写诗平台)

|李

制造业| ai技术营(id: rgznai100)

最近讨论了摸鱼的工作。网易云音乐也有合理的触排。今天推荐如何用Python摸鱼。代码命中!

简介:面部表情是人类情感最直接的外在表现之一,是社会活动的重要方式,为机器提供人类的情感,使机器能够识别人的情感状态,是人机交互的重要目标之一。在过去的十年里,科技人员对人类表情的自动识别进行了深入的研究。人脸表情的研究在心理学、疲劳驾驶检测、课堂教学效果评估、智能医疗、公共安全系统、汽车安全系统等领域受到广泛关注。

在人脸识别算法中,首先需要确定视频或图片中是否存在人脸,并定位人脸的位置。目前人脸确定和定位的方法主要有两种:知识法和统计法。其中,基于知识的人脸检测主要是利用面部器官的特征和器官之间的几何关系来判断有无图像。基于统计检测方法,利用过去照片中的像素分布和当前目标图像的像素分布来确定表面。

今天,我们将使用KNN算法来实现人脸分类和基于分类的监控。当您检测到未经训练的暴露人脸时,您将自动执行设置的命名。在这里,我们将其设置为打开文档。你可以组成我们的脸型来检测“摸鱼”神器,或者停掉自己的下巴。您可以执行此过程。效果如下:

KNN面部分类算法简介

KNN算法是一种惰性学习算法,是通过KO样本投票决策对样本进行分类的类别,已广泛应用于数据挖掘和数据分类。在模式识别中,K- nest算法的优点是极其简单,不重要,具有提示性。其核心内容:任何样本都在数据集中的K个样本本中。如果大部分样本属于某一类,这个例子就属于这一类。其意义在于通过已知的待测数据类别来预测样本的性质,这大大削弱了对数据集高维、高耦合数据特征的分析。

优点:缓解数据噪声能力强,非常适合零售复杂多变的特征选择;在分析数据特征时,我们只关注最近的k个样本,这大大减少了数据集的大小。

缺点:K-Nest算法属于不活跃的惰性算法;k的选择对数据分析结果有影响。

基于KNN的人脸分类算法存在异常人脸样本,按照正常工况进行偏移。通过比较训练集之间最近的k近邻距离,比较正常样本和异常样本,不考虑异常人脸。KNN人脸分类算法由两部分组成:建模和故障检测。

1.1模型建立

第一部分为模型。首先在训练集中确定每个样本的K近邻沉积,然后计算每个样本的欧式距离平方作为其K近邻样本作为统计量。

1.2 three dposeunitybarracuda简介

第二部分是故障检测。首先在训练集中,测试前K个最近邻,然后用公式计算X和K附近区域的样本和方程平方。最后,将正方形与标准进行比较。如果大于,样本X为异常样本;否则就是正常样本。

面部特征提取

人的面部功能使用face_recognition。人脸识别库主要封装了DLIB C图形库。它被打包成一个非常简单的API库,很容易实现,可以用Python语言识别。发展困难。人脸识别数据库主要包括几个步骤:人脸检测,找出所有人脸;面部特征的检测:利用特征点纠正姿势,将侧面转向正面;对人脸编码:根据人脸特征计算人脸的特征值(特征向量)。

编程

这里的设计分为以下几个步骤:数据集记录和制作、KNN面部分类训练和异常检测执行程序。

3.1面部数据生产

这里我们只需要对1000个人的人脸进行采样,通过Face_recognition提取出你的人脸位置并进行分割。代码如下:

face _ features=['下巴,' left_eybrow ',' right_eybrow ',' fore_bridge ',' fore_tip ','左眼', '右眼,'顶唇','下唇]video _ capture=cv2。视频捕获(0)标签="flase"num=0 .尝试:操作系统.MKDIR("IMG /"标签)除了:经过虽然是真的:RET,Frame=Video _ capture。read()face _ locations=face _ recognition。面部_位置(帧)face _ landmarks _ list=face _ recognition。脸_地标(帧)用于面部_位置中的face_location:顶部,右侧,底部,左=面_位置如果len(face _ list marks _ list)==1:num=1 face _ image=帧[上:下,左:右] cv2.imwrite("img /"标签"/" str(num) "jpg ",face_image)

打印(“保存”+ str(num)+“张红脸”) cv2.imshow(“test”,face_image) cv2.waitkey(1) 别的: 打印(“无法检测到面部,或者面孔的数量不仅是一个,请确保只有一张脸”) 如果num == 1000: 休息 cv2.destroyallwindows()

3.2 KNN面部分类

KNN分类面孔,首先通过计算各面部编码之间的距离来横穿训练浓度的每个面部样本,以判断它是否是正样本。总程序结构如下所示,即面部_Record记录面部面部,Face_Recognition_KNN列车人员面部和监视器,测试是检测例外的脚本,它已被打包到EXE文件中。代码如下所示:

def火车(train_dir,model_save_path = none,n_neighbors = none,knn_algo ='ball_tree',verbose = false):    x = []    Y = []    对于OS.Listdir(Train_Dir)的Class_Dir:        如果不是os.path.isdir(os.path.join(train_dir,class_dir):            继续        对于image_files_in_folder(os.path.join(train_dir,clas_dir)中的img_path:            image = face_recognition.load_image_file(img_path)            face_bounding_boxes = face_recognition.face_locations(图像)            如果len(face_bounding_boxes)! = 1:                如果verbose:                    打印(“image {}不适合培训:{}”。格式(img_path,                                                                          如果len,“没有找到脸”                                                                              face_bounding_boxes) <1 else "Found More Than Ooney)))            Else:                X.Append (Face_Recognition.face_encodings (image, known_face_locations = face_bounding_boxes) [0])                Y.Append (class_dir)    IF n_neighbors is none:        n_neighbors = int (round (math.sqrt (len (x))))))        IF Verbose:            Print ("Chose N_Neighbors Automatically:", N_Neighbors)    KNN_CLF = neighbors.kneighborsclassifier (n_neighbors = n_neighbors, algorithm = KNN_ALGO, Weights = 'distance')    KNN_CLF.FIT (X, Y)    If MODEL_SAVE_PATH IS Not None:        WITH OPEN (Model_save_path, 'wb') AS F:            Pickle.dump (KNN_CLF, F)    Return KNN_CLFDEF PREDICT (X_IMG_PATH, KNN_CLF = none, model_path = none, distance_threshold = 0.5):    IF knn_clf is none and model_path is none:        Raise Exception ("Must Supply Knn Classifier Either THOURH KNN_CLF or MODEL_PATH")    IF KNN_CLF IS NONE:        WITH OPEN (Model_path, 'RB') AS F:            KNN_CLF = Pickle.Load (f)    X_IMG = X_IMG_PATH    X_FACE_LOCATIONS = Face_Recognition.face_locations (x_img)    IF LEN (X_FACE_LOCATIONS) == 0:        Return []    Faces_encodings = face_recognition.face_encodings (x_img, known_face_locations = x_face_locations)    Closest_Distances = knn_clf.kneighbors (faces_encodings, n_neighbors = 1)    Are_matches = [closest_distances [0] [i] [0] <= distance_threshold for i in inheng (len (x_face_locations)]]]    RETURN [(PRED, LOC) IF Rec Else ("Unknown", LOC) for PRED, LOC, REC IN            ZIP (KNN_CLF.PREDICT (Faces_Encodings), X_FACE_LOCATIONS, Are_MATCHES]]

3.3 Executive Face Behavior

In order to prevent the abnormal face continuous operation, the computer card is caused, and a GUI button is required to ensure that only the OK button will continue to monitor only. The following code includes the definition of the GUI interface, which is mainly only one button function, buttons click to let the abnormal program return to normal, but never affect the face detection program. That is, the program and face classification are not interfered with each other. code show as below:

DEF GET_WINDOW_POSITON (Width, Height):    Window_x_position = (Window.winfo_Screenwidth () - width) // 2    WINDOW_Y_POSITION = (Window.winfo_ScreenHHEENT () - Height) // 2    Return window_x_position, window_y_positionPOS = GET_WINDOW_POSITON (TK_WIDTH, TK_HEIGHT) Window.Geometry (f '+ {POS [0]} + {POS [1]}')DEF CloseWindow ():    Messagebox.showinfo (title = "Warning", Message = "Please click OK")    ReturnDEF T ():    TRY:        Os.Remove ("ok.txt")    Except:        PASS    Window.destroy ()WINDOW.PROTOCOL ("WM_DELETE_WINDOW", Closewindow)BNT = Button (Window, Text = "OK", width = 15, Height = 2, Command = T)BNT.PACK ()Window.mainloop ()IF TEMP> num:        如果OS.Path.exists(“OK.TXT”):            经过        别的:            T2 =线程.Thread(目标= Test2)            t2.start()            OS.System(“1.jpg”)            f =打开(“ok.txt”,“w”)            F.Close()            t1 =线程.Thread(目标= test1)            t1.start()    对于预测中的名称,(顶部,右,左下角):        draw.rectangle((左,顶部),(右,底部),大纲=(0,0,255))        text_width,text_height = draw.textsize(name)        draw.rectangle((左,底部 -  text_height  -  10),(右下),填充=(0,0,255),大纲=(0,0,255))        draw.text((int +右)/ 2),底部 -  text_height  -  10),名称,font = myfont,fill =(0,0,0))    德德尔绘画    pil_image = np.array(pil_image)    temp = num.别的:    pil_image = img_path.def test2():    os.system('1.caj')def test1():    OS.System('test.exe')

完整代码:

https://codechina.csdn.net/qq_42279468/face-onitor/-/tree/master

李秋岛,CSDN博客专家,CSDN达人职业。硕士正在中国矿业大学阅读,制定了Taptap比赛奖。

ai