กลับไปหน้าบทความ

อ่าน 6 นาที

ตัวตรวจจับขอบที่ชาญฉลาด

ตัวตรวจจับขอบแบบแคนนี (Canny edge detector)เป็น ตัวดำเนินการ ตรวจจับขอบที่ใช้อัลกอริทึม หลายขั้นตอน ในการตรวจจับขอบหลากหลายประเภทในภาพ พัฒนาโดยจอห์น เอฟ.

ตัวตรวจจับขอบที่ชาญฉลาด

การนำตัวตรวจจับขอบ Canny มาใช้กับภาพถ่ายสีของเครื่องจักรไอน้ำ
ภาพต้นฉบับ

ตัวตรวจจับขอบแบบแคนนี (Canny edge detector)เป็น ตัวดำเนินการ ตรวจจับขอบที่ใช้อัลกอริทึม หลายขั้นตอน ในการตรวจจับขอบหลากหลายประเภทในภาพ พัฒนาโดยจอห์น เอฟ. แคนนีในปี 1986 แคนนียังได้สร้างทฤษฎีการคำนวณเกี่ยวกับการตรวจจับขอบเพื่ออธิบายว่าทำไมเทคนิคนี้จึงได้ผล

การพัฒนา

การตรวจจับขอบแบบแคนนี (Canny edge detection) เป็นเทคนิคที่ใช้ในการดึงข้อมูลโครงสร้างที่เป็นประโยชน์จากวัตถุต่างๆ ในระบบการมองเห็น และช่วยลดปริมาณข้อมูลที่จะต้องประมวลผลได้อย่างมาก เทคนิคนี้ถูกนำไปประยุกต์ใช้อย่างกว้างขวางใน ระบบ คอมพิวเตอร์ วิชั่นต่างๆ แคนนีพบว่าข้อกำหนดสำหรับการประยุกต์ใช้การตรวจจับขอบในระบบการมองเห็นที่หลากหลายนั้นค่อนข้างคล้ายคลึงกัน ดังนั้น โซลูชันการตรวจจับขอบที่ตรงตามข้อกำหนดเหล่านี้จึงสามารถนำไปใช้ได้ในสถานการณ์ที่หลากหลาย เกณฑ์ทั่วไปสำหรับการตรวจจับขอบประกอบด้วย:

  1. การตรวจจับขอบด้วยอัตราความผิดพลาดต่ำ หมายความว่าการตรวจจับควรจับขอบที่ปรากฏในภาพได้อย่างแม่นยำมากที่สุดเท่าที่จะเป็นไปได้
  2. จุดขอบที่ตรวจจับได้จากตัวดำเนินการควรระบุตำแหน่งได้อย่างแม่นยำบนกึ่งกลางของขอบ
  3. ขอบแต่ละด้านในภาพควรถูกทำเครื่องหมายเพียงครั้งเดียว และหากเป็นไปได้สัญญาณรบกวนในภาพไม่ควรสร้างขอบปลอม

เพื่อตอบสนองความต้องการเหล่านี้ แคนนีใช้แคลคูลัสของการแปรผันซึ่งเป็นเทคนิคที่ใช้หาฟังก์ชัน ที่เหมาะสมที่สุดสำหรับ ฟังก์ชันที่กำหนดให้ฟังก์ชันที่เหมาะสมที่สุดในตัวตรวจจับของแคนนีนั้นอธิบายได้ด้วยผลรวมของ พจน์ เลขชี้กำลัง สี่ พจน์ แต่สามารถประมาณได้ด้วยอนุพันธ์อันดับ แรก ของ ฟังก์ชันเกา ส์เซียน

ในบรรดาวิธีการตรวจจับขอบที่พัฒนามาจนถึงปัจจุบัน อัลกอริทึมของแคนนีเป็นหนึ่งในวิธีการที่กำหนดไว้อย่างเข้มงวดที่สุดและให้การตรวจจับที่เชื่อถือได้ เนื่องจากความเหมาะสมที่สุดในการตอบสนองเกณฑ์สามประการสำหรับการตรวจจับขอบและความเรียบง่ายของกระบวนการในการใช้งาน จึงทำให้มันกลายเป็นหนึ่งในอัลกอริทึมที่ได้รับความนิยมมากที่สุดสำหรับการตรวจจับขอบ

กระบวนการ

