{"id":13440443,"url":"https://github.com/suhangpro/mvcnn","last_synced_at":"2025-03-20T09:33:11.657Z","repository":{"id":49715126,"uuid":"43175001","full_name":"suhangpro/mvcnn","owner":"suhangpro","description":"Multi-view CNN (MVCNN) for shape recognition","archived":false,"fork":false,"pushed_at":"2019-01-03T20:27:20.000Z","size":17555,"stargazers_count":372,"open_issues_count":15,"forks_count":133,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-10-28T02:21:01.397Z","etag":null,"topics":["computer-graphics","computer-vision","convolutional-neural-networks","deep-learning"],"latest_commit_sha":null,"homepage":"http://vis-www.cs.umass.edu/mvcnn/","language":"MATLAB","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/suhangpro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-25T20:53:09.000Z","updated_at":"2024-10-18T08:31:29.000Z","dependencies_parsed_at":"2022-09-18T04:12:00.544Z","dependency_job_id":null,"html_url":"https://github.com/suhangpro/mvcnn","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/suhangpro%2Fmvcnn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suhangpro%2Fmvcnn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suhangpro%2Fmvcnn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suhangpro%2Fmvcnn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suhangpro","download_url":"https://codeload.github.com/suhangpro/mvcnn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244586044,"owners_count":20476868,"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-graphics","computer-vision","convolutional-neural-networks","deep-learning"],"created_at":"2024-07-31T03:01:22.823Z","updated_at":"2025-03-20T09:33:10.826Z","avatar_url":"https://github.com/suhangpro.png","language":"MATLAB","funding_links":[],"categories":["MATLAB"],"sub_categories":[],"readme":"# Multi-view CNN (MVCNN) for shape recognition\r\n\r\n[Project Page](http://vis-www.cs.umass.edu/mvcnn/)\r\n![MVCNN pipeline](http://vis-www.cs.umass.edu/mvcnn/images/mvcnn.png)\r\n\r\nThe goal of the project is to learn a general purpose descriptor for shape recognition. To do this we train discriminative models for shape recognition using convolutional neural networks (CNNs) where view-based shape representations are the only cues. Examples include **line-drawings**, **clip art images where color is removed**, or **renderings of 3D models** where there is little or no texture information present. \r\n\r\nIf you use any part of the code from this project, please cite:\r\n\r\n  @inproceedings{su15mvcnn,\r\n  author    = {Hang Su and Subhransu Maji and Evangelos Kalogerakis and Erik G. Learned{-}Miller},\r\n  title     = {Multi-view convolutional neural networks for 3d shape recognition},\r\n  booktitle = {Proc. ICCV}, \r\n  year      = {2015}}\r\n\r\n## Other implementations\r\n\r\n(These are implementations provided by friends or found online, and are listed here for your convenience. I do not provide direct support on them.)\r\n\r\n* PyTorch (from my UMass labmate @jongchyisu): [mvcnn_pytorch](https://github.com/jongchyisu/mvcnn_pytorch)\r\n* Caffe (from my UMass labmate @brotherhuang): Check out the [caffe](https://github.com/suhangpro/mvcnn/tree/master/caffe) folder\r\n* Tensorflow (from @WeiTang114): [MVCNN-Tensorflow](https://github.com/WeiTang114/MVCNN-TensorFlow)\r\n* Torch (from @eriche2016): [mvcnn.torch](https://github.com/eriche2016/mvcnn.torch)\r\n* PyTorch (from @RBirkeland): [MVCNN-ResNet](https://github.com/RBirkeland/MVCNN-ResNet)\r\n\r\n## Installation\r\n\r\n* Install dependencies\r\n```bash \r\ngit submodule update --init\r\n```\r\n\r\n* Compile\r\n\r\ncompile for CPU: \r\n```bash \r\n# two environment variables might need to be set, e.g. MATLABDIR=\u003cMATLAB_ROOT\u003e MEX=\u003cMATLAB_ROOT\u003e/bin/mex\r\nmatlab -nodisplay -r \"setup(true);exit;\"\r\n```\r\ncompile for GPU (w/ cuDNN): \r\n```bash\r\n# 1) two environment variables might need to be set, e.g. MATLABDIR=\u003cMATLAB_ROOT\u003e MEX=\u003cMATLAB_ROOT\u003e/bin/mex\r\n# 2) other compilation options (e.g. 'cudaRoot',\u003cCUDA_ROOT\u003e,'cudaMethod','nvcc','cudnnRoot',\u003cCUDNN_ROOT\u003e) \r\n#  might be needed in the 'struct(...)' as well depending on you system settings\r\nmatlab -nodisplay -r \"setup(true,struct('enableGpu',true,'enableCudnn',true));exit;\"\r\n```\r\n**Note**: you can alternatively run directly the scripts from the Matlab command window, e.g. for Windows installations:\r\nsetup(true,struct('enableGpu',true,'cudaRoot','C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.0','cudaMethod','nvcc'));\r\nYou may also need to add Visual Studio's cl.exe in your PATH environment (e.g., C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\amd64)\r\n\r\n## Usage\r\n\r\n* Extract descriptor for a shape (.off/.obj mesh). The descriptor will be saved in a .txt file (e.g. bunny_descriptor.txt). Uses default model with no fine-tuning. Assumes upright orientation by default. \r\n\r\n```matlab\r\nMATLAB\u003e shape_compute_descriptor('bunny.off');\r\n```\r\n\r\n* Extract descriptor for all shapes in a folder (.off/.obj meshes). The descriptors will be saved in .txt files in the same folder. Assumes no upright orientation. \r\n\r\n```matlab\r\nMATLAB\u003e shape_compute_descriptor('my_mesh_folder/','useUprightAssumption',false);\r\n```\r\n\r\n* Extract descriptors for all shapes in a folder (.off/.obj meshes) and post-process descriptors with learned metric. Uses non-default models. \r\n\r\n```matlab\r\nMATLAB\u003e shape_compute_descriptor('my_mesh_folder/', 'cnnModel', 'my_cnn.mat', ...\r\n'metricModel', 'my_metric.mat','applyMetric',true); \r\n```\r\n\r\n* Download datasets for training/evaluation (should be placed under data/)\r\n    * modelnet40v1 (12 views w/ upright assumption): [tarball](http://maxwell.cs.umass.edu/mvcnn-data/modelnet40v1.tar) (204M)\r\n    * modelnet40v2 (80 views w/o upright assumption): [tarball](http://maxwell.cs.umass.edu/mvcnn-data/modelnet40v2.tar) (1.3G)\r\n    * shapenet55v1 (12 views w/ upright assumption): [tarball](http://maxwell.cs.umass.edu/mvcnn-data/shapenet55v1.tar) (2.4G)\r\n    * shapenet55v2 (80 views w/o upright assumption): [tarball](http://maxwell.cs.umass.edu/mvcnn-data/shapenet55v2.tar) (15G)\r\n\r\n* Run training examples (see run_experiments.m for details)\r\n```bash\r\n# LD_LIBRARY_PATH might need to be set, e.g. LD_LIBRARY_PATH=\u003cCUDA_ROOT\u003e/lib64:\u003cCUDNN_ROOT\u003e \r\nmatlab -nodisplay -r \"run_experiments;exit;\"\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuhangpro%2Fmvcnn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuhangpro%2Fmvcnn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuhangpro%2Fmvcnn/lists"}