การตรวจจับเส้นทางในรูปป่า


30

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

ฉันพยายามค้นหาอัลกอริทึมที่สามารถถ่ายภาพได้เช่น:

ข้อความแสดงแทน

และผลิตหน้ากากระบุว่า "เส้นทาง" น่าจะเป็นเช่น:

ข้อความแสดงแทน

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

ความคิดแรกของฉันคือการใช้ Gaussian เบลอและแบ่งภาพออกเป็นบล็อกเปรียบเทียบบล็อกที่อยู่ติดกันเพื่อค้นหาความแตกต่างของสีที่คมชัด อย่างไรก็ตามฉันรู้ได้อย่างรวดเร็วว่าเงาและการเปลี่ยนแปลงอื่น ๆ ของแสงนั้นง่ายมาก

ฉันกำลังคิดเกี่ยวกับการแยกคุณสมบัติของ SURF แต่ฉันเพิ่งประสบความสำเร็จกับ SURF / SIFT เมื่อภาพมีความชัดเจนสมบูรณ์แบบและด้วยแสงที่สม่ำเสมอ

ฉันได้ลองปรับขนาดรูปภาพและมาส์กให้มีขนาดเล็กลงมาก (เช่น 100x75) แปลงเป็นเวกเตอร์ 1xN และใช้พวกมันเพื่อฝึกอบรมโครงข่ายประสาทฐาน FANN (ที่ภาพเป็นอินพุทและหน้ากากเป็นที่ต้องการ เอาท์พุท) แม้จะมีขนาดเล็กเช่นนี้ แต่มีเลเยอร์ที่ซ่อนอยู่ 1 ชั้นและขนาดของอินพุตเวกเตอร์ 75% แต่ก็ใช้เวลาฝึกอบรม 6 ชั่วโมงและยังไม่สามารถคาดเดามาสก์ใด ๆ ในชุดทดสอบได้

ใครสามารถแนะนำวิธีการหรือเอกสารอื่น ๆ ในเรื่องนี้ได้บ้าง


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

ฉันทำค่อนข้าง ฉันกำลังถ่ายภาพด้วยกล้อง monocular ราคาถูก (กล้องเว็บแคม / มือถือ) แต่ฉันไม่คิดว่าพวกเขาเก็บอินฟราเรด
Cerin

การใช้ฟิลเตอร์หลายสีที่สามารถแยกความแตกต่างระหว่างสเปกตรัมของพืชและสิ่งสกปรกอาจเป็นประโยชน์
endolith

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

@yoda, คุณหมายถึงอะไรโดยวิธี Bayesian? ฉันคุ้นเคยกับ Bayesian เพียงนำไปใช้กับการจำแนกประเภทโดยสิ้นเชิงและเครือข่ายแบบลอจิคัล ฉันไม่คุ้นเคยกับการนำไปใช้กับ CV ฉันจำไม่ได้ว่าเห็นโพสต์ของคุณ
Cerin

คำตอบ:


13

มันอาจไม่เพียงพอด้วยตัวเอง แต่เนื่องจากปัญหาอย่างหนึ่งเกี่ยวกับการแปรผันของแสงขั้นตอนการกำจัดเงาจึงอาจช่วยได้ เทคนิคที่ฉันคิดมีอธิบายไว้ในบทความต่อไปนี้:

"ในการกำจัดเงาจากภาพ", GD Finlayson, SD Hordley, C. Lu, และ MS Drew, การวิเคราะห์รูปแบบ IEEE และหน่วยสืบราชการลับของเครื่องจักร (PAMI), Vol.28, ครั้งที่ 1, ม.ค. , 2006, pp.59- 68 http://www.cs.sfu.ca/~mark/ftp/Pami06/pami06.pdf

ส่วนแรกของกระบวนการสร้างภาพสีเทาคงที่ซึ่งอาจเป็นสิ่งที่คุณต้องการในกรณีนี้ นี่คือภาพตัวอย่างที่พวกเขาให้ในกระดาษ:

การกำจัดเงา
(ที่มา: datageist.com )

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

chromaticity
(ที่มา: datageist.com )

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


12

ฉันไม่เชื่อว่าคุณมีข้อมูลเพียงพอในภาพต้นฉบับเพื่อสร้างภาพหน้ากาก คุณอาจเริ่มจากการแบ่งกลุ่มตามสีเช่นสีเขียวไม่ใช่เส้นสีเทา / น้ำตาลคือ อย่างไรก็ตามมีพื้นที่สีเทา / น้ำตาลใน "เส้นขอบเส้นทาง" ซึ่งไม่ได้แสดงไว้ในหน้ากากของคุณ (ดู Quadrant ซ้ายล่างของภาพต้นฉบับ)

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

ดำเนินการตามหัวข้อโครงสร้างต่อไป: ทำเส้นทางผสานกับคนอื่น ๆ หรือไม่ เส้นทางถูกกำหนดโดยคุณสมบัติของดิน / กรวดหรือไม่? ในฐานะมนุษย์ (ที่ดีพอที่จะจดจำรูปแบบ!) ฉันถูกท้าทายโดยคุณสมบัติที่แสดงใน Quadrant ซ้ายล่าง: ฉันเห็นภูมิภาคสีเทา / สีน้ำตาลที่ฉันไม่สามารถลดราคาเป็น "เส้นทาง" บางทีฉันอาจสรุปได้ถ้าฉันมีข้อมูลเพิ่มเติม: แผนที่และสถานที่ที่รู้จักกันอย่างหยาบ ๆ ประสบการณ์ส่วนตัวในเส้นทางนี้หรืออาจเป็นลำดับของภาพที่นำไปสู่จุดนี้ - บางทีมุมมองนี้อาจไม่ชัดเจนหากผู้จำ "รู้ สิ่งที่นำไปสู่ฉากนี้

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


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

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

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

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

