Files
cours-ai-tutorials/Tensorflow/concours_foetus/result.py

46 lines
1.2 KiB
Python
Raw Normal View History

2026-03-31 13:28:59 +02:00
import tensorflow as tf
import sys
import time
import cv2
import numpy as np
import math
import common
import config
import model
import csv
model=model.model(config.input_model)
checkpoint=tf.train.Checkpoint(model=model)
checkpoint.restore(tf.train.latest_checkpoint("./training/"))
print("filename,center_x_mm,center_y_mm,semi_axes_a_mm,semi_axes_b_mm,angle_rad")
with open("test_set.csv", newline='') as csvfile:
lignes=csv.reader(csvfile, delimiter=',')
for ligne in lignes:
img=cv2.imread(config.dir_images_test+ligne[0])
if img is None:
continue
mm_pixel=float(ligne[1])
H, W, C=img.shape
img=cv2.resize(img, (config.largeur, config.hauteur))
img=np.array(img, dtype=np.float32)/255
img=np.expand_dims(img[:, :, 0], axis=-1)
predictions=model(np.array([img]))
x, y, grand_axe, petit_axe, angle=predictions[0]
x=float(x*W*mm_pixel)
y=float(y*W*mm_pixel)
axis_x=float(grand_axe*W*mm_pixel/2)
axis_y=float(petit_axe*W*mm_pixel/2)
r=np.pi
r_2=r/2
if angle>=0.5:
angle=angle*r-r_2
else:
angle=angle*r+r_2
print("{},{:f},{:f},{:f},{:f},{:f}".format(ligne[0], x, y, axis_x, axis_y, angle))