คู่มือปี 2021 เกี่ยวกับ Semantic Segmentation

โหนดต้นทาง: 872271

แนะนำ

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

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

ที่มา http://cs224d.stanford.edu/index.html

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

การแบ่งส่วนภาพคืออะไร

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

Source http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture11.pdf
  1. การแบ่งส่วนความหมาย :- การแบ่งส่วนความหมายเป็นกระบวนการจำแนกแต่ละพิกเซลที่เป็นของป้ายกำกับเฉพาะ ไม่แตกต่างกันในอินสแตนซ์ต่างๆ ของวัตถุเดียวกัน ตัวอย่างเช่น หากมีแมว 2 ตัวในรูปภาพ การแบ่งส่วนความหมายจะให้ป้ายกำกับเดียวกันกับพิกเซลทั้งหมดของแมวทั้งสอง both
  2. การแบ่งส่วนอินสแตนซ์ :- การแบ่งส่วนอินสแตนซ์แตกต่างจากการแบ่งส่วนความหมายในแง่ที่ว่ามันให้ป้ายกำกับที่ไม่ซ้ำกับทุกอินสแตนซ์ของวัตถุเฉพาะในภาพ ดังที่เห็นในภาพด้านบน สุนัขทั้ง 3 ตัวได้รับการกำหนดสีต่างๆ เช่น ป้ายกำกับต่างๆ ด้วยการแบ่งส่วนความหมาย ทั้งหมดจะได้รับการกำหนดสีเดียวกัน

ทีนี้เรามาถึงจุดที่เราต้องการอัลกอริธึมประเภทนี้

กรณีการใช้งานของการแบ่งส่วนภาพ

การรู้จำลายมือ :- Junjo และทุกคนได้สาธิตวิธีการใช้การแบ่งส่วนความหมายเพื่อแยกคำและบรรทัดออกจากเอกสารที่เขียนด้วยลายมือใน เอกสารวิจัยปี 2019 เพื่อจดจำตัวอักษรที่เขียนด้วยลายมือ

แหล่ง

โหมดแนวตั้งของ Google :- มีกรณีการใช้งานมากมายที่จำเป็นต้องแยกพื้นหน้าออกจากพื้นหลัง ตัวอย่างเช่น ในโหมดแนวตั้งของ Google เราจะเห็นพื้นหลังเบลอในขณะที่พื้นหน้ายังคงไม่เปลี่ยนแปลงเพื่อให้เอฟเฟกต์สุดเจ๋ง

ที่มา:- https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

เรื่องราวของ YouTube :- Google เพิ่งเปิดตัวฟีเจอร์เรื่องราว YouTube สำหรับผู้สร้างเนื้อหาเพื่อแสดงภูมิหลังที่แตกต่างกันในขณะที่สร้างเรื่องราว

ที่มา:- https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

แต่งหน้าเสมือนจริง :- การใช้ลิปสติกเสมือนเป็นไปได้ในขณะนี้ด้วยความช่วยเหลือของการแบ่งส่วนภาพ

ที่มา:- https://www.theverge.com/2017/3/16/14946086/sephora-virtual-assistant-ios-app-update-ar-makeup

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

ที่มา:- https://arxiv.org/pdf/1807.07688.pdf

ค้นหาภาพ Image :- แนวคิดในการแบ่งกลุ่มเสื้อผ้ายังใช้ในอัลกอริธึมการดึงรูปภาพในอีคอมเมิร์ซด้วย ตัวอย่างเช่น Pinterest/Amazon ให้คุณอัปโหลดรูปภาพและรับผลิตภัณฑ์ที่คล้ายกันโดยทำการค้นหารูปภาพตามการแบ่งส่วนผ้า

ที่มา:- https://github.com/paucarre/tiefvision

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

ที่มา:- https://medium.com/intro-to-artificial-intelligence/semantic-segmentation-udaitys-self-driving-car-engineer-nanodegree-c01eb6eaf9d

Nanonets ช่วยให้บริษัทโชคลาภ 500 แห่งมอบประสบการณ์ของลูกค้าที่ดีขึ้นในวงกว้างโดยใช้ Semantic Segmentation

วิธีการและเทคนิค

ก่อนการถือกำเนิดของการเรียนรู้เชิงลึก เทคนิคการเรียนรู้ของเครื่องแบบคลาสสิก เช่น SVM, Random Forest, K-means Clustering ถูกนำมาใช้เพื่อแก้ปัญหาการแบ่งส่วนภาพ แต่เช่นเดียวกับข้อความที่เกี่ยวข้องกับปัญหาส่วนใหญ่ การเรียนรู้เชิงลึกนั้นทำงานได้ดีกว่าเทคนิคที่มีอยู่ และกลายเป็นบรรทัดฐานเมื่อต้องจัดการกับ Semantic Segmentation มาดูเทคนิคที่ใช้แก้ปัญหากัน

