Faits: Faits: A. Par un jugement rendu le 13 août 2002, le Tribunal de police de l'arrondissement de Lausanne a condamné A._, pour lésions corporelles simples qualifiées commises en excès de légitime défense (art. 33 al. 2 et 123 ch. 2 CP), à la peine de vingt jours d'arrêts avec sursis pendant deux ans. Ces lésions avaient été infligées par A._ à B._ au cours d'une bagarre dans la nuit du 12 au 13 février 2000, vers 3.30 heures. Les deux protagonistes s'étaient déjà affrontés une première fois vers 23.30 heures à Lausanne; à cette occasion, B._ avait mordu et sectionné la dernière phalange de l'auriculaire gauche de A._. Ce dernier avait reçu des soins dans une clinique puis, immédiatement après son opération, il s'était rendu auprès de son agresseur, sur son lieu de travail, dans le but d'avoir une explication avec lui. Cette nouvelle discussion a dégénéré en bagarre. B._ a mordu le pouce gauche de A._; celui-ci, ayant demandé en vain à B._ de lâcher prise, s'est emparé d'un couteau de cuisine se trouvant dans le local et l'a frappé à la hauteur de l'omoplate gauche, provoquant une plaie superficielle. Par le même jugement du 13 août 2002, le Tribunal de police a condamné B._, pour lésions corporelles graves par négligence (principalement), à la peine de 2 mois d'emprisonnement avec sursis pendant 2 ans. Le Tribunal de police a en outre condamné B._ à payer 2'500 fr. à A._ au titre de réparation du tort moral. Ce dernier a par ailleurs été condamné à payer à B._ une somme de 2'500 fr. au titre de réparation de son dommage. Les dépens ont été compensés. Pendant l'enquête, A._ était assisté d'un défenseur d'office. Peu avant les débats du Tribunal de police, il a mandaté pour sa défense Me Eric Stauffacher, avocat à Lausanne. Pendant l'enquête, A._ était assisté d'un défenseur d'office. Peu avant les débats du Tribunal de police, il a mandaté pour sa défense Me Eric Stauffacher, avocat à Lausanne. B. A._, toujours représenté par Me Stauffacher, a recouru contre le jugement du Tribunal de police auprès du Tribunal cantonal du canton de Vaud. La Cour de cassation pénale de ce tribunal a admis ce recours par un arrêt rendu le 9 décembre 2002 (dont les considérants ont été envoyés aux parties le 19 juin 2003). En conséquence, elle a libéré A._ du chef d'accusation de lésions corporelles simples qualifiées et lui a alloué ses conclusions civiles en condamnant B._ à lui payer la somme de 5'000 fr. au titre de réparation du tort moral ainsi que des dépens, par 1'200 fr. La Cour cantonale a encore réformé le jugement attaqué, à propos de la réparation du dommage subi par B._, pour donner acte à ce dernier de ses réserves civiles à l'encontre du recourant. B. A._, toujours représenté par Me Stauffacher, a recouru contre le jugement du Tribunal de police auprès du Tribunal cantonal du canton de Vaud. La Cour de cassation pénale de ce tribunal a admis ce recours par un arrêt rendu le 9 décembre 2002 (dont les considérants ont été envoyés aux parties le 19 juin 2003). En conséquence, elle a libéré A._ du chef d'accusation de lésions corporelles simples qualifiées et lui a alloué ses conclusions civiles en condamnant B._ à lui payer la somme de 5'000 fr. au titre de réparation du tort moral ainsi que des dépens, par 1'200 fr. La Cour cantonale a encore réformé le jugement attaqué, à propos de la réparation du dommage subi par B._, pour donner acte à ce dernier de ses réserves civiles à l'encontre du recourant. C. Le 24 décembre 2002, A._ a adressé au Tribunal d'accusation du Tribunal cantonal du canton de Vaud une demande tendant au paiement (par le canton) d'une indemnité de 6'317 fr. 85, fondée sur l'art. 163a du Code de procédure pénale (CPP/VD). Ce montant correspond au total des honoraires et débours facturés par Me Stauffacher à son client pour l'exécution du mandat entre le 24 juin et le 24 décembre 2002. Par un arrêt rendu le 29 août 2003, le Tribunal d'accusation a partiellement admis la demande et il a alloué à A._ la somme de 750 fr., à la charge de l'Etat de Vaud. Par un arrêt rendu le 29 août 2003, le Tribunal d'accusation a partiellement admis la demande et il a alloué à A._ la somme de 750 fr., à la charge de l'Etat de Vaud. D. Agissant par la voie du recours de droit public, A._ demande au Tribunal fédéral d'annuler l'arrêt attaqué ou de le réformer en ce sens qu'une indemnité de 6'317 fr. 85 lui est allouée. Il se plaint d'une application arbitraire de l'art. 163a CPP/VD, d'une violation du principe de la présomption d'innocence consacré aux art. 32 al. 1 Cst. et 6 par. 2 CEDH, ainsi que d'une violation de garanties constitutionnelles en matière d'assistance judiciaire gratuite (art. 29 al. 3 Cst. et art. 6 par. 3 let. c CEDH, en relation avec l'art. 8 Cst.). Invités à répondre, le Procureur général du canton de Vaud conclut au rejet du recours et le Tribunal d'accusation se réfère à son arrêt. Invités à répondre, le Procureur général du canton de Vaud conclut au rejet du recours et le Tribunal d'accusation se réfère à son arrêt. E. Le recourant demande l'assistance judiciaire au sens de l'art. 152 OJ. 