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

อ่าน 6 นาที

การแปลงฮอฟทั่วไป

การแปลงฮอฟแบบทั่วไป ( GHT ) ซึ่งแนะนำโดยDana H. Ballardในปี 1981 เป็นการดัดแปลงการแปลงฮอฟโดยใช้หลักการจับคู่แม่แบบ...

การแปลงฮอฟทั่วไป

การแปลงฮอฟแบบทั่วไป ( GHT ) ซึ่งแนะนำโดยDana H. Ballardในปี 1981 เป็นการดัดแปลงการแปลงฮอฟโดยใช้หลักการจับคู่แม่แบบ [ 1 ] การแปลงฮอฟได้รับการพัฒนาขึ้นครั้งแรกเพื่อตรวจจับรูปร่างที่กำหนดโดยการวิเคราะห์ (เช่นเส้นตรงวงกลมวงรี เป็นต้น) ในกรณีเหล่านี้ เรามีความรู้เกี่ยวกับรูปร่างและมุ่งหวังที่จะค้นหาตำแหน่ง และ การวางแนวของรูปร่างนั้นในภาพ การดัดแปลงนี้ทำให้การแปลงฮ ฟสามารถใช้ตรวจจับวัตถุใดๆ ที่อธิบายด้วยแบบจำลองได้

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

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

ประวัติศาสตร์

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

อัลกอริทึม Merlin-Farber ไม่เหมาะสมกับการใช้งานกับข้อมูลภาพจริง เนื่องจากในภาพที่มีพิกเซลขอบจำนวนมาก จะพบผลลัพธ์ที่ผิดพลาดจำนวนมากอันเนื่องมาจากการจัดเรียงพิกเซลที่ซ้ำซ้อน

ทฤษฎีการแปลงฮอฟแบบทั่วไป

เพื่อขยายอัลกอริทึม Hough ไปยังเส้นโค้งที่ไม่ใช่เชิงวิเคราะห์ Ballard ได้กำหนดพารามิเตอร์ต่อไปนี้สำหรับรูปร่างทั่วไป: a={y,s,θ}โดยที่y คือ จุดกำเนิดอ้างอิงสำหรับรูปร่างθคือทิศทาง และs = (s x , s y )อธิบายถึงตัวประกอบมาตราส่วนตั้งฉากสองตัวอัลกอริทึมสามารถคำนวณชุดพารามิเตอร์ที่ดีที่สุดสำหรับรูปร่างที่กำหนดจากข้อมูลพิกเซลขอบ พารามิเตอร์เหล่านี้ไม่ได้มีสถานะเท่ากัน ตำแหน่งจุดกำเนิดอ้างอิงyถูกอธิบายในแง่ของตารางแม่แบบที่เรียกว่าตาราง R ของทิศทางพิกเซลขอบที่เป็นไปได้ การคำนวณพารามิเตอร์เพิ่มเติมsและ θจะทำได้โดยการแปลงตารางนี้โดยตรง หลักการสำคัญของการขยายไปยังรูปร่างใดๆ คือการใช้ข้อมูลทิศทาง เมื่อกำหนดรูปร่างใดๆ และจุดอ้างอิงคงที่บนรูปร่างนั้น แทนที่จะใช้เส้นโค้งพาราเมตริก ข้อมูลที่ได้จากพิกเซลขอบจะถูกจัดเก็บในรูปแบบของตาราง R ในขั้นตอนการแปลง สำหรับจุดขอบทุกจุดบนภาพทดสอบ คุณสมบัติของจุดนั้นจะถูกค้นหาในตาราง R และดึงจุดอ้างอิงออกมา จากนั้นค่าในเซลล์ที่เหมาะสมในเมทริกซ์ที่เรียกว่าเมทริกซ์สะสมจะถูกเพิ่มขึ้น เซลล์ที่มี 'คะแนนโหวต' สูงสุดในเมทริกซ์สะสมอาจเป็นจุดอ้างอิงคงที่ของวัตถุในภาพทดสอบได้

การสร้างตาราง R

