44
การมองเห็นของคอมพิวเตอร์ขั้นพื้นฐาน Fundamentals of Computer Vision ภิญโญ แท้ประสาทสิทธิ(pinyo at su.ac.th, pinyotae at gmail dot com) ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ความรู้เบื้องต้นเกี่ยวกับภาพและการประมวลผลภาพ สัปดาห์ที่ 2

ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

การมองเหนของคอมพวเตอรขนพนฐานFundamentals of Computer Vision

ภญโญ แทประสาทสทธ

(pinyo at su.ac.th, pinyotae at gmail dot com)

ภาควชาคอมพวเตอร คณะวทยาศาสตร มหาวทยาลยศลปากร

ความรเบองตนเกยวกบภาพและการประมวลผลภาพ

สปดาหท 2

Page 2: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

เรองทตองการศกษา• ความรเบองตนเกยวกบภาพและการจดการภาพ

• พนฐานการจดการภาพในระดบพกเซล โมเดลสพนฐานและการเปลยนภาพสใหเปนภาพเฉดเทา

การท าเธรสโฮลดแบบพนฐาน

การท าเธรสโฮลดดวยวธของโอซ (Otsu’s Thresholding)

Adaptive and Advanced Thresholding

• พนฐานการเขยนโปรแกรมจดการภาพ การโหลดและแสดงรป

การบนทกภาพ

การแกไขคาในรปภาพ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 2

Page 3: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

ความรเบองตนเกยวกบภาพ: รปแบบของภาพทพบบอย

• ภาพทพบบอยมกจะเปนภาพสองมต มกไดมาจากกลองถายรปทวไป หรอกลองโทรศพทมอถอ/แทบเบลต

หรอตดมาจากเฟรมในวดโอ (ภาพมกจะเบลอเมอหยดเฟรม)

• โดยทวไปภาพทอยในไฟลจะถกบบอดไว วธในการบบอดภาพนนแหละทท าใหภาพมหลายรปแบบ เชน JPEG, PNG,

TIFF และ Bitmap เปนตน

มทงภาพสและเฉดเทา (หลายคนเรยกวาขาวด า)

บางทภาพเฉดเทากถกบนทกไวเปนแบบภาพส (ท าแบบนได แตมกจะเสยพนทในดสกเพม)

การบบอดอาจจะท าใหภาพเสยความคมชดไดถาเลอกใชวธแบบ Lossy เชน JPEG หรออาจจะคงความคมชดไวไดเชนเดม เชน Lossless

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 3

Page 4: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

ความรเบองตนเกยวกบการจดการภาพ

• ภาพทพบบอยเปนภาพในไฟลทถกบบอดไวกจรง

• แตพอเราจะจดการกบภาพเราจะโหลดภาพเขามาในหนวยความจ า

• โดยทวไปภาพทอยในหนวยความจ าจะไมถกบบอดไว แสดงวาตอนอยในไฟลกบตอนอยในหนวยความจ ามนมรปแบบทไมเหมอนกน

ตอนอยในไฟลเราเนนเรองประหยดพนท ไดดลระหวางความชดกบขนาดไฟล

ตอนอยในหนวยความจ า เราตองท าใหเขยนโปรแกรมไดงาย ค านวณไดเรว

• เพอใหเขยนโปรแกรมไดงาย เราจงจดภาพใหอยในรปแบบทเขาใจงายดวย จดแบบอาเรยสองมตจะเขาใจงาย

ต าแหนงของชองขอมลในอาเรย ตรงกบจด (พกเซล) ในภาพ

แตวาคาแตละคาในอาเรยนนมนแสดงถงอะไร ท าไมมนเปนสหรอเฉดเทาได

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 4

Page 5: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

ภาพเฉดเทาและภาพขาวด า• ภาพเฉดเทาและภาพขาวด าตางกนตรงทปรมาณระดบความสวางทแสดงได ภาพเฉดเทามกจะแสดงระดบความสวางได 256 แบบ

คาพกเซลในภาพเฉดเทามกมคาตงแต 0 ถง 255 (0 = ด า, 255 = ขาว)

