LICENSE PLATE

หลังจากที่เรียนเรื่อง digital image processing มาและได้มีโอกาสทำ class project เกี่ยวกับ image processing ผมรู้สึกว่าการทำงานของ computer กับสมองของมนุษย์มันต่างกันแน่นอน…

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

จากรูปรถยนต์ที่ถ่ายเฉพาะด้านหน้ารถมีประมาณสามร้อยรูปผมมองแว้บเดียวก็รู้แล้วว่าตรงใหนมันคือป้ายทะเบียน แต่ตอนทำใน computer มันต่างกันมากมายผมใช้ core2 1.6 ใช้เวลารูปละเกือบห้าวินาทีในการหาป้ายทะเบียนแถมส่วนใหญ่ก็พลาดอีกต่างหาก.. นี่คือเหตุผลที่ผมคิดว่ากระบวนการในการทำงานของโปรแกรมของผมน่าจะต่างกับสมองมนุษย์อย่างแน่นอน

แต่ทั้งนี้ทั้งนั้นด้วยเวลาและงานที่จะต้องส่ง… ผมใช้วิธีปรับภาพให้เป็นสีขาวดำโดยการตัด threshold แล้วค่อยนำมาหา object ที่ติดๆกัน ซึ่งใน matlab มันคือคำสั่ง bwlabel หรือว่า contour ใน opencv ที่ผมเคยสงสัยเมื่อตอนลองเล่น opencv ใหม่ๆ นั่นเอง.. พอได้เป็น object แล้วก็นำมาพิจารณาว่าอันใหนมันน่าจะเป็นป้ายทะเบียนโดยดูจากขนาดกว้างหารยาว ไม่เกินค่าๆหนึ่ง และภายในจะต้องมี object เล็กๆ ที่คาดว่าจะเป็นตัวอักษร อยู่ประมาณหนึ่ง ก็ถือว่ามันเป็นป้ายทะเบียน

ด้วยวิธีการหา object ที่ติดๆกันนี้ทำให้ program ทำงานได้ช้าพอสมควรเพราะว่ามันจะได้ object ที่ติดๆกันเยอะแยะไปหมดยิ่งถ้ามีรายละเอียดเยอะๆ จะได้ออกมามากอยู่ทีเดียว สำหรับงาน thesis ของผมที่จะทำก็มีความคิดว่าจะทำคล้ายๆ กับการหาป้ายทะเบียนรถยนต์แต่จะใช้การเคลื่อนไหวเข้ามาช่วยตัดสินใจว่าเป็นมือหรือไม่เพราะว่ามือน่าจะจะเป็นส่วนที่เคลื่อนไหวเร็วกว่าส่วนอื่นๆ

lpd

Source Code (matlab): http://rapidshare.com/files/323269373/LPSourceCode.zip.html

14 Responses to “LICENSE PLATE”

  1. Kh Says:

    ผมกำลังทำโปรเจคเรื่องนี้อยู่อ่ะครับ แต่ไม่รู้ว่าจะเริ่มต้นยังไงดี ไม่ทราบว่าพอจะขอรายละเอียดข้อมูลของโปรแกรมนี้ได้มั้ยครับ

    ขอบคุณครับบบ

  2. Aim Says:

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

  3. DogSmile Says:

    น่าจะอยู่ในช่วงประมาณ 3*2 (w*h) ครับพอดีผมทำไปนานมากแล้วเลยจำค่าจริงๆไม่ได้ แต่จำได้ว่าตอนที่ทำผมเขียนโปรแกรมให้ print object ทั้งหมดออกมาแล้วดูตัวเลขจริงๆอีกทีซึ่งมันจะเป็นช่วงครับ ไม่ได้เป็นตัวเลขที่พอดี

  4. Jarja Says:

    สวัสดีค่ะ คุณ DogSmile

    พอดีว่าตอนนี้กำลังทำโปรเจคเกี่ยวกับเรื่องนี้อยู่

    เลยลองเข้ามาดูตัวอย่างจากที่นี่ค่ะ

    แต่ว่าลองกดลิงค์ตัวอย่างโค้ดแล้ว

    ลิงค์ใช้ไม่ได้แล้วน่ะค่ะ

    ยังไงช่วยอัพโหลดให้อีกครั้งได้หรือป่าวคะ

    (หรือส่งเข้าเมลก็ได้ค่ะ)

    ขอบคุณล่วงหน้านะคะ

  5. dog smile Says:

    ตัวอย่าง source code ครับ

    http://rapidshare.com/files/450428869/SourceCode.zip

  6. thanapon Says:

    ลิงค์เสียครับ อัพให้ใหม่ได้ไหมครับ เพื่อการศึกษา ขอบคุณครับ

  7. nuttawut Says:

    โหลดไม่ได้ครับ กรุณาช่วยส่งเข้าเมล์ให้หน่อยได้ไหมครับ พอดีกำลังทำโปรเจ็คเรื่องี้อยู่ครับ

    exprazor@hotmail.com ขอบคุณมากครับ

  8. S-dy แมงบ้ง Says:

    สวัสดีคับพอดีผมก็สนใจเรื่องนี้อยู่เหมือนกันคับพี่
    พอดีได้ทำโปรเจคเกี่ยวกับ image processing ด้วยอ่ะคับ
    ได้ทำเกี่ยวกับการนำมาวัดป้ายร้านค้าเพื่อเสียภาษีอ่ะคับโดยใช้หลักการ stereo matching
    เพื่อที่จะนำมาคำนวณว่า ป้ายนี้ มีขนาดเท่าไหร่ เพื่อจะรู้ว่าจะต้องเสียภาษีในราคาเท่าไหร่อ่ะคับ พี่พอจะให้คำปรึกษาหรือให้คำแนะนำได้มั้ยคับผม
    ขอบคุณล่วงหน้าคับพี่ ^^

  9. Babyhiphop Nkc Says:

    ขอโค้ดใหม่หนอ่ยครับ มันโหลดไม่ได้แล้ว ได้ทั้งหมดเลยยิ่งดีครับ 55

  10. ตุลย์ Says:

    ใครมีไฟล์ส่งเข้าเมล์ผมทีนะครับ กำลังทำโปรเจคเรื่องนี้อยู่

  11. ตุลย์ Says:

    ลืมเมล์ as71336300@gmail.com ครับ

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Connecting to %s


Follow

Get every new post delivered to your Inbox.