GithubHelp home page GithubHelp logo

hugstar / solutions-stanford-cs131-computer-vision-foundations-and-application Goto Github PK

View Code? Open in Web Editor NEW
72.0 6.0 21.0 56.11 MB

Full solutions for fall1617 iteration of Stanford course CS131: Computer Vision Foundations and Applications

Jupyter Notebook 99.72% Python 0.28% Shell 0.01%
computer-vision stanford-course stanford solutions course image-processing

solutions-stanford-cs131-computer-vision-foundations-and-application's Introduction

CS131: Computer Vision Foundations and Applications

This repository contains my solutions for assignments of the fall 2017 iteration of CS 131, a course at Stanford taught by Juan Carlos Niebles and Ranjay Krishna.

The assignments cover a wide range of topics in computer vision and should expose students to a broad range of concepts and applications.

solutions-stanford-cs131-computer-vision-foundations-and-application's People

Contributors

hugstar avatar omoindrot avatar ranjaykrishna avatar wxy1224 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

solutions-stanford-cs131-computer-vision-foundations-and-application's Issues

hw2_release edge.py

hello,
I am a little confused about the function link_edges in edge.py. The weak edges are included only if they are connected with strong edges, so is this equation ‘adjacent_edges = edges[x, y] or adjacent_edge’ right? Should it be 'adjacent_edges = strong_edges[x, y] or adjacent_edge'? The edges[] in the loop is changeable, and some of them are initially weak edges. Is the edge not directly connected with the strong edge but only connected with weak edge, which is connected with strong edge, also seen as the true edge in image?

Question on canny edges

Did you get a final result of canny edges that looks like the picture embedded in the notebook?If you did, tell me what parameters you use, cause I was having a really hard time picking them to produce an output as close as that picture.

Maybe an error?

Hello, I am a beginner, So if I was wrong, please forgive me.
In the hw1 1.3 Implementation, you implemented the conversion_nested, and accord the problem, we should get the similar result to the photo which problem provided.
Yes, I get the same photo(I made this implementation same to you), and you also get the same photo to the photo which problem provided.
screen shot 2018-04-01 at 22 48 23
But if we see the matrix the photo represented, it is not same.
screen shot 2018-04-01 at 22 50 10
We have the same results, we both are different to the photo which problem provided.
So I want to know it is problem was wrong, maybe the teacher provided a wrong photo?
or we both wrong.

To print the matrix, I add some code to the end of the code which problem provided.
screen shot 2018-04-01 at 22 53 12
I am very confused with this problem, please help me. Thank you so much.

hw3_release Extra Credit: Stitching Multiple Images?

Hello, I am a beginner. In hw3_release Extra Credit: Stitching Multiple Images, I don't know how to do.
The problem said given a sequence of m images, then stitch an ordered chain of images. I want to take the first and second images then stitch together, formed a new images, then stitch together the third images. But it is too complex and maybe have some simple ways.
I notice that you haven't do this problem, if you have any idea, please complete the code. I am a beginner, it is too hard for me. Thank you so much.

HW3, panorama.

In the function ransac, you used sum of error comparing with the threshold. But I think to test two vectors distance, we should use vectors norm.

conv_faster in HW1

Hello and nice to meet you!
I started cs131 recently as well, and I found your solutions useful.
For the TODO in HW1, inspired by convolution in caffe I successfully implemented it.
Here are the codes.

    image = zero_pad(image, Hk//2, Wk//2)
    kernel = np.flip(np.flip(kernel, 0), 1)
    # The trick is to lay out all the (Hk, Wk) patches and organize them into a (Hi*Wi, Hk*Wk) matrix.
    # Also consider the kernel as (Hk*Wk, 1) vector. Then the convolution naturally reduces to a matrix multiplication.
    mat = np.zeros((Hi*Wi, Hk*Wk))
    for i in range(Hi*Wi):
        row = i // Wi
        col = i % Wi
        mat[i, :] = image[row: row+Hk, col: col+Wk].reshape(1, Hk*Wk)
    out = mat.dot(kernel.reshape(Hk*Wk, 1)).reshape(Hi, Wi)

The result is

conv_fast: took 1.055612 seconds.
conv_faster: took 0.216628 seconds.

Hope it help you :)
Cheers!

hw2 non_maximum_suppression and link_edges

in non_maximum_suppression, I see you skip the gradient at the margin. I think it may need to caculate the gradient at the margin just like the official code of get_neighbors?
Also, for the link_edges function, why you only tranverse upper region? and I think here needs a BFS search.
Here is my repo , you can have a look and compare my answer if you have time, and we can discuss more. I want to figure out the answer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.