C#:
Detector detector = new Detector("name", "model.savedmodel", "labels.txt", 7999, false);
detector.StartDetector();
var result = detector.Detect("1.png");
if (result.Success)
{
Console.WriteLine("File: " + result.File);
Console.WriteLine("Class id: " + result.result.Id);
Console.WriteLine("Class Name: " + result.result.Name);
Console.WriteLine("Class Confidence: " + result.result.Confidence);
}
else
{
Console.WriteLine("Client not loaded");
}
1. Заходим на Teachable Machine
1.1.Нажимаем начать
2. Выбираем проект с изображениями (Стандартная модель)
3. Загружаем и класифицируем изображения
4. Обучаем модель
5. Нажимаем экспортировать модель
5.1 Выбираем TenserFlow
5.2 Выбираем Savedmodel
5.3 Скачиваем модель
1.1.Нажимаем начать
2. Выбираем проект с изображениями (Стандартная модель)
3. Загружаем и класифицируем изображения
4. Обучаем модель
5. Нажимаем экспортировать модель
5.1 Выбираем TenserFlow
5.2 Выбираем Savedmodel
5.3 Скачиваем модель
Python:
import sys
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
import tensorflow as tf
tf.get_logger().setLevel('ERROR')
from tensorflow import keras
from keras.models import load_model
from PIL import Image, ImageOps
import numpy as np
import socket
import socketserver
class MyTCPHandler(socketserver.BaseRequestHandler):
def handle(self):
# self.request is the TCP socket connected to the client
self.data = self.request.recv(1024).strip()
image_path = self.data.strip()
image = Image.open(image_path).convert('RGB')
size = (224, 224)
image = ImageOps.fit(image, size)
image_array = np.asarray(image)
# Normalize the image
normalized_image_array = (image_array.astype(np.float32) / 127.0) - 1
# Load the image into the array
data[0] = normalized_image_array
# run the inference
prediction = model.predict(data)
index = np.argmax(prediction)
class_name = class_names[index]
confidence_score = prediction[0][index]
print('Image: ', image_path)
print('Class: ', class_name, end='')
print('Confidence Score: ', confidence_score)
senddata = "Image: " + str(image_path) + "\nClass: " + str(class_name) + "Confidence Score: " + str(confidence_score);
self.request.sendall(bytes(senddata, "utf-8"))
if __name__ == "__main__":
HOST, PORT = "localhost", int(sys.argv[3])
np.set_printoptions(suppress=False)
print("Loading model...")
model = load_model(sys.argv[1], compile=False)
print("Model loaded")
print("Loading class names...")
class_names = open(sys.argv[2], 'r').readlines()
print("Class names loaded")
data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32)
print("Starting server...")
with socketserver.TCPServer((HOST, PORT), MyTCPHandler) as server:
print("Server started")
server.serve_forever()