เลือกจุดอ้างอิงyสำหรับรูปร่าง (โดยทั่วไปจะเลือกภายในรูปร่าง) สำหรับแต่ละจุดขอบxให้คำนวณ ɸ(x)ทิศทางของเกรเดียนต์และr = y – xดังแสดงในภาพ เก็บค่าrเป็นฟังก์ชันของɸสังเกตว่าแต่ละดัชนีของɸอาจมีค่าr ได้หลายค่า เราสามารถเก็บค่าความแตกต่างของพิกัดระหว่างจุดอ้างอิงคงที่กับจุดขอบ((x c – x ij ), (y c – y ij )) หรือเป็นระยะทางรัศมีและมุมระหว่างจุดทั้งสอง(r ij , α ij )เมื่อทำเช่นนี้สำหรับแต่ละจุดแล้ว ตาราง R จะแสดงวัตถุแม่แบบได้อย่างสมบูรณ์ นอกจากนี้ เนื่องจากขั้นตอนการสร้างสามารถย้อนกลับได้ เราจึงสามารถใช้ขั้นตอนนี้เพื่อระบุตำแหน่งการปรากฏของวัตถุในตำแหน่งอื่นๆ ในภาพได้

เรขาคณิตของการตรวจจับรูปร่างสำหรับการแปลงฮอฟแบบทั่วไป
ฉันɸ iR ɸ i
10(r 11 , α 11 ) (r 12 , α 12 )... (r 1n , α 1n )
2Δɸ(r 21 , α 21 ) (r 22 , α 22 )... (r 2m , α 2m )
32Δɸ(r 31 , α 31 ) (r 32 , α 32 )... (r 3k , α 3k )
.........

การระบุตำแหน่งวัตถุ

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

การสรุปขนาดและทิศทางโดยทั่วไป

สำหรับการกำหนดทิศทางของรูปร่างที่แน่นอน อาร์เรย์สะสมจะเป็นแบบสองมิติในพิกัดจุดอ้างอิง ในการค้นหารูปร่างที่มีทิศทางθและขนาดs ที่ไม่แน่นอน พารามิเตอร์ทั้งสองนี้จะถูกเพิ่มเข้าไปในคำอธิบายรูปร่าง ตอนนี้อาร์เรย์สะสมประกอบด้วยสี่มิติที่สอดคล้องกับพารามิเตอร์(y, s, θ)ตาราง R ยังสามารถใช้เพื่อเพิ่มขนาดพื้นที่มิติที่ใหญ่ขึ้นนี้ได้ เนื่องจากทิศทางและขนาดที่แตกต่างกันจะสอดคล้องกับการแปลงตารางที่คำนวณได้ง่าย กำหนดให้ตาราง R เฉพาะสำหรับรูปร่างSเป็นR(ɸ)การแปลงอย่างง่ายกับตารางนี้จะช่วยให้สามารถตรวจจับรูปร่างเดียวกันที่ถูกปรับขนาดหรือหมุนได้ ตัวอย่างเช่น หากรูปร่างถูกปรับขนาดด้วย s และการแปลงนี้แสดงด้วยT sแล้ว T s [R(ɸ)] = sR(ɸ)กล่าวคือ เวกเตอร์ทั้งหมดถูกปรับขนาดด้วยsนอกจากนี้ หากวัตถุถูกหมุนด้วยมุมθและการแปลงนี้แสดงด้วยT θแล้ว T θ [R(ɸ)] = Rot{R[(ɸ-θ)mod2π],θ} กล่าวคือ ดัชนีทั้งหมดจะเพิ่มขึ้นด้วย – θมอดูล 2π จากนั้นจะพบเวกเตอร์r ที่เหมาะสม และหมุนเวกเตอร์เหล่านั้นด้วยมุมθอีกคุณสมบัติหนึ่งที่จะมีประโยชน์ในการอธิบายการประกอบกันของการแปลง Hough แบบทั่วไปคือการเปลี่ยนจุดอ้างอิง หากเราต้องการเลือกจุดอ้างอิงใหม่โดยที่y-ỹ = zการแก้ไขตาราง R จะเป็นR(ɸ)+ zกล่าว คือ เพิ่ม zเข้าไปในแต่ละเวกเตอร์ในตาราง

อีกวิธีหนึ่งคือการใช้ขอบคู่

สามารถใช้พิกเซลขอบคู่หนึ่งเพื่อลดพื้นที่พารามิเตอร์ได้ โดยใช้ตาราง R และคุณสมบัติที่อธิบายไว้ข้างต้น พิกเซลขอบแต่ละพิกเซลจะกำหนดพื้นผิวในพื้นที่สะสมสี่มิติของa = (y, s, θ)พิกเซลขอบสองพิกเซลที่มีทิศทางต่างกันจะอธิบายพื้นผิวเดียวกันที่หมุนด้วยปริมาณเดียวกันเมื่อเทียบกับθหากพื้นผิวทั้งสองนี้ตัดกัน จุดที่ตัดกันจะสอดคล้องกับพารามิเตอร์a ที่เป็นไปได้ สำหรับรูปร่าง ดังนั้นในทางทฤษฎีจึงเป็นไปได้ที่จะใช้จุดสองจุดในพื้นที่ภาพเพื่อลดตำแหน่งในพื้นที่พารามิเตอร์ให้เหลือเพียงจุดเดียว อย่างไรก็ตาม ความยากลำบากในการหาจุดตัดของพื้นผิวทั้งสองในพื้นที่พารามิเตอร์จะทำให้วิธีการนี้ไม่สามารถใช้งานได้ในกรณีส่วนใหญ่

