Skip to content
/ Shape Public
forked from dnc1994/Shape

Simple geometric shape recognition based on fuzzy inference.

License

Notifications You must be signed in to change notification settings

XinyuYun/Shape

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shape

Simple geometric shape recognition based on fuzzy inference.

Final project for Introduction to Artificial Intelligence course @ Fudan University.

Read report for implementation details and experimental results.

Author

Linghao Zhang

Workflow

  1. Experiment with standards shapes to derive the basic rules and framework of the system.
  2. Generate random images and introduce noise by distorting and rotating.
  3. Split images into training set, development set and testing set.
  4. Extract features using OpenCV.
  5. Use simple statistics from traning set to determine the shape and boundary of each fuzzy sets.
  6. Write fuzzy sets and rules into a separate rule base file.
  7. Implement a simplified Sugeno-style inferencer
  8. Tune parameters using development set.
  9. Evaluate performance on testing set.
  10. Ask different persons to drawn sketches as additional test images

Overview

  • src/puzzy/fset.py Define different types of fuzzy sets (representation and membership function).
  • src/puzzy/inferencer.py Implement inference engine.
  • src/puzzy/rule.py Implement rule representation and parsing.
  • src/analyze_features.py Analyze features using simple statistics.
  • src/evaluate.py Evaluate performance on a given dataset.
  • src/extract_features.py Extract features from a given dataset.
  • src/generate_images.py Generate random noisy images.
  • src/recognize.py Interface for recognition.
  • src/rule_base.txt Rule base for the system.
  • data/sample/ Sample images used in development and evaluation.

License

MIT license

About

Simple geometric shape recognition based on fuzzy inference.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 57.9%
  • TeX 41.2%
  • Batchfile 0.9%