Package: robotpipe
robotpipe Python Library========================LicenseThe code of robotpipe Python Library is released under the MIT License.There is no limitation for both academic and commercial usage.robotpipe Python Library is an artificial intelligence learning library,including mainstream advanced artificial intelligence libraries, such asInsightFace, yolov8, paddleocr, etc.本项目具备如下推理功能：人脸检测人脸识别人脸年龄与性别识别人脸106个特征点换脸B站演示地址:https://space.bilibili.com/485304569安装安装opencv.. code:: pythonpip install opencv-python-headless==4.6.0.66pip install opencv-python==4.6.0.66pip install opencv-contrib-python==4.6.0.66安装onnxruntime.. code:: pythonpip install onnxruntime若你的电脑支持gpu,可以进入如下安装.. code:: pythonpip install onnxruntime-gpupip安装.. code:: pythonpip install robotpipe==0.0.3若安装失败，请指定安装路径.. code:: pythonpip install robotpipe==0.0.3 -ihttps://pypi.tuna.tsinghua.edu.cn/simple导入权重文件在用户目录下新建\ ``.robotpipe``\ 文件夹



.. code:: python



   C:\Users\KAI\.robotpipe\models

   在models里面放入权重文件



从百度网盘中下载权重文件,并解压释放进去



功能演示

--------



人脸检测

~~~~~~~~



.. image:: ./images/detect.jpg



.. code:: python



   from robotpipe import FaceDetection

   from robotpipe import draw_faces

   import cv2 as cv

   import numpy as np



   if __name__ == '__main__':

       face_detection = FaceDetection()

       img = cv.imread('images/trump1.jpg')

       faces = face_detection.predict(img)

      

       dst = draw_faces(img,faces)

       

       cv.imshow('img',dst)

       cv.waitKey(0)



人脸识别

~~~~~~~~



.. image:: images/recog.jpg



.. code:: python



   from robotpipe import FaceRecognition

   import cv2 as cv

   import numpy as np



   if __name__ == '__main__':

       face_recognition = FaceRecognition()

       trump1 = cv.imread('images/trump1.jpg')

       trump2 = cv.imread('images/trump2.jpg')

       

       # 获取人脸特征

       feats1 = face_recognition.predict(trump1)

       feats2 = face_recognition.predict(trump2)

       

       sim = face_recognition.compute_sim(feats1,feats2)



       # 根据相似度,输出结果

       if sim<0.2:

           conclu = 'they are not the same'

       elif sim>=0.2 and sim<0.28:

           conclu = 'they are looks like the same people'

       else:

           conclu = 'they are the same people'



       print(sim,conclu)



       cv.imshow('trump1',trump1)

       cv.imshow('trump2',trump2)

       cv.waitKey(0)



人脸年龄与性别识别.. image:: images/genderage.jpg.. code:: pythonfrom robotpipe import FaceAttributefrom robotpipe import draw_facesimport cv2 as cvimport numpy as npifname== 'main':face_attr = FaceAttribute()

   img = cv.imread('images/trump1.jpg')

   

   # 获取人脸特征

   faces = face_attr.predict(img)

   # 1 表示男性， 0，表示女性

   print(faces[0])

   dst = draw_faces(img,faces)

   cv.imshow("images/1.jpg",dst)

   cv.waitKey(0)人脸106个特征点.. image:: images/landmark.jpg



.. code:: python



   from robotpipe import FaceLandmark

   import cv2 as cv

   import numpy as np

   from robotpipe import draw_faces,draw_landmarks



   if __name__ == '__main__':

       face_attr = FaceLandmark()

       trump1 = cv.imread('images/trump1.jpg')



       # 获取人脸特征106个特征点

       faces = face_attr.predict(trump1)



       retimg = draw_landmarks(trump1,faces)

       cv.imshow('trump1_landmark',retimg)

       cv.waitKey(0)



换脸

~~~~



.. image:: images/swapper.jpg



.. code:: python



   from robotpipe import FaceSwapper



   import cv2 as cv

   import numpy as np



   if __name__ == '__main__':

       face_swapper = FaceSwapper()

       trump1 = cv.imread('images/trump1.jpg')

       target = cv.imread('images/1.jpg')



       sourceFace = face_swapper.get_source_face(trump1)



       dst = face_swapper.predict(sourceFace, target)

      

       cv.imshow("trump1",trump1)

       cv.imshow("1",target)

       cv.imshow("dst", dst)

       cv.waitKey()



若运行代码出现一下错误，则是\ ``opencv-python-headless``\ 与\ ``opencv-python``\ 版本不匹配的原因



.. code:: python



   cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1272: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'



卸载\ ``opencv-python-headless``,重新安装



.. code:: python



   pip install opencv-python-headless==4.6.0.66

   pip install opencv-python==4.6.0.66

   pip install opencv-contrib-python==4.6.0.66



本项目参考以下工程:



`InsightFace <https://insightface.ai/>`__



`PaddleOCR <https://github.com/PaddlePaddle/PaddleOCR>`__