กระบวนการของอัลกอริทึมการตรวจจับขอบ Canny สามารถแบ่งออกได้เป็นห้าขั้นตอนที่แตกต่างกัน:

  1. ใช้ตัวกรองเกาส์เซียนเพื่อปรับภาพให้เรียบเนียนเพื่อกำจัดสัญญาณรบกวน
  2. ค้นหาค่าความชัน ของความเข้ม ของภาพ
  3. ใช้การกำหนดเกณฑ์ความชันหรือการตัดขอบล่างเพื่อกำจัดสัญญาณตอบสนองที่ไม่พึงประสงค์ต่อการตรวจจับขอบ
  4. ใช้เกณฑ์สองระดับเพื่อกำหนดขอบเขตที่เป็นไปได้
  5. ติดตามขอบโดยใช้ฮิสเทอรีซิส : สิ้นสุดการตรวจจับขอบโดยการตัดขอบอื่นๆ ที่อ่อนแอและไม่ได้เชื่อมต่อกับขอบที่แข็งแรงออกไป

ตัวกรองเกาส์เซียน

ภาพหลังจากที่ใช้มาสก์เกาส์เซียนขนาด 5x5 สแกนแต่ละพิกเซลแล้ว

เนื่องจากผลลัพธ์การตรวจจับขอบทั้งหมดได้รับผลกระทบได้ง่ายจากสัญญาณรบกวนในภาพ จึงจำเป็นอย่างยิ่งที่จะต้องกรองสัญญาณรบกวนออกเพื่อป้องกันการตรวจจับผิดพลาดที่เกิดจากสัญญาณรบกวนนั้น ในการทำให้ภาพเรียบขึ้น จะทำการคอนโวลูชันเคอร์เนลตัวกรองเกาส์เซียนกับภาพ ขั้นตอนนี้จะทำให้ภาพเรียบขึ้นเล็กน้อยเพื่อลดผลกระทบของสัญญาณรบกวนที่เห็นได้ชัดต่อตัวตรวจจับขอบ สมการสำหรับเคอร์เนลตัวกรองเกาส์เซียนขนาด (2 k +1)×(2 k +1) มีดังนี้:

ชมฉันเจ=12πσ2เอ็กซ์((ฉัน(เค+1))2+(เจ(เค+1))22σ2);1ฉัน,เจ(2เค+1){\displaystyle H_{ij}={\frac {1}{2\pi \sigma ^{2}}}\exp \left(-{\frac {(i-(k+1))^{2}+(j-(k+1))^{2}}{2\sigma ^{2}}}\right);1\leq i,j\leq (2k+1)}

ต่อไปนี้เป็นตัวอย่างของตัวกรองเกาส์เซียนขนาด 5x5 ที่ใช้สร้างภาพด้านข้างσ{\displaystyle \sigma }= 2. (เครื่องหมายดอกจันแสดงถึง การดำเนินการ คอนโวลูชัน )

บี=1159[245424912945121512549129424542]*เอ.{\displaystyle \mathbf {B} ={\frac {1}{159}}{\begin{bmatrix}2&4&5&4&2\\4&9&12&9&4\\5&12&15&12&5\\4&9&12&9&4\\2&4&5&4&2\end{bmatrix}}*\mathbf {A} .}

สิ่งสำคัญคือต้องเข้าใจว่าการเลือกขนาดของเคอร์เนลเกาส์เซียนจะส่งผลต่อประสิทธิภาพของตัวตรวจจับ ยิ่งขนาดใหญ่เท่าไหร่ ความไวต่อสัญญาณรบกวนของตัวตรวจจับก็จะยิ่งต่ำลงเท่านั้น นอกจากนี้ ข้อผิดพลาดในการระบุตำแหน่งเพื่อตรวจจับขอบจะเพิ่มขึ้นเล็กน้อยเมื่อขนาดของเคอร์เนลตัวกรองเกาส์เซียนเพิ่มขึ้น ขนาด 5×5 เป็นขนาดที่เหมาะสมสำหรับกรณีส่วนใหญ่ แต่ขนาดที่เหมาะสมอาจแตกต่างกันไปขึ้นอยู่กับสถานการณ์เฉพาะ

การหาค่าความชันของความเข้มของภาพ

ขอบในภาพอาจชี้ไปในทิศทางต่างๆ ได้ ดังนั้นอัลกอริทึม Canny จึงใช้ตัวกรองสี่ตัวเพื่อตรวจจับขอบแนวนอน แนวตั้ง และแนวทแยงในภาพที่เบลอ ตัวดำเนินการตรวจจับขอบ (เช่นRoberts , PrewittหรือSobel ) จะส่งคืนค่าอนุพันธ์อันดับแรกในทิศทางแนวนอน (G ) และทิศทางแนวตั้ง (G ) จากนั้นจึงสามารถกำหนดความชันและทิศทางของขอบได้:

ทิศทางการไล่ระดับ
จี=จีx2+จีy2{\displaystyle \mathbf {G} ={\sqrt {{\mathbf {G} _{x}}^{2}+{\mathbf {G} _{y}}^{2}}}}
Θ=อะตัน2(จีy,จีx){\displaystyle \mathbf {\Theta } =\ชื่อผู้ดำเนินการ {atan2} \left(\mathbf {G} _{y},\mathbf {G} _{x}\right)},