บางทกมคาตดลบหรอคาทเกนกวา 255 แตมกจะมปญหากบการแสดงผล

ภาพขาวด าแสดงระดบความสวางไดสองแบบ (binary) คอขาวกบด าสนท

คาพกเซลในภาพขาวด ามกจะเปน 0 กบ 1 หรอไมก 0 กบ 255(ทราบหรอไมวามเหตผลอยางไรกบการเกบขอมลสองแบบน)

Slide

cre

dit: R

ober

t T. C

ollin

s and

Kris

ten

Grau

man

5ภญโญ แทประสาทสทธ มหาวทยาลยศลปากร28 มกราคม 2558

Page 6: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

ลก ๆ กบการจดการภาพขาวด า• เราตองการแสดงผลภาพทมเฉพาะสขาวกบสด าเพยงสองสบนจอภาพ แตวธการแสดงผลมกจะสนบสนนแตภาพเฉดเทา

เพอใหใชวธแสดงผลเดมได เรามกแทนคาพกเซลในภาพขาวด าดวย 0 กบ 255

การแสดงผลดวย 0 กบ 255 ใชพนทเกบขอมลมากกวาแบบ boolean หรอไม?

ภาษาโปรแกรมทวไป เชน C++ เกบขอมลบลนดวยพนท 1 ไบต ใชพนทเทากบ unsigned char (ในจาวาไมม และเรามกจะใช int แทน)

แตในการอธบายยงไงเขยนเลข 0 กบ 1 กงายกวาเขยนดวย 0 กบ 255

ภาพขาวด า โดยทวไป 1 คอสขาวและ 0 คอสด า

Slide

cred

it: Kr

isten

Gra

uman

628 มกราคม 2558

Page 7: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

เราเกบอะไรไวในภาพขาวด า

• Foreground and background บางทสด ากเปน foreground สวนสขาวเปน background

• Regions of interest (พนททเราสนใจ / พนทเปาหมาย)

ปายทะเบยนรถทวไปสามารถเกบเปนภาพขาวด าไดด

7ภญโญ แทประสาทสทธ มหาวทยาลยศลปากร28 มกราคม 2558

Page 8: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

การประยกตใชภาพขาวด าเพอการตรวจสอบทางอตสาหกรรมIndustrial Inspection

Slide

cred

it: Ba

stian

Leib

e

R. Nagarajan et al. “A real time marking inspection scheme for semiconductor industries“, 2006

8ภญโญ แทประสาทสทธ มหาวทยาลยศลปากร28 มกราคม 2558

Page 9: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

การใชภาพขาวด าเพอวเคราะหเอกสารหรอขอความDocument analysis / Text Recognition

การรจ าลายมอ

การวเคราะหเอกสารสแกน

การรจ าขอความในสภาพแวดลอม (หลงจากการแยกขอความมาได)

Source: Till Quack, Martin Renold Slide

cred

it: Ba

stian

Leib

e

9ภญโญ แทประสาทสทธ มหาวทยาลยศลปากร28 มกราคม 2558

Page 10: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

การใชภาพขาวด ากบขอมลชวภาพหรอดานการแพทย

Source: D. Kim et al., Cytometry 35(1), 1999, Bastian Leibe

Tree Analyzer 3.0 by Yu, Taeprasartsit, Wan, and Higgins 2011

Lungs

Aorta

Pulmonary artery

แยกพนทเสนเลอดทตองการออกมา

รหสผปวย 20349.3.7

10ภญโญ แทประสาทสทธ มหาวทยาลยศลปากร28 มกราคม 2558

Page 11: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

แลวภาพสละ จดเกบในอาเรยอยางไร• เวลาทเรากลาวถงภาพส เรามกจะกลาวถงการเกบภาพตามแมสแสง คอสแดง เขยว และ น าเงน เรามกเรยกตดปากวาส RGB (มาจาก Red Green Blue)

การเลอกเกบสตามแมสแสง เปนวธทนยมทสด (แตใชวธเดยว)

