24
การประมวลผลภาพ: การปรับปรุงอัลกอริทึมสำหรับการรับรู้ 'Coca-Cola Can'
หนึ่งในโครงการที่น่าสนใจที่สุดที่ผมเคยทำงานอยู่ในคู่ที่ผ่านมาของปีที่ผ่านมาเป็นโครงการเกี่ยวกับการประมวลผลภาพ เป้าหมายคือการพัฒนาระบบเพื่อให้สามารถรู้จัก'กระป๋อง' ของ Coca-Cola (โปรดทราบว่าฉันกำลังเน้นคำว่า 'กระป๋อง' คุณจะเห็นว่าทำไมในหนึ่งนาที) คุณสามารถดูตัวอย่างด้านล่างโดยที่สามารถรู้จักในสี่เหลี่ยมสีเขียวพร้อมสเกลและการหมุน ข้อ จำกัด บางประการเกี่ยวกับโครงการ: พื้นหลังอาจมีเสียงดังมาก สามารถจะมีขนาดหรือหมุนหรือรสนิยมแม้กระทั่ง (ภายในขอบเขตที่เหมาะสม) ภาพอาจมีความเลือนในระดับหนึ่ง (รูปทรงอาจไม่ตรงทั้งหมด) อาจมีขวด Coca-Cola ในภาพและอัลกอริทึมควรตรวจจับความสามารถเท่านั้น! ความสว่างของภาพอาจแตกต่างกันมาก (ดังนั้นคุณไม่สามารถเชื่อถือได้ "มากเกินไป" ในการตรวจจับสี) สามารถจะถูกซ่อนไว้บางส่วนที่ด้านข้างหรือตรงกลางและอาจจะเป็นส่วนหนึ่งที่ซ่อนอยู่เบื้องหลังขวด ในภาพอาจจะไม่สามารถทำได้ซึ่งในกรณีนี้คุณต้องไม่พบอะไรเลยและเขียนข้อความโดยบอกว่าเป็นเช่นนั้น ดังนั้นคุณสามารถจบลงด้วยสิ่งที่ยุ่งยากเช่นนี้ (ซึ่งในกรณีนี้อัลกอริทึมของฉันล้มเหลวโดยสิ้นเชิง): ฉันทำโครงการนี้เมื่อไม่นานมานี้และสนุกกับการทำมันมากและฉันก็มีการนำไปใช้ที่เหมาะสม นี่คือรายละเอียดบางอย่างเกี่ยวกับการใช้งานของฉัน: ภาษา : เสร็จใน C ++ โดยใช้ไลบรารีOpenCV การประมวลผลล่วงหน้า : สำหรับการประมวลผลภาพล่วงหน้าเช่นเปลี่ยนภาพให้อยู่ในรูปแบบดิบมากขึ้นเพื่อมอบให้กับอัลกอริทึมฉันใช้ 2 วิธี: การเปลี่ยนโดเมนสีจาก RGB เป็นHSVและการกรองตามเฉดสี "สีแดง" ความอิ่มตัวของสีเหนือขีด จำกัด ที่กำหนดเพื่อหลีกเลี่ยงสีที่มีลักษณะคล้ายสีส้มและการกรองค่าต่ำเพื่อหลีกเลี่ยงโทนมืด ผลลัพธ์ที่ได้คือภาพขาวดำไบนารีซึ่งพิกเซลสีขาวทั้งหมดจะเป็นตัวแทนของพิกเซลที่ตรงกับเกณฑ์นี้ เห็นได้ชัดว่ายังมีอึมากในภาพ แต่จะช่วยลดจำนวนมิติที่คุณต้องทำงานด้วย …