1699|1

31

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

AI挑战营(进阶):2.WSL2cuda+pytorch+insight初探 [复制链接]

一、docker 运行ubuntu22尝试

个人pc是windows,参考牛人文章发现用的ubuntu22,首先考虑使用docker运行ubuntu22容器,这样即不影响其它已有环境,也不担心其它环境影响它

AI挑战营(进阶):1. InsightFace 快速上手 - 嵌入式系统 - 电子工程世界-论坛

docker之前已经有部署,docker pull ubuntu:22.04下载ubuntu22的image,成功运行

使用下面的命令可以安装cuda

apt install nvidia-cuda-toolkit*

apt install nvidia-cuda-dev

cuda安装完成后,发现nvida的驱动没有安装,于是安装了驱动

运行nvidia-smi后报未知错误,docker中运行ubuntu22来使用nvidia应该还是有问题的

二、WSL2中运行ubuntu22

在wsl2中新建ubuntu22的实例,可以直接在vscode远程中选择发行版

 

创建完成后,运行nvidia-smi,直接看到下面的输出

 

还是微软贴心。

安装cuda 11.8版本,查找官网发现下面的安装命令,运行成功

  完成后运行nvcc -V,可以得到下面的输出,证明cuda安装成功。

 

使用命令安装pytorch

  第一次安装时报错了,说sha值不对应,重新运行一次,安装成功

使用下面的命令安装insightface和onnxruntime_gpu

pip install insightface

pip install mxnet onnxruntime-gpu

运行人脸分割测试

import cv2
import numpy as np
import insightface
from insightface.app import FaceAnalysis
from insightface.data import get_image as ins_get_image

app = FaceAnalysis(name="buffalo_sc",providers=['CUDAExecutionProvider', 'CPUExecutionProvider'])
app.prepare(ctx_id=0, det_size=(640, 640))
img = cv2.imread('input.jpeg')
faces = app.get(img)
rimg = app.draw_on(img, faces)
cv2.imwrite("./output.jpg", rimg)

得到下面的图像

 

运行人脸识别

选取joey作为目标

 

import cv2
import numpy as np
import insightface
from insightface.app import FaceAnalysis
from insightface.data import get_image as ins_get_image

app = FaceAnalysis(name="buffalo_sc",providers=['CUDAExecutionProvider', 'CPUExecutionProvider'])
app.prepare(ctx_id=0, det_size=(640, 640))
img = cv2.imread('input.jpeg')
faces = app.get(img)

feats = []
for face in faces:
    feats.append(face.normed_embedding)

feats = np.array(feats, dtype=np.float32)
target = cv2.imread('joy.png')
target_faces = app.get(target)
target_feat = np.array(target_faces[0].normed_embedding, dtype=np.float32)
sims = np.dot(feats, target_feat)
print(sims)
target_index = int(sims.argmax())
rimg = app.draw_on(img, [faces[target_index]])
cv2.imwrite("joy_output_target.jpg", rimg)

几张人脸得到的相似度如下:

[ 0.9816556   0.05519836  0.09217417 -0.2159264   0.02295483  0.21829614]

绘制结果如下:

 

点赞 关注

回复
举报

31

帖子

2

TA的资源

一粒金砂(中级)

沙发
 

安装 rknn后开始报numpy没有int属性,查看报错是在insightface中,将face_analysis.py中下面使用int的地方修改为int32后,就不报错了

        for i in range(len(faces)):

            face = faces[i]

            box = face.bbox.astype(np.int32)

            color = (0, 0, 255)

            cv2.rectangle(dimg, (box[0], box[1]), (box[2], box[3]), color, 2)

            if face.kps is not None:

                kps = face.kps.astype(np.int32)

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表