Skip to content

A 3D content retrieval system using Fourier and Zernike descriptors.

Notifications You must be signed in to change notification settings

Samashi47/3D-content-retrieval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3D-content-retrieval

Welcome to our web application designed to implement a robust Content-Based 3D Models Retrieval system that enables efficient image search and management through visual features. Users can upload, download, delete, and categorize models into predefined classes. The system computes and displays shape descriptors for models, including Zernike moments, and Fourier descriptors, in addition to viewing the model in 3D. It supports a simple search to retrieve visually similar models, providing an intuitive and dynamic way to explore the Pottery dataset.

Installation

To start off, clone this branch of the repo into your local:

git clone https://github.com/Samashi47/3D-content-retrieval.git
cd 3D-content-retrieval

Backend

After cloning the project, create a virtual environment:

cd apps/api

Windows

py -3 -m venv .venv

MacOS/Linus

python3 -m venv .venv

Then, activate the env:

Windows

.venv\Scripts\activate

MacOS/Linus

. .venv/bin/activate

You can run the following command to install the dependencies:

pip3 install -r requirements.txt

After installing the dependencies, you should specify the mongodb connection string in the .env file:

touch .env

or:

cp .env.example .env

Then, open the .env file and add the following line:

MONGO_URL=<url>

To be able to use the register and login functionalities, you need to generate jwt key and place it in a .ssh folder in the api directory:

openssl genrsa -out jwt-key 4096

to extract the corresponding public key:

openssl rsa -in jwt-key -pubout -out jwt-key.pub

then, move the keys to the .ssh folder:

mkdir .ssh
mv jwt-key .ssh
mv jwt-key.pub .ssh

also, you need to download the 3DPottery dataset from the following link:

http://www.ipet.gr/~akoutsou/benchmark/

And place the 3D Models and Thmbnail folders in the api\assets directory. The assets directory should look like this:

├───assets
│   ├───3D Models
│   │   ├───Abstract
│   │   ├───Alabastron
│   │   ├───Amphora
│   │   ├───...
│   └───Thumbnails
│       ├───Abstract
│       ├───Alabastron
│       ├───Amphora
│       ├───...

Then, you can run the following command to start the backend:

python server.py

Frontend

Open another terminal:

cd 3D-content-retrieval
cd apps/app

Then, run the following command to install the dependencies:

pnpm install

then, run the following command to start the frontend, if you have angular cli installed globally:

ng serve

if not, you can run the following command:

pnpm run ng serve

Then, open your browser and navigate to http://localhost:4200/ to see the app running.

About

A 3D content retrieval system using Fourier and Zernike descriptors.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published