רובוטיקה ו

advertisement
‫עיבוד תמונות‬
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
Download