Я пытался обнаружить рекламные щиты на случайном фоне.Мне удалось локализовать рекламный щит с помощью SSD, это дает мне приблизительную ограничивающую рамку вокруг рекламного щита.Теперь я хочу найти точные углы рекламного щита для моего приложения.Я пытался использовать различные стратегии, с которыми мне приходилось сталкиваться, такие как определение угла Харриса (с использованием Opencv), поиск пересечений линий с использованием Canny + морфологические операции + контуры.Подробная информация о выходе приведена ниже.
Обнаружение угла Харриса Псевдокод для обнаружения угла Харриса выглядит следующим образом:
img_patch_gray = np.float32(img_patch_gray)
harris_point = cv2.cornerHarris(img_patch_gray,2,3,0.04)
img_patch[harris_point>0.01*harris_point.max()]=[255,0,0]
plt.figure(figsize=IMAGE_SIZE)
plt.imshow(img_patch)
Здесь красныйточки - это углы, обнаруженные алгоритмом обнаружения углов Харриса, и представляющие интерес точки обведены зеленым.
Использование обнаружения линии Хафа Здесь я пытался найти пересечение линий, а затемвыбирая очки.Нечто похожее на ссылка на stackoverflow , но очень трудно получить точные строки, поскольку рекламные щиты содержат текст и графику.
Контур на основе В этом подходе я имеюиспользовался детектор краев Canny, за которым следовало расширение (ядро 3 * 3), за которым следовал контур.
bin_img = cv2.Canny(gray_img_patch,100,250)
bin_img = dilate(bin_img, 3)
plt.imshow(bin_img, cmap='gray')
(_,cnts, _) = cv2.findContours(bin_img.copy(),
cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cnts = sorted(cnts, key = cv2.contourArea, reverse = True)[:10]
cv2.drawContours(img_patch, [cnts[0]],0, (0,255,0), 1)
,
.Я пытался использовать функцию приближения OpenPV от openCV, но она не была такой, как ожидалось, поскольку она также может приближать большие или меньшие контуры на четыре точки, а на некоторых изображениях она может не образовывать контуры вокруг рамки рекламного щита.
Я использовал openCV 3.4 для всех операций по обработке изображений.
используется можно найти здесь.Пожалуйста, обратите внимание, что изображение, обсуждаемое здесь, предназначено только для иллюстрации, и в целом изображение может быть любого рекламного щита.Заранее спасибо, любая помощь приветствуется.