โดยที่ G สามารถคำนวณได้โดยใช้ ฟังก์ชัน hypotและatan2คือฟังก์ชัน arctangent ที่มีอาร์กิวเมนต์สองตัว มุมทิศทางของขอบจะถูกปัดเศษเป็นหนึ่งในสี่มุมที่แสดงถึงแนวตั้ง แนวนอน และเส้นทแยงมุมทั้งสอง (0°, 45°, 90° และ 135°) ทิศทางของขอบที่อยู่ในแต่ละบริเวณสีจะถูกกำหนดให้มีค่ามุมเฉพาะ ตัวอย่างเช่น θ ใน [0°, 22.5°] หรือ [157.5°, 180°] จะถูกแปลงเป็น 0°

การกำหนดเกณฑ์ขนาดความชันหรือการระงับการตัดขอบล่าง

การลดความชันด้วยการตัดค่าต่ำสุด หรือการกำหนดเกณฑ์ขอบล่าง เป็นเทคนิคการลดความหนาของขอบภาพ

มีการใช้การตัดขอบล่างเพื่อค้นหาตำแหน่งที่มีการเปลี่ยนแปลงค่าความเข้มที่คมชัดที่สุด อัลกอริทึมสำหรับแต่ละพิกเซลในภาพเกรเดียนต์มีดังนี้:

  1. เปรียบเทียบความเข้มของขอบพิกเซลปัจจุบันกับความเข้มของขอบพิกเซลในทิศทางเกรเดียนต์บวกและลบ
  2. หากความเข้มของขอบพิกเซลปัจจุบันมีค่ามากที่สุดเมื่อเทียบกับพิกเซลอื่นๆ ในมาสก์ที่มีทิศทางเดียวกัน (เช่น พิกเซลที่ชี้ไปในทิศทางแกน y จะถูกเปรียบเทียบกับพิกเซลด้านบนและด้านล่างในแกนตั้ง) ค่าดังกล่าวจะถูกเก็บรักษาไว้ มิฉะนั้น ค่าดังกล่าวจะถูกตัดทิ้ง

ในการใช้งานบางรูปแบบ อัลกอริทึมจะจัดหมวดหมู่ทิศทางความชันต่อเนื่องเป็นชุดทิศทางแบบไม่ต่อเนื่องขนาดเล็ก จากนั้นจึงเลื่อนตัวกรองขนาด 3x3 ไปบนผลลัพธ์ของขั้นตอนก่อนหน้า (นั่นคือ ความเข้มของขอบและทิศทางความชัน) ที่ทุกพิกเซล ตัวกรองจะลดความเข้มของขอบของพิกเซลตรงกลาง (โดยการตั้งค่าเป็น 0) หากขนาดของพิกเซลนั้นไม่มากกว่าขนาดของพิกเซลข้างเคียงสองพิกเซลในทิศทางความชัน ตัวอย่างเช่น

  • หากมุมความชันที่ปัดเศษเป็น 0° (กล่าวคือ ขอบอยู่ในทิศเหนือ-ใต้) จุดนั้นจะถือว่าอยู่บนขอบหากขนาดของความชันของจุดนั้นมากกว่าขนาดของความชันที่พิกเซลใน ทิศ ตะวันออกและทิศ ตะวันตก
  • หากมุมความชันที่ปัดเศษแล้วเป็น 90° (กล่าวคือ ขอบอยู่ในทิศตะวันออก-ตะวันตก) จุดนั้นจะถือว่าอยู่บนขอบหากขนาดของความชันของจุดนั้นมากกว่าขนาดของความชันที่พิกเซลในทิศเหนือและทิศ ใต้
  • หากมุมความชันที่ปัดเศษแล้วคือ 135° (กล่าวคือ ขอบอยู่ในทิศตะวันออกเฉียงเหนือ-ตะวันตกเฉียงใต้) จุดนั้นจะถือว่าอยู่บนขอบหากขนาดของความชันของจุดนั้นมากกว่าขนาดของความชันที่พิกเซลในทิศตะวันตกเฉียงเหนือและทิศ ตะวันออกเฉียงใต้
  • หากมุมความชันที่ปัดเศษแล้วเป็น 45° (กล่าวคือ ขอบอยู่ในทิศตะวันตกเฉียงเหนือ-ตะวันออกเฉียงใต้) จุดนั้นจะถือว่าอยู่บนขอบหากขนาดของความชันของจุดนั้นมากกว่าขนาดของความชันที่พิกเซลในทิศตะวันออกเฉียงเหนือและทิศ ตะวันตกเฉียงใต้