จอภาพรองรบการแสดงผลจากแมสแสงโดยตรง ท าใหงายตอความเขาใจไปอกระดบ

• แตในเมอมสามสทตองเกบ แลวจะเกบอยางไรด ทางเลอกในการเกบมหลายทาง ทางทนยมทสดกคอแบงภาพออกเปนชองสญญาณ

ในทนกจะ “ถอวา” มชองสญญาณ RGB สามชอง

แตละชองมตวเลขอยในชวง 0 ถง 255 คลายภาพเฉดเทา (เกบดวยตวแปร 8 บตได)

ดงนนเวลาจดเกบพกเซลอนหนง กจะใชพนท 3 ไบต

ระบบซอฟตแวรจ านวนมากจงจบขอมลจากชองสญญาณรวมกนไวใน int ตวเดยว

การเกบจงมกเปนอาเรยสองมตเชนเดม แตใชการตดแบง int เปนชองสญญาณแทน Slide

cred

it: Kr

isten

Gra

uman

11ภญโญ แทประสาทสทธ มหาวทยาลยศลปากร28 มกราคม 2558

Page 12: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

แลวโมเดลสอน ๆ มไวท าไม• โมเดลสอน ๆ มอยมากมาย แตละโมเดลกมประโยชนใชสอยตางกนไป

• เชนโมเดลสแบบ HSV จะแยกเรองความเปนส กบความสวางออกจากกน มความใกลเคยงกบการมองเหนของมนษยมากขน

ใชในการจ าแนกสทอยในภาพไดดกวา เพราะตดทอนความสวางออกไปเปนอกชองสญญาณ (ชอง V) [เราจะพดเรองนอยางละเอยดในภายหลง]

• โมเดลสทมงานเจาะจงอยาง TSL ชวยใหตรวจหาพนทผวหนงมนษยในภาพไดอยางรวดเรวและแมนย า

• โมเดลสแบบ CMYK ใชกบการบรหารสในเครองพมพ

• โมเดลสแบบ CIE L*a*b* และ CIEDE2000 จะสอดคลองกบประสาทสมผสของมนษยมากเปนพเศษ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 12

Page 13: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

รสกโมเดลสมเยอะ แบบนเลอกใชอะไรด• จะเลอกใชโมเดลอะไรตองดทการใชงานประกอบกนไปเสมอ

• เชน โมเดลสทสอดคลองกบการมองเหนของเราอยาง CIEDE2000 ชวยไดหลายงานแตกใชพลงในการประมวลผลสง เปนตน

• อยางไรกตาม ในระดบพนฐานการวเคราะหภาพเฉดเทาหรอขาวด ากชวยเราไดมากพอตว แมแตภาพทางการแพทยจ านวนมากกเปนภาพเฉดเทา

ดงนนตอนนอยาเพงคดอะไรมาก เรามาจดการภาพเฉดเทาใหไดคลอง ๆ กอนแลวคอยมาคดเรองภาพสในภายหลง

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 13

Page 14: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

เรองทตองการศกษา• ความรเบองตนเกยวกบภาพและการจดการภาพ

• พนฐานการจดการภาพในระดบพกเซล โมเดลสพนฐานและการเปลยนภาพสใหเปนภาพเฉดเทา

การท าเธรสโฮลดแบบพนฐาน

การท าเธรสโฮลดดวยวธของโอซ (Otsu’s Thresholding)

Adaptive and Advanced Thresholding

• พนฐานการเขยนโปรแกรมจดการภาพ การโหลดและแสดงรป

การบนทกภาพ

การแกไขคาในรปภาพ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 14

Page 15: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

โมเดลสพนฐาน

• เนองจากเราจะจดการภาพเฉดเทากอน แตภาพทไดมาดนเปนภาพส

• ดงนนมาท าความเขาใจกนกอนเลยวาเราจะแปลงภาพสกนอยางไร

• ในตอนนเอาแคแนวคด และสมมตวาภาพทเกบไวเปนแบบ RGB (นยมสด)

