Sobel edge detection algorithms implemented in Python for grayscale images.
This project intends to serve as a model for future Stochastic Computing applications.
- Deterministic
- Software
- Hardware
- Stochastic
- Software
- LFSR
- Module
- Wrapper
- Hardware
- Software
Remarks:
- Deterministic implementation:
- Works as OpenCV's Sobel example without image blurring
- Stochastic implementation:
- Hardware implementation needs to be reviewed
- Image database for testing from "CURE-OR: Challenging Unreal and Real Environment for Object Recognition", IEEE Dataport, 2019. [Online]. Available: http://dx.doi.org/10.21227/h4fr-h268. Accessed: Nov. 11, 2019.
Python dependencies:
- Python >= 3.6.7
- Libraries:
- opencv-python
- matplotlib
- numpy
- scipy
- bitarray
- ray (recommended)
- for parallel processing in simulation
- currently, only supported on Linux and MacOS
- wheel (recommended for bitarray support)
- setproctitle (optional)
- psutil (optional)
- aiohttp (optional)
- grpcio (optional)
Hardware simulation dependencies:
- Icarus Verilog 10.1
- make (for ease of executing multiple commands)
This project currently uses stochastic circuits derived from ones synthesized with scsynth/STRAUSS
Installation recommendation:
- Newer versions of Python 3 (like 3.8.x) come with pip preinstalled. PyPi/pip is a simple package manager for Python (normally aliased as pip3)
- For this project:
pip3 install --user numpy scipy matplotlib wheel opencv-python ray bitarray setproctitle psutil aiohttp grpcio