Graduate PhD Student
University of Maryland
Research Interest: Image segmentation, texture classification, patch matching. Recently I am becoming interested in deep learning.
Technical Skills: C/C++, Python, JAVA, OpenCV, MATLAB, mex files and CUDA
Keras, OpenCV, SimpleITK, CAFFE
- Ahmed Taha, Marwan Torki, Seeded Laplacian: An Interactive Image Segmentation Approach using Eigenfunctions, ICIP 2015.
- Patch Matching [Adobe Research Intern Expo Poster][Sample Video, Video 2]: During my Adobe summer internship, I worked on a new selection/segmentation tool based on patch matching. The intuition is much similar to "Pseudo-polar based estimation of large translations rotations and scalings in images" but instead of comparing images, we compare patches. The selection results are remarkable, yet it suffered large computational time. Thus, it is not ready for industry use yet. While at Adobe, I intensively learned about Coherency Sensitive Hashing, The Generalized PatchMatch Correspondence Algorithm and of course Fourier transform. After the internship, I did additional evaluation against PatchMatchGraph: Building a Graph of Dense Patch Correspondences for Label Transfer. That's why I became expert with Darwin Framework.
- Texture Classification: I worked on a new texture classification approach classifying textures suffering a dark shadow. The results achieved was not good enough for a top conference. Yet, I reviewed the literature in great details. I implemented both local binary pattern (LBP) and various filter banks like Leung-Malik, Schmid, and maximum response. I got familiar with compressed sensing for texture classification. I ran my evaluation experiments using the following texture datasets: CUReT, UIUC and DTD.
- Image Segmentation: Developed an approached for solving interactive image segmentation problem. The approach supports different user annotation forms like scribble, complete and incomplete trimaps, tight contour and bounding box. Qualitative and quantitative results are compared against Grabcut, Geodesic Star Convexity and MILCut.
Teaching Experience: (click to see course description)
- CMSC216 (Introduction to Computer Systems - Using C)
Machine representation of data including integers and floating point. Modern computer architectural features and their interaction with software (registers, caches). Interaction between user programs and the OS: system class, process, and thread management. Optimizing software to improve runtime performance using both compilers and hand turning.
- CMSC132 (Object-Oriented Programming II - Using JAVA)
Introduction to use of computers to solve problems using software engineering principles. Design, build, test, and debug medium -size software systems and learn to use relevant tools. Use object-oriented methods to create effective and efficient problem solutions. Use and implement application programming interfaces (APIs).
- CMSC420 (Data Structures - Using JAVA)
Description, properties, and storage allocation of data structures including lists and trees. Algorithms for manipulating structures. Applications from areas such as data processing, information retrieval, symbol manipulation, and operating systems.
- CMSC426 (Computer Vision - Using PYTHON)
An introduction to basic concepts and techniques in computervision. This includes low-level operations such as image filtering and edge detection, 3D reconstruction of scenes using stereo and structure from motion, and object detection, recognition and classification.
I spent some time after earning my Bsc developing mobile apps for iOS. I co-founded Inova, a software development company. If you want to know more about such period. plz visit my personal site.