{"id":13736506,"url":"https://github.com/dgriffiths3/ucl_cegeg075","last_synced_at":"2025-05-08T12:33:07.749Z","repository":{"id":112435854,"uuid":"117749973","full_name":"dgriffiths3/ucl_cegeg075","owner":"dgriffiths3","description":"Coursework data for Image Understanding","archived":false,"fork":false,"pushed_at":"2019-01-04T13:46:42.000Z","size":15261,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-01-28T23:11:05.162Z","etag":null,"topics":["computer-vision","image-processing","learning","opencv","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgriffiths3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-01-16T22:23:40.000Z","updated_at":"2022-08-21T08:06:50.000Z","dependencies_parsed_at":"2023-05-15T03:00:09.292Z","dependency_job_id":null,"html_url":"https://github.com/dgriffiths3/ucl_cegeg075","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgriffiths3%2Fucl_cegeg075","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgriffiths3%2Fucl_cegeg075/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgriffiths3%2Fucl_cegeg075/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgriffiths3%2Fucl_cegeg075/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgriffiths3","download_url":"https://codeload.github.com/dgriffiths3/ucl_cegeg075/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224732129,"owners_count":17360416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computer-vision","image-processing","learning","opencv","tutorial"],"created_at":"2024-08-03T03:01:23.067Z","updated_at":"2024-11-15T04:32:00.239Z","avatar_url":"https://github.com/dgriffiths3.png","language":"Jupyter Notebook","funding_links":[],"categories":["Jupyter Notebook"],"sub_categories":[],"readme":"# UCL Image Understanding Coursework Data\n\nThe repository is now tested using Python 3.5+ although should also be backwards compatible with Python 2.7+.\n\nTo download files open terminal and browse to the folder you want to store the data using the `cd` command.\n\nClone the repository by typing: \n\n`git clone https://github.com/dgriffiths3/ucl_cegeg075`\n\nNext move into the folder and open jupyter notebook with: \n\n```\ncd ucl_cegeg075\njupyter notebook\n```\n\nFinally, open the file `opencv_coursework.ipynb`. It is important you run `jupyter notebook` whilst in the `ucl_cege075` directory as otherwise the file paths will not work correctly.\n\n### Running on Google Colab ###\n\nThis notebook can be run on google colab with a few minor alterations to avoid the need for setting up a local python environment. First navigate to [Google Colab](https://colab.research.google.com/). If you have not already, you will need to create a google account.\n\nOn the top bar navigate to `GITHUB` and enter the user `dgriffiths3`. Open the file `opencv_coursework.ipynb` under the `ucl_cege075` respository. \n\nNext, run the following code cell at the top of the notebook:\n\n`!git clone https://github.com/dgriffiths3/ucl_cegeg075 data`\n\nOpen the files tab (small arrow below CO logo in top left) and click `refresh` if you do not see the folder `data`. These are all the files required for the practical.\n\nTo enable the new file structure to work, you will need to append the string `data/` infront of any file paths. For example, `file = 'images/newyork.jpg''` becomes `file = 'data/images/newyork.jpg'`. \n\nThe rest of the practical will now work as normal.\n\n\n### Task\n\nYour task is to use OpenCV and Numpy tools to extract a specific feature(s) from a single (group of) image(s). The feature(s) of choice as well as image(s) is up to you. It can be imagery acquired from satellite, aerial or terrestrial methods as well as your choice of spectral bands (i.e. R, G, B, NIR, SWIR etc.). You are encouraged to think outside-the-box and use internet resources such as tutorials to incorporate new methods not discussed within these practicals. \n\nYou should assess the accuracies of your proposed solution, highlighting the strengths and weaknesses. To achieve this you should design/incorporate some form of accuracy indicator. The accuracy assessment should be undertaken both on images you designed the solution around, as well as new images your system has not seen before. You should comment on why you think the solution is performing the way it is. A good start here would be to look at the Intersection Over Union (IOU) method. [Here](https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/) is a good write up of how you could incorporate this into your project. Remember how we generated the bounding box for the segmentation above. Any accuracy assessment is acceptable providing it is justified.\n\n### Delivery\n\nThe coursework comprises two components. First, a 2000 word research report style write up (i.e. Introduction, Methodology, Results, Discussion, Conclusion), where the segmentation problem is presented as a research problem that is investigated through the methods outlined and solved in the analysis. The discussion should connect to the wider literature to consider the approaches used by others to solve similar problems.\n\nAs a general guideline the report could be structured (although not restricted to) as follows:\n\n**1. Introduction**\n   * What am I trying to detect? \n   * What application would this be useful for? \n   * What methods will I incorporate with the solution\n   * What are the initial obstacles in my way\n\n\n**2. Methodology**\n   * What is my approach to solving the problem\n   * Why have I chosen certain algorithms\n   * Briefly, how do these algorithms work (you would not need to go to a mathematical level here)\n   * How will you assess accuracy\n\n\n**3. Results**\n   * Display images of your results (the good and the bad)\n   * Comment on what you see\n   * Record accuracy assessment results and initial comments\n    \n    \n**4. Discussion**\n   * How do you feel your proposed solution performed\n   * If it was good why?\n   * If it was bad why?\n   * How does this compare to other solutions are there?\n   * What could be done to improve the solution?\n    \n    \n**5. Conclusion**\n   * Short conclusion outlining the key components of your report\n\nSecond, a file (preferrably .py / .ipynb) containing the source code for your solution. This should be properly annotated and commented. For advice on how to correctly format code for delivery take a look [here](https://www.python.org/dev/peps/pep-0008/). It is important to provide frequent in-line comments to explain what your code is doing. Finally, if you use functions, they should be properly commented showing their input and output arguments as well as a brief description of the function.\n\n## Installing OpenCV on your own machine ##\n\nHere we describe the easiest ways to get opencv and python working on your own machine. If you get stuck there is a wide range of resources available online.\n\n***Mac***\n\nThe easiest way to install OpenCV on a mac is through a package manager. There are two popular package managers for mac `HomeBrew` and `MacPorts`. Here we will show you how to install the required dependencies using `HomeBrew`.\n\nIf you have never done any programming on your mac you may need to first install xcode from the app store:\nThe open terminal and type:\n\n```\nsudo xcode-select --install\nsudo xcodebuild -license\n```\n\nTo install HomeBrew open your terminal and enter:\n\n`/usr/bin/ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"`\n\nAdd HomeBrew to your path (here I use nano but you can use which ever command line text editor you like):\n\n`nano ~/.bash_profile`\n\nAppend this text to the end of your file and save:\n\n`export PATH=/usr/local/bin:$PATH`\n\nTo refesh your profile type:\n\n`source ~/.bash_profile`\n\nNext install a local version of python:\n\n```\nbrew update\nbrew install python\n```\n\nThen we will install `pip` a python specific package installer:\n\n```\ncurl -O http://python-distribute.org/distribute_setup.py\npython distribute_setup.py\ncurl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py\npython get-pip.py\n```\n\nOnce we have pip we can install the required dependencies:\n\n`pip install jupyter numpy opencv-python matplotlib`\n\nTo be able to clone the content from `github` as described above type:\n\n`brew install git`\n\n\n\n***Windows***\n\nTo install with windows and to programme in general with python on a windows machine I would reccommend using [Anaconda](https://conda.io/docs/user-guide/install/windows.html). Follow the link and click the `Anaconda Installer for Windows` link. Then follow all the necessary steps.\n\nOnce Anaconda is installed you can open the `anaconda` prompt that will now be in your start menu. `pip` comes installed with Anaconda so you can go ahead and install the dependencies:\n\n`pip install jupyter numpy opencv-python matplotlib`\n\nFinally, to install git to allow us to clone the content:\n\n`conda install git`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgriffiths3%2Fucl_cegeg075","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgriffiths3%2Fucl_cegeg075","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgriffiths3%2Fucl_cegeg075/lists"}