{"id":27266332,"url":"https://github.com/supersecurehuman/multi-view-cnn","last_synced_at":"2025-04-11T08:47:11.071Z","repository":{"id":197444865,"uuid":"686527540","full_name":"SuperSecureHuman/Multi-View-CNN","owner":"SuperSecureHuman","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-30T15:49:29.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-09-30T16:49:00.085Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SuperSecureHuman.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,"governance":null}},"created_at":"2023-09-03T04:55:53.000Z","updated_at":"2023-09-30T16:49:01.755Z","dependencies_parsed_at":null,"dependency_job_id":"44892a39-59b9-4109-b825-ba374405debd","html_url":"https://github.com/SuperSecureHuman/Multi-View-CNN","commit_stats":null,"previous_names":["supersecurehuman/multi-view-cnn"],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperSecureHuman%2FMulti-View-CNN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperSecureHuman%2FMulti-View-CNN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperSecureHuman%2FMulti-View-CNN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperSecureHuman%2FMulti-View-CNN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SuperSecureHuman","download_url":"https://codeload.github.com/SuperSecureHuman/Multi-View-CNN/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248362955,"owners_count":21091239,"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":[],"created_at":"2025-04-11T08:47:10.433Z","updated_at":"2025-04-11T08:47:11.052Z","avatar_url":"https://github.com/SuperSecureHuman.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi View Convolutional Neural Networks for 3D Shape Recognition\n\nPossibly the simplest implementation of MVCNN in PyTorch.\n\nThe backbone pretrained network is ResNet18 from TIMM. It can be replaced with anything else. You need to change the following in `mvcnn_resnet18.py`:\n\n```python\nclass MVCNN(nn.Module):\n    def __init__(self, num_classes):\n        super(MVCNN, self).__init__()\n        \n        ##### CHANGE THIS #####\n        self.resnet = timm.create_model('resnet18', pretrained=True)\n        self.resnet.global_pool = nn.Identity()  # Remove global pooling\n        self.resnet.fc = nn.Identity()           # Remove fully connected layer\n\n        # Ensure ResNet parameters are not trainable\n        for param in self.resnet.parameters():\n            param.requires_grad = False\n        \n        #### CHANGE THE PARAMS OF THE CONV LAYER ####\n        self.cnn = nn.Sequential(\n            nn.Conv2d(512, 512, kernel_size=3, padding=1, bias=False),\n            nn.BatchNorm2d(512),\n            nn.ReLU(),\n            nn.MaxPool2d(kernel_size=2, stride=2)\n        )\n\n        #### CHANGE THE PARAMS OF THE FC LAYER ####\n        self.classifier = nn.Sequential(\n            nn.Flatten(),\n            nn.Linear(512*3*3, 256),\n            nn.ReLU(),\n            nn.Dropout(0.5),\n            nn.Linear(256, num_classes)\n        )\n```\n\n## Data Loading\n\nMake sure the data is in the format:\n\n```\nBatch x Views x Channels x Height x Width\n```\n\nFor example, if you have 12 views of a 3-channel image of size 224x224, the shape of the input should be:\n\n```\n(1, 12, 3, 224, 224)\n```\n\nCheckout `dataset_modelnet40.py` for an example of how to load the data.\n\n## Training\n\nTraining loop defined in `train.py`. You can change the optimizer, learning rate scheduler, loss function, etc. in this file.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupersecurehuman%2Fmulti-view-cnn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupersecurehuman%2Fmulti-view-cnn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupersecurehuman%2Fmulti-view-cnn/lists"}