python - 如何将列表转换为 numpy 数组以与库“face_recognition”一起使用
问题描述
我正在使用这个模块“face_recognition”,我正在使用函数“face_encondings”创建一个numpy数组并将其保存在Sqlite3上。但是,当我从 sqlite3 中选择这个 face_enconding 时,它是字符串格式的。我需要一些帮助才能将其转换为 numpy 数组以使用“compare_faces”函数,如下所示:
import sqlite3
con = sqlite3.connect("./teste.db")
cur = con.cursor()
import face_recognition
import numpy
j = face_recognition.load_image_file('mine.jpg')
je = face_recognition.face_encodings(j)[0]
cur.execute("SELECT faceencoding FROM users")
v = ''
for x in cur:
v = str(x[0])
print(v)
j = numpy.asarray(str(v.replace('[','').replace(']', '')))
print(j)
result = face_recognition.compare_faces([je], j) #Here's where i'm getting the error!
输出错误是这样的:
Traceback (most recent call last):
File "c:/Users/uriel/Documents/Python/fr/teste.py", line 18, in <module>
result = face_recognition.compare_faces([je], j)
File "C:\Users\uriel\Documents\Python\fr\myvenv\lib\site-packages\face_recognition\api.py", line 226, in compare_faces
return list(face_distance(known_face_encodings, face_encoding_to_check) <= tolerance)
File "C:\Users\uriel\Documents\Python\fr\myvenv\lib\site-packages\face_recognition\api.py", line 75, in face_distance
return np.linalg.norm(face_encodings - face_to_compare, axis=1)
numpy.core._exceptions.UFuncTypeError: ufunc 'subtract' did not contain a loop with signature matching types (dtype('<U1555'), dtype('<U1555')) -> dtype('<U1555')
有一段时间我可以转换它,但是数组也是空的;s
解决方案
推荐阅读
- javascript - 在双方或仅在服务器端验证表单?
- linux - 删除第一行并用给定数据替换第一列数据
- python - Groupby.median:搜索每一行的增量(熊猫)
- c# - Xamarin - Sqlite.net 内存消耗非常高
- terraform - 如何对 Terraform 文件进行 lint
- uwp - 调整 UWP ContentDialog 宽度/高度
- python - Python 不正确的 for 循环缩进(Coursera Python 数据结构课程)
- python - 如何检查numpy数组的所有元素是否具有整数值?
- c# - href链接中重复的导航操作?
- javascript - 如何向 ZK 元素添加“焦点丢失”事件侦听器?