เครือข่าย Convolutional อย่างเต็มที่

สถาปัตยกรรมทั่วไปของ CNN ประกอบด้วยชั้น convolutional และ pooling สองสามชั้น ตามด้วยชั้นที่เชื่อมต่ออย่างสมบูรณ์ไม่กี่ชั้นในตอนท้าย บทความของ Fully Convolutional Network ที่เผยแพร่ในปี 2014 ระบุว่าเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์ขั้นสุดท้ายนั้นสามารถคิดได้ว่าเป็นการบิดแบบ 1 × 1 ที่ครอบคลุมทั่วทั้งภูมิภาค

ที่มา:- https://arxiv.org/abs/1411.4038

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

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

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

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

ที่มา:- https://arxiv.org/abs/1411.4038

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

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

ยูเน็ต

U-net สร้างขึ้นบนเครือข่ายที่เปลี่ยนแปลงอย่างสมบูรณ์จากด้านบน มันถูกสร้างขึ้นเพื่อวัตถุประสงค์ทางการแพทย์เพื่อค้นหาเนื้องอกในปอดหรือสมอง นอกจากนี้ยังประกอบด้วยตัวเข้ารหัสซึ่งย่อตัวอย่างรูปภาพที่ป้อนลงในแผนที่คุณลักษณะและตัวถอดรหัสซึ่งสุ่มตัวอย่างแผนที่คุณลักษณะเพื่อป้อนขนาดรูปภาพโดยใช้เลเยอร์ deconvolution ที่เรียนรู้

ที่มา:- https://arxiv.org/abs/1505.04597

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

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

ดีพแล็บ

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

1) การโน้มน้าวใจ
2) การรวมพีระมิดเชิงพื้นที่ Atrous
3) การใช้ฟิลด์สุ่มแบบมีเงื่อนไขเพื่อปรับปรุงผลลัพธ์สุดท้าย
มาพูดคุยกันเกี่ยวกับสิ่งเหล่านี้

ความสับสนอลหม่าน

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

บทความนี้เสนอการใช้ Atrous convolution หรือ hole convolution หรือ dilated convolution ซึ่งช่วยในการทำความเข้าใจบริบทขนาดใหญ่โดยใช้พารามิเตอร์จำนวนเท่ากัน

Source:- https://www.mdpi.com/1424-8220/19/24/5361/htm

การบิดแบบขยายทำงานโดยการเพิ่มขนาดของตัวกรองโดยการต่อท้ายศูนย์ (เรียกว่ารู) เพื่อเติมช่องว่างระหว่างพารามิเตอร์ จำนวนหลุม/ศูนย์ที่เติมระหว่างพารามิเตอร์ตัวกรองเรียกว่าอัตราการขยายระยะ เมื่ออัตราเท่ากับ 1 จะไม่มีอะไรเลยนอกจากการบิดแบบปกติ เมื่ออัตราเท่ากับ 2 ศูนย์หนึ่งตัวจะถูกแทรกระหว่างพารามิเตอร์อื่นๆ ทำให้ตัวกรองดูเหมือนการบิดแบบ 5×5 ตอนนี้มีความสามารถในการรับบริบทของการบิดแบบ 5×5 ในขณะที่มีพารามิเตอร์การบิดแบบ 3×3 ในทำนองเดียวกันสำหรับอัตรา 3 ช่องรับจะเป็น 7 × 7

ใน Deeplab เลเยอร์การรวมกลุ่มสุดท้ายจะถูกแทนที่ให้มี stride 1 แทนที่จะเป็น 2 ซึ่งจะทำให้อัตราการสุ่มตัวอย่างลดลงเหลือเพียง 8x จากนั้นจึงใช้ชุดการบิดแบบรุนแรงเพื่อจับภาพบริบทที่ใหญ่ขึ้น สำหรับการฝึก มาสก์ที่มีป้ายกำกับเอาต์พุตจะถูกสุ่มตัวอย่างลง 8x เพื่อเปรียบเทียบแต่ละพิกเซล สำหรับการอนุมาน การสุ่มตัวอย่างแบบ bilinear up จะใช้ในการผลิตเอาต์พุตที่มีขนาดเท่ากัน ซึ่งให้ผลลัพธ์ที่ดีเพียงพอที่ต้นทุนการคำนวณ/หน่วยความจำที่ต่ำกว่า เนื่องจากการสุ่มตัวอย่างแบบ bilinear up ไม่ต้องการพารามิเตอร์ใดๆ เมื่อเทียบกับการดีคอนโวลูชันสำหรับการสุ่มตัวอย่างแบบอัพ

สพป