ในการใช้งานที่แม่นยำยิ่งขึ้น จะใช้ การประมาณค่าเชิงเส้นระหว่างพิกเซลสองพิกเซลที่อยู่ติดกันซึ่งคร่อมทิศทางของความชัน ตัวอย่างเช่น หากมุมความชันอยู่ระหว่าง 89° และ 180° การประมาณค่าระหว่างความชันที่ พิกเซลทาง ทิศเหนือและทิศตะวันออกเฉียงเหนือจะให้ค่าประมาณค่าหนึ่งค่า และการประมาณค่าระหว่าง พิกเซล ทางทิศใต้และ ทิศ ตะวันตกเฉียงใต้จะให้ค่าประมาณค่าอีกค่าหนึ่ง (โดยใช้หลักการในย่อหน้าที่แล้ว) ขนาดของความชันที่พิกเซลตรงกลางจะต้องมากกว่าทั้งสองค่านี้จึงจะถูกทำเครื่องหมายว่าเป็นขอบ

โปรดทราบว่าเครื่องหมายของทิศทางไม่มีความสำคัญ กล่าวคือ เหนือ-ใต้ ก็เหมือนกับ ใต้-เหนือ และอื่นๆ

เกณฑ์สองชั้น

หลังจากใช้การระงับค่าสูงสุดที่ไม่ใช่ค่าสูงสุดแล้ว พิกเซลขอบที่เหลือจะให้การแสดงขอบจริงในภาพที่แม่นยำยิ่งขึ้น อย่างไรก็ตาม พิกเซลขอบบางส่วนยังคงหลงเหลืออยู่เนื่องจากสัญญาณรบกวนและความแปรปรวนของสี เพื่อแก้ไขปัญหาการตอบสนองที่ไม่ถูกต้องเหล่านี้ จำเป็นต้องกรองพิกเซลขอบที่มีค่าความชันต่ำออกไปและคงพิกเซลขอบที่มีค่าความชันสูงไว้ ซึ่งทำได้โดยการเลือกค่าเกณฑ์สูงและต่ำ หากค่าความชันของพิกเซลขอบสูงกว่าค่าเกณฑ์สูง จะถูกทำเครื่องหมายว่าเป็นพิกเซลขอบที่แข็งแรง หากค่าความชันของพิกเซลขอบน้อยกว่าค่าเกณฑ์สูงและมากกว่าค่าเกณฑ์ต่ำ จะถูกทำเครื่องหมายว่าเป็นพิกเซลขอบที่อ่อนแอ หากค่าความชันของพิกเซลขอบน้อยกว่าค่าเกณฑ์ต่ำ พิกเซลนั้นจะถูกตัดออก ค่าเกณฑ์ทั้งสองค่าถูกกำหนดขึ้นจากประสบการณ์ และคำจำกัดความของค่าเกณฑ์จะขึ้นอยู่กับเนื้อหาของภาพอินพุตที่กำหนด

การติดตามขอบโดยใช้ฮิสเทอรีซิส

การตรวจจับขอบแบบ Canny ถูกนำมาใช้กับภาพถ่าย

พิกเซลขอบที่แข็งแรงควรมีส่วนร่วมในภาพขอบสุดท้ายอย่างแน่นอน เพราะถือว่ามาจากขอบจริงในภาพ อย่างไรก็ตาม จะมีการถกเถียงกันเกี่ยวกับพิกเซลขอบที่อ่อนแอ เราต้องการตรวจสอบว่าพิกเซลเหล่านี้มาจากขอบจริงหรือมาจากสัญญาณรบกวน/ความแปรปรวนของสี พิกเซลขอบที่อ่อนแอควรถูกตัดออกจากการพิจารณาหากเป็นอย่างหลัง อัลกอริทึมนี้ใช้แนวคิดที่ว่าพิกเซลขอบที่อ่อนแอจากขอบจริงจะ (โดยปกติ) เชื่อมต่อกับพิกเซลขอบที่แข็งแรง ในขณะที่สัญญาณรบกวนจะไม่เชื่อมต่อ เพื่อติดตามการเชื่อมต่อของขอบ จะใช้ การวิเคราะห์กลุ่มพิกเซลโดยดูที่พิกเซลขอบที่อ่อนแอและพิกเซลข้างเคียงที่เชื่อมต่อ 8 จุด ตราบใดที่มีพิกเซลขอบที่แข็งแรงอย่างน้อยหนึ่งพิกเซลที่เกี่ยวข้องในกลุ่มพิกเซลนั้น จุดขอบที่อ่อนแอนั้นสามารถระบุได้ว่าเป็นจุดที่ควรเก็บรักษาไว้ พิกเซลขอบที่อ่อนแอเหล่านี้จะกลายเป็นขอบที่แข็งแรง ซึ่งสามารถทำให้พิกเซลขอบที่อ่อนแอข้างเคียงได้รับการเก็บรักษาไว้ด้วย

คำอธิบายขั้นตอนการทำงานของอัลกอริธึม

ในส่วนนี้จะแสดงลำดับการเปลี่ยนแปลงของภาพผ่านขั้นตอนทั้งห้าขั้นตอน