รูปทรงผสม

ถ้ารูปร่าง S มีโครงสร้างแบบผสมที่ประกอบด้วยส่วนย่อยS 1 , S 2 , .. S Nและจุดอ้างอิงสำหรับรูปร่างS , S 1 , S 2 , .. S Nคือy , y 1 , y 2 , .. y nตามลำดับ สำหรับตัวประกอบการปรับขนาดsและการวางแนวθการแปลง Hough แบบทั่วไปR s (ɸ)จะกำหนดโดยข้อกังวลเกี่ยวกับการแปลงนี้คือ การเลือกจุดอ้างอิงอาจส่งผลต่อความแม่นยำอย่างมาก เพื่อแก้ไขปัญหานี้ Ballard ได้เสนอให้ปรับเรียบตัวสะสมผลลัพธ์ด้วยแม่แบบการปรับเรียบแบบผสม แม่แบบการปรับเรียบแบบผสมH(y)กำหนดเป็นผลรวมแบบ ผสม ของแม่แบบการปรับเรียบแต่ละแบบของรูปร่างย่อย จากนั้น ตัวสะสมที่ปรับปรุงแล้วจะกำหนดโดยA s = A*Hและค่าสูงสุดในA sสอดคล้องกับกรณีที่เป็นไปได้ของรูปร่าง

การแยกส่วนเชิงพื้นที่

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

การดำเนินการ

การดำเนินการใช้สมการต่อไปนี้: [ 6 ]

เมื่อรวมสมการข้างต้นเข้าด้วยกัน เราจะได้:

การสร้างตาราง R

(0) แปลงภาพรูปร่างตัวอย่างให้เป็นภาพขอบโดยใช้ อัลกอริทึม ตรวจจับขอบ ใดๆ เช่นตัวตรวจจับขอบ Canny
(1) เลือกจุดอ้างอิง (เช่น(x c , y c ) )
(2) ลากเส้นจากจุดอ้างอิงไปยังขอบเขต
(3) คำนวณɸ
(4) จัดเก็บจุดอ้างอิง(x c , y c )เป็นฟังก์ชันของɸในตารางR(ɸ)

การตรวจจับ:

(0) แปลงภาพรูปร่างตัวอย่างให้เป็นภาพขอบโดยใช้อัลกอริทึมตรวจจับขอบใดๆ เช่นตัวตรวจจับขอบ Canny
(1) เริ่มต้นตารางสะสม: A[x cmin . . . x cmax ][y cmin . . . y cmax ]
(2) สำหรับจุดขอบแต่ละจุด(x, y)
(2.1) โดยใช้มุมความชันɸ ดึงค่า (α, r) ทั้งหมดที่ อยู่ในดัชนีɸจากตาราง R
(2.2) สำหรับแต่ละ(α,r)ให้คำนวณจุดอ้างอิงที่เป็นไปได้:
x c = x + r cos(α)
y c = y + r sin(α)
(2.3) เพิ่มจำนวนผู้ลงคะแนน:
++A([[x c ]][y c ])
(3) ตำแหน่ง ที่เป็นไปได้ของเส้นขอบวัตถุจะกำหนดโดยค่าสูงสุดเฉพาะที่ในA[x c ][y c ]
ถ้าA[x c ][y c ] > Tแสดงว่าเส้นขอบของวัตถุอยู่ที่(x c , y c )

กรณีทั่วไป:

สมมติว่าวัตถุมีการหมุนΘและมีการปรับขนาดสม่ำเสมอs :

(x , y ) → (x″, y″)
x″ = (x cos(Θ) – y บาป(Θ))s
y″ = (x บาป(Θ) + y cos(Θ))s
แทนที่ x ด้วย x″ และ y ด้วย y″:
x c = x – x″ หรือ x c = x - (x cos(Θ) – y sin(Θ))s
y c = y – y″ หรือ y c = y - (x sin(Θ) + y cos(Θ))s
(1) เริ่มต้นตารางสะสม: A[x cmin . . . x cmax ][y cmin . . . y cmax ][q min . . . q max ][s min . . . s max ]
(2) สำหรับจุดขอบแต่ละจุด(x, y)
(2.1) โดยใช้มุมความชันɸดึง ค่า (α, r) ทั้งหมด จากตาราง R
(2.2) สำหรับแต่ละ(α, r)ให้คำนวณจุดอ้างอิงที่เป็นไปได้:
x = r cos(α)
y = r sin(α)
สำหรับ( Θ = Θ นาที ; Θ ≤ Θ สูงสุด ; Θ++ )
สำหรับ ( s = s min ; s ≤ s max ; s++ )
x c = x - (x cos(Θ) – y sin(Θ))s
y c = y - (x sin(Θ) + y cos(Θ))s
++(A[x c ][y c ][Θ][s])
(3) ตำแหน่งที่เป็นไปได้ของเส้นขอบวัตถุจะกำหนดโดยค่าสูงสุดเฉพาะที่ในA[x c ][y c ][Θ][s]
ถ้าA[x c ][y c ] [Θ][s] > Tแสดงว่าเส้นขอบของวัตถุอยู่ที่(x c , y c )มีการหมุนΘและมีการปรับขนาดด้วยs

ข้อดีและข้อเสีย

ข้อดี

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

ข้อเสีย

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

Ballard แนะนำให้ใช้ข้อมูลการวางแนวของขอบเพื่อลดต้นทุนการคำนวณ มีการแนะนำเทคนิค GHT ที่มีประสิทธิภาพหลายอย่าง เช่น SC-GHT (โดยใช้ความชันและความโค้งเป็นคุณสมบัติเฉพาะที่) [ 7 ] Davis และ Yam [ 8 ]ยังแนะนำการขยายงานของ Merlin สำหรับการจับคู่ที่ไม่ขึ้นกับการวางแนวและมาตราส่วน ซึ่งเสริมงานของ Ballard แต่ไม่ได้รวมถึงการใช้ข้อมูลความชันของขอบและโครงสร้างแบบผสมของ Ballard

ดูเพิ่มเติม

  • การใช้งานการแปลงฮอฟแบบทั่วไปใน OpenCV http://docs.opencv.org/master/dc/d46/classcv_1_1GeneralizedHoughBallard.html
  • บทแนะนำและการใช้งานการแปลงฮอฟแบบทั่วไปhttp://www.itriacasa.it/generalized-hough-transform/default.html เก็บถาวรเมื่อ 30 มกราคม 2016 ที่Wayback Machine
  • การนำการแปลงฮอฟแบบทั่วไปมาใช้ในทางปฏิบัติhttp://www.irit.fr/~Julien.Pinquier/Docs/Hough_transform.html
  • การนำการแปลงฮอฟแบบทั่วไปไปใช้ใน FPGA, ห้องสมุดดิจิทัล IEEE https://ieeexplore.ieee.org/document/5382047/
  • การใช้งานการแปลงฮอฟแบบทั่วไปใน MATLAB http://www.mathworks.com/matlabcentral/fileexchange/44166-generalized-hough-transform
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Generalised_Hough_transform&oldid=1346461514 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การแปลงฮอฟทั่วไป

การแปลงฮอฟแบบทั่วไป ( GHT ) ซึ่งแนะนำโดยDana H. Ballardในปี 1981 เป็นการดัดแปลงการแปลงฮอฟโดยใช้หลักการจับคู่แม่แบบ...

ประวัติศาสตร์

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

ทฤษฎีการแปลงฮอฟแบบทั่วไป

เพื่อขยายอัลกอริทึม Hough ไปยังเส้นโค้งที่ไม่ใช่เชิงวิเคราะห์ Ballard ได้กำหนดพารามิเตอร์ต่อไปนี้สำหรับรูปร่างทั่วไป: a={y,s,θ} โดยที่ y คือ จุดกำเนิด อ้างอิงสำหรับรูปร่าง θ คือทิศทาง และ s = (s x , s y ) อธิบายถึงตัวประกอบมาตราส่วนตั้งฉากสอง ตัว...

การสร้างตาราง R

เลือกจุดอ้างอิง y สำหรับรูปร่าง (โดยทั่วไปจะเลือกภายในรูปร่าง) สำหรับแต่ละจุดขอบ x ให้คำนวณ ɸ(x) ทิศทางของ เกรเดียนต์ และ r = y – x ดังแสดงในภาพ เก็บค่า r เป็นฟังก์ชันของ ɸ สังเกตว่าแต่ละดัชนีของ ɸ อาจมีค่า r ได้หลายค่า...