Computer vision
Engineering systems that extract useful structure from images or video.
Projects
- 360° Spherical Panorama StitchingA CPU-only Python and OpenCV pipeline that turns handheld phone video or stills into an equirectangular panorama and generates a Three.js viewer.
- Brainiacs Autonomous Race CarA WRO Future Engineers vehicle dividing Jetson Nano perception from Arduino Mega real-time control, with OpenCV traffic-sign logic, PID steering, an MPU6050 IMU, and TCS34725 color sensing.
- Thermal Super-ResolutionAn IMDN-derived single-channel thermal super-resolution pipeline trained with thermal-specific objectives and optimized for deployment on NVIDIA Jetson hardware.
- Fine Crack Tracing ToolkitAn installable Python package and CLI for turning pre-segmented crack masks into ordered lines, optional splines, visual overlays, and evaluation metrics.
- OmniSign — Lebanese Sign Language translationA real-time translation system for Lebanese Sign Language spanning camera input, visual recognition, language output, and deployment across mobile, web, and offline embedded environments.
- Smart Interactive Desk (BEMO)A prototype that combines computer vision, ESP32 control, motorized height and tilt, immediate LED feedback, and a dashboard for longer-term patterns.
- Imagen — learning a photographer’s edit from RAW bracketsA freelance pipeline for a French real-estate photography agency that ingests bracketed RAW sessions, decodes them through a color-accurate DNG pipeline into 16-bit linear frames, pairs them with the photographer’s edited JPEGs, and trains an HDRNet model to replicate the editing style.
- Evoid — an applied computer-vision ventureEvoid is a small applied AI and computer-vision venture in Beirut that I co-founded and worked in as systems engineer and product manager, delivering prototypes and applications for external clients.
Writing
- Building a 360° panorama stitcher from a phone sweepA phone video, a pure-rotation camera model, and a stubborn question: how much of a 360° reconstruction pipeline can be made explicit instead of hidden behind a stitching API?
- Building an autonomous race car in twenty daysA small autonomous vehicle forced perception, control, power, mechanics, and team decisions into one unforgiving loop.
- Adapting super-resolution to thermal imageryUpscaling a thermal frame is not the same problem as enlarging an RGB photograph, especially when the result must run beside the rest of a perception stack.
- Turning segmented cracks into measurable pathsA segmentation mask says which pixels belong to a crack. Inspection work often needs the next layer: an ordered line, a trace, and measurements that can be compared.
- Building real-time Lebanese Sign Language translationLebanese Sign Language has a data problem before it has a model problem.
- Connecting posture estimation to a motorized deskA posture-aware desk closes a physical loop between vision, control, and motion.
- Why color science comes before the modelTo teach a network a photographer’s edit, the training pairs must be linear, calibrated, and exact. Most of the work is in the decode.
- What a small vision venture taught me about scopeCo-founding a small applied computer-vision venture in Beirut was mostly a lesson in bounding engagements.