จิ้งจก
ภาพต้นฉบับ
จิ้งจกสีเทาเบลอๆ
ภาพถูกแปลงเป็นภาพขาวดำ และใช้ตัวกรองเกาส์เซียนขนาด 5x5 ที่มีค่า σ=1.4
โครงร่างของจิ้งจก
การไล่ระดับความเข้มของภาพก่อนหน้า ขอบของภาพได้รับการจัดการโดยการทำซ้ำ
โครงร่างของจิ้งจก
มีการใช้การระงับค่าสูงสุดที่ไม่ใช่ค่าสูงสุดกับภาพก่อนหน้า
โครงร่างของจิ้งจก
ภาพก่อนหน้านี้ใช้การกำหนดค่าเกณฑ์สองชั้น พิกเซลอ่อนคือพิกเซลที่มีค่าความชันระหว่าง 0.1 ถึง 0.3 ส่วนพิกเซลแข็งคือพิกเซลที่มีค่าความชันมากกว่า 0.3
โครงร่างของจิ้งจก
ฮิสเทอรีซิสถูกนำมาใช้กับภาพก่อนหน้า

การปรับปรุง

แม้ว่าการตรวจจับขอบแบบ Canny แบบดั้งเดิมจะให้วิธีการที่ค่อนข้างง่ายแต่แม่นยำสำหรับปัญหาการตรวจจับขอบ แต่ด้วยข้อกำหนดที่เข้มงวดมากขึ้นเกี่ยวกับความแม่นยำและความทนทานในการตรวจจับ อัลกอริทึมแบบดั้งเดิมจึงไม่สามารถจัดการกับงานตรวจจับขอบที่ท้าทายได้อีกต่อไป ข้อบกพร่องหลัก[ 1 ]ของอัลกอริทึมแบบดั้งเดิมสามารถสรุปได้ดังนี้:

  1. มีการใช้ตัวกรองแบบเกาส์เซียนเพื่อลดสัญญาณรบกวน แต่ตัวกรองนี้จะทำให้ขอบภาพเรียบขึ้นด้วย เนื่องจากขอบภาพถือเป็นคุณลักษณะความถี่สูง ซึ่งจะเพิ่มโอกาสในการมองข้ามขอบภาพที่อ่อนแอ และทำให้เกิดขอบภาพที่แยกเดี่ยวในผลลัพธ์
  2. สำหรับการคำนวณค่าแอมพลิจูดของเกรเดียนต์ อัลกอริทึมการตรวจจับขอบแบบ Canny รุ่นเก่าจะใช้จุดศูนย์กลางในหน้าต่างบริเวณใกล้เคียงขนาดเล็ก 2×2 เพื่อคำนวณ ค่าเฉลี่ย ความแตกต่างจำกัดเพื่อแสดงค่าแอมพลิจูดของเกรเดียนต์ วิธีนี้ไวต่อสัญญาณรบกวนและสามารถตรวจจับขอบปลอมได้ง่ายและทำให้พลาดขอบจริงได้
  3. ในอัลกอริธึมการตรวจจับขอบแบบ Canny ดั้งเดิม จะมีค่าเกณฑ์คงที่สองค่าทั่วโลกเพื่อกรองขอบปลอมออกไป อย่างไรก็ตาม เมื่อภาพมีความซับซ้อนมากขึ้น พื้นที่เฉพาะส่วนต่างๆ จะต้องใช้ค่าเกณฑ์ที่แตกต่างกันมากเพื่อค้นหาขอบจริงได้อย่างแม่นยำ นอกจากนี้ ค่าเกณฑ์ทั่วโลกยังถูกกำหนดด้วยตนเองผ่านการทดลองในวิธีการดั้งเดิม ซึ่งนำไปสู่ความซับซ้อนในการคำนวณเมื่อต้องจัดการกับภาพจำนวนมากที่มีความแตกต่างกัน
  4. ผลลัพธ์ของการตรวจจับแบบดั้งเดิมไม่สามารถให้ความแม่นยำสูงที่น่าพอใจ โดยให้ผลลัพธ์เป็นการตอบสนองแบบจุดเดียวสำหรับแต่ละขอบ จึงมักปรากฏการตอบสนองแบบหลายจุด

เพื่อแก้ไขข้อบกพร่องเหล่านี้ จึงได้มีการนำเสนอการปรับปรุงอัลกอริธึมการหาขอบแคนนีในย่อหน้าต่อไปนี้

แทนที่ตัวกรองเกาส์เซียน

