Faits: Faits: A. A._, ressortissant macédonien né le 16 juillet 1957, a été arrêté le 16 août 2003 et détenu préventivement durant 475 jours. Il était soupçonné d'avoir participé à deux attaques à main armée commises les 23 novembre 2000 et 7 février 2001 par B._ au préjudice de la succursale de la Banque Cantonale Vaudoise de Crissier, en procédant à des repérages. L'enquête pénale a révélé qu'il avait séjourné illégalement en Suisse et qu'il avait travaillé notamment de février 2002 à fin mars 2003 pour une entreprise de montage de la région lausannoise pour un salaire mensuel brut d'environ 3'800 fr., sans être au bénéfice d'une autorisation de travail. Par jugement du 2 décembre 2004, le Tribunal correctionnel de l'arrondissement de Lausanne a libéré A._ des chefs d'accusation de complicité de brigandage qualifié et d'actes préparatoires à brigandage qualifié. Il l'a condamné pour infraction et contravention à la loi fédérale sur le séjour et l'établissement des étrangers à la peine de 45 jours d'emprisonnement et il a ordonné son expulsion du territoire suisse pour une durée de quatre ans. Par jugement du 2 décembre 2004, le Tribunal correctionnel de l'arrondissement de Lausanne a libéré A._ des chefs d'accusation de complicité de brigandage qualifié et d'actes préparatoires à brigandage qualifié. Il l'a condamné pour infraction et contravention à la loi fédérale sur le séjour et l'établissement des étrangers à la peine de 45 jours d'emprisonnement et il a ordonné son expulsion du territoire suisse pour une durée de quatre ans. B. Le 22 décembre 2004, A._ a présenté une demande d'indemnité pour détention injustifiée auprès du Tribunal d'accusation du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal d'accusation ou la cour cantonale). Il réclamait une indemnité de 140'000 fr., soit une somme de 64'500 fr. pour les 430 jours de détention injustifiée, une indemnité de 49'400 fr. pour la perte de gain subie, le remboursement de ses frais de défense à hauteur de 18'677.90 fr. et une indemnité pour tort moral de 8'000 fr. Par arrêt du 15 février 2005, le Tribunal d'accusation a partiellement admis la demande et alloué au requérant la somme de 40'000 fr., valeur échue, à la charge de l'Etat de Vaud. Il a refusé toute indemnité pour perte de gain, tenue pour abusive, et toute indemnité pour tort moral, faute pour le requérant d'avoir établi que l'enquête avait porté atteinte à sa réputation personnelle. Il a retenu que A._ avait inutilement compliqué et retardé l'instruction de la cause en mentant jusqu'aux débats quant à son séjour en Suisse et à sa relation avec B._. Il a considéré que ce comportement justifiait une réduction de l'indemnité en principe due au requérant pour sa détention injustifiée et ses frais de défense, estimés à 12'500 fr. Par arrêt du 15 février 2005, le Tribunal d'accusation a partiellement admis la demande et alloué au requérant la somme de 40'000 fr., valeur échue, à la charge de l'Etat de Vaud. Il a refusé toute indemnité pour perte de gain, tenue pour abusive, et toute indemnité pour tort moral, faute pour le requérant d'avoir établi que l'enquête avait porté atteinte à sa réputation personnelle. Il a retenu que A._ avait inutilement compliqué et retardé l'instruction de la cause en mentant jusqu'aux débats quant à son séjour en Suisse et à sa relation avec B._. Il a considéré que ce comportement justifiait une réduction de l'indemnité en principe due au requérant pour sa détention injustifiée et ses frais de défense, estimés à 12'500 fr. C. Agissant par la voie du recours de droit public, A._ demande au Tribunal fédéral d'annuler cet arrêt qu'il tient pour arbitraire, s'agissant du refus de lui allouer une quelconque indemnité pour perte de gain et de la réduction de l'indemnité pour détention injustifiée. Le Tribunal d'accusation se réfère aux considérants de son arrêt. Le Procureur général du canton de Vaud conclut au rejet du recours. 