Spatial Pyramidal Pooling เป็นแนวคิดที่นำมาใช้ใน SPPNet เพื่อเก็บข้อมูลหลายขนาดจากแผนที่คุณลักษณะ ก่อนที่จะมีการนำเสนอภาพอินพุต SPP ที่ความละเอียดต่างกัน และใช้แผนที่คุณลักษณะที่คำนวณไว้ด้วยกันเพื่อรับข้อมูลหลายมาตราส่วน แต่ต้องใช้การคำนวณและเวลามากขึ้น ด้วย Spatial Pyramidal Pooling ข้อมูลหลายสเกลสามารถจับภาพได้ด้วยภาพอินพุตเดียว

ที่มา:- http://kaiminghe.com/eccv14sppnet/index.html

ด้วยโมดูล SPP เครือข่ายจะสร้าง 3 เอาต์พุตของมิติข้อมูล 1×1(เช่น GAP), 2×2 และ 4×4 ค่าเหล่านี้จะถูกต่อกันโดยการแปลงเป็นเวกเตอร์ 1d ดังนั้นจึงสามารถเก็บข้อมูลได้หลายระดับ ข้อดีอีกประการของการใช้ SPP คือสามารถใส่รูปภาพขนาดใดก็ได้

ASPP นำแนวคิดของการหลอมรวมข้อมูลจากมาตราส่วนต่างๆ มาประยุกต์ใช้กับ Atrous convolutions อินพุตถูกรวมเข้าด้วยกันด้วยอัตราการขยายที่แตกต่างกัน และเอาต์พุตของสิ่งเหล่านี้จะถูกหลอมรวมเข้าด้วยกัน

ที่มา:- http://liangchiehchen.com/projects/DeepLab.html

ดังจะเห็นได้ว่าอินพุตถูกรวมเข้าด้วยกันด้วยตัวกรอง 3×3 ที่มีอัตราการขยาย 6, 12, 18 และ 24 และเอาต์พุตจะถูกต่อเข้าด้วยกันเนื่องจากมีขนาดเท่ากัน เอาต์พุตคอนโวลูชั่น 1×1 จะถูกเพิ่มไปยังเอาต์พุตที่หลอมรวมด้วย เพื่อให้ข้อมูลทั่วโลกด้วย เอาต์พุต GAP จะถูกเพิ่มไปที่ด้านบนหลังการสุ่มตัวอย่าง เอาต์พุตแบบหลอมรวมของเอาต์พุตแบบขยายที่แตกต่างกัน 3 × 3, เอาต์พุต 1 × 1 และ GAP จะถูกส่งผ่านการบิดแบบ 1 × 1 เพื่อให้ได้จำนวนช่องที่ต้องการ

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

ปรับปรุงผลผลิตด้วย CRF

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

ที่มา:- http://liangchiehchen.com/projects/DeepLab.html

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

Deeplab-v3 แนะนำการทำให้แบทช์เป็นมาตรฐานและอัตราการขยายที่แนะนำคูณด้วย (1,2,4) ภายในแต่ละเลเยอร์ในบล็อก Resnet การเพิ่มคุณสมบัติระดับภาพให้กับโมดูล ASPP ซึ่งถูกกล่าวถึงในการอภิปรายข้างต้นเกี่ยวกับ ASPP ได้รับการเสนอให้เป็นส่วนหนึ่งของบทความนี้

ที่มา:- https://arxiv.org/pdf/1706.05587.pdf

Deeplab-v3+ แนะนำให้มีตัวถอดรหัสแทนการสุ่มตัวอย่างแบบ bilinear แบบธรรมดา 16x ตัวถอดรหัสใช้คำใบ้จากตัวถอดรหัสที่ใช้โดยสถาปัตยกรรมเช่น U-Net ซึ่งใช้ข้อมูลจากเลเยอร์ตัวเข้ารหัสเพื่อปรับปรุงผลลัพธ์ เอาต์พุตของตัวเข้ารหัสถูกสุ่มตัวอย่าง 4x โดยใช้การสุ่มตัวอย่างแบบ bilinear up และรวมเข้ากับคุณสมบัติจากตัวเข้ารหัสซึ่งจะถูกสุ่มตัวอย่างอีกครั้ง 4x หลังจากทำการบิดแบบ 3×3 วิธีการนี้ให้ผลลัพธ์ที่ดีกว่าการสุ่มตัวอย่างโดยตรง 16 เท่า สถาปัตยกรรม Xception ที่ได้รับการดัดแปลงยังเสนอให้ใช้แทน Resnet โดยเป็นส่วนหนึ่งของตัวเข้ารหัสและตอนนี้มีการใช้ Convolutions ที่แยกได้ในเชิงลึกที่ด้านบนของ Atrous convolutions เพื่อลดจำนวนการคำนวณ

เครือข่าย Convolution ระดับโลก