เนื่องจากทั้งขอบและสัญญาณรบกวนจะถูกระบุว่าเป็นสัญญาณความถี่สูง ตัวกรองแบบเกาส์เซียนอย่างง่ายจะเพิ่มเอฟเฟกต์ความเรียบให้กับทั้งสองอย่าง อย่างไรก็ตาม เพื่อให้ได้ความแม่นยำสูงในการตรวจจับขอบจริง คาดว่าควรใช้เอฟเฟกต์ความเรียบที่มากขึ้นกับสัญญาณรบกวน และลดเอฟเฟกต์ความเรียบลงกับขอบ บิง หวัง และเส้าเซิง ฟาน จากมหาวิทยาลัยวิทยาศาสตร์และเทคโนโลยีฉางชา ได้พัฒนาตัวกรองแบบปรับได้โดยตัวกรองจะประเมินความไม่ต่อเนื่องระหว่างค่าระดับสีเทาของแต่ละพิกเซลยิ่งความไม่ต่อเนื่องสูง ค่าถ่วงน้ำหนักที่ตั้งไว้สำหรับตัวกรองความเรียบ ณ จุดนั้นก็จะยิ่งต่ำลง ในทางตรงกันข้าม ยิ่งความไม่ต่อเนื่องระหว่างค่าระดับสีเทาต่ำลง ค่าถ่วงน้ำหนักที่ตั้งไว้สำหรับตัวกรองก็จะยิ่งสูงขึ้น กระบวนการในการใช้งานตัวกรองแบบปรับได้นี้สามารถสรุปได้ในห้าขั้นตอน:

1. กำหนดให้ K = 1 กำหนดค่าการวนซ้ำ n และค่าสัมประสิทธิ์ของแอมพลิจูดของขอบ h
2. คำนวณค่าความชันจีx(x,y){\displaystyle G_{x}(x,y)}และจีy(x,y){\displaystyle G_{y}(x,y)}
3. คำนวณน้ำหนักตามสูตรด้านล่าง:

(x,y)=จีx(x,y)2+จีy(x,y)2{\displaystyle d(x,y)={\sqrt {G_{x}(x,y)^{2}+G_{y}(x,y)^{2}}}}

(x,y)=เอ็กซ์((x,y)2ชม.2){\displaystyle w(x,y)=\exp \left(-{\frac {\sqrt {d(x,y)}}{2h^{2}}}\right)}

4. นิยามของตัวกรองแบบปรับได้คือ:

เอฟ(x,y)=1เอ็นฉัน=11เจ=11เอฟ(x+ฉัน,y+เจ)(x+ฉัน,y+เจ){\displaystyle f(x,y)={\frac {1}{N}}\sum \limits _{i=-1}^{1}\sum \limits _{j=-1}^{1}f(x+i,y+j)w(x+i,y+j)}

เพื่อทำให้ภาพเรียบเนียนขึ้น โดยที่

เอ็น=ฉัน=11เจ=11(x+ฉัน,y+เจ){\displaystyle N=\sum \limits _{i=-1}^{1}\sum \limits _{j=-1}^{1}w(x+i,y+j)}

5. เมื่อ K = n ให้หยุดการวนซ้ำ มิฉะนั้น เมื่อ k = k+1 ให้ดำเนินการขั้นตอนที่สองต่อไป

การปรับปรุงการคำนวณขนาดและทิศทางของความชัน

ขนาดและทิศทางของเกรเดียนต์สามารถคำนวณได้ด้วยตัวดำเนินการตรวจจับขอบที่แตกต่างกันหลายแบบ และการเลือกตัวดำเนินการอาจส่งผลต่อคุณภาพของผลลัพธ์ ตัวดำเนินการที่นิยมใช้กันมากคือ ตัวกรอง Sobel 3x3 อย่างไรก็ตาม ตัวกรองอื่นๆ อาจดีกว่า เช่น ตัวกรอง Sobel 5x5 ซึ่งจะช่วยลดสัญญาณรบกวน หรือ ตัวกรอง Scharr ซึ่งมี สมมาตรการหมุนที่ดีกว่าตัวเลือกอื่นๆ ที่นิยมใช้ ได้แก่Prewitt (ใช้โดย Zhou [ 2 ] ) และRoberts Cross

วิธีการที่มีประสิทธิภาพในการกำหนดค่าเกณฑ์คู่

เพื่อแก้ไขความท้าทายที่ยากต่อการกำหนดค่าเกณฑ์คู่โดย วิธีเชิงประจักษ์ สามารถใช้ วิธีของ Otsu [ 3 ]กับภาพขนาดเกรเดียนต์ที่ไม่ถูกระงับค่าสูงสุดเพื่อสร้างเกณฑ์สูงได้ โดยทั่วไปเกณฑ์ต่ำจะถูกตั้งค่าเป็น 1/2 ของเกณฑ์สูงในกรณีนี้ เนื่องจากภาพขนาดเกรเดียนต์มีค่าต่อเนื่องโดยไม่มีค่าสูงสุดที่กำหนดไว้อย่างชัดเจน วิธีของ Otsu จึงต้องได้รับการปรับให้ใช้คู่ค่า/จำนวนแทนฮิสโตแกรมทั้งหมด

