The frequent occurrence of toxin-producing algal blooms is a serious concern for the ecological status of inland water and for human and animal health. In this paper, camera sensor networks are used to monitor algal blooms in lake for the first time. A distributed machine learning based algal blooms recognition (DMLAR) algorithm is proposed and implemented on embedded sensor nodes. DMLAR accurately recognises algal blooms and estimates their amounts in real-time based on the pictures of water surface. The machine learning model used by DMLAR is constructed by designing an active learning task, which is accomplished by collaborative embedded sensor nodes in a distributed manner. Extensive field experiments with large dataset are performed on the system deployed in lake since May 2010. Experiment results show that DMLAR outperforms two widely used methods both in terms of estimation accuracy and execution time, using nearly the same memory and energy.