ที่มา :- https://arxiv.org/pdf/1703.02719.pdf

การแบ่งส่วนความหมายเกี่ยวข้องกับการทำงานสองอย่างพร้อมกัน

i) การจำแนกประเภท
ii) การแปลเป็นภาษาท้องถิ่น

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

ที่มา :- https://arxiv.org/pdf/1703.02719.pdf

ผู้เขียนเสนอให้บรรลุเป้าหมายนี้โดยใช้เมล็ดขนาดใหญ่เป็นส่วนหนึ่งของเครือข่าย ซึ่งจะทำให้มีการเชื่อมต่อที่หนาแน่นและด้วยเหตุนี้จึงมีข้อมูลเพิ่มเติม สิ่งนี้ทำได้ด้วยความช่วยเหลือของบล็อก GCN ดังที่แสดงในรูปด้านบน บล็อก GCN ถือได้ว่าเป็นตัวกรอง akxk convolution โดยที่ k สามารถเป็นตัวเลขที่มากกว่า 3 เพื่อลดจำนวนพารามิเตอร์ ตัวกรอง akxk ถูกแบ่งออกเป็น 1 xk และ kx 1, kx1 และ 1xk บล็อกซึ่งจะถูกรวมเข้าด้วยกัน ดังนั้นโดยการเพิ่มค่า k บริบทที่ใหญ่ขึ้นจะถูกจับ

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

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

ดูมากกว่าหนึ่งครั้ง – KSAC สำหรับ Semantic Segmentation

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

ที่มา :- https://arxiv.org/pdf/1908.09443.pdf

เพื่อจัดการกับปัญหาเหล่านี้ ผู้เขียนเสนอโครงสร้างเครือข่ายใหม่ที่เรียกว่า Kernel-Sharing Atrous Convolution (KSAC) ดังที่เห็นในรูปด้านบน แทนที่จะมีเคอร์เนลที่แตกต่างกันสำหรับแต่ละเลเยอร์คู่ขนานคือ ASPP เคอร์เนลเดียวจะถูกแชร์ข้าม ดังนั้นการปรับปรุงความสามารถทั่วไปของเครือข่าย โดยใช้ KSAC แทน ASPP 62% ของพารามิเตอร์จะถูกบันทึกเมื่อใช้อัตราการขยาย 6,12 และ 18

ข้อดีอีกประการของการใช้โครงสร้าง KSAC คือจำนวนพารามิเตอร์ที่ไม่ขึ้นกับจำนวนอัตราการขยายที่ใช้ ดังนั้นเราจึงสามารถเพิ่มอัตราได้มากเท่าที่เป็นไปได้โดยไม่ต้องเพิ่มขนาดโมเดล ASPP ให้ผลลัพธ์ที่ดีที่สุดด้วยอัตรา 6,12,18 แต่ความแม่นยำลดลงด้วย 6,12,18,24 ซึ่งบ่งชี้ว่าอาจมีการใส่มากเกินไป แต่ความแม่นยำของ KSAC ยังคงเพิ่มขึ้นอย่างมาก ซึ่งบ่งชี้ถึงความสามารถทั่วไปที่เพิ่มขึ้น

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

การแบ่งกลุ่มวิดีโอ

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

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

STFCN

Spatio-Temporal FCN เสนอให้ใช้ FCN ร่วมกับ LSTM เพื่อทำการแบ่งส่วนวิดีโอ เราทราบแล้วว่าสามารถใช้ FCN เพื่อแยกคุณลักษณะสำหรับการแบ่งกลุ่มรูปภาพได้อย่างไร LSTM เป็นโครงข่ายประสาทชนิดหนึ่งที่สามารถบันทึกข้อมูลตามลำดับเมื่อเวลาผ่านไป STFCN รวมพลังของ FCN กับ LSTM เพื่อจับทั้งข้อมูลเชิงพื้นที่และข้อมูลชั่วคราว

ที่มา:- https://arxiv.org/abs/1608.05971

ดังที่เห็นได้จากรูปด้านบน STFCN ประกอบด้วย FCN โมดูล Spatio-temporal ตามด้วย deconvolution แผนผังคุณลักษณะที่สร้างโดย FCN จะถูกส่งไปยัง Spatio-Temporal Module ซึ่งมีอินพุตจากโมดูลของเฟรมก่อนหน้าด้วย โมดูลที่อิงตามอินพุตทั้งสองนี้จะรวบรวมข้อมูลชั่วคราวเพิ่มเติมจากข้อมูลเชิงพื้นที่ และส่งผ่านซึ่งจะมีการสุ่มตัวอย่างเป็นขนาดดั้งเดิมของภาพโดยใช้การดีคอนโวลูชันที่คล้ายกับที่ทำใน FCN

