Coder Social home page Coder Social logo

rishabh1b / autonomousdentalcleaning Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 71.08 MB

This is a project to identify and remove plaque using computer vision techniques and a Robotic Manipulator

MATLAB 21.55% Makefile 2.99% HTML 6.90% CSS 1.42% Python 3.33% Clean 0.29% TeX 0.30% Shell 0.08% C 60.76% Roff 0.48% C++ 0.68% Objective-C 1.23%

autonomousdentalcleaning's Introduction

AutonomousDentalCleaning

This project is a part of independent study taken towards completion of Masters in Robotics at University of Maryland.

Dependency

Please install Vlfeat toolbox for MATLAB from here and add the vlfeat folder to the MATLAB search path before runing the demos.

Running a Demo

On DataSet Images

Example Real World Setting

Execute the script PlaqueDetect.m. The algorithm will run and generate a coverage map and also show a proposed cleaning time. It is set to run on a single image. But i on line 4 can be made to iterate on the images in the dataset. i goes from 46 to 90.

On Real life image

Example Real World Setting

The code in MATLAB is written to generate the gumline points offline and then these points can be dumped to a .txt file which can be read by a ROS node to command the KUKA iiwa manipulator to trace these points, after conversion through homography calculation. From MATLAB perspective, following steps should be followed to get the teeth points on the gumline.

  1. Put the teeth on the acrylic base under the camera such that the corner points of the acrylic base are visible. IMPORTANT: Save the image using OpenCV imwrite when using the gscam package to get the stream of images from the FLEA camera. The image saved normally gets saved in the .ros folder.

  2. The image saved in the last step should be used in MATLAB to process and get the gumline points.

  3. RealTeethGetGumlinePoints.m is the file that should be executed and this will generate a set of points on the gumline of the upper teeth and the lower teeth. upper_teeth_points_orig and the lower_teeth_points_orig are the two list that will give these points on the image saved in step 1 in pixel co-ordinates.

  4. Before you execute RealTeethGetGumLinePoints.m, you should take care of couple of things. First, replace the base_image.png file with the one you saved in Step 1. Second, you need to put correct values in the square_clock variable in the RealTeethGetGumLinePoints.mas per your setting. The points to be selected are the corner points of the black square as seen in the image above. These points are in the clockwise manner in pixel co-ordinates starting from top left. Once these are set, you can execute the script.

  5. After running the code will prompt you to select a window where the gum-line extraction will be performed. This can be done by drawing a rectangular cropping region from the pop-up window

  6. dump_points_to_file.m is a utility script that will write the gumline points in the order that is expected.

Acknowledgements

  1. Labial Teeth and Gingiva Image Database, Eckhard et al.;Labial teeth and gingiva color image segmentation for gingival health-state assessment; IS&T/ 6th European Conference on Color in Graphics, Imaging and Vision, CGIV 2012, pp. 102-107, Amsterdam (Netherlands); 2012

  2. vlfeat library for MSER detection

autonomousdentalcleaning's People

Contributors

rishabh1b avatar sudrag avatar

Stargazers

Ravi Bhadeshiya avatar

Watchers

 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.