อ่านเปเปอร์: Recovering Homography from Camera Captured Documents using Convolutional Neural…



Original Source Here

อ่านเปเปอร์: Recovering Homography from Camera Captured Documents using Convolutional Neural Networks

11 Sep 2017 — Syed Ammar Abbas and Sibt ul Hussain
https://arxiv.org/pdf/1709.03524.pdf

เปเปอร์ฉบับนี้ว่าด้วยเรื่องของใช้ Convolutional Neural Network (CNN) มาสร้างโมเดลเพื่อ Recovery รูปถ่ายเอกสารที่ความเอียง บิดเบี้ยว(Skewed, Distorted) ให้กลับมาปกติ หรือการทำ De-Skewed, Geometric Correction นั่นเอง

ด้านบน Skewed : คือรูปที่ถ่ายเอียง(Distorted Image) / ด้านล่าง De-Skewed : คือรูปที่ผ่านการแก้ไขแล้ว

โดยในเปเปอร์นี้ เค้าจะเปิดเผย 3 ส่วนหลัก ๆ คือ

  1. การสร้าง Synthetic Dataset ที่ประกอบไปด้วยรูปที่ผ่านการแก้ไขแล้ว จาก Geometric และ Photometric transformation ที่แตกต่างกัน
  2. โครงสร้างเต็ม ๆ ของ CNN โมเดลที่ใช้ในทำ Regressing มุมทั้ง 4 ของรูป (หามุมทั้ง 4 ด้าน เพื่อใช้ในการ Wrapping รูป Distorted Image)
    – Input เป็น Single image / Output เป็น 4 corner points (x1, y1, …, x4, y4)
  3. แสดงให้เห็นว่า L1 Loss ที่ใช้ในเปเปอร์นี้นั้นมีความน่าเชื่อถือในการนำมาใช้ทำ Corners Regression (ส่วนนี้ผมน่าจะไม่พูดถึง)

Introduction

เปเปอร์นี้เขาบอกว่าในปัจจุบัน กล้องแบบ Hand-held หรือ Smart-phone มันกลายเป็นส่วนนึงของชีวิตประจำวันเราไปแล้ว และแบบนั้นเองภาพถ่ายจากอุปกรณ์พวกนี้มันก็ถูกนำมาใช้งานอย่างหลากหลาย ซึ่งส่วนมากภาพมันก็เอียง ๆ มาซะส่วนใหญ่แหละ (เพราะเราใช้มือถ่ายนี่นะ)

ซึ่งทีนี้ไอ้การจะทำระบบที่จะมาวิเคราะห์ภาพพวกนี้มันทำงานได้แบบ Automatic นั้น มันต้องมีการนำพวกเทคนิค Perspective Correction เข้ามาใช้ เพื่อทำให้ภาพพวกนี้มันอยู่ในแนวที่ถูกต้อง หรือการทำ De-Skewed นั่นเอง เพราะมันเป็นการ Pre-processing ที่สำคัญมากเลยในการที่จะนำภาพพวกนี้ไปใช้งานต่อ ไม่ว่าจะเป็นการทำ Binarization, Segmentation หรือ OCR (Optical Character Recognition) ก็ตาม

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

สรุปจากปัญหาข้างบนทั้งหม ไอ้เจ้าเปเปอร์ตัวนี้เนี้ยมันมีวัตถุประสงค์ที่จะสร้างวิธีการแก้ไขภาพแบบที่ Generalized ที่สุด และเป็นวิธีที่ Completely Automatic ในการทำ Perspective Correctionโดยเป็น Trained end-to-end ด้วย บวกกับเขาบอกว่า
– โมเดลเขาไม่ได้ใช้ Hand crafted feature เลย และยัง Train บน Dataset ที่ขนาดใหญ่เพียงพอในการเรียนรู้รูปแบบของ Photometric(สภาพแสง)และ Geometric Trasnformation ที่ต่างกัน รวมถึงทำงานได้ดีโดยไม่ขึ้นอยู่กับ Text Layout ด้วย
– ถ้าเปรียบเทียบกับวิธีง่าย ๆ ที่มีอยู่แล้ว โมเดลนี้จะ Robust แม้จะทำงานภายใต้สภาพแสงและ Noise ที่ต่างกัน ทั้งยังทำงานได้แม้ว่ารูปนั้นจะมีบางส่วนถูกบดบัง หรือหายไปได้อีกด้วย(โหดจัด)
– นอกจากจะ Robust แล้ว ยังมีโครงสร้างที่ง่ายมาก สามารถ Train และ Test เร็วมากด้วย โดยใช้เวลา Train แค่ 5 ชั่วโมง และใช้เวลาแค่ ~0.04s ในการทำ Forward Pass (refers to the calculation and storage of intermediate variables (including outputs) for a neural network in order from the input layer to the output layer) และ Perspective Correction (วัดโดยใช้ Tesla K40 GPU)

