Code Monkey home page Code Monkey logo

brickregistration's Introduction

BrickRegistration

Screenshot

This project is a tool to generate synthetic 3d scenes for toying with bricks registration.

The 3d models come from https://www.ldraw.org/library/updates/complete.zip where they are available with a permissive licence

This file is extracted into the repository

I convert the model from ldraw format to stl :

python3 generateSTL.py which under the hood call that is embedded https://github.com/kristov/ldraw2stl

Then I convert the STL to the URDF : python3 generateURDF.py which under the hood use https://pypi.org/project/object2urdf/ (pip install object2urdf )

These two commands take ~30min and 6hours to run. The generateURDF use GPU and crash on some files if there is not enough memory (GTX 1080 Ti is OK)

It successfully generates ~14000 urdf files provided that your machine is beefy enough. I have create a compressed 1.4GB legoSTLandURDF.tar.gz archive with them http://orchid.gistnoesis.net/legoSTLandURDF.tar.gz

You can download it here and extract it in the repository instead of having to run the above commands

Once you have generated the urdfs you can run : python3 renderer.py

It will produce some renderings in a folder called "Renderings", and useful segmentation information.

You can edit the code and use GUI mode, if you just want to play with pybullet

Once you have generated a few renderings you can run : python3 registration.py

It will create a neural network, train it, and run it and do some clustering to identify the bricks. It is intended as a boiler plate to experiment with object recognition to get you started :) Only a mock network, on a mock dataset have currently been run so some bugs are probably hiding.

More information is available inside the source files. Look at them.

If you have an iphone you can try similar technology from https://brickit.app/

This is a week-end project trying to replicate a technology ( https://news.ycombinator.com/item?id=27693560 )

Dependencies (pick the ones you need depending on what you want to run):

pybullet tensorflow2 scipy object2urdf hdbscan

brickregistration's People

Contributors

gistnoesis avatar unrealwill avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

brickregistration's Issues

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.