• ในโมเดลส RGB เราใชคาตวเลข แสดงความสวางของสนน ๆ เชน ถาคา R มคา 255 เรากจะไดสแดงสวางไสว

แตสทเหนเกดจากการผสมคา R G B เขาดวยกน ดงนนตองค านงถงสอน ๆ ดวย

ถาคา G และ B มคาเปนศนย กแสดงวาสสองสนนไมมอทธพลใด ๆ เลย ดงนนถา R = 255, G = 0 และ B = 0 เรากจะไดสแดงสดสวางไสว

ถาคา R G และ B มคาเทากนหมด เชน R = G = B = 255 เรากจะไดสขาว

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 15

Page 16: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

ท าไมเปนสขาว• การผสมส RGB นนเปนไปตามกลไกของแมสแสง ดงนนผลของการผสมส

จะมลกษณะเดยวกบภาพทางดานใตน

• ถาเราปรบคา R, G, B ไปเปนรปแบบตาง ๆ ในชวง 0 ถง 255 ผลทไดกจะตางกนไป ไดสออกมาหลากหลายรปแบบ

• เชนสเทากคอ R = G = B = 127 เปนตน

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 16

Page 17: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

มาแปลงภาพสเปนเฉดเทากนเถอะ

• เรารแลววาเรามคา R, G และ B อยในชวง 0 ถง 255 คายงมากกยงสวาง

• ในขณะทภาพเฉดเทากอยในชวงเดยวกน และบงบอกถงความสวาง

• ดงนนเราตองมวธในการน าคา R, G และ B มารวมกนแลวแปลงเปนความสวางใหได วธตน ๆ และผดกคอจบคาพวกนมาหารเฉลยกนตรง ๆ คอ

Gray = 𝑅+𝐵+𝐺

3

วธทดดขนมากแตกยงผดจากทควรเปนกคอคดแบบ Euclidean

คอใชการค านวณวา Gray =𝑅2+𝐺2+𝐵2

3

สาเหตหลกของความผดพลาดเหลานกคอการใหน าหนกทงสามแมสเทากน

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 17

Page 18: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

อา ใหคานาหนกเทากนกยตธรรมดน ทาไมผดอะ

• ทผดกเพราะมนไมสอดคลองกบประสาทสมผสของมนษยทวไปนนเอง

• จ าไดหรอไมวาท าไม Night Vision Goggles จงเลอกสเขยว

• จากภาพ แสดงวาสายตาของคนทวไปใหน าหนกสเขยวกบแดงสงมาก

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 18

Page 19: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

ถางนสตรค านวณทควรจะเปนนนมหนาตาอยางไร

• กอนอนตองเขาใจกอนวา สายตาแตละคนไมเหมอนกน ความไวในการรบสแตละคนกไมเทากน แตแนวโนมตาง ๆ ของคนทวไปอยในทางเดยวกน

• ดงนนคาน าหนกทใสเขาไป ใชวาจะถกตองตลอดกาล อาจจะมการวจยมาหกลางตวเลขพวกนได

• ยงไปกวานน การรบรของสายตาเราเปนแบบไมเชงเสน (Non-linear) การใชสตรแบบเชงเสน (Linear) กมความผดพลาด

• แตถงกระนน สายตาเรากมกจะไมคมพอทจะแยกความแตกตางไดมากนก ในหลาย ๆ กรณเราจงยอมรบวาสามารถใชสตรแบบเชงเสนวา

Gray = 0.2126 R + 0.7152 G + 0.0722 B

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 19

Page 20: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

แลวตอนเขยนโปรแกรมละ• มนตรงตรงมามากเลย สมมตวาในจดส (พกเซล) ทเราก าลงพจารณาอย เราสามารถอานคาสของมนออกมาเกบไวในตวแปร int ไดเปน r, g, b

เราตองการเกบผลการแปลงไวในตวแปร int ชอ gray เรากเขยนไปเลยวา

gray = 0.2126 * r + 0.7152 * g + 0.0722 * b;

• ทวาภาพมนไมไดแคพกเซลเดยว แตมนมไดเปน 10 ลานหรอมากกวา

