Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Canny Edge Detection

Canny kenar algılama, gürültüyü azaltan, keskin parlaklık değişimlerini algılayan ve bilgisayarlı görü için ince kenar haritaları oluşturan çok aşamalı bir algoritmadır.

Canny kenar algılama, parlaklıktaki keskin değişimleri belirleyip bunları ince, ikili bir kenar haritasına dönüştüren çok aşamalı bir görüntü işleme algoritmasıdır. Gürültüyü azaltır, yoğunluk geçişlerini bulur ve güvenilir kenar piksellerini konturlara bağlar. Bilgisayarlı görü alanında bu konturlar, şekil analizi ve ölçüm için görüntü yapısını tanımlar.

John Canny yöntemi 1983'te geliştirdi ve 1986 tarihli Kenar Algılamaya Hesaplamalı Bir Yaklaşım makalesinde açıkladı. Yöntem üç hedef arasında denge kurar: gerçek kenarları algılamak, bu kenarların konumunu doğru belirlemek ve her kenar için tek bir yanıt üretmek. "Canny kenar algılayıcısı", algoritmanın eş anlamlısıdır.

Canny Kenar Algılama Nasıl Çalışır#

Algoritma, veri ön işlemeyi filtreleme ve bağlantılılık analiziyle birleştirir. Beş aşamanın her biri farklı bir görevi yerine getirir:

  • Gürültü azaltma: Gauss yumuşatma, yakındaki piksellerin değerlerinin mesafeye bağlı ağırlıklarla ortalamasını alarak istenmeyen kenarlar oluşturabilecek dalgalanmaları bastırır.
  • Gradyan kestirimi: Yatay ve dikey türevler, parlaklığın ne kadar hızlı değiştiğini ölçer. Bu ölçümlerin birleşimi, kenar gücünü ve sınıra dik yönü verir. OpenCV bu aşamada Sobel türevlerini kullanır.
  • Kenar inceltme: Maksimum olmayanların bastırılması, gradyan yönündeki yerel gradyan tepelerini koruyarak geniş bantlar yerine ince sırtlar oluşturur.
  • Çift eşikleme: Yüksek eşik güçlü kenarları belirler; düşük eşik zayıf tepkileri eler. Eşikler arasındaki pikseller aday olarak değerlendirilir.
  • Histerezis bağlantısı: Aday pikseller, diğer adaylar üzerinden güçlü bir kenara bağlı olduklarında korunur. Bağlantısız adaylar elenir.

Eşikler, Yumuşatma ve Hata Durumları#

Eşikler, ham parlaklığa ya da model güvenine değil, gradyan şiddetine uygulanır. Eşik değerlerini düşürmek daha fazla ayrıntıyı ve gürültüyü korurken yükseltmek zayıf sınırları ortadan kaldırır. Yüksek eşiği yükseltmek, histerezis bağlantısı için kullanılabilir güçlü kenar başlangıçlarının sayısını da azaltır.

Gauss ölçeği farklı bir ödünleşimi kontrol eder. Daha fazla yumuşatma gürültüyü bastırır ancak ince yapıları ortadan kaldırır. scikit-image'ın gürültülü kare örneğinde, Gauss standart sapmasının değiştirilmesi karenin çevresinde ne kadar gürültünün kaldığını değiştirir.

Çatlak incelemesinde, pürüzlü beton yüzeyler istenmeyen doku kenarlarına ve tamamlanmamış çatlak konturlarına yol açar. Eşiklerin artırılması bazı sahte kenarları ortadan kaldırırken gerçek çatlak bölümlerinin de kaybolmasına neden olur.

Sobel, yoğunluk türevlerini tahmin eder; Canny ise gradyan tahminini yumuşatma, inceltme ve bağlantı tabanlı seçimle birleştirir. Canny'nin inceltme aşaması komşu pikselleri karşılaştırırken nesne algılamadaki NMS örtüşen tahmin kutularını karşılaştırır.

Python'da Canny Kenar Algılama#

Bağımlılıkları pip install opencv-python numpy ile yükle. Bu örnek, otobüs örneğinin kenar haritasını kaydetmek için OpenCV kullanır:

from urllib.request import urlopen

import cv2
import numpy as np

with urlopen("https://ultralytics.com/images/bus.jpg") as response:
    encoded = np.frombuffer(response.read(), dtype=np.uint8)
gray = cv2.imdecode(encoded, cv2.IMREAD_GRAYSCALE)

# Yoğunluk gradyanlarını hesaplamadan önce görüntüyü yumuşat.
smoothed = cv2.GaussianBlur(gray, (5, 5), 1.4)
edges = cv2.Canny(smoothed, 50, 150, L2gradient=True)
cv2.imwrite("canny_edges.png", edges)

Kaydedilen PNG, korunan kenarları siyah arka plan üzerinde beyaz olarak gösterir. OpenCV kenar algılama iş akışında Canny'nin ikinci ve üçüncü bağımsız değişkenleri düşük ve yüksek eşikleri belirtir. L2gradient=True, Öklid gradyan büyüklüğünü kullanır; varsayılan yöntem ise yatay ve dikey türevlerin mutlak değerlerinin toplamını kullanır. Bu tercihler gradyan değerlerini ve dolayısıyla eşik davranışını değiştirir.

Canny, geometrik özellik çıkarımını destekler: scikit-image'ın çizgi algılama örneği, olasılıksal Hough dönüşümü düz çizgi parçalarını çıkarmadan önce Canny'yi bir kameraman fotoğrafına uygular. Canny kenar piksellerini sağlar; Hough oylaması bunları çizgiler halinde gruplandırır. Nesne algılama kategoriler ve kutular atarken örnek bölütleme pikselleri tek tek nesnelere atar.

Ultralytics YOLO26 bölütlemesi, nesne yalıtımı için maskeler döndürür; bu maskeler, ayrı Canny işlemleri için görüntü bölgelerini seçebilir. Bu yaklaşım, öğrenilmiş nesne seçimini klasik sınır çıkarımıyla birleştirir.

Üretken yapay zekâ alanında ControlNet, difüzyon modelleri için uzamsal koşullar olarak Canny haritalarını kullanır. Canny koşullu uygulaması, çıkarılan hatları bir metin istemiyle birlikte kullanarak Stable Diffusion 1.5 üretimine yön verir.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla