{"id":16390286,"url":"https://github.com/stes/compressed_sensing","last_synced_at":"2025-03-23T04:31:41.451Z","repository":{"id":142469147,"uuid":"75870613","full_name":"stes/compressed_sensing","owner":"stes","description":"Enhancing Compressive Sensing with Neural Networks","archived":false,"fork":false,"pushed_at":"2016-12-07T20:55:58.000Z","size":10736,"stargazers_count":37,"open_issues_count":1,"forks_count":19,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-18T17:50:59.004Z","etag":null,"topics":["compressed-sensing","deep-learning","image-processing","image-reconstruction","machine-learning","theano"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stes.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-07T19:54:41.000Z","updated_at":"2024-09-12T13:11:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"8f4af404-6358-434f-bcdf-68fab2c32235","html_url":"https://github.com/stes/compressed_sensing","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/stes%2Fcompressed_sensing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stes%2Fcompressed_sensing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stes%2Fcompressed_sensing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stes%2Fcompressed_sensing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stes","download_url":"https://codeload.github.com/stes/compressed_sensing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245056889,"owners_count":20553855,"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":["compressed-sensing","deep-learning","image-processing","image-reconstruction","machine-learning","theano"],"created_at":"2024-10-11T04:42:42.749Z","updated_at":"2025-03-23T04:31:41.439Z","avatar_url":"https://github.com/stes.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Deep Learning Approach to Compressive Sensing\n\nCode, Latex Source and Presentation for seminar project at RWTH Aachen University, summer term 2016.\n\nBased on the paper \"A Deep Learning Approach to Structured Signal Recovery\", evaluated on the Caltech-UCSD Birds 200 Dataset.\n[Theano](https://github.com/Theano/Theano) was used for training the network, with [Lasagne](https://github.com/Lasagne/Lasagne) as high-level library on top.\n\n- Ali Mousavi A., Ankit B. Patel and Richard G. Baraniuk. [\"A Deep Learning Approach to Structured Signal Recovery\"](https://arxiv.org/abs/1508.04065).\n- P. Welinder, S. Branson, T. Mita, C. Wah, F. Schroff, S. Belongie, P. Perona. [\"Caltech-UCSD Birds 200\"](http://www.vision.caltech.edu/visipedia/papers/WelinderEtal10_CUB-200.pdf). California Institute of Technology. CNS-TR-2010-001. 2010.\n- Theano Development Team. [\"Theano: A Python framework for fast computation of mathematical expressions\"](http://arxiv.org/pdf/1605.02688.pdf).\n\n\nAbstract\n========\n\nCompressed sensing has proven to be an important technique in signal acquisition, especially in contexts in which sensor quality or the maximum possible duration of the measurement is limited. \nIn this report, deep learning techniques are used to improve compressive sensing in the context of image acquisition.\nIn a previous approach, \\cite{Mousavi2015} deployed stacked denoising autoencoders capable of reconstructing images considerably faster than conventional iterative methods.\nApart from reviewing this approach, a possible extension using convolutional autoencoders inspired by the popular VGGnet architecture is discussed.\nInstead of learning models from scratch, a simple yet effective way for adapting available filters used in ImageNet classification is presented.\nBy reformulation of the autoencoder structure in terms of a fully convolutional network, the approach by \\cite{Mousavi2015} can be adapted to arbritrarly large images for efficient learning of the measurement matrix and sparsity basis.\nSuggestions on the real implementation of such as system conclude the report.\n\nUsed Architecture\n=================\n\nThe input image is first transformed into an overcomplete and likely sparse representation by application of two convolutional blocks as in the original VGG architecture.\nThese blocks were initialized using the VGG weights pre-trained on the ImageNet dataset.\nThe resulting filter map undergoes spatial pooling, reducing the filter map size by a factor of 4.\nAfterwards, another convolution compresses the feature representation and outputs filter maps spatially reduced by a factor of 4, while the number of feature maps is 3.\nOverall, after this bottleneck operation, the measurement vector with $\\frac{M}{N} = 0.25$ is obtained.\nIn the backward pass, deconvolution with tied weights and unpooling using the stored pooling indices upsamples the measurement vector and is used for reconstruction of the image.\nNote that normalization layers (Batch Normalization between convolutions and ReLUs) were omitted in the figure.\n\n![Used Architecture](https://github.com/stes/compressed_sensing/blob/master/report/fig/vgg-architecture.png)\n\nResults after Training\n======================\n\nImage Reconstruction with pre-trained AE\n**(a)** depicts original images fed into the network.\nThose are compressed by a factor of M/N = 0.25 using a learnable, nonlinear measurement function.\nThe reconstructions are shown in **(b)**.\n**(c)** depicts the residuum, averaged over all color channels.\nAverage PSNR over all images and color channels was 25.3 dB.\n\n![Residuals after Training](https://github.com/stes/compressed_sensing/blob/master/report/fig/vgg-ae-rgb-2.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstes%2Fcompressed_sensing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstes%2Fcompressed_sensing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstes%2Fcompressed_sensing/lists"}