เนื่องจากทั้ง FCN และ LSTM ทำงานร่วมกันในฐานะส่วนหนึ่งของ STFCN เครือข่ายจึงทำงานแบบ end to end ที่ฝึกได้และทำได้ดีกว่าวิธีการแบ่งกลุ่มเฟรมเดียว มีวิธีการที่คล้ายคลึงกันโดยที่ LSTM ถูกแทนที่ด้วย GRU แต่แนวคิดก็เหมือนกันในการเก็บข้อมูลทั้งเชิงพื้นที่และเชิงเวลา

ซีเอ็นเอ็นวิดีโอความหมายผ่านการบิดเบือนการเป็นตัวแทน

เอกสารนี้เสนอการใช้การไหลของแสงข้ามเฟรมที่อยู่ติดกันเป็นอินพุตพิเศษเพื่อปรับปรุงผลการแบ่งส่วน

ที่มา:- https://arxiv.org/abs/1708.03088

แนวทางที่แนะนำสามารถเชื่อมโยงกับสถาปัตยกรรมมาตรฐานใดๆ ก็ได้ในฐานะปลั๊กอิน ส่วนประกอบสำคัญที่ใช้งานได้คือโมดูล NetWarp ในการคำนวณการแบ่งส่วนจะแมปโฟลว์ออปติคัลระหว่างเฟรมปัจจุบันและเฟรมก่อนหน้านั้นคำนวณเช่น Ft และถูกส่งผ่าน FlowCNN เพื่อรับ Λ(Ft) กระบวนการนี้เรียกว่า Flow Transformation ค่านี้จะถูกส่งผ่านโมดูลวิปริตซึ่งยังใช้เป็นอินพุตแมปคุณสมบัติของเลเยอร์กลางที่คำนวณโดยผ่านเครือข่าย ซึ่งจะทำให้แผนที่คุณลักษณะที่บิดเบี้ยวซึ่งรวมกับแผนที่คุณลักษณะระดับกลางของเลเยอร์ปัจจุบันและเครือข่ายทั้งหมดได้รับการฝึกฝนแบบ end-to-end สถาปัตยกรรมนี้บรรลุผล SOTA บนชุดข้อมูลเกณฑ์มาตรฐานวิดีโอ CamVid และ Cityscapes

Clockwork Convnets สำหรับการแบ่งส่วนความหมายของวิดีโอ

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

ที่มา:- https://arxiv.org/abs/1608.03609

รูปด้านบนแสดงอัตราการเปรียบเทียบการเปลี่ยนแปลงสำหรับเลเยอร์ระดับกลาง pool4 และ fc7 ชั้นลึก ทางด้านซ้าย เราจะเห็นว่าเนื่องจากมีการเปลี่ยนแปลงมากมายในเฟรม เลเยอร์ทั้งสองจึงแสดงการเปลี่ยนแปลง แต่การเปลี่ยนแปลงสำหรับ pool4 นั้นสูงกว่า ทางด้านขวาเราจะเห็นว่าไม่มีการเปลี่ยนแปลงระหว่างเฟรมมากนัก ดังนั้น pool4 จึงแสดงการเปลี่ยนแปลงเล็กน้อยในขณะที่ fc7 แสดงการเปลี่ยนแปลงเกือบเป็นศูนย์

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

ที่มา:- https://arxiv.org/abs/1608.03609

การแบ่งกลุ่มความหมายของวิดีโอที่มีความหน่วงต่ำ

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

ที่มา:- https://arxiv.org/abs/1804.00389

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

การแบ่งส่วนสำหรับจุดเมฆ

ข้อมูลที่มาจากเซ็นเซอร์ เช่น lidar จะถูกจัดเก็บในรูปแบบที่เรียกว่า Point Cloud Point cloud เป็นเพียงชุดของจุดข้อมูล 3 มิติที่ไม่เรียงลำดับ (หรือมิติใดๆ) เป็นการแสดงภาพแบบเบาบางของฉากในแบบ 3 มิติ และ CNN ไม่สามารถใช้โดยตรงในกรณีดังกล่าว นอกจากนี้ สถาปัตยกรรมใดๆ ที่ออกแบบมาเพื่อจัดการกับ point cloud ควรคำนึงด้วยว่ามันเป็นชุดที่ไม่เรียงลำดับและด้วยเหตุนี้จึงสามารถมีการเรียงสับเปลี่ยนที่เป็นไปได้มากมาย ดังนั้นเครือข่ายควรเปลี่ยนค่าคงที่ นอกจากนี้ จุดที่กำหนดใน point cloud สามารถอธิบายได้ด้วยระยะห่างระหว่างจุดทั้งสอง จุดที่ใกล้กว่านั้นโดยทั่วไปมีข้อมูลที่เป็นประโยชน์ซึ่งเป็นประโยชน์สำหรับงานแบ่งส่วน

