首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
program代做、代写Java/Python程序设计
项目预算:
开发周期:
发布时间:
要求地区:
Homework 5
Computer Vision, Spring 2024
Due Date: March 22, 2024
Total Points: 10
This homework contains one programming challenge. All submissions are due at
midnight on March 22, 2024, and should be submitted according to the
instructions in the document “Guidelines for Programming Assignments.pdf”.
runHw5.py will be your main interface for executing and testing your code.
Parameters for the different programs or unit tests can also be set in that file.
Before submission, make sure you can run all your programs with the command
python runHw5.py with no errors.
The numpy package is optimized for operations involving matrices and
vectors. Avoid using loops (e.g., for, while) whenever possible—looping can
result in long running code. Instead, you should “vectorize” loops to optimize
your code for performance. In many cases, vectorization also results in more
compact code (fewer lines to write!).
Challenge 1: Your task is to develop a vision system that recovers the shape,
surface normal and reflectance of an object. For this purpose you will use
photometric stereo.
You will be given 5 images of an object taken using five different light sources. Your
task is to compute the surface normal and albedo for the object. For this purpose,
however, you will need to know the directions and intensities of the five light
sources. Thus, in the first part of the assignment, you will compute the light
sources directions and intensities from 5 images of a sphere and use this
information in the second part to recover the orientation and reflectance.
The 11 images, sphere0…sphere5, and vase1…vase5 are provided to you.
Before you begin, pay attention to the following assumptions you can make about
the capture settings:
2
• The surfaces of all objects (including the sphere) are Lambertian. This means
there are only diffuse peaks in the reflectance maps (no specular
components).
• For the images, assume orthographic projections.
• Image files with the same indices are taken using the same light source. For
example, sphere1 and vase1 are taken using light source number 1 only.
• The objects maintain the same position, orientation and scale through the
different images – the only difference is the light source. For example, the
sphere in sphere0…sphere5 has the same coordinates and the same radius.
• The light sources are not in singular configuration, i.e., the S-matrix that you
will compute should not be singular.
• You may NOT assume that the light sources are of equal intensities. This
means that you need to recover not only the directions of the light sources
but also their intensities.
• The background in the image is black (0 pixel value) in all images.
The task is divided into four parts, each corresponding to a program you need to
write and submit.
a. First you need to find the locations of the sphere and its radius. For this
purpose you will use the image sphere0, which is taken using many light
sources (so that the entire front hemisphere is visible).
Write a program findSphere that locates the sphere in an image and
computes its center and radius.
center, radius = findSphere(input_img)
Assuming an orthographic project, the sphere projects into a circle on the
image plane. Find the location of the circle by computing its centroid. Also
estimate the area of the circle and from this, compute the radius of the circle.
Report your results in README file.
You may use skimage.filters.threshold_otsu and
skimage.measure.regionprops.
(1 points)
b. Now you need to compute the directions and intensities of the light sources.
For this purpose you should use the images sphere1…sphere5.
Derive a formula to compute the normal vector to the sphere’s surface at a
3
given point, knowing the point’s coordinates (in the image coordinate frame),
and the center and radius of the sphere’s projection onto the image plane
(again, assume an orthographic projection). This formula should give you the
resulting normal vector in a 3-D coordinate system, originating at the
sphere’s center, having its x-axis and y-axis parallel respectively to the x-axis
and the y-axis of the image, and z-axis chosen such as to form an orthonormal
left-hand coordinate system. Don’t forget to include your formula in your
README file.
Write a program computeLightDirections that uses this formula, along
with the parameters computed in (a), to find the normal to the brightest
surface spot on the sphere in each of the 5 images. Assume that this is the
direction of the corresponding light source (Why is it safe to assume this?
State this in the README).
Finally, for the intensity of the light source, use the magnitude (brightness) of
the brightness pixel found in the corresponding image. Scale the direction
vector so that its length equals this value.
light_dirs_5x3 = computeLightDirections(center, radius,
img_list)
Center and radius are the resulted computed in (a). img_list contains the
5 images of the sphere. The resulting light_dirs_5x3 is a 5x3 matrix. Row i
of light_dirs_5x3 contains the x-, y-, and z-components of the vector
computed for light source i. (2 points)
c. Write a program computeMask to compute a binary foreground mask for the
object. A pixel in the mask has a value 1 if it belongs to the object and 0 if it
belongs to the background. Distinguishing between the foreground and
background is simple: if a pixel is zero in all 5 images, then it is background.
Otherwise, it is foreground.
mask = computeMask(img_list)
The img_list contains the 5 images of an object and mask is the binary
image mask. (1 points)
d. Write a program computeNormals that, given 5 images of an object,
computes the normals and albedo to that object’s surface.
normal, albedo_img = computeNormals(light_dirs, img_list,
mask)
4
You may want to use the formula given in the class lecture notes. Be careful
here! Make sure to take into account the different intensities of the light
source.
Photometric stereo requires the object to be lit by at least 3 light sources.
However, in our case, we have a total of 5 light sources. The lighting has been
arranged in such a way that all visible surface points on an object are lit by at
least 3 light sources. Therefore, while computing the surface normal at a
point, choose the 3 light sources for which the point appears brightest. Be
careful – choosing the wrong light sources will result in erroneous surface
normal. (You may also decide to choose more than 3 light sources to compute
the surface normal. This results in an over-determined linear system and can
provide robust estimates. However, such a computation is not mandatory.)
Do not compute the surface normal for the background. You can assume that
the surface normal in this region is looking toward the camera. Use the mask
generated in the previous program to identify whether a given pixel
corresponds to the object or the background.
Scale the albedo up or down to fit in the range 0…1 and show them in the
output image. Thus each pixel in the output image should be the pixel’s
albedo scaled by a constant factor. (6 points)
At this point you can use the outputs of your program to reconstruct the
surface of the object. demoSurfaceReconstruction and
reconstructSurf demonstrate how to use the Frankot-Chellappa
algorithm to compute the 3D shape from surface normals. Surface
reconstruction is provided as a demo--no submission is required.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
代做ece5550: applied kalman ...
2024-12-24
代做cp1402 assignment - netw...
2024-12-24
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!