12

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

  1. คุณจะต้องมีชุดของ "ตัวอย่างการฝึกอบรม" โดยที่ฉันหมายถึงรูปภาพของเส้นทางต่าง ๆ ในสภาพแวดล้อมที่แตกต่างกันซึ่งคุณ (หัวหน้างาน) ได้ระบุสิ่งที่นับว่าเป็น "เส้นทาง" และพื้นหลัง "ป่า" คุณแบ่งรูปภาพออกเป็นส่วนเล็ก ๆ (โดยทั่วไปคือ 8x8) และแปลงเป็น "ฟีเจอร์พื้นที่" โดยการแปลง DCT (การแปลงโคไซน์แบบแยก) ของบล็อก DCT ของแต่ละบล็อกในกรณีนี้ให้ 64 "คุณสมบัติของเวกเตอร์"
  2. XxYy1=traily2=forest

    • การแจกแจงแบบมีเงื่อนไขคลาส
      • PX|Y(x|trail)trail
      • PX|Y(x|forest)forest
    • ความน่าจะเป็นระดับหรือก่อนหน้า
      • PY(trail)trail
      • PY(forest)forest
  3. ด้วยวิธีนี้คุณจะทดสอบภาพของคุณ (แบ่งเป็นชิ้นเล็ก ๆ ) และคำนวณความน่าจะเป็นหลัง ด้วยการใช้ทฤษฎีการตัดสินใจของ Bayes คุณจะต้องกำหนดเกณฑ์การเลือกแบบไบนารี (ในกรณีนี้) อย่างเช่น

    y~i(x)=argmaxyiPX|Y(x|yi) PY(yi)

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

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

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

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

T. Hastie, R. Tibshirani และ J. Friedman องค์ประกอบของการเรียนรู้ทางสถิติ: การทำเหมืองข้อมูลการอนุมานและการทำนาย 2nd Ed., Springer-Verlag (2008)

ซึ่งตอนนี้มีให้บริการในรูปแบบ PDF ฟรีที่ลิงก์ที่ให้ไว้ อีกหนังสือที่ดีคือ:

RO Duda, PE Hart และ DG Stork, การจำแนกรูปแบบ , 2 Ed., John Wiley & Sons (2001)


1
ในหมายเหตุนั้นฉันอยากจะชี้ให้เห็นml-class.orgซึ่งเป็นการแนะนำที่ยอดเยี่ยมสำหรับการเรียนรู้ของเครื่อง
bjoernz

วิธีการที่น่าสนใจ อย่างไรก็ตามเมื่อคุณพูดว่า Py (ทาง) และ Py (ป่า) เป็น "ความน่าจะเป็นในการค้นหาเส้นทางในภาพรวม" คุณหมายถึงความน่าจะเป็นที่จะหาพวกมันในบล็อก 8x8 หรือภาพทั้งหมดหรือไม่? ถ้าภาพทั้งหมดฉันคิดว่าทั้งสองอย่างนี้จะเป็น 100% เนื่องจากภาพการฝึกทั้งหมดจะมีทั้งสองอย่างนี้
Cerin

@Cerin: ขออภัยด้วย Py (ทาง) ฉันหมายถึงความน่าจะเป็นที่จะหามันในบล็อก นั่นก็คือผลรวมของบล็อคทั้งหมดที่มีจำนวนตามจำนวนบล็อกทั้งหมดในภาพทั้งหมด ฉันได้แก้ไขเพื่อแก้ไข
Lorem Ipsum

คุณจะกำหนดคุณลักษณะของพื้นที่ X อย่างไร คุณจะใช้บางอย่างเช่นการจัดกลุ่ม K-Means เพื่อลดมิติของคุณสมบัติเวคเตอร์ 64 จุดเป็น 10 อย่างหรือไม่
Cerin

@Cerin ใช่ K-หมายความว่าเป็นหนึ่งในวิธีการทั่วไปเพื่อลดขนาด
Lorem Ipsum

9

ใช่ดูเหมือนว่าจะคล้ายกับโดเมนของฉันมาก ขอบคุณ

5

ดูเหมือนว่าปัญหาสำหรับการแบ่งส่วนพื้นผิว (ไม่ใช่การแบ่งส่วนสี) มีวิธีการมากมาย

พวกเขามักใช้ wabets Gabor เช่นนี้ http://note.sonots.com/SciSoftware/GaborTextureSegmentation.html

การแบ่งกลุ่มตาม Superpixels http://ttic.uchicago.edu/~xren/research/superpixel/

และการแบ่งส่วนตัดกราฟที่คล้ายกัน http://en.wikipedia.org/wiki/Graph_cuts_in_computer_vision

นี่คือภาพรวมของวิกิ http://en.wikipedia.org/wiki/Segmentation_(image_processing)


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