
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12


งานของการสร้าง 3D มักจะเกี่ยวข้องกับการมองเห็นด้วยสองตา หรือคุณอาจย้ายกล้องตัวเดียวไปรอบๆ วัตถุ ในขณะเดียวกัน ถ้าทราบรูปร่างของวัตถุ งานอาจแก้ไขได้จากภาพถ่ายเดียว นั่นคือคุณมีกล้องเพียงตัวเดียวและมันไม่เคลื่อนไหว เรามาดูวิธีการทำทีละขั้นตอนกัน เราจะใช้ Rubik's Cube เพราะมันได้มาตรฐานและมีคุณสมบัติมากมาย อาจถือได้ว่าเป็นวัตถุที่เรียบง่ายและซับซ้อนในเวลาเดียวกัน ดังนั้นแมชชีนวิชั่นจะต้องผ่านอุปสรรคมากมายเพื่อให้งานสำเร็จลุล่วง
ขั้นตอนที่ 1: ประเมินความซับซ้อนของงาน


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

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

มาตรวจหาคลัสเตอร์ดังกล่าวกัน เพื่อจุดประสงค์นี้ เราจะสรุปการอ่านสำหรับจุดทั้งหมดในพื้นที่ Hough ด้วยทีต้าเดียวกัน คุณเห็นฮิสโตแกรมที่สอดคล้องกันในภาพประกอบ หมายเหตุเล็กน้อยเกี่ยวกับการวัด เมื่อคุณทำงานกับรูปภาพในพิกัดพิกเซล แกน X จะไปตามปกติ แต่ Y จะชี้ลงด้านล่าง ดังนั้นที่มาของพิกัดคือมุมซ้ายบน และค่าทีต้าควรวัดจากแกน X ตามเข็มนาฬิกา โปรดทราบว่าการกวาดทีต้าทั้งหมดบนรูปภาพคือ 180 องศา คุณสามารถตรวจสอบได้ว่ายอดเขาหลัก 3 ยอดแสดงถึงความชันที่โดดเด่น 3 จุดบนรูปภาพ
ขั้นตอนที่ 4: คำนวณ Rho Histogram

ตอนนี้เราทราบเส้นคู่ขนานหลัก 3 กลุ่มแล้ว เรามาแยกเส้นภายในแต่ละเส้นกัน เราสามารถทำซ้ำแนวทางเดียวกันได้ ลองหาคอลัมน์จากสเปซ Hough ที่สอดคล้องกับหนึ่งพีคบนทีต้าฮิสโตแกรม ต่อไป เราจะคำนวณฮิสโตแกรมอื่นโดยที่แกน X แทนค่า rho และ Y - สรุปการอ่านสำหรับ rho นี้ เห็นได้ชัดว่าผลรวมจะน้อยลง ดังนั้นแผนภูมินี้จึงไม่ราบรื่นนัก อย่างไรก็ตาม พีคสามารถมองเห็นได้ชัดเจน และจำนวน (7) นั้นตรงกับจำนวนเส้นคู่ขนานบนรูปภาพต้นทางทุกประการ น่าเสียดาย ไม่ใช่ทุกแผนภูมิจะสมบูรณ์แบบนัก แต่หลักการนั้นชัดเจน
ขั้นตอนที่ 5: ค้นหา Central Knot

ถ้าเราหาจุดศูนย์กลางบน rho histogram สำหรับแต่ละทีต้า เราจะได้ 3 เส้นซึ่งเป็นสีแดงบนภาพ ทางแยกของพวกเขาเป็นจุดที่จำเป็น
ขั้นตอนที่ 6: เลือกจาก 2 ทางเลือก


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

ตอนนี้เราสามารถใช้พีคแรกและพีคสุดท้ายบน rho histograms เพื่อวาดเส้นสีน้ำเงินที่ตัดขอบสีแดงและทำเครื่องหมายที่มุมที่เหลือ งานได้รับการแก้ไข
ขั้นตอนที่ 8: ลองใช้งานจริง
ภาพประกอบสำหรับคำแนะนำนี้สร้างขึ้นโดยใช้ Perception 1.0 นี่เป็นซอฟต์แวร์ฟรีที่ใช้ OpenCV ซึ่งเป็นไลบรารีที่มีประสิทธิภาพสำหรับการมองเห็นด้วยคอมพิวเตอร์ นอกจากนี้ยังอาจเชื่อมโยงกับ WinNB ซึ่งใช้ใน Instructable อื่นของฉันซึ่งให้ความสามารถในการมองเห็นสำหรับหุ่นยนต์ คุณสามารถดาวน์โหลดทั้งสองโปรแกรมได้จาก nbsite สำหรับการติดตั้ง ให้เรียกใช้ไฟล์ exe ที่ดาวน์โหลดมา หลังจากนั้น คุณสามารถลบออกได้โดยใช้เครื่องมือมาตรฐานของ Windows ไซต์นี้ยังมีแหล่งข้อมูลเกี่ยวกับการมองเห็นคอมพิวเตอร์และหัวข้อที่เกี่ยวข้อง ใน Perception คุณจะพบกับวิธีการที่อธิบายไว้ของการสร้าง 3D เช่นเดียวกับวิธีอื่นๆ อีกมากมาย ข้อดีของโปรแกรมนี้คือมันให้ผลลัพธ์สุดท้ายพร้อมกับข้อมูลระดับกลาง คุณสามารถค้นคว้าว่าคอมพิวเตอร์วิทัศน์ทำงานอย่างไรโดยไม่ต้องเป็นโปรแกรมเมอร์ ในการป้อนข้อมูล แต่ละวิธีได้คัดเลือกตัวอย่างทั่วไปมาเป็นพิเศษ แน่นอน คุณสามารถใช้ของคุณเองได้เช่นกัน เป็นไปได้ที่จะใส่รูปภาพจากไฟล์หรือจากกล้องของคอมพิวเตอร์ โปรดติดต่อฉันหากมีคำถามหรือข้อเสนอแนะ
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน

การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน

การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน

วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน

การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน

เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง