Hyperspectral imaging is often used to determine what components present in a scene of the earth's surface. Each pixel in a hyperspectral image may contain of a pure material or a mixture of multiple materials due to the limitation of spatial resolution. To determine the abundance of each component in a pixel, a process called hyperspectral unmixing was introduced. In hyperspectral unmixing, each pixel in an image is compared to a spectral library to determine material types and their proportion in the pixel. In this study, we construct an algorithm to optimize the hyperspectral unmixing problem using L2,1 norm and Total Variation regularization to reduce reconstruction error. Specifically, our research aims to improve the unmixing results by applying L2,1 norm to impose collaborative sparsity on all pixels in the image and adding Total Variation regularization to improve the smoothness of resulting image. Our experimental results with both synthetic and real hyperspectral data show improvements in terms of lower RMSE and higher SSIM than those of other methods.