fix defining

This commit is contained in:
artem 2025-04-15 22:19:19 +03:00
parent 2d5bfe6f50
commit 0ef0c2bfc9
4 changed files with 12 additions and 6 deletions

View File

@ -32,6 +32,10 @@ def load_model(model_path, device="cpu"):
return model return model
with open("server/meta/images.json", "r") as f:
IMAGES = json.loads(f.read())
MODEL = load_model("server/models/dogs_model.pth") MODEL = load_model("server/models/dogs_model.pth")
with open("server/meta/labels_dogs.json", "r") as f: with open("server/meta/labels_dogs.json", "r") as f:
@ -61,10 +65,10 @@ def predict_image(image, model, device="cuda"):
class BeerdsController(Controller): class BeerdsController(Controller):
path = "/breeds" path = "/beerds"
@post("/", media_type=MediaType.TEXT) @post("/dogs")
async def beeds( async def beerds(
self, data: UploadFile = Body(media_type=RequestEncodingType.MULTI_PART) self, data: UploadFile = Body(media_type=RequestEncodingType.MULTI_PART)
) -> dict: ) -> dict:
body = await data.read() body = await data.read()
@ -75,7 +79,7 @@ class BeerdsController(Controller):
images = [{"name": predicted_label, "url": IMAGES[predicted_label]}] images = [{"name": predicted_label, "url": IMAGES[predicted_label]}]
return { return {
"results": {probabilities: predicted_label}, "results": {float(probabilities[0]): predicted_label},
"images": images, "images": images,
} }
@ -118,6 +122,7 @@ Sitemap: https://xn-----6kcp3cadbabfh8a0a.xn--p1ai/sitemap.xml
app = Starlite( app = Starlite(
debug=True,
route_handlers=[BeerdsController, BaseController], route_handlers=[BeerdsController, BaseController],
static_files_config=[ static_files_config=[
StaticFilesConfig(directories=[Path("server/static")], path="/static"), StaticFilesConfig(directories=[Path("server/static")], path="/static"),

1
server/meta/images.json Normal file

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,7 @@ async function SavePhoto() {
let formData = new FormData(); let formData = new FormData();
// TODO: пройтись по всем результатм - если совпадают дважды - поднять вверх // TODO: пройтись по всем результатм - если совпадают дважды - поднять вверх
formData.append("f", photo); formData.append("f", photo);
let response = await fetch('/beeds', { method: "POST", body: formData }); let response = await fetch('/beerds/dogs', { method: "POST", body: formData });
if (response.ok) { if (response.ok) {
let json = await response.json(); let json = await response.json();
let text = "<h3 class='image-results'>Результаты</h3>"; let text = "<h3 class='image-results'>Результаты</h3>";

View File

@ -31,7 +31,7 @@
<p>Загрузите фото, чтобы опеределить породу собаки или щенка. Если порода смешанная (или порода определена неточно), после загрузки будет показана вероятность породы животного.</p> <p>Загрузите фото, чтобы опеределить породу собаки или щенка. Если порода смешанная (или порода определена неточно), после загрузки будет показана вероятность породы животного.</p>
<p>Определение породы происходит при помощи нейронной сети - точность опеределения составляет 60%, сеть обучена на <a href="https://vk.com/albums-220240483" target="_blank">125 породах</a>. Если на фото будет неизвестная порода или не собака - сеть не сможет правильно опеределить, что это.</p> <p>Определение породы происходит при помощи нейронной сети - точность опеределения составляет 60%, сеть обучена на <a href="https://vk.com/albums-220240483" target="_blank">125 породах</a>. Если на фото будет неизвестная порода или не собака - сеть не сможет правильно опеределить, что это.</p>
<p>Для распознования все фото отправляются на сервер, но там не сохраняются</p> <p>Для распознования все фото отправляются на сервер, но там не сохраняются</p>
<form enctype="multipart/form-data" method="post" action="/breeds" onsubmit="SavePhoto();return false"> <form enctype="multipart/form-data" method="post" action="/beerds/dogs" onsubmit="SavePhoto();return false">
<p><input type="file" name="f" id="file-input"> <p><input type="file" name="f" id="file-input">
<input type="submit" value="Определить"></p> <input type="submit" value="Определить"></p>
</form> </form>