עיבוד תמונות Optical character recognition (OCR) Technology to convert scanned docs to text • If you have a scanner, it probably came with OCR software Digit recognition, AT&T labs http://www.research.att.com/~yann/ License plate readers http://en.wikipedia.org/wiki/Automatic_number_plate_recognition Face detection • Many new digital cameras now detect faces – Canon, Sony, Fuji, … Login without a password… Fingerprint scanners on many new laptops, other devices Face recognition systems now beginning to appear more widely http://www.sensiblevision.com/ Special effects: shape capture The Matrix movies, ESC Entertainment, XYZRGB, NRC Slide content courtesy of Amnon Shashua Smart cars • Mobileye [wiki article] – Vision systems currently in high-end BMW, GM, Volvo models – By 2010: 70% of car manufacturers. Google cars http://www.nytimes.com/2010/10/10/science/10google.html?ref=artificialintelligence Computer vision vs human vision What we see What a computer sees עיבוד תמונה ותחומים סמוכים • • • • “עיבוד תמונות” דן ב”משימות” בהן הקלט והפלט הינם תמונות. “ראיה ממוחשבת” :הקלט תמונה ,והפלט אינו תמונה אלא מידע עליה(Computer Vision). “גרפיקה ממוחשבת” :הקלט הינו מידע כלשהו והפלט הינו תמונה.(Computer Graphics). לדוגמא :מציאת המיפוי התלת-מימדי של גופים בתמונה ,לעומת בנית תמונה ריאליסטית ממידע על גופים תלת-מימדיים במרחב(Rendering). נמרוד פלג 2004 מסלול אופיני לתמונה • עדשת מצלמה • גלאיCCD • תיקון תחום דינמי, כימוי… אופטיקה אלקטרו-אופטיקה עיבוד האות • דחיסה ושיפור עיבוד התמונה • הבנת התמונה ראייה • עדשת העין (מיקוד( • חישני מע’ הראייה )(Cones, Rods • תיקון תחום דינמי, כימוי ועוד במע’ הראיה •דחיסה ושיפור, במסלול עין-מוח ובמוח הראייה. • הבנת התמונה: זיהוי ,תנועה… נמרוד פלג 2004 תחומים שונים בעיבוד תמונה • • • • • שיפור (Enhancement):סילוק “קלקולים” שנוצרו בדגימה. שחזור (Restoration):סילוק קלקולים שטיבם ידוע. ניתוח (Analysis):זיהוי מרכיבים בדר”כ לצורך מע’ אוטומטיות. דחיסה (Compression):ייצוג חסכוני ע”י סילוק מידע לא חיוני. בנייה (Reconstruction):הרכבה על-סמך מידע חלקי (הדמיה ע”י “חתכים)” נמרוד פלג 2004 Discrete Images vs. Continuous Images • Continuous image – Function from ℝ2 to ℝ – How images are in the real world – “Continuous” refers to the domain, not the values (discontinuities could still exist) • Discrete Images 𝑛 𝑘 Continuous image 𝑣(𝑖, 𝑗) – How computers think Image Processing 12 The Five Stages of Image Processing • The stages are – Image acquisition – how we obtain images in the first place – Preprocessing – any effects applied before mapping (e.g. crop, mask, filter) – Mapping – catch-all stage involving image transformations or image composition – Postprocessing – any effects applied after mapping (e.g. texturizing, color remapping) – Output – printing or displaying on a screen • Stages are sometimes skipped • The middle stages are often interlaced Image Processing 13 Stage 1: Image Acquisition • Image Synthesis – Images created by a computer – Painted in 2D Image Capture • Corel Painter (website) • Photoshop (website) – Rendered from 3D geometry • Pixar’s RenderMan (website) • Autodesk’s Maya (website) – Procedurally textured • Generated images intended to mimic their natural counterparts • E.g. procedural wood grain Images from the “real world” Information must be digitized from an analog signal Common capture methods: Digital camera Satellite data Drum scanner Flatbed photo scanner Frames from video Image Processing 14 תמונה ספרתית Gonzalez & Woods 15 עיבוד סיפרתי של תמונות :תמונה ספרתית תמונה ספרתית • Transforming the 3D world into 2D image Perspective projection • Sampling the image plane Finite number of pixels • Quantizing the color/gray level Finite number of colors תמונה ספרתית:עיבוד סיפרתי של תמונות 16 הטלת פרספקטיבה f x X Z f y Y Z העתקה מתלת-ממד לדו-ממד )(x,y,z )(X,Y,Z Y X f Z x Z y 17 עיבוד סיפרתי של תמונות :תמונה ספרתית )(x,y רמות האפור ורציפותן • במקור ,האובייקט אותו מצלמים הינו “רציף” הן בשטחו (”מרחב”) והן בצבעו (“בהיקות”) ,אך במעבר למחשב חייבים ,משיקולים מעשיים לדגום את התמונה בנקודות מסוימות (פיקסלים בדידים) ובצבעים מסוימים (רמות אפור בדידות(. • מתקבל מערך (או מטריצה) של נקודות מיצגות הערה :בדיד = דיסקרטי Discrete , נמרוד פלג 2004 ? ומה בתמונת צבע • בתמונת צבע מורכבת כל נקודה )(pixel משלשה צבעי יסוד :אדום ,ירוק וכחול (מסומן RGB),ולכן נתאר כל פיקסל ע”י שלש פונקציות: )r( x, y), g( x, y), b( x, y נמרוד פלג 2004 דגימה וכימוי ()Sampling & Quantification Gonzalez & Woods 20 עיבוד סיפרתי של תמונות :תמונה ספרתית דגימת תמונה (מספר הפיקסלים) Sampling 4X4 32X32 64X64 8X8 128X128 21 16X16 עיבוד סיפרתי של תמונות :תמונה ספרתית )(Quantizationכימוי – (מרחב האפשריות לפיקסל) 2 Levels 22 4 Levels 16 Levels עיבוד סיפרתי של תמונות :תמונה ספרתית 256 Levels ייצוג תמונה ספרתית )LUTמטריצה של מספרים (דרגות אפור ,צבעי • )RGBמטריצה של שלשות ( • 122 103 3 17 5 100 200 87 0 117 205 128 205 87 0 118 206 2 255 50 128 119 210 254 Gonzalez & Woods 23 עיבוד סיפרתי של תמונות :תמונה ספרתית נפח זיכרון של תמונה 2k מספר דרגות אפור N Mמספר פיקסלים M N kנפח התמונה M N 24 עיבוד סיפרתי של תמונות :תמונה ספרתית היסטוגרמה Frequency counting of gray levels 18 16 Frequency 14 12 10 8 6 4 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Gray-Level In the limit of continuous intensities: a continuous probability distribution p(g) תמונה ספרתית:עיבוד סיפרתי של תמונות 25 היסטוגרמה-דוגמא 26 עיבוד סיפרתי של תמונות :תמונה ספרתית Stage 2: Preprocessing • Each source image is adjusted to fit a given tone, size, shape, etc., to match a desired quality or to match other images • Can make a set of dissimilar images appear similar (if they are to be composited later), or make similar parts of an image appear dissimilar (such as contrast enhancement) Original Adjusted grayscale curve Image Processing 27 Stage 2: Preprocessing (continued) • Preprocessing techniques include: – Adjusting color or grayscale curve – Cropping – Masking (cutting out part of an image) – Blurring and sharpening – Edge detection/enhancement – Filtering and antialiasing – Scaling up (super sampling) or scaling down (sub sampling) Image Processing 28 שיפור תמונה קלקולים אופיניים המתקבלים במהלך דגימת או צילום התמונה , מפריעים להבחין בפרטים ,מטשטשים את האובייקט וכדומה. תמונת מקור :תצ”א)(Aerial נמרוד פלג 2004 ) (Low Contrastניגודיות נמוכה נמרוד פלג 2004 ) (Blurטשטוש נמרוד פלג 2004 קלקולים נוספים • מיקוד לא נכון(De-Focus). • תזוזה או רעידה של המצלמה או הגוף. • תנועות תרמיות של אויר (טורבולנציה) • ניתן לתקן חלק מהבעיות ע”י עיבוד מתאים אך חייבים לזכור: לא ניתן להוסיף מידע שלא היה קיים בתמונה המקורית! (או בתמונות המקוריות) נמרוד פלג 2004 Stage 2: Preprocessing (continued) • Notes: – Blurring, sharpening, and edge detection can also be postprocessing techniques – Some preprocessing algorithms are not followed by mapping, others that involve resampling the image may be interlaced with mapping: filtering is done this way Image Processing 33 Stage 3: Mapping • Mapping is a catch-all stage where several images are combined, or geometric transformations are applied • Transformations include: – Rotating – Scaling – Warping Image Warping • Compositing: – Basic image overlay – Smooth blending with alpha channels – Poisson image blending • Seamlessly transfers “details” (like edges) from part of one image to another Poisson Image Blending Image credit: © Evan Wallace 2010 Image Processing 34 How do we use Geometric Transformations? (1/2) • Objects in a scene are a collection of points… • These objects have location, orientation, size • Corresponds to transformations, Translation (𝑻), Rotation (𝑹), and Scaling (𝑺) 35/45 Some Linear Algebra Concepts... •3D Coordinate geometry •Vectors in 2 space and 3 space •Dot product and cross product – definitions and uses •Vector and matrix notation and algebra •Identity Matrix •Multiplicative associativity •E.g. A(BC) = (AB)C •Matrix transpose and inverse – definition, use, and calculation •Homogeneous coordinates (𝑥, 𝑦, 𝑧, 𝒘) You will need to understand these concepts! Linear Algebra Help Session Notes: http://cs.brown.edu/courses/cs123/resources/Line ar_Algebra.pdf 36/45 Linear Transformations (1/3) – We represent vectors as bold-italic letters (𝒗) and scalars as just italicized letters (c) – Any vector in plane can be defined as addition of two non-collinear basis vectors in the plane • Recall that a basis is a set of vectors with the following two properties: • The vectors are linearly independent b a 𝒗 = a+b • Any vector in the vector space can be generated by a linear combination of the basis vectors – Scalar constants can be used to adjust magnitude and direction of resultant vector 37/45 Linear Transformations as Matrices (1/2) 38/45 Linear Transformations as Matrices (2/2) 𝑥 • A transformation of an arbitrary column vector 𝑦 has form: 𝑥 𝑎 𝑏 𝑥 𝑻 𝑦 = 𝑐 𝑑 𝑦 𝑥 1 1 𝑎 • Let’s substitute for 𝑦 : 𝑻 = 0 0 𝑐 – transformation applied to 1 is 1st column of 𝑻 0 𝑥 0 0 𝑎 • Now substitute for 𝑦 : 𝑻 = 1 1 𝑐 – transformation applied to 𝑎 𝑏 1 = 𝑐 𝑑 0 𝑏 0 𝑏 = 𝑑 1 𝑑 0 is 2nd column of 𝑻 1 39/45 Scaling in 2D (1/2) • Scale 𝑥 by 3, 𝑦 by 2 (Sx = 3, Sy = 2) Side effect: House shifts position relative to origin 𝑥 𝑥′ – 𝒗 = 𝑦 (original vertex); 𝒗’ = 𝑦′ (new vertex) • 𝒗’ = 𝑺 𝒗 • Derive 𝑺 by determining how 𝑒1 and 𝑒2 should be transformed 1 – 𝑒1 = 𝑠𝑥 * 𝑒1 = 𝑠0𝑥 (Scale in X 0 by 𝑠𝑥 ) , the first column of 𝑺 0 – 𝑒2 = 𝑠𝑦 * 𝑒2 = 𝑠0𝑦 (Scale in Y 1 by 𝑠𝑦 ), the second column of 𝑺 • Thus we obtain 𝑺: 𝑠𝑥 0 6 2 2 1 9 2 3 1 0 𝑠𝑦 40/45 Scaling in 2D (2/2) • • 𝑺 is a diagonal matrix - can confirm our derivation by simply looking at properties of diagonal matrices: 𝑎𝑥 𝑎 0 𝑥 𝑫𝒗 = = 𝑏𝑦 = 𝒗’ 0 𝑏 𝑦 – where 𝑫 is some diagonal matrix • • 𝑖 𝑡ℎ (𝑖 𝑡ℎ entry of 𝒗’ = entry along 𝑡ℎ diagonal of 𝑫 ∗ 𝑖 entry of 𝒗 ) 𝑺 multiplies each coordinate of a 𝒗 by scaling factors (𝑠𝑥 , 𝑠𝑦 ) specified by the entries along the diagonal, as expected Other properties of scaling: does not preserve lengths in objects does not preserve angles between parts of objects (except when scaling is uniform,𝑠𝑥 = 𝑠𝑦 ) if not at origin, translates house relative to origin– often not desired… – 𝑠𝑥 = 𝑎, 𝑠𝑦 = 𝑏 41/45 • • Rotation in 2D Rotate by 𝜃(1/2) about origin 𝒗’ = 𝑺 𝒗 where 𝑥 – 𝒗 = 𝑦 (original vertex) – 𝒗’= 𝑥′ (new vertex) 𝑦′ – Derive 𝑹Ө by determining how 𝑒1 and 𝑒2 should be transformed cosӨ 1 , first column of 𝑹 sinӨ 0 −sinӨ 0 • 𝑒2 = , second column of 𝑹 cosӨ 1 • 𝑒1 = – Thus we obtain 𝑹Ө : Ө cos 𝜃 𝑠𝑖𝑛𝜃 Ө −𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜃 42/45 Rotation in 2D (2/2) • • Let’s try matrix-vector multiplication x cos Ө – y sin Ө 𝑥′ cos 𝜃 −𝑠𝑖𝑛𝜃 𝑥 𝑹𝜃 ∗ 𝒗 = = = = 𝒗’ x sin Ө + y cos Ө 𝑦′ 𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜃 𝑦 – 𝑥 ′ = 𝑥 cos 𝜃 − 𝑦 sin 𝜃 – 𝑦 ′ = 𝑥 sin 𝜃 + 𝑦 cos 𝜃 • Other properties of rotation: – preserves lengths in objects, and angles between parts of objects – rotation is rigid-body – for objects not at the origin, again a translation may be unwanted (i.e., this rotates about origin, not about house’s center of rotation( 43/45 What about translation? • Translation not a linear transformation (not centered about origin) • Can’t be represented as a 2x2 invertible matrix … • Question: Is there another solution? • Answer: Yes, 𝒗′ = 𝒗 𝑑𝑥 If we could treat all transformations in a consistent manner, i.e., with matrix representation, then could combine transformations by composing their matrices Let’s try using a Matrix again How? Homogeneous Coordinates: add an additional dimension, the w-axis, and an extra coordinate, the wcomponent thus 2D -> 3D (effectively the hyperspace for embedding 2D space) 44/45 Transformations Homogenized • Translation uses a 3x3 Matrix, but Scaling and Rotation are 2x2 Matrices • Let’s homogenize! Doesn’t affect linearity property of scaling and rotation • Our new transformation matrices look like this… Transformation Matrix Scaling Rotation Translation • Note: These 3 transformations are called affine transformations 45/45 Examples • Scaling: Scale by 15 in the 𝑥 direction, 17 in the 𝑦 15 0 0 0 17 0 0 0 1 • Rotation: Rotate by 123° cos(123) −sin(123) 0 sin(123) cos(123) 0 0 0 1 • Translation: Translate by -16 in the 𝑥, +18 in the 𝑦 1 0 0 1 0 0 −16 18 1 46/45 Stage 4: Postprocessing • • • • Creates global effects across an entire image or selected area Art effects – Posterizing – Faked “aging” of an image – Faked “out-of-focus” – “Impressionist” pixel remapping – Texturizing Technical effects – Color remapping for contrast enhancement – Color to B&W conversion – Color separation for printing (RGB to CMYK) – Scan retouching and color/contrast balancing Posterizing Aging Edge Detection Impressionist Image Processing 47 קצוות תמונה Edge Detection 48 עיבוד סיפרתי של תמונות :קצוות תמונה קצוות תמונה קצוות של תמונה סינטטית קצוות מאפייני אובייקטים קצוות שאינם מאפיינים אובייקטים 49 עיבוד סיפרתי של תמונות :קצוות תמונה שימוש בנגזרות )f(x גובה הנגזרת מאפיין את שיפוע המדרגה )f’(x נקודת חציית האפס )f’’(x )f(x)-f’’(x 50 עיבוד סיפרתי של תמונות :קצוות תמונה נגזרות ראשונות אופרטור הגרדיאנט: f f f , x y גודל הגרדיאנט: 2 51 f f f x y 2 כיוון הגרדיאנט: f x עיבוד סיפרתי של תמונות :קצוות תמונה f tan y 1 נגזרות ראשונות Gonzalez & Woods 52 עיבוד סיפרתי של תמונות :קצוות תמונה נגזרות של תמונה רועשת Gonzalez & Woods 53 עיבוד סיפרתי של תמונות :קצוות תמונה נגזרת ראשונה של תמונה רועשת 54 עיבוד סיפרתי של תמונות :קצוות תמונה נגזרת ראשונה של תמונה רועשת פתרון :לבצע החלקה לפני הגזירה Gonzalez & Woods 55 עיבוד סיפרתי של תמונות :קצוות תמונה Stage 5: Output (Archive/Display) • Choice of display/archive method may affect earlier processing stages – Color printing accentuates certain colors more than others – Colors on the monitor have different gamuts and HSV values than the colors printed out • Need a mapping – HSV = hue, saturation, value, a cylindrical coordinate system for the RGB color model – Gamut = set of colors that can Display Technologies be represented by output Monitor (CRT device/printer → LCD/LED/OLED/ Plasma panel) Color printer Image Processing 56