พอยท์เน็ต

PointNet เป็นเอกสารสำคัญในประวัติศาสตร์ของการวิจัยเกี่ยวกับคลาวด์พอยต์โดยใช้การเรียนรู้เชิงลึกเพื่อแก้ปัญหาการจัดหมวดหมู่และการแบ่งส่วน มาศึกษาสถาปัตยกรรมของ Pointnet กันเถอะ

ที่มา:- https://arxiv.org/abs/1612.00593

อินพุตของเครือข่ายสำหรับ n จุดคือเมทริกซ์ nx 3 เมทริกซ์ nx 3 ถูกแมปกับ nx 64 โดยใช้เลเยอร์ multi-perceptron ที่ใช้ร่วมกัน (เครือข่ายที่เชื่อมต่ออย่างสมบูรณ์) ซึ่งจะถูกแมปกับ nx 64 จากนั้นไปที่ nx 128 และ nx 1024 การรวมสูงสุดถูกนำมาใช้เพื่อให้ได้เวกเตอร์ 1024 ซึ่งถูกแปลงเป็น k เอาต์พุตโดยผ่าน MLP ที่มีขนาด 512, 256 และ k ในที่สุด k class outputs ก็ถูกผลิตออกมาเหมือนกับเครือข่ายการจำแนกประเภทใด ๆ

การจัดประเภทเกี่ยวข้องกับคุณลักษณะทั่วโลกเท่านั้น แต่การแบ่งส่วนต้องการคุณลักษณะในพื้นที่ด้วย ดังนั้นคุณสมบัติโลคัลจากเลเยอร์ระดับกลางที่ nx 64 จะถูกรวมเข้ากับคุณสมบัติระดับโลกเพื่อรับเมทริกซ์ anx 1088 ซึ่งส่งผ่าน mlp ของ 512 และ 256 เพื่อไปที่ nx 256 และแม้ว่า MLP ของ 128 และ m จะให้คลาสเอาต์พุต m สำหรับทุกจุด ในจุดเมฆ

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

เอ-ซีเอ็นเอ็น

ที่มา:- https://arxiv.org/abs/1904.08017

A-CNN เสนอการใช้วงแหวนหมุนวนเพื่อเก็บข้อมูลเชิงพื้นที่ เราทราบจาก CNN ว่าการดำเนินการ convolution จะเก็บข้อมูลในพื้นที่ซึ่งจำเป็นต่อการทำความเข้าใจภาพ A-CNN ได้คิดค้น Convolution ใหม่ที่เรียกว่า Annular convolution ซึ่งนำไปใช้กับจุดใกล้เคียงใน point-cloud

สถาปัตยกรรมใช้เป็นอินพุต nx 3 จุดและค้นหาค่าปกติสำหรับพวกเขาซึ่งใช้สำหรับการจัดลำดับคะแนน ตัวอย่างย่อยของคะแนนถูกถ่ายโดยใช้อัลกอริธึม FPS ส่งผลให้ ni x 3 คะแนน ในการหมุนวงแหวนเหล่านี้จะถูกนำไปใช้เพื่อเพิ่มขนาด 128 การบิดเป็นวงกลมจะดำเนินการในจุดใกล้เคียงซึ่งกำหนดโดยใช้อัลกอริธึม KNN

มีการดำเนินการอีกชุดหนึ่งข้างต้นเพื่อเพิ่มขนาดเป็น 256 จากนั้นจึงใช้ mlp เพื่อเปลี่ยนขนาดเป็น 1024 และรวมกลุ่มเพื่อรับเวกเตอร์ 1024 ส่วนกลางที่คล้ายกับ point-cloud ส่วนนี้ทั้งหมดถือเป็นตัวเข้ารหัส สำหรับการจำแนกประเภท เอาต์พุตโกลบอลของตัวเข้ารหัสจะถูกส่งผ่าน mlp เพื่อรับเอาต์พุตคลาส c สำหรับงานการแบ่งเซ็กเมนต์ คุณลักษณะทั้งส่วนกลางและภายในจะถือว่าคล้ายกับ PointCNN จากนั้นจึงส่งผ่าน MLP เพื่อรับเอาต์พุตคลาส m สำหรับแต่ละจุด

ตัวชี้วัด

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

ความแม่นยำของพิกเซล

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

ความแม่นยำ = (TP+TN)/(TP+TN+FP+FN)

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

สี่แยกเหนือสหภาพ

