ติดตาม Isoline ของฟังก์ชัน 2D ที่มีราคาแพง


10

ฉันมีปัญหาที่คล้ายกันในการกำหนดโพสต์นี้มีความแตกต่างที่โดดเด่นไม่กี่:

มีวิธีการอะไรง่าย ๆ สำหรับการสุ่มตัวอย่างแบบ 2D ฟังก์ชั่น?

กดไลค์ในโพสต์นั้น:

  • ฉันมีและการประเมินฟังก์ชั่นนี้ค่อนข้างแพงในการคำนวณ(x,Y)

ไม่เหมือนในโพสต์นั้น:

  • ฉันไม่ได้สนใจในคุณค่าของฟังก์ชั่นอย่างถูกต้องทุกที่ แต่ในการค้นหาไอโซที่เป็นหนึ่งเดียวของฟังก์ชั่น

  • ฉันสามารถยืนยันที่สำคัญเกี่ยวกับความสัมพันธ์ของฟังก์ชันได้โดยอัตโนมัติและด้วยเหตุนี้ขนาดของความราบรื่น

มีวิธีที่ชาญฉลาดในการก้าวไป / ลองฟังก์ชั่นนี้และค้นหารูปร่างนี้หรือไม่?

ข้อมูลมากกว่านี้

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

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

สิ่งที่ฉันได้ลอง:

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

  • Dumb Stepping - ใช้ "ขั้นตอน" พิกเซลเดียวในแต่ละทิศทางและเลือกทิศทางที่จะย้ายตามความใกล้ชิดกับค่า iso-line ยังค่อนข้างช้าและมันจะเพิกเฉยต่อการแยกไปสองทางของไอโซ นอกจากนี้ในพื้นที่ที่มีการไล่ระดับสีเรียบมันจะ "เดิน" หรือกลับเป็นสองเท่าในตัวมันเอง

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


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

ฉันเพิ่งตรวจสอบวิธีการที่ฉันเข้าหา (ดูด้านล่าง)
meawoppl

คำตอบ:


4

มีกระดาษในคอมพิวเตอร์กราฟิกที่เรียกว่าProvably Good Sampling และ Meshing of Surfacesซึ่งอาศัยการจัดเตรียม Oracle ซึ่งเป็นตัวกำหนดจุดตัดของ isoline ทั้งหมดที่มีส่วนของเส้นที่กำหนด เมื่อถึงตอนนั้นมันจะสุ่มตัวอย่างรูปทรงทั้งหมดโดยสมมติว่าคุณสามารถกำหนดขนาดคุณลักษณะเฉพาะ (เช่นความโค้งสูงสุดในท้องถิ่น) และชุดของส่วนบรรทัดเริ่มต้นที่ตัดรูปทรงทั้งหมด มันไม่ได้เป็นสิ่งที่ง่ายที่สุดที่จะใช้เพราะมันต้องอาศัยการคำนวณ triangulations Delaunay แต่ก็จะดำเนินการใน 3 มิติในCGAL มันง่ายกว่ามากใน 2D เนื่องจากมีซอฟต์แวร์การวิเคราะห์ตำแหน่งที่ดีอย่างสามเหลี่ยมอยู่ ในบางแง่นี้ค่อนข้างใกล้เคียงกับสิ่งที่ดีที่สุดที่คุณสามารถทำได้


ฉันชอบสูตรนี้มากเพราะมันยังขยายไปถึง 3 มิติอย่างมีเหตุผล ฉันต้องกำหนดสิ่งนี้ใน Python ดังนั้นฉันจึงสามารถเข้าถึงการห่อ Delauny ของ qhull ได้แล้วนั่นไม่ใช่ปัญหาใหญ่ ให้ฉันดูว่าฉันได้รับสรุปนี้ถูกต้อง: - ทำการสุ่มตัวอย่างเพื่อเมล็ด - ตัวอย่างสามเหลี่ยม - สำหรับขอบทั้งหมดที่มีความยาวเกินกว่าความยาวบางส่วน: คำนวณจุดตัดของไอโซนีกับขอบ - ทั้งหมดคำนวณไปยังตัวอย่างและทำซ้ำจากขั้นตอนการคำนวณแบบสามเหลี่ยม?
meawoppl

@ meawoppl: ฉันยังไม่ได้ใช้งานหรือใช้อัลกอริทึมนี้เป็นการส่วนตัว (แต่!) แต่นั่นฟังดูดี
Victor Liu

วันนี้ฉันจะเช็ดสิ่งนี้และโพสต์ผลลัพธ์บางอย่าง!
meawoppl

ขออภัยในความล่าช้า. วิธีนี้ใช้ได้ดีกับชุดข้อมูลของฉัน โดยพื้นฐานแล้วฉันหว่านมันเป็นตาข่ายปกติเพื่อสุ่มตัวอย่างเพื่อเริ่มต้นจากนั้นหาสามเหลี่ยมแล้วแบ่งส่วนที่ตัดผ่านเส้นโครงร่างแบบ iso-contour ซ้ำ เป็นการยากที่จะแสดงความต้องการ "คุณสมบัติที่ดีที่สุด" และมีข้อดีที่จะสุ่มตัวอย่างเริ่มต้น vs สุ่มตัวอย่างปกติในฐานะที่เป็นเส้นทแยงมุมแยกไอโซโทปใช้เวลานานกว่าหนึ่งที่เป็นไปตามระยะเวลาของการสุ่มตัวอย่าง ฉันลงเอยด้วยการยอมให้ใช้เวลาไม่เกิน 5 รอบและนั่นก็ทำหน้าที่เป็น critera ที่หยุดง่ายจริงๆ Wooo> 1K
meawoppl

1

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

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

หากฉันไม่ได้พูดคุยกับคุณคุณสามารถอ่านเพิ่มเติมเกี่ยวกับ EGRA ได้ที่นี่ (ลิงค์ PDF) และที่นี่และมีการนำไปปฏิบัติที่มีอยู่ในโครงการDAKOTAของ Sandia - เพื่อความรู้ของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.