ตรวจจับขอบการเชื่อมต่อโดยเครื่องตรวจจับขอบ


14

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

ฉันลองแปลง Hough แล้ว แต่ก็ไม่ได้ผลสำหรับฉันเพราะฉันไม่มีเส้นตรง การขยายและการกัดเซาะก็ไม่ดีเช่นกัน พวกเขาทำให้ภาพยุ่งเหยิง

วิธีที่ฉันพยายามคือการตรวจจับจุดยอดและโหนด (ใน MATLAB ด้วยbwmorph) ก่อนจากนั้นสร้างใบไม้เป็นคุณลักษณะแยกต่างหาก สิ่งนี้ทำได้ดังนี้:

  1. การสแกนในหน้าต่าง 3x3 มองหาเพื่อนบ้าน
  2. สำรวจวัตถุที่เชื่อมต่อที่สมบูรณ์
  3. พยายามให้พอดีกับเส้น (หรืออาจเป็นพหุนามกำลังสอง)
  4. ตรวจสอบฟีเจอร์โดยฟีเจอร์ถ้ามันคุ้มค่าการเชื่อมต่อหรือไม่

การดำเนินการไม่ตรงไปตรงมาเนื่องจากส่วนการตัดสินใจที่ต้องเชื่อมต่อจุดยอดเป็นเรื่องยุ่งยาก


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

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

คำตอบ:


4

นี่อาจไม่ใช่วิธีแก้ปัญหาที่สมบูรณ์ แต่จะให้ทิศทางที่ดี

โดยพื้นฐานแล้วเกณฑ์สำคัญในการกล่าวว่าขอบนั้นตรงกันคืออะไร การไล่ระดับสีของ "ขอบ" นั้นตรงกับขอบและระยะทางที่เหมาะสมกับระยะขอบต่อเนื่อง

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

เมื่อเติมเต็มช่องว่างเล็ก ๆ แล้วคุณสามารถขยายให้กว้างขึ้นเพื่อให้ได้ขนาดที่ใหญ่ขึ้น ยอดเขาจะมากขึ้น แต่คุณอาจเลือกน้อยลง


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

ฉันเห็นด้วย แต่เสียงที่เกี่ยวข้องกับปัญหานั้นง่ายขึ้นเมื่อมีการแปลเป็นภาษาท้องถิ่น ประการที่สองสำหรับขอบที่มีเสียงดังคุณจะเห็นยอดเขาหลายจุดเล็กลง เราแปลมันเป็นจุดสูงสุดหลักและถือว่าเป็นจุดเชื่อมต่อ ใช่นี่คือการประมาณ - แต่เป็นกรณีสำหรับกระบวนการถดถอยและการทำนายที่คุณทำ แนวคิดคือเพื่อดูว่าบรรทัดใดที่แบ่งปันในพื้นที่เล็ก ๆ θ
Dipan Mehta

4

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

ในตอนท้ายของกระบวนการนี้คุณจะมีชุดกราฟตัดการเชื่อมต่อ (ตัดสินจากภาพของคุณนี่ไม่ใช่ต้นไม้เพราะมีรอบในนั้น)

คุณสามารถค้นหาจุด extremal ของแต่ละกราฟ (พิกเซล extremal ในรอบนอกของแต่ละกราฟ) โดยเริ่มต้นจากโหนดสุ่มบางอย่างและทำDFS

ในตอนท้ายของกระบวนการนี้คุณจะมีชุดของพิกัดพิกเซลสำหรับกราฟแต่ละกราฟที่สอดคล้องกับจุด Extremal ที่การเชื่อมต่อมีแนวโน้มที่จะเกิดขึ้น

ตอนนี้คุณสามารถลองเชื่อมต่อเพื่อนบ้านที่เป็นจุดสุดขั้ว (ด้วยระยะทาง <= 5) เพียงแค่เป็นเส้นตรง

แต่ถ้าคุณต้องการคำนึงถึงความชันของส่วนของเส้นตรงที่นำไปสู่พิกเซลสุดขั้วนั้นคุณสามารถลอง "พอดีกับเส้น" กับ N pixels PRIOR ก่อนเพื่อไปให้ถึงพิกเซลสุดขั้วนั้น ดังนั้นถ้า N = 5 ดังนั้น 5 พิกเซลสุดท้ายของสาขาจะถูกใช้ในการประมาณหนึ่งบรรทัด

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

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

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

นอกจากนี้อาจเป็นการดีที่จะตรวจสอบว่าคุณสามารถปรับปรุงการได้มาซึ่งรูปภาพของคุณได้อย่างไร (เพิ่มความละเอียดเช่น)


ขอบคุณสำหรับการตอบรับที่ดี ใช่การสังเกตของคุณถูกต้อง มันไม่ใช่ต้นไม้ดังนั้นควรสร้างกราฟ นี่จะช่วยฉันในการค้นหารอบด้วย สิ่งคือ MATLAB นำกราฟไปใช้ในกล่องเครื่องมือ bioinfo ซึ่งฉันไม่คิดว่าคนส่วนใหญ่จะมี ฉันสามารถไปได้มากที่สุดคือกล่องเครื่องมือประมวลผลภาพ Douglas-peucker เป็นสิ่งที่ฉันถือว่า แต่หลังจากปรึกษาผู้เชี่ยวชาญ GIS ฉันก็รู้ว่ามันอาจทำให้สิ่งต่าง ๆ มีความซับซ้อนมากขึ้นและฉันอาจได้จุดตัดกัน นอกจากนี้ฉันต้องดูกลุ่มของเส้นต่าง ๆ ในกราฟด้วยเนื่องจากฉันต้องการ 10 พิกเซลเพื่อสร้างเส้นและฉันอาจมีแฉกอยู่แล้ว
Naresh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.