• ในทางปฏบตเราจงวนลปค านวณพวกนไปทละพกเซลจนหมด เนองจากภาพเปนอาเรยสองมต เรามกจะวนลปสองชนไปดวย

• วาแตแคเรมเรยน เรากตองออกแรงแปลงภาพกนอยางนแลวเหรอ ทจรงไมตองขนาดนน เพราะเรามค าสงแปลงพวกนตดมาตงแตแรก สงโหลด

ภาพสแลวใหมนจดหนวยความจ าแบบเฉดเทาไดเลย สบายมาก

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 20

Page 21: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

แลวสรปเราเรยนเรองแปลงภาพสเปนเฉดเทาท าไมเนย• เพราะมนเปนการสรางความคนเคยกบระบบหนวยความจ าของภาพสและ

เฉดเทาทเขาใจไดงายทสด ถาเรมปบกเขยนกบเรองยาก ๆ เลยโดยปรกตจะท าไมคอยได

มนเปนแบบฝกหดส าหรบสรางพนฐานทดมาก

• มโมเดลสทมประโยชนมากอยาง TSL และ CIEDE2000 แตยงไมมฟงกชนส าหรบแปลงจาก RGB ไปเปนสองแบบน ถาเราจะใชเรากตองหดจากพนฐานตรงนแลวตอยอดขนไป

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 21

Page 22: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

เรองทตองการศกษา• ความรเบองตนเกยวกบภาพและการจดการภาพ

• พนฐานการจดการภาพในระดบพกเซล โมเดลสพนฐานและการเปลยนภาพสใหเปนภาพเฉดเทา

การทาเธรสโฮลดแบบพนฐาน

การท าเธรสโฮลดดวยวธของโอซ (Otsu’s Thresholding)

Adaptive and Advanced Thresholding

• พนฐานการเขยนโปรแกรมจดการภาพ การโหลดและแสดงรป

การบนทกภาพ

การแกไขคาในรปภาพ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 22

Page 23: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

การทาเธรสโฮลดแบบพนฐาน

• การท าเธรสโฮลด (Thresholding) คอการพจารณาคาและเปรยบเทยบกบคาจดแบง (Threshold หรอ Threshold Value) แลวตดสนประเภท เรองหลก ๆ ของการแบงประเภทกคอการจดท าภาพเปนแบบขาวด า

โดยสวนใหญ เราจะเลอกคามาคาหนง ถาคาเฉดเทามคาสงกวาคาทเลอกมาเรากจะแบงประเภทวาจดคาเฉดเทาดงกลาวเปนสขาว ถาไมมากกวากเปนสด า

การแบงประเภทยงมอกหลายแบบ เชนในภาพ PET (Positron Emitted Tomography) บางประเภท จดทมปฏกรยาเคมบางอยางสงจะมความสวางมากในภาพ PET

ถาจดดงกลาวอยในพนทปอด บรเวณนนกมกจะเปนมะเรงปอด เปนตน

ดงนนการแบงประเภทจงเปนเรองของการใชงาน รวม ๆ แลวเราเรยกการแบงประเภทจากคาทเลอกมาวา Thresholding

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 23

Page 24: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

การสรางภาพขาวด าแบบงาย (Simple Image Binarization)

ใช Basic Thresholding• Gray or color image binary mask

• มใชกนอยหลายแบบ แตทเจอบอย ๆ คอ แบบเปรยบเทยบคาดานเดยว (one-sided comparison)

แบบเปรยบเทยบคาสองดาน (two-sided comparison)

แบบสมาชกเซต (set membership)

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 24

Slide

cre

dit: B

astia

n Le

ibe, Im

age

sour

ce: Im

age

Proc

essin

g Lea

rning

Res

ourc

es,

http

://ho

mep

ages

.inf.e

d.ac

.uk/

rbf/H

IPR2/

imag

es/w

dg2.g

if

Page 25: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

การเลอกคาเธรสโฮลด• การท าเธรสโฮลดเปนเรองทงาย แตการเลอกคาเธรสโฮลดทเหมาะสมเปนงานทยาก

– โดยปรกตแลวเราตองการแยกเอาวตถทสนใจออกจากสงอน ๆ

• พยายามแยกสงทตองการจากการกระจายตวของคาเฉดเทาทตางกน– ถาวตถเปาหมายกบสงทอยรอบ ๆ มความแตกตางของคาเฉดเทามาก งาย

• วธทพบบอย– แยกโดยการใชฮสโทแกรมทวฐานนยม (bimodal histogram)

– หาการกระจายตวองพารามเตอรทดทสด (Fit a parametric distribution) เชนการใช Mixture of Gaussian

– ใชคาเธรสโฮลดพลวตหรอคาเธรสโฮลดเฉพาะพนท (dynamic or local thresholds)

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 25

Slide

cre

dit: B

astia

n Le

ibe

Page 26: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

กรณทจดการงาย: Bimodal Intensity Histograms

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 26

ฮสโทแกรมอดมคต,วตถสออนวางอยบนพนหลงสเขม

ฮสโทแกรมทมกจะเกดขนจรง,โดยมากมสญญาณรบกวน หรอการกระจายของแสงในฉากไมสม าเสมอ

Sour

ce: R

obyn

Owe

ns

Page 27: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

แตวาในชวตจรงนนชวตมนไมงาย

การหาคาเธรสโฮลดเปนเรองยากในกรณทวไป ตองใชขอมลอนเปนตวชวย– ใช domain knowledge

เชน ถารวาสงทตองการหาคอขอความสเขมในเอกสาร และพนทในหนากระดาษสวนใหญมสออน histogram quantile วตถเปาหมายแบงเปนพนทเลก ๆ จ านวนมาก

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 27

คาเฉดเทาของวตถเปาหมาย กบสงอน ๆ มนทบซอนกน (grayvalue overlap)

ถาวตถเปาหมายหรอพนหลงมคาเฉดเทาอยหลายกลม กเปนการยากทจะหาเธรสโฮลดแบบอตโนมต

Sour

ce: S

hapir

o &

Stoc

kman

Slide

cre

dit: B

astia

n Le

ibe

Page 28: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

แตวาในชวตจรงนนชวตมนไมงาย

การหาคาเธรสโฮลดเปนเรองยากในกรณทวไป ตองใชขอมลอนเปนตวชวย– ใช domain knowledge

เชน ถารวาสงทตองการหาคอขอความสเขมในเอกสาร และพนทในหนากระดาษสวนใหญมสออนกวา histogram quantile วตถเปาหมายแบงเปนพนทเลก ๆ จ านวนมาก

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 28

ถาวตถเปาหมายหรอพนหลงมคาเฉดเทาอยหลายกลม กเปนการยากทจะหาเธรสโฮลดแบบอตโนมต

Sour

ce: S

hapir

o &

Stoc

kman

Slide

cre

dit: B

astia

n Le

ibe

Page 29: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

เรองทตองการศกษา• ความรเบองตนเกยวกบภาพและการจดการภาพ

• พนฐานการจดการภาพในระดบพกเซล โมเดลสพนฐานและการเปลยนภาพสใหเปนภาพเฉดเทา

การท าเธรสโฮลดแบบพนฐาน

การทาเธรสโฮลดดวยวธของโอซ (Otsu’s Thresholding)

Adaptive and Advanced Thresholding

• พนฐานการเขยนโปรแกรมจดการภาพ การโหลดและแสดงรป

การบนทกภาพ

การแกไขคาในรปภาพ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 29

Page 30: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

Global Binarization [Otsu 1979]• หาคาเธรสโฮลด T ทท าให within-class variance ( ) ของคลาสทงสอง

ทถกแยกดวย T มคานอยทสด (minimize within-class variance)

โดยท

• วธนใหผลเหมอนกบการ maximize the between-class variance

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 30

Slide

cre

dit: B

astia

n Le

ibe

Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9 (1): 62–66. doi:10.1109/TSMC.1979.4310076

Page 31: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

Algorithm for Global Binarization1. Precompute a cumulative grayvalue histogram h.

(ค านวณฮสโทแกรมคาเฉดเทาสะสมเกบไวกอน—จะไดใชซ าไดไมตองค านวณอก)

2. ส าหรบแตละคาเธรสโฮลด T ทเปนไปไดa) แยกพกเซลออกเปนสองกลมตามคา T

b) หาคา , ภายในฮสโทแกรม h และค านวณคาเฉลยเฉดเทาของแตละกลม

c) ค านวณ

3. เลอกคา

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 31

Slide

cre

dit: B

astia

n Le

ibe

Page 32: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

Local Binarization [Niblack 1986]• หาคาเธรสโฮลดจากพนทเลก ๆ ภาพในหนาตาง W

(โดยทวไปค าวาหนาตางในคอมพวเตอรวชนจะหมายถงพนทเลก ๆ ทก าลงพจารณาอย)

โดยท เปนพารามเตอรทผใชก าหนด

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 32

Standard deviation

Slide

cre

dit: B

astia

n Le

ibe

Page 33: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

เปรยบเทยบผลจากสองวธ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 33

ภาพอนพต

Global threshold selection(Otsu)

Local threshold selection(Niblack) Sl

ide c

redit

: Bas

tian

Leibe

Page 34: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

เรองทตองการศกษา• ความรเบองตนเกยวกบภาพและการจดการภาพ

• พนฐานการจดการภาพในระดบพกเซล โมเดลสพนฐานและการเปลยนภาพสใหเปนภาพเฉดเทา

การท าเธรสโฮลดแบบพนฐาน

การท าเธรสโฮลดดวยวธของโอซ (Otsu’s Thresholding)

Adaptive and Advanced Thresholding

• พนฐานการเขยนโปรแกรมจดการภาพ การโหลดและแสดงรป

การบนทกภาพ

การแกไขคาในรปภาพ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 34

Page 35: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

ถารงานทจะเอาไปใช เรายงมวธทลกล ายงกวาอยอกShijian Lu and Chew Lim Tan, Binarization of badly illuminated document images

through shading estimation and compensation, ICDAR 2007.

• เจาะจงกบงานสแกนเอกสาร

• อาศยขอสงเกตทวาภาพเอกสารมกจะม smooth gradient (ความแตกตางของเฉดสแบบคอยเปนคอยไป) ไมวาแสงทฉายมาทเอกสารจะสม าเสมอหรอไมกตาม

• หาคาประมาณการใหแสงดวยการท า polynomial smoothing (Savitzky-Golay filter)

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 35

Sour

ce: L

u an

d Lim

200

7

อนพต (เราจะพดถงขอมลทเสนสขาวลากผาน) Fit to the whole ‘white’ line Fit to the background pixels

Page 36: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

Lu and Tan’s Method: Mathematic Viewpoint• Polynomial Curve / Surface Fitting

– ในไดอะแกรมทแสดง เราน าขอมลเพยง scan line เดยวมาคด แตทจรงตองท าทงเอกสาร

– จากทเราหา fitted polynomial curve เราตองหา fitted polynomial surface แทน

– Polynomial surface of degree d

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 36

Fitted polynomial line degree 3 Fitted polynomial surface degree 3 Sour

ce: L

u an

d Lim

200

7

Page 37: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

อธบายสมการเพมเตม• ทจรงแลวสมการ

• กคลายกบสมการทเราคนเคย

• ซงจดรปใหมไดเปน

• ดงนนจากสมการแรก ถา d = 3 เราจะไดสมการใหมเปน

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 37

Page 38: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

วาแตการ fit curve คออะไร• การหาเสนโคงทท าใหผลรวมของระยะทางจากจดทสนใจมาถงเสนโคงมคานอยทสด

– เพอใหค านวณไดโดยงายระยะทางทใชจะเปนระยะทางก าลงสอง (square distance)

– ทจรงระยะทางไปถงเสนควรจะเปนระยทางแบบตงฉาก (perpendicular) แตเพอท าใหการค านวณสอดคลองกบความเปนตวแปรอสระและค านวณงายขนไปอก

