저는 python 2.7, openCV 버전 3에서 sklearn, skimage를 사용하여 HOG 탐지기를 적용하여 객체를 지역화하는 슬라이딩 윈도우를 구현했습니다.Python OpenCV 슬라이딩 윈도우 객체 감지
호그 설정이 정상적으로 작동합니다. 슬라이딩 윈도우를 적용하지 않으면 모든 것이 정상적으로 작동합니다.
문제는 슬라이딩 윈도우의 크기가 128x128이고, 벡터의 길이가 15876임을 나타냅니다. 트레이닝 세트는 800x600 이미지에서 트레이닝되었으므로 579474 크기입니다.
분명히이 문제를 직접 해결하는 질문은 없었지만 정말 당황 스럽습니다. 나는 또한이 문제를 다루는 많은 논문을 보지 못했다.
clf = joblib.load(model_path)
# load the image and define the window width and height
image = imread(args["image"], flatten=True)
(winW, winH) = (128, 128)
# loop over the image pyramid
for resized in pyramid(image, scale=1.5):
# loop over the sliding window for each layer of the pyramid
for (x, y, window) in sliding_window(resized, stepSize=32, windowSize=(winW, winH)):
# if the window does not meet our desired window size, ignore it
if window.shape[0] != winH or window.shape[1] != winW:
continue
fd = hog(window, orientations, pixels_per_cell, cells_per_block, visualize, normalize)
pred = clf.predict(fd)
if pred == 1:
print("found, found, found, found, found")
내가 그리는 경우 슬라이딩 윈도우는 고급 시각화, 그냥 예측 기능입니다 :
내 코드는 이것이다. 창 피처를 더 큰 길이의 트레이닝 피처 벡터와 비교하는 방법은 무엇입니까?
시간 내 주셔서 감사합니다.
단순히 창 크기와 같은 크기의 이미지를 훈련 :종류와 관련,
프레드
업데이트 혼란 다른 사람을 위해, 다음과 같이 작동 : 같은 길이의 배열을 얻기 위해 제로와 시도 패딩을하지만 내가하면 잘 작동하는 (작업에서 예측을 중지 set fd = hog (image 대신 .. window 대신. 또한 셀당 픽셀 수와 블록 당 셀 수를 변경해보십시오. 예를 들어 * 2. 그러나 너무 많은 값을 풀면 오류가 발생합니다. 윈도우를 미리 변경하고 나중에 변경할 수 없습니다. –
업데이트 : 셀당 픽셀을 변경하려고 시도했지만 작동하지만 문제는 결과 벡터 길이와 일치합니다. wi 당신이 필요로하는 것. 제 경우에는 훈련 된 길이는 574924와 같습니다. 창 크기에 비례하여 셀당 또는 픽셀 당 픽셀을 변경하면 이미지 크기가 자동으로 솔루션을 얻는 것 같지 않습니다. –