machine-learning - 测试用于对象检测的 Svm 模型时出错
问题描述
from skimage.transform import pyramid_gaussian
from sklearn.externals import joblib
from skimage import color
from skimage import io
from imutils.object_detection import non_max_suppression
import imutils
import numpy as np
import cv2
import os
import glob
orientations = 9
pixels_per_cell = (8, 8)
cells_per_block = (2, 2)
threshold = .3
def sliding_window(image, stepSize, windowSize):
for y in range(0, image.shape[0], stepSize):
for x in range(0, image.shape[1], stepSize):
yield (x, y, image[y: y + windowSize[1], x:x + windowSize[0]])
model = joblib.load('model_name.npy')
scale = 0
detections = []
img= cv2.imread("pos\56_resized.jpg")
(winW, winH)= (180,320)
windowSize=(winW,winH)
downscale=1.5
for resized in pyramid_gaussian(img, downscale=1.5):
for (x,y,window) in sliding_window(resized, stepSize=10, windowSize=(winW,winH)):
if window.shape[0] != winH or window.shape[1] !=winW:
continue
window=color.rgb2gray(window)
fds = hog(window, orientations, pixels_per_cell, cells_per_block, block_norm='L2')
fds = fds.reshape(1, -1)
pred = model.predict(fds)
if pred == 1:
if model.decision_function(fds) > 0.6:
print("Detection:: Location -> ({}, {})".format(x, y))
print("Scale -> {} | Confidence Score {} \n".format(scale,model.decision_function(fds)))
detections.append((int(x*(downscale**scale)),int(y*(downscale**scale)),model.decision_function(fds),int(windowSize[0]*(downscale**scale)),int(windowSize[1]*(downscale**scale))
scale+=1
** ValueError Traceback (最近一次调用最后一次) in ----> 1 for img1 in pyramid_gaussian(img, downscale=2): 2 for (x,y,window) in rolling_window(resized, stepSize=10, windowSize=( winW,winH)): 3 if window.shape[0] != winH or window.shape[1] !=winW: 4 continue 5 window=color.rgb2gray(window)
D:\Anaconda3\lib\site-packages\skimage\transform\pyramids.py in pyramid_gaussian(image, max_layer, downscale, sigma, order, mode, cval, multichannel) 195 196 # 转换为浮点数以实现金字塔中一致的数据类型 - -> 197 图像 = img_as_float(图像) 198 199 层 = 0
D:\Anaconda3\lib\site-packages\skimage\util\dtype.py in img_as_float(image, force_copy) 411 412 """ --> 413 return convert(image, np.floating, force_copy) 414 415
D:\Anaconda3\lib\site-packages\skimage\util\dtype.py in convert(image, dtype, force_copy, uniform) 124 if not (dtype_in in _supported_types and dtype_out in _supported_types): 125 raise ValueError("Can not convert从 {} 到 {}。” --> 126 .format(dtypeobj_in, dtypeobj_out)) 127 128 def sign_loss():
ValueError:无法从对象转换为 float64。
**
解决方案
推荐阅读
- windows - 复制带有空格和大引号的文件
- kubernetes - 为什么有些 Kubernetes 的资源创建后是不可变的?
- python - SessionNotCreatedException:消息:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 81 I
- c++ - 我应该在 main 函数中写什么来测试我的问题 t 次?
- sql - SQL - 最大 ID 的总和
- angular - CKEditor 5 不能在生产构建 Angular 6 中工作
- css - CSS min() 函数到 SASS
- algorithm - 给定一个 DP 问题,我如何证明它等价于其他一些 DP 问题?
- python - 在 scikit-image 中使用 ORB 和 RANSAC 进行图像对齐
- typescript - 在 Typescript 中加载 json 文件作为对象而不是模块