Description
EECS16A Imaging 3
Announcements
● Buffer labs are next week, 7/13 & 7/14
○ You can make up one missed lab from the Imaging Module, if needed
○ Held during your regular lab section (this one)
Last time: Single-pixel scanning
Last time: Matrix-vector multiplication
i1
i2
i3
in
1 0 0 0 0 0 0 0 …
0 1 0 0 0 0 0 0 …
0 0 1 0 0 0 0 0 …
0 0 0 1 0 0 0 0 …
0 0 0 0 1 0 0 0 …
0 0 0 0 0 1 0 0 …
0 0 0 0 0 0 1 0 …
…
s1
s2
s3
sn
=
Masking Matrix H Unknown, Recorded vectorized Sensor image, readings,
Last time: Single-pixel scanning
Questions from Imaging 2
Goal: Understand which measurements are
good measurements
✓ Can we always reconstruct our image → need invertible H
? Are all invertible matrices equally good as scanning matrices?
? What happens if we mess up a single scan?
Today: Multi-pixel scanning
● Can we measure multiple pixels at a time?
○ Measurements are now linear combinations of pixels
● How can we reconstruct our scanned image?
Why do we care?
● Improve image quality by averaging
○ Good measurements → good average
● Redundancy is useful
○ Averaging measurements is better than using bad measurement values
○ Does not “solve” bad measurements, but makes us tolerant of some errors
How do we do it?
● Change masks to illuminate multiple pixels per scan
○ Multiple 1’s in each row of masking matrix H
○ Measure linear combinations of pixels instead of single pixels
● BUT multiple pixels → more noise
○ Noise = random variation in our measurement that we don’t want (ex: room light getting into box)
○ Signal = data that we do want (light from pixel illumination)
● Too much noise → hard to distinguish signal from noise
○ Want high signal, low noise
○ High signal-to-noise ratio (SNR)
What is noise?
How does noise affect our system?
ω1
ω2
ω3
ωn
s1
s2
s3
sn
1 0 0 0 0 0 0 0 … i1
0 1 0 0 0 0 0 0 … i2
0 0 1 0 0 0 0 0 …
i3
0 0 0 1 0 0 0 0 …
0 0 0 0 1 0 0 0 …
0 0 0 0 0 1 0 0 …
0 0 0 0 0 0 1 0 …
… in
+=
Masking Matrix H Unknown, Random Recorded vectorized noise Sensor image, vector, readings,
A more realistic system
● Sensor readings = image vectors applied to H + noise vector
● We can’t reconstruct i, but we can estimate it
Be careful about the noise term or else it could blow up !!
Eigenvalues for inverse matrices
● H Is an NxN matrix that we know is linearly independent
(invertible).
○ No eigenvalue = 0
● Assume H has N linearly independent eigenvectors
●
● N lin. ind. vectors can span
○ They span the noise vector
● The inverse of H has eigenvalues
(as proven in homework)
How do eigenvalues affect noise?
The noise vector can be written as:
Rewritten with eigenvalues:
Linking it all together
● Remember: want small noise term for high signal-to-noise ratio
● The noise is directly related to the eigenvalues.
● Do we want small or large eigenvalues for the H matrix in order to get a good image?
Possible Scanning Matrix: Random
A more systematic scanning matrix:
Software Simulator Setup
1. Upload (“simple”) image of an object (or use 16A logo)
2. Convert image to 32×32 form for the simulator
3. Project masks (rows of H) onto it and “measure” s using matrix multiplication
4. Multiply with H inverse to find i (=H-1s)
The simulator handles noise addition in step 3 using a parameter sigma
Using the Software Simulator
1. Start display view in another browser tab
2. Enter the imagePath and run the simulator + shift to display tab
3. Observe masks being projected onto the image + return to notebook tab
4. Observe generated sensor reading
5. Reconstruct image by multiplying with H inverse
Repeat steps 2-5 for each imaging experiment
Pointers
1. READ CAREFULLY – Long lab with lots of reading; heavily tests understanding of eigen-stuff (important for the exam)
2. You see the noisy sensor reading generated at the end instead of being generated entry by entry (i.e. just one masking simulation visual per experiment, no more cumulative simulation)
3. Choose an image that focuses on a single object and is not too detailed
4. Use a simple imagePath name
5. Before starting the imaging experiments, launch the display view in a separate tab using the link in the notebook
6. Enter imagePath correctly for each simulation block
7. Shift to the display tab as soon as you run a simulation block and return to the notebook once the visual has finished executing P.S.




Reviews
There are no reviews yet.