ขอบที่บางลง

แม้ว่าการตรวจจับขอบแบบ Canny แบบดั้งเดิมจะให้ผลการตรวจจับที่ดีเพื่อให้ตรงตามเกณฑ์สองข้อแรก แต่ก็ไม่ได้ตรงตามการตอบสนองเพียงครั้งเดียวต่อขอบอย่างเคร่งครัด เทคนิค สัณฐานวิทยาทางคณิตศาสตร์เพื่อลดขนาดขอบที่ตรวจพบได้รับการพัฒนาโดย Mallat S และ Zhong [ 4 ]

การใช้เคอร์ฟเล็ต

Curveletsถูกนำมาใช้แทนตัวกรอง Gaussian และการประมาณค่าเกรเดียนต์เพื่อคำนวณสนามเวกเตอร์ที่มีทิศทางและขนาดใกล้เคียงกับทิศทางและความแข็งแรงของขอบในภาพ จากนั้นจึงนำขั้นตอนที่ 3-5 ของอัลกอริทึม Canny มาใช้ Curvelets จะแยกสัญญาณออกเป็นส่วนประกอบที่แยกจากกันตามขนาดต่างๆ และการตัดส่วนประกอบที่มีขนาดละเอียดกว่าออกจะช่วยลดสัญญาณรบกวนได้[ 5 ]

การกำหนดสูตรทางเรขาคณิตเชิงอนุพันธ์

แนวทางที่ละเอียดกว่าในการหาขอบด้วยความแม่นยำระดับซับพิกเซลคือการตรวจจับขอบแบบดิฟเฟอเรนเชียลซึ่งข้อกำหนดของการระงับค่าสูงสุดที่ไม่ใช่ค่าสูงสุดนั้นถูกกำหนดขึ้นในรูปของอนุพันธ์อันดับสองและอันดับสามที่คำนวณจาก การแสดงผล ในปริภูมิมาตราส่วน (Lindeberg 1998) – ดูบทความเกี่ยวกับการตรวจจับขอบสำหรับคำอธิบายโดยละเอียด

การกำหนดสูตรแบบแปรผันของตัวตรวจจับขอบ Haralick–Canny

คำอธิบายเชิงแปรผันสำหรับส่วนประกอบหลักของตัวตรวจจับขอบ Canny ซึ่งก็คือ การหาจุดตัดศูนย์ของอนุพันธ์อันดับ 2 ตามทิศทางของเกรเดียนต์ ได้รับการพิสูจน์แล้วว่าเป็นผลมาจากการลดค่าฟังก์ชัน Kronrod–Minkowski ให้เหลือน้อยที่สุด ในขณะที่เพิ่มค่าอินทิกรัลเหนือแนวการจัดเรียงของขอบให้สอดคล้องกับสนามเกรเดียนต์ให้มากที่สุด (Kimmel และ Bruckstein 2003) ดูบทความเกี่ยวกับจุดตัดศูนย์ของ Laplacian ที่มีการปรับค่า และตัวรวมขอบที่เหมาะสมอื่นๆ สำหรับคำอธิบายโดยละเอียด

พารามิเตอร์

อัลกอริทึม Canny มีพารามิเตอร์ที่ปรับได้หลายตัว ซึ่งสามารถส่งผลต่อเวลาในการคำนวณและประสิทธิภาพของอัลกอริทึมได้

  • ขนาดของตัวกรองเกาส์เซียน: ตัวกรองปรับความเรียบที่ใช้ในขั้นตอนแรกส่งผลโดยตรงต่อผลลัพธ์ของอัลกอริทึมแคนนี ตัวกรองขนาดเล็กจะทำให้ภาพเบลอน้อยลง และช่วยให้ตรวจจับเส้นเล็กๆ ที่คมชัดได้ ตัวกรองขนาดใหญ่จะทำให้ภาพเบลอมากขึ้น ทำให้ค่าของพิกเซลที่กำหนดกระจายออกไปในพื้นที่ขนาดใหญ่ของภาพ รัศมีการเบลอที่ใหญ่กว่าจะมีประโยชน์มากกว่าสำหรับการตรวจจับขอบที่ใหญ่และเรียบเนียนกว่า เช่น ขอบของรุ้ง
  • เกณฑ์การกำหนดค่า: การใช้เกณฑ์สองค่าร่วมกับฮิสเทอรีซิสช่วยให้มีความยืดหยุ่นมากกว่าวิธีการใช้เกณฑ์เดียว แต่ปัญหาทั่วไปของวิธีการกำหนดค่าเกณฑ์ยังคงมีอยู่ เกณฑ์ที่ตั้งไว้สูงเกินไปอาจทำให้พลาดข้อมูลสำคัญ ในทางกลับกัน เกณฑ์ที่ตั้งไว้ต่ำเกินไปจะระบุข้อมูลที่ไม่เกี่ยวข้อง (เช่น สัญญาณรบกวน) ว่าเป็นข้อมูลสำคัญอย่างผิดพลาด การกำหนดค่าเกณฑ์ทั่วไปที่ใช้งานได้ดีกับภาพทุกภาพนั้นเป็นเรื่องยาก ยังไม่มีวิธีการใดที่ได้รับการทดสอบและพิสูจน์แล้วสำหรับปัญหานี้

