01204483 Image Processing — Topic 12, Image Segmentation
Thresholding ตัดสินทุกพิกเซลแยกกัน พิกเซลสองจุดคนละฟากภาพที่สว่างเท่ากันจึงได้ป้ายเดียวกันเสมอ Region growing ตัดสินใจคนละแบบ: เริ่มจากเมล็ด (seed) แล้วขยายออกไปหาเพื่อนบ้านที่ "เหมือนกันพอ" ทีละชั้น ผลที่ได้จึงเป็นก้อนต่อเนื่องกันเสมอ — แลกมากับความเปราะบางอย่างหนึ่งที่เดโมนี้ตั้งใจให้เห็นชัด ๆ คือ การรั่ว (leakage)
ในภาพ "รูปทรง" ยังมีก้อนกลมสีเทาอ่อนที่มุมล่างซ้าย ความสว่างของมันเข้าเกณฑ์ตั้งแต่ T ≈ 46 แต่มันยังไม่ถูกรับเข้าอยู่ดี เพราะไม่มีเส้นทางเดินไปถึง — ต้องดัน T ขึ้นไปจนพื้นหลังเองเข้าเกณฑ์ (T ≈ 90) มันถึงจะโดนกลืนไปพร้อมทั้งภาพ เข้าเกณฑ์ กับ ไปถึงได้ เป็นคนละเรื่องกัน
กดปุ่ม เล่น ในข้อ 3 แล้วดูภูมิภาคแผ่ออกทีละชั้น — แต่ละชั้นคือหนึ่งรอบของอัลกอริทึม สีฟ้าคือ frontier พิกเซลที่เพิ่งถูกรับเข้ามารอบนี้และกำลังจะไปชวนเพื่อนบ้านต่อ
ค่อย ๆ เพิ่ม tolerance ทีละหนึ่ง แล้วดูกราฟการเติบโตในข้อ 4 — จะมีค่าหนึ่งที่เส้นกราฟพุ่งชันขึ้นทันที นั่นคือจังหวะที่เกณฑ์หลวมพอจะข้ามขอบวัตถุออกไปได้ ภูมิภาคจึงทะลักท่วมทั้งภาพ
การรั่วมักเกิดผ่านคอขวดแคบ ๆ เพียงไม่กี่พิกเซล — ในภาพ "รูปทรง" มีสะพานกว้าง 3 พิกเซลเชื่อมวงกลมกับสี่เหลี่ยม ไล่ T ขึ้นไปจะเห็นพื้นที่กระโดดจาก ~8% เป็น ~17% ในจังหวะเดียว นั่นคือวินาทีที่สะพานเปิด
ภาพ "พื้นไล่เฉดล้วน" ไม่มีขอบเลยสักเส้น มีแต่ความสว่างที่เพิ่มขึ้นราว 0.84 ต่อพิกเซล — ที่ T เท่ากัน เกณฑ์ เทียบค่าเฉลี่ย จะได้แถบกว้างกว่าเกณฑ์เทียบเมล็ดเสมอ และยิ่ง T สูงยิ่งต่างกันมาก (ที่ T = 40 ได้ราว 40% เทียบกับ 31%) เพราะค่าอ้างอิงมันไหลตามภูมิภาคไปด้วย
เกณฑ์ เทียบกับเพื่อนบ้านที่พามา ไม่มีขอบเขตเลย เพราะดูแค่ผลต่างระหว่างพิกเซลติดกัน — ลองตั้ง noise = 0 บนพื้นไล่เฉด แล้วใช้ T = 1 ก็พอ: ผลต่างต่อก้าวมีแค่ 0.84 มันจึงเดินข้ามทั้งภาพ ได้ทั้ง ๆ ที่หัวกับท้ายภาพต่างกันถึง 168 ระดับ
ตั้ง noise แรง ๆ (σ ≈ 18) บนฟิล์ม MRI แล้วใช้ T = 10 — ภูมิภาคจะโตไม่ออกเลย เพราะ noise ปิดทางเดินเป็นจุด ๆ พอเปิด กรอง noise ก่อน มันโตเต็มเนื้อขาวทันที ระวังว่าการกรองช่วยเรื่อง "โตไม่ออก" แต่ไม่ได้กันการรั่ว — กับเกณฑ์เทียบเพื่อนบ้าน มันยิ่งทำให้รั่วง่ายขึ้นด้วยซ้ำ เพราะผลต่างระหว่างพิกเซลติดกันเล็กลง
เทียบ 4- กับ 8-connectivity — ส่วนใหญ่ได้ภูมิภาคเท่ากันเป๊ะ ต่างกันแค่จำนวนรอบ (แบบ 8 ถึงเป้าเร็วกว่าเพราะเดินทแยงได้) ที่ต่างกันจริงคือรอยต่อแบบมุมชนมุม — บล็อกขวาล่างในภาพ "รูปทรง" แบบ 8 ข้ามไปได้ตั้งแต่ T ≈ 30 ส่วนแบบ 4 ต้องรอถึง T ≈ 46 จึงอ้อมผ่านขอบที่เบลอไปได้ ในช่วง T = 30–44 จึงเห็นสองแบบให้คำตอบต่างกันราว 3% ของเฟรม
บนฟิล์ม MRI หนังศีรษะสว่าง 152 ส่วนเนื้อขาว 168 — ต่างกันแค่ 16 threshold ใด ๆ ที่เก็บเนื้อขาวจึงเก็บหนังศีรษะไปด้วยเสมอ แต่ region growing ไปไม่ถึง เพราะต้องเดินผ่านกะโหลก (38) และ CSF (26) ที่ต่างกันเกิน 130 ระดับ — นี่คือสิ่งที่ข้อมูลเชิงพื้นที่ให้ได้ แต่ histogram ให้ไม่ได้
1 · ภาพและเมล็ด
คลิกบนภาพในข้อ 3 เพื่อวางเมล็ดเพิ่ม — คลิกซ้ำที่เมล็ดเดิมเพื่อเอาออก · เมล็ดหลายเมล็ดจะโตรวมเป็นภูมิภาคเดียวกัน
2 · กฎการรับเพื่อนบ้านเข้าภูมิภาค
—
3 · การเติบโตทีละชั้น
ภาพต้นฉบับ + ภูมิภาคที่โตแล้ว (คลิกเพื่อวางเมล็ด)
ผลสุดท้าย — ภูมิภาคที่ได้ (mask)
เอาเมาส์ชี้บนภาพซ้ายเพื่ออ่านค่าความสว่างและรอบที่พิกเซลนั้นถูกรับเข้า
พิกเซลในภูมิภาค: — (— ของภาพ) · รอบทั้งหมดจนหยุดโต: — · ค่าเฉลี่ยของภูมิภาค: —
—
4 · กราฟการเติบโต — ขนาดภูมิภาคเทียบกับรอบ
เส้นที่ชันขึ้นอย่างฉับพลันคือสัญญาณของการรั่ว: ภูมิภาคหลุดออกจากวัตถุแล้วเจอพื้นที่กว้างที่ผ่านเกณฑ์ทั้งหมด · เส้นตั้งคือรอบที่กำลังแสดงอยู่
จำนวนพิกเซลที่รับเข้ารอบนี้: — · รอบที่โตเร็วที่สุด: — (— พิกเซล)
โครงอัลกอริทึม — เป็น breadth-first search บนกริดพิกเซล ที่มีเงื่อนไขผ่านด่านเป็นความเหมือนของความสว่าง
เพราะพิกเซลใหม่เข้ามาได้เฉพาะจากเพื่อนบ้านของพิกเซลที่อยู่ใน R แล้ว ผลลัพธ์จึงต่อเนื่องกันโดยโครงสร้าง — เป็นสมบัติที่ thresholding ไม่มีวันรับประกันได้
เกณฑ์ผ่านด่าน P(q, p, R) ทั้งสามแบบ
สองแบบหลังเป็น adaptive — ปรับตัวตามสิ่งที่เจอ จึงทนต่อ bias field ได้ดีกว่า แต่แลกมาด้วยการไหล (drift): เกณฑ์เคลื่อนที่ไปพร้อมกับภูมิภาค จนไม่มีอะไรหยุดมันบนภาพที่ความสว่างค่อย ๆ เปลี่ยน
ค่าเฉลี่ยแบบเพิ่มทีละตัว — ไม่ต้องรวมใหม่ทั้งภูมิภาคทุกครั้ง
ข้อสังเกตเรื่องรอบ (iteration) — ถ้าดึงคิวทีละชั้นเหมือนเดโมนี้ จำนวนรอบจะเท่ากับระยะทางเดินจากเมล็ดไปถึงพิกเซลที่ไกลที่สุดภายในภูมิภาค ไม่ใช่จำนวนพิกเซล