IOU ถูกกำหนดให้เป็นอัตราส่วนของจุดตัดของความจริงภาคพื้นดินและเอาต์พุตการแบ่งส่วนที่คาดการณ์ไว้เหนือสหภาพของพวกเขา หากเรากำลังคำนวณสำหรับหลายคลาส IOU ของแต่ละคลาสจะถูกคำนวณและนำค่าเฉลี่ยมา เป็นตัวชี้วัดที่ดีกว่าเมื่อเทียบกับความแม่นยำของพิกเซลราวกับว่าทุกพิกเซลถูกกำหนดเป็นพื้นหลังในอินพุต 2 คลาส ค่า IOU คือ (90/100+0/100)/2 เช่น 45% IOU ซึ่งให้การแสดงที่ดีกว่าเมื่อเปรียบเทียบกับ 90 ความแม่นยำ%

ที่มา:- https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection

ความถี่ถ่วงน้ำหนัก IOU

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

คะแนน F1

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

ที่มา:- https://en.wikipedia.org/wiki/F1_score

ความแม่นยำเฉลี่ย

พื้นที่ภายใต้ความแม่นยำ – เส้นโค้งการเรียกคืนสำหรับเกณฑ์ IOU เกณฑ์ที่เลือกโดยเฉลี่ยในคลาสต่างๆ ใช้สำหรับตรวจสอบผลลัพธ์

ฟังก์ชั่นการสูญเสีย

ฟังก์ชันการสูญเสียใช้เพื่อนำทางโครงข่ายประสาทเทียมไปสู่การปรับให้เหมาะสม มาพูดถึงฟังก์ชันการสูญเสียยอดนิยมสองสามอย่างสำหรับงานการแบ่งส่วนความหมาย

ครอสเอนโทรปีสูญเสีย

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

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

การสูญเสียโฟกัส

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

ลูกเต๋าขาดทุน

ฟังก์ชั่นลูกเต๋าไม่มีอะไรเลยนอกจากคะแนน F1 ฟังก์ชันการสูญเสียนี้พยายามปรับคะแนน F1 โดยตรง คะแนน IOU โดยตรงก็สามารถนำมาใช้ในการเพิ่มประสิทธิภาพได้เช่นกัน

ทเวอร์สกี้ แพ้

มันเป็นตัวแปรของการสูญเสียลูกเต๋าซึ่งให้อายุน้ำหนักที่แตกต่างกันไป FN และ FP

Hausdorff ระยะทาง

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

ข้อดีของการใช้การสูญเสียขอบเขตเมื่อเปรียบเทียบกับการสูญเสียตามภูมิภาค เช่น IOU หรือการสูญเสียลูกเต๋า คือไม่ได้รับผลกระทบจากความไม่สมดุลของคลาส เนื่องจากทั้งภูมิภาคไม่ได้รับการพิจารณาเพื่อการเพิ่มประสิทธิภาพ แต่จะพิจารณาเฉพาะขอบเขตเท่านั้น

ที่มา https://en.wikipedia.org/wiki/Hausdorff_distance

คำสองคำที่พิจารณาในที่นี้มีไว้สำหรับสองขอบเขตคือความจริงพื้นฐานและการทำนายผลลัพธ์

ป้ายกำกับฉัน :-

เครื่องมือคำอธิบายประกอบรูปภาพที่เขียนด้วย python
รองรับคำอธิบายประกอบรูปหลายเหลี่ยม
โอเพ่นซอร์สและฟรี
ทำงานบน Windows, Mac, Ubuntu หรือผ่าน Anaconda, Docker
ลิงก์: - https://github.com/wkentaro/labelme

ที่มา :- https://github.com/wkentaro/labelme

เครื่องมือคำอธิบายประกอบคอมพิวเตอร์วิทัศน์ :-

เครื่องมือคำอธิบายประกอบวิดีโอและรูปภาพที่พัฒนาโดย Intel
ฟรีและออนไลน์
ทำงานบน Windows, Mac และ Ubuntu
ลิงก์: - https://github.com/opencv/cvat

คำอธิบายประกอบภาพ Vgg :-

เครื่องมือคำอธิบายประกอบรูปภาพโอเพนซอร์สฟรี
หน้า html อย่างง่าย < 200kb และสามารถทำงานแบบออฟไลน์ได้
รองรับคำอธิบายประกอบรูปหลายเหลี่ยมและจุด
ลิงก์: - https://github.com/ox-vgg/via

ที่มา:- https://github.com/ox-vgg/via

ป้ายกำกับ:-

เครื่องมือคำอธิบายประกอบแบบชำระเงินสำหรับ Mac
สามารถใช้โมเดล ML หลักเพื่อใส่คำอธิบายประกอบล่วงหน้าสำหรับรูปภาพได้
รองรับรูปหลายเหลี่ยม ลูกบาศก์เบซิเยร์ เส้น และจุด
ลิงก์: - https://github.com/ryouchinsa/Rectlabel-support

กล่องฉลาก :-

เครื่องมือคำอธิบายประกอบแบบชำระเงิน
รองรับเครื่องมือปากกาเพื่อการใส่คำอธิบายประกอบที่รวดเร็วและแม่นยำ
ลิงก์: - https://labelbox.com/product/image-segmentation

ชุดข้อมูล

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

บริบทปาสกาล

ชุดข้อมูลนี้เป็นส่วนขยายของชุดข้อมูล Pascal VOC 2010 และไปไกลกว่าชุดข้อมูลดั้งเดิมโดยให้คำอธิบายประกอบสำหรับทั้งฉากและมีข้อมูลในโลกแห่งความเป็นจริงมากกว่า 400 คลาส

ที่มา :- https://cs.stanford.edu/~roozbeh/pascal-context/
ที่มา :- https://cs.stanford.edu/~roozbeh/pascal-context/

ลิงก์: - https://cs.stanford.edu/~roozbeh/pascal-context/

COCO ชุดข้อมูล

ชุดข้อมูลของ COCO มีรูปภาพ 164k ของชุดข้อมูล COCO ดั้งเดิมพร้อมคำอธิบายประกอบระดับพิกเซลและเป็นชุดข้อมูลมาตรฐานทั่วไป ครอบคลุม 172 คลาส: 80 คลาสของสิ่ง 91 คลาสของสิ่งต่าง ๆ และ 1 คลาส 'ไม่มีป้ายกำกับ'

ที่มา :- http://cocodataset.org/#home

ลิงก์: - http://cocodataset.org/

ชุดข้อมูลทิวทัศน์เมือง

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

ที่มา :- https://www.cityscapes-dataset.com/

ลิงก์: - https://www.cityscapes-dataset.com/

Lits ชุดข้อมูล

ชุดข้อมูลถูกสร้างขึ้นโดยเป็นส่วนหนึ่งของความท้าทายในการระบุรอยโรคของเนื้องอกจากการสแกน CT ของตับ ชุดข้อมูลประกอบด้วยการสแกน CT ของข้อมูลการฝึกอบรม 130 ครั้งและการสแกน CT 70 ครั้งของข้อมูลการทดสอบ

ที่มา :- https://competitions.codalab.org/competitions/17094

ลิงก์: - https://competitions.codalab.org/competitions/17094

ชุดข้อมูล CCP

Cloth Co-Parsing เป็นชุดข้อมูลซึ่งสร้างขึ้นโดยเป็นส่วนหนึ่งของรายงานการวิจัย การแยกวิเคราะห์เสื้อผ้าโดยการแบ่งส่วนภาพและการติดฉลากร่วม ชุดข้อมูลประกอบด้วยรูปภาพมากกว่า 1000 ภาพพร้อมคำอธิบายประกอบระดับพิกเซล รวม 59 แท็ก

ที่มา :- https://github.com/bearpaw/clothing-co-parsing

ที่มา :- https://github.com/bearpaw/clothing-co-parsing

ชุดข้อมูลประทีป

ชุดข้อมูลที่สร้างขึ้นสำหรับงานแบ่งส่วนผิวหนังตามรูปภาพจาก Google ที่มีรูปถ่ายใบหน้า 32 รูปและรูปภาพครอบครัว 46 รูป

ที่มา :- http://cs-chan.com/downloads_skin_dataset.html

ลิงก์: - http://cs-chan.com/downloads_skin_dataset.html

การติดฉลากภาพทางอากาศของ Inria

ชุดข้อมูลแผนที่การแบ่งส่วนทางอากาศที่สร้างจากภาพสาธารณสมบัติ มีเนื้อที่ 810 ตร.กม. และมี 2 ชั้น อาคารที่ไม่ใช่อาคาร

ที่มา :- https://project.inria.fr/aerialimagelabeling/
ที่มา :- https://project.inria.fr/aerialimagelabeling/

ลิงก์: - https://project.inria.fr/aerialimagelabeling/

S3DIS

ชุดข้อมูลนี้ประกอบด้วย point clouds ของชิ้นส่วนในร่มขนาดใหญ่ 3 ชิ้นในอาคาร 70000 หลังที่มีรูปภาพมากกว่า XNUMX ภาพ

ที่มา :- http://buildingparser.stanford.edu/dataset.html

ลิงก์: - http://buildingparser.stanford.edu/dataset.html

สรุป

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

หากต้องการรับรายการทรัพยากรเพิ่มเติมสำหรับการแบ่งส่วนความหมาย ให้เริ่มด้วย https://github.com/mrgloom/awesome-semantic-segmentation.

อ่านเพิ่มเติม


คุณอาจสนใจโพสต์ล่าสุดของเราที่:

ปรับปรุง:
เพิ่มเนื้อหาการอ่านเพิ่มเติม

ที่มา: https://nanonets.com/blog/semantic-image-segmentation-2020/

ประทับเวลา:

เพิ่มเติมจาก AI และการเรียนรู้ของเครื่อง