ในทางปฏบตเราจะท าใหผลรวมของ vertical offsets มคานอยทสด

• จากรปแบบพนฐาน การ fit curve จะท าใหเราไดคา และ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 38

Sour

ce: E

ric W

eisste

in

Page 39: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

แลวทจรงเราท าการค านวณอยางไร• ขนตอนการ fit curve / surface มชออยางเปนทางการวา

Least-squares estimation

• ค านวณไดโดยการ minimize sum of least squares error

• จากสมการขางตน เราร ซงเปนต าแหนงจด และ ซงเปนคาเฉดเทา

แตเรายงไมร b

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 39

Page 40: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

แก A b = v ไดอยางไร

• โดยปรกตแลวไมสามารถแกได เพราะสมการไมมทางเปนจรง! (inconsistent equation)

• ตองวกกลบมาทพนฐานของการ fit curve ตองการเสนทม error นอยสด

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 40

เปาหมายของเราคอจะหา ทท าให

Page 41: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

สตรส าเรจในการหา • มทฤษฎทางพชคณตเชงเสนรองรบไวอยแลว เราสามารถหาผลเฉลย ไดจาก

• หรอใช pseudoinverse (Moore-Penrose inverse) ซงมรากฐานมาจากการท า

Singular Value Decomposition (SVD)

ไดผลออกมาเหมอนกน และ Matlab มค าสงทเดดใหใชทนท

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 41

Page 42: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

ผลลพธดขนอยางเหนไดชด

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 42

Input Otsu Niblack Lu and Tan

ถงวธการจะซบซอนกวาของคนอน แตดผลลพธกรไดทนทวาอนไหนดทสด คมคาทจะเรยนพชคณตเชงเสน

Sour

ce: L

u an

d Lim

200

7

Page 43: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

Lu and Tan เอา fitted surface ไปท าอะไร• เอาไปใชปรบคา threshold แบบวนซ าเปนรอบ ๆ (iterative algorithm) ดงน

1. Fit parametric surface ดวยจดทงหมดในภาพ

2. ปรบคาความสวางดวยการเอา fitted surface ไปลบคาเฉดเทาในภาพ

3. ใช global threshold ดวยวธของ Otsu แยกพนหลงกบตวอกษรไดระดบหนง

4. Fit parametric surface ดวยการใชเฉพาะพกเซลพนหลง

5. ปรบคาความสวางดวยการใช fitted surface จากขนตอนทส

6. ใช global threshold ดวยวธของ Otsu แยกพนหลงกบตวอกษรไดด

7. ท าซ า 4-6 ไปเรอย ๆ ถาจ าเปน

• วธท างานไดดเพราะใชสมมตฐานวาพกเซลสวนใหญเปนพนหลง

• การแยกพนหลงขนตนใชพกเซลตวอกษรไปรวมดวย แตแบบละเอยดจะใชแตพนหลงทพบเทานน

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 43

แยกพนหลงขนตน

แยกพนหลงแบบละเอยด

Slide

cre

dit: B

astia

n Le

ibe

Page 44: ชื่อภาษาไทย English Title - Silpakorn University · 2016-01-13 · ภาษาโปรแกรมทั่วไป เช่น C++ เก็บข้อมูลบูลีนด้วยพื้นที่

เรองทตองการศกษา• ความรเบองตนเกยวกบภาพและการจดการภาพ

• พนฐานการจดการภาพในระดบพกเซล โมเดลสพนฐานและการเปลยนภาพสใหเปนภาพเฉดเทา

การท าเธรสโฮลดแบบพนฐาน

การท าเธรสโฮลดดวยวธของโอซ (Otsu’s Thresholding)

Adaptive and Advanced Thresholding

• พนฐานการเขยนโปรแกรมจดการภาพ การโหลดและแสดงรป

การบนทกภาพ

การแกไขคาในรปภาพ

28-Jan-15 Pinyo Taeprasartsit, Silpakorn University, Thailand 44