Synthetic Dataset Generation

เราใช้ภาพถ่ายเอกสารที่ถ่ายผ่านกล้องมือถือกว่า 3,000 ภาพในการสร้าง Synthetic Dataset ขึ้นมา ซึ่งภาพถ่ายเอกสารเหล่านี้จะประกอบไปด้วยเอกสารที่มีความหลากหลาย ประกอบไปด้วย ข้อความ, รูปภาพประกอบ หรือแม้กระทั่งสมการทางคณิตศาสตร์

โดยวิธีการในการสร้าง Synthetic Dataset มีดังนี้

Geometric Transformation — เราสุ่มใช้วิธีการ Geometric Transformation หลากหลายรูปแบบในการสร้างภาพถ่ายเอกสารในมุมต่าง ๆ ที่มีมุมบิดเบี้ยวไป(Distorted Document) ตัวอย่างดังภาพด้านล่าง

credit: Seiichi Uchida

โดยในทางสมการ Geometric Transformation เนี้ย เขาจะใช้ค่าของสัมประสิทธิ์ Homography Matrix H ซึ่งในที่นี้เขาใช้ h11, h12, h21, h22, h31, h32 มาเปลี่ยนค่าไปใน range ๆ นึงแบบสุ่ม เช่น h11, h12 เขาจะสุ่มค่าในช่วง 0.7 ถึง 1.3 มาสร้าง Distorted Document โดยเขาจะเพิ่มตัวแปรที่เป็นพวก Horizontal and Verticle Margin (ขอบรูปด้านบน ล่าง ซ้าย ขวา)เข้าไปด้วย (การเพิ่มส่วนนี้จะทำให้โมเดลตัวนี้สามารถทำงานได้ดีแม้ส่วนนึงของภาพจะถูกบดบัง หรือหลุดเฟรมภาพออกไป เช่น มุมของเอกสารด้านขวาหายไป)

Homography Matrix

Background Variations — เขาใช้ชุดข้อมูล Describable Textures Dataset (DTD) ที่ประกอบด้วยข้อมูลรูป Texture กว่า 5,000 แบบ ร่วมกับชุดข้อมูล Brodatz Dataset ที่มีรูป Texture กว่าอีก 112 แบบ มีสีและแพทเทิร์นที่แตกต่างกันในการสุ่มสร้าง Background รูปแบบต่าง ๆ ขึ้นมา แต่อย่างไรก็ตาม แค่ Texture อย่างเดียวยังสร้างความหลากหลายได้ไม่พอ เขาจึงใช้ชุดข้อมูล MIT Scene Dataset เข้ามาเพิ่มด้วย

ตัวอย่าง Texture จากชุดข้อมูล Describable Textures Dataset
ตัวอย่าง Texture จากชุดข้อมูล Brodatz Dataset
ตัวอย่าง Texture จากชุดข้อมูล MTI Indoor Scene Dataset

Photometric Transformation —จากวิธีการต่าง ๆ ด้านบนจะเห็นว่าเรายังขาดความหลากหลายในเรื่องของ สภาพแสง และ Noise แบบต่าง ๆ เช่น Motion Blur หรือ Defocus Blur ที่สามารถพบเจอได้เวลาที่เราทำการถ่ายแบบในความเป็นจริง ดังนั้นส่วนสุดท้ายของการสร้าง Synthetic Dataset นี้ เราจะทำการเพิ่ม Motion Blur ด้วยค่า Angle และ Magnitude ที่ต่างกันเข้าไป เพื่อสร้างภาพถ่ายที่จำลองผลของการสั่นและการเคลื่อนไหวของกล้อง

นอกจากนั้นเรายังทำการใช้ Gaussian Blur เพื่อจำลองกรณีที่เลนส์กล้องสกปรก และไม่จับโฟกัสด้วย และในส่วนของสภาพแสงนั้น เราทำการประยุกต์ใช้ Filter แบบต่าง ๆ ที่สร้างด้วยวิธี Gamma Transformation

ตัวอย่างการทำ Gamma Transformation หรือ Gamma Correction — credit: PyImageSearch

AI/ML

Trending AI/ML Article Identified & Digested via Granola by Ramsey Elbasheer; a Machine-Driven RSS Bot

%d bloggers like this: