CoolFace
Apppublic

MonumentDetection/ContinualLearningFastAPI

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
main.cpython-39.pyc48 linesDownload Raw Back to __pycache__
1a

2-f�@s�ddlmZmZmZmZddlmZddlmZddl	m3Z4ddlmZddl
Z
ddlZddlmZddlmZdd	lmZmZmZmZddlZddlZdd5lmZddlZddlmZddlmZddl Z!ddl"m#Z$ddl%m&Z&e�Z'e'j(de6d
d�d
d�e'j(de7dd�dd�e'j(de8dd�dd�edd�Z)da*dZ+Gdd�de�Z,e'�-d�ed�dd��Z.e'j-ded�ed�dd��Z/e'�0d�eed �d!d"��Z1e'�0d#�ed$�ed$�fee2e2d%�d&d'��Z3dS)(�)�FastAPI�Request�Form�9UploadFile)�Jinja2Templates)�HTMLResponse)�StaticFiles)�	BaseModelN)�FigureCanvasAgg)�Path)�fasterrcnn_resnet50_fpn�filter_pred�classes�CLASSES)�datetime)�Imagez/staticZstatic)�	directory)�namez/mediaZmediaz/output�output�	templatesc@seZdZUeed<dS)�	ImageForm�imageN)�__name__�10__module__�__qualname__r�__annotations__�rr�$C:\Users\DELL\fastapiProject\main.pyrs11r�/��requestc�st�dd|i�S)Nzwelcome.htmlr �r�TemplateResponserrrr�	monuments"sr#z/index/)Zresponse_classc�st�dd|i�S)Nz12index.htmlr r!rrrr�index'sr$z/upload/)r �filec�s||��IdHat�t�t��}|jdkr2|�d�}t��}|j|dd�t	�13|����d�}|�
d�d}t�d||d��S)	N�RGB�JPEG��format�utf-8�14rzupload.html)r �
image_content)�read�15imageBytesr�open�io�BytesIO�mode�convert�save�base64�	b64encode�getvalue�decode�splitrr")r r%rZimage_bytes�contentsrrr�upload8s1617r;z	/predict/.)r �model�subsetc
�sz(t�t�t��}|jdkr&|�d�}Wn2tyZ}ztd|���WYd}~n18d}~00|�rt	�19t	��g�}|�d�}||�}|�d�}t
j�t�}t|�d��|dvr�|dvr�t|�t
j�|d||�d��}td	d20�}|�tj|t�tj��r�dnd�d
��|�tj���rdnd�|��t���||�}	Wd�n1�sT0Yt|	�}21|22dd����}|23dd����}|24dd����}
t� |�}t!j"dd�\}}|�#|�|�$d�|�%d�t&|�D]�\}}t'j(|d|df|d|d|d|ddddd�}|�)|�|j*|d|ddt+t,||��ddt-ddddd �d!��q�t��}t.t!�/��}|�0|�|�1�}t�t�|��}|�d�}t��}|j2|d"d#�t3�4|�1���5d$�}|�6d%�d}t7�8d&||t9|
dd�d'��Sd(d)iS)*Nr&zError: rz	hey there)Zsubset1Zsubset2Zsubset3Zsubsset4)Zjoint_modelZ25meta_modelZ26MNAD_modelz27Base Modelz.pth�)Znum_classes�cuda�cpu)Zmap_location�boxes�labels�scores)�28�)Zfigsize�offZOriginal����r�none)Z	linewidth�	edgecolor�	facecolorrErD�whiteg�������?z
round,pad=0.2)rM�alpharLZboxstyle)�colorZfontsizeZbboxr'r(r*r+zpredict.html)r r,Zconfidence_scoreZdetailzInvalid model specified.):rr/r0r1r.r2r3�	Exception�print�29transformsZComposeZToTensorZ	unsqueeze�os�path�dirname�__file__�joinrZload_state_dict�torch�loadZdevicer?Zis_available�to�evalZno_gradr
r@�numpy�npZarray�pltZsubplotsZimshowZaxisZ	set_title�	enumerate�patchesZ	RectangleZ	add_patch�textr�int�dictr30ZgcfZ	print_pngr7r4r5r6r8r9rr"�round)r r<r=r�eZ	transformZ31img_tensor�base_dirZ32model_pathZpredictionsZoutputsrArBrCZoriginal_npZfigZaxs�jZboxZrect�bufferZcanvas�33bytes_dataZ	image_rgbrr:rrr�predictGsn34$�353637(38(394041420�43$�444546rk)4ZfastapirrrrZfastapi.templatingrZfastapi.responsesrZfastapi.staticfilesrZpydanticr	r0r5Zmatplotlib.backends.backend_aggr47�pathlibrZ"monuments.faster_models.fasterrcnnrr
rrrT�shutilrrYZtorchvision.transformsrSZPILrr]r^Zmatplotlib.pyplotZpyplotr_Zmatplotlib.patchesra�appZmountrr.r<r�getr#r$Zpostr;�strrkrrrr�<module>sD48