บทสรุป

อัลกอริทึม Canny สามารถปรับใช้ได้กับสภาพแวดล้อมต่างๆ พารามิเตอร์ของมันช่วยให้สามารถปรับแต่งให้เหมาะสมกับการจดจำขอบที่มีลักษณะแตกต่างกัน ขึ้นอยู่กับข้อกำหนดเฉพาะของการใช้งานนั้นๆ ในบทความต้นฉบับของ Canny การหาค่าตัวกรองที่เหมาะสมที่สุดนำไปสู่ ตัวกรอง แบบ Finite Impulse Responseซึ่งอาจใช้เวลาในการคำนวณในโดเมนเชิงพื้นที่นาน หากปริมาณการปรับให้เรียบที่ต้องการมีมาก (ในกรณีนั้นตัวกรองจะมีขอบเขตเชิงพื้นที่ขนาดใหญ่) ด้วยเหตุนี้ จึงมักแนะนำให้ใช้ ตัวกรองแบบinfinite impulse response ของ Rachid Deriche ( ตัวตรวจจับ Canny–Deriche ) ซึ่งเป็นแบบเรียกซ้ำ และสามารถคำนวณได้ในเวลาสั้นๆ ที่กำหนดไว้ สำหรับปริมาณการปรับให้เรียบที่ต้องการ รูปแบบที่สองนี้เหมาะสำหรับการใช้งานแบบเรียลไทม์ในFPGAหรือDSPหรือพีซีแบบฝังตัวที่เร็วมาก อย่างไรก็ตาม ในบริบทนี้ การใช้งานตัวดำเนินการ Canny แบบเรียกซ้ำตามปกติไม่ได้ให้ค่าประมาณที่ดีของสมมาตรการหมุน และด้วยเหตุนี้จึงทำให้เกิดความเอนเอียงไปทางขอบแนวนอนและแนวตั้ง

ดูเพิ่มเติม

  • หน้าแรกของจอห์น แคนนี
  • รายชื่อผลงานตีพิมพ์ของ Rachid Deriche
  • ผลงานตีพิมพ์ในวารสารของ รอน คิมเมล
  • การตรวจจับขอบแบบ Canny ใน C++ OpenCV
  • การตรวจจับขอบแบบ Canny ใน Python OpenCV เก็บถาวรเมื่อ 2014-04-29 ที่Wayback Machine
  • Canny Edge World - ตัวอย่างวิดีโอ
  • การตรวจจับขอบสำหรับการประมวลผลภาพ
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Canny_edge_detector&oldid=1353795918 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ตัวตรวจจับขอบที่ชาญฉลาด

ตัวตรวจจับขอบแบบแคนนี (Canny edge detector)เป็น ตัวดำเนินการ ตรวจจับขอบที่ใช้อัลกอริทึม หลายขั้นตอน ในการตรวจจับขอบหลากหลายประเภทในภาพ พัฒนาโดยจอห์น เอฟ.

การพัฒนา

การตรวจจับขอบแบบแคนนี (Canny edge detection) เป็นเทคนิคที่ใช้ในการดึงข้อมูลโครงสร้างที่เป็นประโยชน์จากวัตถุต่างๆ ในระบบการมองเห็น และช่วยลดปริมาณข้อมูลที่จะต้องประมวลผลได้อย่างมาก เทคนิคนี้ถูกนำไปประยุกต์ใช้อย่างกว้างขวางใน ระบบ คอมพิวเตอร์ วิชั่นต่างๆ...

กระบวนการ

กระบวนการของอัลกอริทึมการตรวจจับขอบ Canny สามารถแบ่งออกได้เป็นห้าขั้นตอนที่แตกต่างกัน:

ตัวกรองเกาส์เซียน

เนื่องจากผลลัพธ์การตรวจจับขอบทั้งหมดได้รับผลกระทบได้ง่ายจากสัญญาณรบกวนในภาพ จึงจำเป็นอย่างยิ่งที่จะต้องกรองสัญญาณรบกวนออกเพื่อป้องกันการตรวจจับผิดพลาดที่เกิดจากสัญญาณรบกวนนั้น ในการทำให้ภาพเรียบขึ้น จะทำการคอนโวลูชันเคอร์เนลตัวกรองเกาส์เซียนกับภาพ...