Faits:
Faits:
A. Par ordonnance du 24 mars 2003, le Juge d'instruction du canton de Fribourg a clos par un non-lieu la procédure ouverte contre A._ pour violation de la LStup. S'étant vu séquestrer ses récoltes de chanvre des années 2001 et 2002, A._ avait expliqué que la récolte 2001, d'une teneur en THC de 6 à 13 %, était destinée à la production d'huile essentielle. S'agissant de la récolte 2002, A._ avait d'abord expliqué qu'elle devait être stockée en attendant la libéralisation, puis qu'elle devait être livrée à une société, sans connaître sa destination finale. Compte tenu de son taux de THC de 0,5%, cette seconde récolte ne constituait pas un stupéfiant. Les frais de la procédure, soit 6'143 fr. 75, ont été mis à la charge de A._, lequel avait objectivement fabriqué un stupéfiant (récolte 2001) et subjectivement enfreint l'<ref-law> (récolte 2002). La destruction du chanvre saisi a en outre été ordonnée.
A. Par ordonnance du 24 mars 2003, le Juge d'instruction du canton de Fribourg a clos par un non-lieu la procédure ouverte contre A._ pour violation de la LStup. S'étant vu séquestrer ses récoltes de chanvre des années 2001 et 2002, A._ avait expliqué que la récolte 2001, d'une teneur en THC de 6 à 13 %, était destinée à la production d'huile essentielle. S'agissant de la récolte 2002, A._ avait d'abord expliqué qu'elle devait être stockée en attendant la libéralisation, puis qu'elle devait être livrée à une société, sans connaître sa destination finale. Compte tenu de son taux de THC de 0,5%, cette seconde récolte ne constituait pas un stupéfiant. Les frais de la procédure, soit 6'143 fr. 75, ont été mis à la charge de A._, lequel avait objectivement fabriqué un stupéfiant (récolte 2001) et subjectivement enfreint l'<ref-law> (récolte 2002). La destruction du chanvre saisi a en outre été ordonnée.
B. Par arrêt du 17 septembre 2003 (statuant sur révision après avoir déclaré tardif un premier recours), la Chambre pénale du Tribunal cantonal fribourgeois a partiellement admis le recours de A._. Le non-lieu a été maintenu (ch. 1.1 du dispositif), mais la moitié seulement des frais de procédure a été mise à la charge de A._ (ch. 1.2); l'huile essentielle a été restituée (ch. 1.3) ainsi que le chanvre, afin qu'il soit utilisé comme fourrage (ch. 1.4). Si, s'agissant de la récolte 2001, A._ n'avait jamais eu l'intention de produire des stupéfiants, il avait agi en tout cas par dol éventuel en ce qui concernait la récolte 2002, puisqu'il ignorait ce que le destinataire voulait en faire. Les frais de la procédure de recours, soit 266 fr. ont été mis à la charge de A._ (ch. 2 du dispositif).
B. Par arrêt du 17 septembre 2003 (statuant sur révision après avoir déclaré tardif un premier recours), la Chambre pénale du Tribunal cantonal fribourgeois a partiellement admis le recours de A._. Le non-lieu a été maintenu (ch. 1.1 du dispositif), mais la moitié seulement des frais de procédure a été mise à la charge de A._ (ch. 1.2); l'huile essentielle a été restituée (ch. 1.3) ainsi que le chanvre, afin qu'il soit utilisé comme fourrage (ch. 1.4). Si, s'agissant de la récolte 2001, A._ n'avait jamais eu l'intention de produire des stupéfiants, il avait agi en tout cas par dol éventuel en ce qui concernait la récolte 2002, puisqu'il ignorait ce que le destinataire voulait en faire. Les frais de la procédure de recours, soit 266 fr. ont été mis à la charge de A._ (ch. 2 du dispositif).
C. Agissant par la voie du recours de droit public, A._ demande au Tribunal fédéral d'annuler ce dernier arrêt et de renvoyer la cause à la cour cantonale pour nouvelle décision dans le sens des considérants.
La cour cantonale, le juge d'instruction et le Ministère public ont renoncé à formuler des observations.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Le recours de droit public est formé en temps utile contre un arrêt final rendu en dernière instance cantonale. Le recourant a qualité, au sens de l'art. 88 OJ, pour contester l'arrêt attaqué, en tant qu'il met à sa charge une moitié des frais de procédure. En dehors d'exceptions non réalisées en l'espèce, le recours de droit public ne peut tendre qu'à l'annulation de l'arrêt attaqué (<ref-ruling> consid. 1.5 p. 176). La conclusion tendant au renvoi de la cause pour nouvelle décision dans le sens des considérants est dès lors irrecevable.
1. Le recours de droit public est formé en temps utile contre un arrêt final rendu en dernière instance cantonale. Le recourant a qualité, au sens de l'art. 88 OJ, pour contester l'arrêt attaqué, en tant qu'il met à sa charge une moitié des frais de procédure. En dehors d'exceptions non réalisées en l'espèce, le recours de droit public ne peut tendre qu'à l'annulation de l'arrêt attaqué (<ref-ruling> consid. 1.5 p. 176). La conclusion tendant au renvoi de la cause pour nouvelle décision dans le sens des considérants est dès lors irrecevable.
2. Le recourant se plaint d'arbitraire et d'une violation de la présomption d'innocence. La cour cantonale ne pouvait estimer que les déclarations faites le 23 octobre 2002 - quant à l'utilisation de la récolte 2002 - avaient provoqué une procédure ouverte une année auparavant. Rien ne permettait de lui imputer une infraction par dol éventuel, ni aucun autre acte illicite.
2.1 L'arrêt attaqué est fondé sur l'art. 229 al. 2 du code de procédure pénale fribourgeois, libellé comme il suit: "En cas d'acquittement ou de renonciation à la poursuite, le prévenu ne supporte les frais que si, par un comportement contraire à l'ordre juridique, il a donné lieu à la procédure ou en a rendu plus difficile le déroulement". Cette disposition confère un pouvoir d'appréciation étendu au juge appelé à répartir les frais de la procédure pénale. Ce pouvoir est toutefois limité par les garanties offertes au prévenu libéré des fins de la poursuite pénale. En particulier, le principe de la présomption d'innocence, consacré aux art. 32 Cst. et 6 par. 2 CEDH, interdit de prendre une décision sur les frais défavorable au prévenu libéré en laissant entendre que celui-ci est coupable de l'infraction qui lui était reprochée (<ref-ruling>). En effet, le paiement des frais de la procédure pénale n'est pas fondé sur une responsabilité à raison d'un comportement pénalement répréhensible, mais sur des principes de droit civil qui, tel l'<ref-law>, impose la réparation d'un dommage causé par la violation d'une norme de comportement découlant de l'ordre juridique suisse dans son ensemble (même arrêt, consid. 2c-e p. 168 ss).
La condamnation aux frais d'un prévenu libéré n'est ainsi admissible que si celui-ci a clairement violé une règle de comportement et a ainsi provoqué ou compliqué l'instruction pénale (<ref-ruling>; cf., en dernier lieu, les arrêts non publiés du 21 août 2001 dans la cause G., du 13 février 2001 dans la cause J., du 20 octobre 2000 dans la cause S., du 10 mai 2000 dans la cause S. et du 14 janvier 1999 dans la cause P.). La décision prise à ce sujet doit s'appuyer sur des éléments de fait dûment établis et non contestés, et les droits procéduraux du prévenu doivent être respectés, en particulier son droit d'être entendu (<ref-ruling> consid. 1b p. 334).
2.2 En l'occurrence, la condamnation partielle aux frais de justice est motivée par le fait que le recourant a, "dans ses actes et son intention, voulu cultiver du chanvre en vue de la production de stupéfiants", comportement qui aurait donné lieu à la procédure. Il s'agit manifestement d'une déclaration de culpabilité pure et simple, incompatible avec les principes rappelés ci-dessus, et en contradiction avec la décision de non-lieu prononcée par le juge d'instruction. La cour cantonale s'est par ailleurs dispensée d'examiner si le comportement du recourant constituait en outre une violation d'une norme de comportement autre que la disposition pénale. En l'absence de toute constatation faite dans le respect des droits du prévenu et propre à fonder un tel reproche, il n'appartient pas au Tribunal fédéral de se livrer à une substitution de motifs sur ce point. Telle qu'elle est motivée, la condamnation aux frais viole la présomption d'innocence, ce qui suffit pour admettre le recours.
2.2 En l'occurrence, la condamnation partielle aux frais de justice est motivée par le fait que le recourant a, "dans ses actes et son intention, voulu cultiver du chanvre en vue de la production de stupéfiants", comportement qui aurait donné lieu à la procédure. Il s'agit manifestement d'une déclaration de culpabilité pure et simple, incompatible avec les principes rappelés ci-dessus, et en contradiction avec la décision de non-lieu prononcée par le juge d'instruction. La cour cantonale s'est par ailleurs dispensée d'examiner si le comportement du recourant constituait en outre une violation d'une norme de comportement autre que la disposition pénale. En l'absence de toute constatation faite dans le respect des droits du prévenu et propre à fonder un tel reproche, il n'appartient pas au Tribunal fédéral de se livrer à une substitution de motifs sur ce point. Telle qu'elle est motivée, la condamnation aux frais viole la présomption d'innocence, ce qui suffit pour admettre le recours.
3. L'arrêt cantonal doit par conséquent être annulé en tant qu'il met la moitié des frais de procédure (ch. 1.2 du dispositif), ainsi que les frais de la procédure de recours (ch. 2) à la charge du recourant. Conformément à l'art. 156 al. 2 OJ, il n'est pas perçu d'émolument judiciaire. Une indemnité de dépens est allouée au recourant, à la charge de l'Etat de Fribourg.

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est admis et les chiffres 1.2 et 2 du dispositif de l'arrêt attaqué sont annulés.
1. Le recours est admis et les chiffres 1.2 et 2 du dispositif de l'arrêt attaqué sont annulés.
2. Une indemnité de dépens de 1500 fr. est allouée au recourant, à la charge de l'Etat de Fribourg.
2. Une indemnité de dépens de 1500 fr. est allouée au recourant, à la charge de l'Etat de Fribourg.
3. Il n'est pas perçu d'émolument judiciaire.
3. Il n'est pas perçu d'émolument judiciaire.
4. Le présent arrêt est communiqué en copie au mandataire du recourant, au Juge d'instruction, au Ministère public et à la Chambre pénale du Tribunal cantonal du canton de Fribourg.
Lausanne, le 3 décembre 2003
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le président: Le greffier: