cs131( panoramic(image(s6tching( - artificial...
Post on 15-Jun-2020
2 Views
Preview:
TRANSCRIPT
PA1 Session 16#Oct#15(Jiayuan Ma
CS131(Panoramic(Image(S6tching(
Ranjay(Krishna(16#Oct#15(
1(
PA1 Session 16#Oct#15(Jiayuan Ma
Agenda(
• Objec6ve(• Main(flow(• Skeleton(code(• Results(
2(
PA1 Session 16#Oct#15(Jiayuan Ma
Objec6ve(
3(
Mul6ple(images(into(one(panorama!(
PA1 Session 16#Oct#15(Jiayuan Ma
Main(Flow(
• Detect(key(points(
4(
PA1 Session 16#Oct#15(Jiayuan Ma
Detect(Key(Points(
5(
PA1 Session 16#Oct#15(Jiayuan Ma
Skeleton(Code(
• Detect(key(points((Done(for(you!)(– Under(KeypointDetect(
6(
[feature,(DoG(pyr,(Gaussian(pyr](=(detect_features(input(image)(
PA1 Session 16#Oct#15(Jiayuan Ma
Main(Flow(
• Detect(key(points(• Build(the(SIFT(descriptors(
7(
PA1 Session 16#Oct#15(Jiayuan Ma
Build(the(SIFT(Descriptors(
8(
This(is(just(an(illustra6on!(
PA1 Session 16#Oct#15(Jiayuan Ma
Skeleton(Code(
• Build(the(SIFT(descriptors(– Read(this(paper(h[p://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf(first!((
• Input(– Gaussian(pyramid(– key(point(loca6on(– key(point(scale(index(
• Output(– A(set(of(128#dim(vectors(
9(
PA1 Session 16#Oct#15(Jiayuan Ma
Skeleton(Code(
• Build(the(SIFT(descriptors((30(lines(of(code)(– Compute(gradient(magnitude(and(orienta6on(– For(each(key(point(
• Find(a(patch((tricky(round#off)(• Compute(orienta6on(of(the(patch(• Build(the(histogram((edge(case)(
10(
PA1 Session 16#Oct#15(Jiayuan Ma
Main(Flow(
• Detect(key(points(• Build(the(SIFT(descriptors(• Match(SIFT(descriptors(
11(
PA1 Session 16#Oct#15(Jiayuan Ma
Match(SIFT(Descriptors(
• Euclidean(distance(between(descriptors(
12(
PA1 Session 16#Oct#15(Jiayuan Ma
Skeleton(Code(
• Match(SIFT(descriptors((6(lines(of(code)(– Input:(D1,(D2,(thresh((default(0.7)(– Output:(match([D1’s(index,(D2’s(index](– Try(to(use(one(for(loop(– Useful(command(
• repmat(• sort(
13(
PA1 Session 16#Oct#15(Jiayuan Ma
Main(Flow(
• Detect(key(points(• Build(the(SIFT(descriptors(• Match(SIFT(descriptors(• Figng(the(transforma6on(
14(
PA1 Session 16#Oct#15(Jiayuan Ma
Figng(the(transforma6on(
• 2D(transforma6ons(
15(
PA1 Session 16#Oct#15(Jiayuan Ma
Skeleton(Code(
• Fit(the(transforma6on(matrix(
• Six(variables(– each(point(give(two(equa6ons(– at(least(three(points(
• Least(squares(
16(
PA1 Session 16#Oct#15(Jiayuan Ma
Main(Flow(
• Detect(key(points(• Build(the(SIFT(descriptors(• Match(SIFT(descriptors(• Figng(the(transforma6on(• RANSAC(
17(
PA1 Session 16#Oct#15(Jiayuan Ma
RANSAC(
• A(further(refinement(of(matches(
18(
PA1 Session 16#Oct#15(Jiayuan Ma
Skeleton(Code(
• RANSAC(– ComputeError(
19(
PA1 Session 16#Oct#15(Jiayuan Ma
Main(Flow(
• Detect(key(points(• Build(the(SIFT(descriptors(• Match(SIFT(descriptors(• Figng(the(transforma6on(• RANSAC(
20(
PA1 Session 16#Oct#15(Jiayuan Ma
Image(S6tching(
• Almost(done(for(you(
21(
PA1 Session 16#Oct#15(Jiayuan Ma
Skeleton(Code(
• Mul6ple(S6tch((2(lines(of(code)(– A(simplified(case(of(real#world(scenario(– Transforma6on(is(associa6ve(and(inver6ble(– Useful(command(• pinv(
22(
PA1 Session 16#Oct#15(Jiayuan Ma
Skeleton(Code(
• Tester.m(– Scripts(that(help(you(to(get(started(
• Evaluate.m(– Scripts(that(tests(your(solu6on(
• Load(fixed(input(from(checkpoint(• Run(your(implementa6on(• Compare(results(with(reference(solu6on(
23(
PA1 Session 16#Oct#15(Jiayuan Ma
Requirement(• Due(Date:(5pm(Oct(30,(2015(• Electronic(submission(only(– cs131submissions@gmail.com(for(code(– Gradescope(for(report(
• Code(+(Report(– SIFT(invariance(and(why(it(helps(– DoG(v.s.(Dense(SIFT(– Why(RANSAC(– Your(own(s6tches(– Error(discussion(
24(
PA1 Session 16#Oct#15(Jiayuan Ma
Results(
25(
PA1 Session 16#Oct#15(Jiayuan Ma
Results(
26(
PA1 Session 16#Oct#15(Jiayuan Ma 27(
Ques6ons?(
top related