DoodleFix is your go-to tool for transforming distorted shapes into their closest geometric forms while ensuring symmetry in the refined shapes.
Watch the Demo
Β·
Report a Bug
Β·
Request a Feature
DoodleFix leverages advanced deep learning and geometric algorithms to transform hand-drawn doodles into perfectly regularized shapes. By classifying shapes using a custom ResNet-based CNN, the system corrects irregularities, identifies symmetry, and even completes missing parts. The final output showcases a harmonious collection of flawless geometric figures, demonstrating the power of AI in creative and technical shape analysis. An impressive blend of art and technology!
Check out our demo here.
Our mission is to blend the power of AI with creative expression, transforming irregular doodles into perfect geometric forms. We aim to push the boundaries of shape recognition and correction, turning every sketch into a masterpiece of symmetry and precision.
-
π§ Irregular Shape Identification: Detect and classify various irregular doodle shapes, including polygons, stars, and more. Utilize advanced image processing to handle diverse and complex forms.
-
π§ Shape Regularization: Transform identified shapes into regular geometric forms. Ensure shapes are correctly represented by applying algorithms to correct distortions and irregularities.
-
π§ Symmetry Analysis: Evaluate shapes for symmetry along multiple axes. Display symmetry results visually and use these insights to complete and enhance the shapes.
-
π§ Shape Completion and Occlusion Handling: Fill in incomplete shapes and reveal any occluded parts based on detected symmetry. Ensure that all visible and hidden portions are accurately represented.
-
π§ Multi-Class Classification: Use a custom CNN model to classify shapes into predefined categories such as Square, Circle, Star, Rectangle, and polygons. Handle edge cases with high accuracy.
-
π§ Visual Representation and Correction: Provide visual feedback by displaying regularized shapes and their symmetry on a unified image. Correct shapes to ensure they meet predefined geometric criteria.
Step 1: Finding Connected Components
- Detect and extract distinct shapes from the doodle using connected component analysis. This process involves identifying and labeling clusters of black pixels to determine individual shapes.
Step 2: Classifying Shapes with CNN
- Apply a custom CNN model to classify each identified shape into predefined categories such as Square, Circle, Star, Rectangle, or Polygon. The model processes black-and-white images of each shape to determine its class.
Step 3: Applying Shape Regularization
- Use algorithms to transform classified shapes into their correct geometric representations. Regularize the shapes by correcting distortions and aligning them to standard geometric forms.
Step 4: Symmetry Analysis
- Analyze the regularized shapes for symmetry along multiple axes. This step ensures that shapes are balanced and complete by checking and visualizing symmetry.
Step 5: Shape Completion and Occlusion Fixing
- Fill in incomplete shapes and reveal occluded parts based on the detected symmetry. This process ensures that all visible and hidden portions of the shapes are accurately reconstructed and completed.
For more detailed setup instructions, refer to our documentation.
To set up DoodleFix on your local machine, follow these steps:
-
Install Python 3.8 or higher: Download and install Python if you haven't already.
-
Clone the repository:
git clone https://github.com/maskboyAvi/AdobeGensolve.git
-
Navigate to the project directory:
cd AdobeGensolve
-
Install dependencies:
pip install -r requirements.txt
-
Navigate to Regularization directory:
cd Regularize
-
Run the main.ipynb after specifying path of csv file
To see DoodleFix in action, check out our demo or refer to the detailed example usage guide:
- Demo: Watch the Demo
- Example Usage Guide: Example Usage Guide
DoodleFix is licensed under the MIT license. For more information, please see the LICENSE file in the repository.
We welcome contributions! For detailed instructions on how to contribute, please refer to the Contributing Guide in our documentation.