Shervin Emami, born in Iran, taught himself electronics and hobby robotics during his early teens in Australia. While building his first robot at the age of 15, he learned how RAM and CPUs work. He was so amazed by the concept that he soon designed and built a whole Z80 motherboard to control his robot, and wrote all the software purely in binary machine code using two push buttons for 0s and 1s. After learning that computers can be programmed in much easier ways such as assembly language and even high-level compilers, Shervin became hooked on computer programming and has been programming desktops, robots, and smartphones nearly every day since then. During his late teens, he created Draw3D ( http://draw3d.shervinemami.info/), a 3D modeler with 30,000 lines of optimized C and assembly code that rendered 3D graphics faster than all the commercial alternatives of the time, but he lost interest in graphics programming when 3D hardware acceleration became available. In University, Shervin took a class on computer vision and became greatly interested in it, so for his first thesis in 2003, he created a real-time face detection program based on Eigenfaces, using OpenCV (beta 3) for the camera input. For his master's thesis in 2005, he created a visual navigation system for several mobile robots using OpenCV (v0.96). From 2008, he worked as a freelance Computer Vision Developer in Abu Dhabi and Philippines, using OpenCV for a large number of short-term commercial projects that included: Detecting faces using Haar or Eigenfaces Recognizing faces using Neural Networks, EHMM, or Eigenfaces Detecting the 3D position and orientation of a face from a single photo using AAM and POSIT Rotating a face in 3D using only a single photo Face preprocessing and artificial lighting using any 3D direction from a single photo Gender recognition Facial expression recognition Skin detection Iris detection Pupil detection Eye-gaze tracking Visual-saliency tracking Histogram matching Body-size detection Shirt and bikini detection Money recognition Video stabilization Face recognition on iPhone Food recognition on iPhone Marker-based augmented reality on iPhone (the second-fastest iPhone augmented reality app at the time) OpenCV was putting food on the table for Shervin's family, so he began giving back to OpenCV through regular advice on the forums and by posting free OpenCV tutorials on his website ( http://www.shervinemami.info/openCV.html). In 2011, he contacted the owners of other free OpenCV websites to write this book. He also began working on computer vision optimization for mobile devices at NVIDIA, working closely with the official OpenCV developers to produce an optimized version of OpenCV for Android. In 2012, he also joined the Khronos OpenVL committee for standardizing the hardware acceleration of computer vision for mobile devices, on which OpenCV will be based in the future.
Read more