Giter Site home page Giter Site logo

trustworthycomputing / fourier-fingerprint-search Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 5.0 365.28 MB

Search framework for CAD files using the frequency domain

License: MIT License

Python 82.98% OpenSCAD 12.79% Shell 4.23%
cad stl 3d 3d-printing stereolithography fourier-transform search-function frequency-domain

fourier-fingerprint-search's Introduction

Peak your Frequency: Advanced Search of 3D CAD Files in the Fourier Domain License MIT Python 3

Fourier Fingerprint Search (FFS) Overview

alt text

How to cite this work

The journal article describing the FFS framework can be accessed here. You can cite this article as follows:

D. Mouris, C. Gouert, N. Gupta and N. G. Tsoutsos,
"Peak Your Frequency: Advanced Search of 3D CAD Files in the Fourier Domain,"
in IEEE Access, vol. 8, pp. 141481-141496, 2020, doi: 10.1109/ACCESS.2020.3013284.

Watch our presentation on YouTube:

Installation

$ git clone https://github.com/TrustworthyComputing/Fourier-Fingerprint-Search.git
$ cd Fourier-Fingerprint-Search
$ pip3 install -r requirements.txt

Usage

The file main.py invokes the FFS framework. Proving the -h or --help command line argument prints a help message with the various parameters that can be passed to the framework.

$ python main.py -h

FFS supports two modes, learn and search. In the former, FFS populates the database while in the latter searches for potential matches to the file(s) given as command line arguments.

Learn

For instance, the following command stores all the files from the Bolts directory to the database using 2 slices.

$ python main.py --mode learn --stl benchmarks/FabWave/Bolts --N 2

Search

Here, our query is the Bolts/07b46ed1-3801-45ad-9f42-5adfffb4e1c7-ascii.stl 3D model using both the fine-grained and the neighborhoods techniques. FFS returns the query as the first match and 4 similar ones.

$ python main.py --mode search --stl benchmarks/FabWave/Bolts/07b46ed1-3801-45ad-9f42-5adfffb4e1c7-ascii.stl --N 2 --neighborhoods --print_fine_grained

Files matched with benchmarks/FabWave/Bolts/07b46ed1-3801-45ad-9f42-5adfffb4e1c7-ascii.stl using the number of signatures :
	benchmarks/FabWave/Bolts/07b46ed1-3801-45ad-9f42-5adfffb4e1c7-ascii.stl	:	0.985
	benchmarks/FabWave/Bolts/634a2f17-872e-45d0-9650-faa70156afad-ascii.stl	:	0.119
	benchmarks/FabWave/Bolts/b8d3657b-a054-4c83-816c-9bce74c59724-ascii.stl	:	0.061
	benchmarks/FabWave/Bolts/4ced7e80-446c-42f1-bc05-5f1eb472198b-ascii.stl	:	0.035
	benchmarks/FabWave/Bolts/a773fc47-9f49-40d9-93ce-aa1ceeb10b00-ascii.stl	:	0.019


Files matched with benchmarks/FabWave/Bolts/07b46ed1-3801-45ad-9f42-5adfffb4e1c7-ascii.stl using the number of neighborhoods :
	benchmarks/FabWave/Bolts/07b46ed1-3801-45ad-9f42-5adfffb4e1c7-ascii.stl	:	1.0
	benchmarks/FabWave/Bolts/634a2f17-872e-45d0-9650-faa70156afad-ascii.stl	:	0.431
	benchmarks/FabWave/Bolts/b8d3657b-a054-4c83-816c-9bce74c59724-ascii.stl	:	0.293
	benchmarks/FabWave/Bolts/4ced7e80-446c-42f1-bc05-5f1eb472198b-ascii.stl	:	0.19
	benchmarks/FabWave/Bolts/a773fc47-9f49-40d9-93ce-aa1ceeb10b00-ascii.stl	:	0.172

This material is based upon work supported by the National Science Foundation under Grant No. 1931916. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

This material was developed by the Trustworthy Computing Group at the University of Delaware.

fourier-fingerprint-search's People

Contributors

cgouert avatar jimouris avatar trustworthycomputing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.