diff --git a/src/Lhidden_test.npy b/src/Lhidden.npy
similarity index 100%
rename from src/Lhidden_test.npy
rename to src/Lhidden.npy
diff --git a/src/Lweights_test.npy b/src/Lweights.npy
similarity index 100%
rename from src/Lweights_test.npy
rename to src/Lweights.npy
diff --git a/src/index.html b/src/index.html
index 9571bf5..6a3eae7 100644
--- a/src/index.html
+++ b/src/index.html
@@ -14,6 +14,8 @@
+
+
@@ -27,7 +29,6 @@
-
@@ -316,11 +317,10 @@
diff --git a/src/logic/agent.js b/src/logic/agent.js
index 5ca2fa5..8ea4c0b 100644
--- a/src/logic/agent.js
+++ b/src/logic/agent.js
@@ -10,6 +10,7 @@ class Agent extends AgentController {
const cycle = async () => {
try {
const jobRequest = Products.instance.getJobRequest();
+ console.log(jobRequest);
if (jobRequest) {
await this.takeFromStore(jobRequest.product, jobRequest.amount);
await this.deliver(jobRequest.x, jobRequest.y);
diff --git a/src/main.py b/src/main.py
index ebb4a4f..a478a01 100644
--- a/src/main.py
+++ b/src/main.py
@@ -1,5 +1,6 @@
from flask import Flask, redirect, jsonify, request
import decision_tree
+from neural_network import *
app = Flask(
__name__,
@@ -31,6 +32,28 @@ def api_predict_shelf():
return jsonify([ n2t['polka'][clf.predict([X]).tolist()[0]] ])
+@app.route('/api/neural', methods=['POST'])
+def naural():
+ length = int(request.form['length'])
+ print(length)
+
+ data = list()
+
+ for fileIndex in range(length):
+ file = request.files[f'file-{fileIndex}']
+ file.save(f'user_input/file-{fileIndex}.png')
+ data.append(f'user_input/file-{fileIndex}.png')
+
+ return jsonify(testCase(data))
+
+ # try:
+ # return("Image uploaded")
+ # print("Image uploaded")
+ # except Exception as err:
+ # print("Error occurred")
+ # print(err)
+ # return("Error, image not received.")
+
@app.route('/')
def index():
return redirect('/index.html')
diff --git a/src/neural_network.py b/src/neural_network.py
index e6e3957..48243f6 100644
--- a/src/neural_network.py
+++ b/src/neural_network.py
@@ -30,8 +30,8 @@ class NeuralNetwork:
self.weights = (np.random.rand(self.hnodes, self.inodes) - 0.5)
self.hidden = (np.random.rand(self.onodes, self.hnodes) - 0.5)
""" używane przy pobieraniu danych o nauczonej sieci, z pliku """
- # self.weights = np.load(fileWeight)
- # self.hidden = np.load(fileHidden)
+ self.weights = np.load(fileWeight)
+ self.hidden = np.load(fileHidden)
self.lr = learningGrade
@@ -136,23 +136,26 @@ li = []
ourOwnDataset = []
record_cache = None
def testCase(inputWord):
- len = len(inputWord)
+ length = len(inputWord)
word = ""
- for i in range(0,len-2):
- imgArray = imageio.imread(imageFileName, as_gray=True)
+ for i in range(0, length):
+ imgArray = imageio.imread(inputWord[i], as_gray=True)
imgData = 255 - imgArray.reshape(784)
imgData = (imgData/255 * 0.99) + 0.01
#inputWord[i]
- word = word + recognizeLet(letterNetwork ,imgData)
- word = word + recognizeNum(digitNetwork, inputWord[-2])
- word = word + recognizeNum(digitNetwork ,inputWord[-1])
+
+ if i < length - 2:
+ word = word + recognizeLet(letterNetwork, imgData)
+ else:
+ word = word + recognizeNum(digitNetwork, imgData)
#assert record_cache.shape == ourOwnDataset[0].shape
#labelInput = np.asfarray(li)
#print(labelInput)
print('slowo: ', word)
+ return word
pass
@@ -234,5 +237,5 @@ print('slowo: ', word)
##################################### URUCHOMIENIE TRENINGU
-trainNetwork(letterNetwork, "Lweights_test.npy", "Lhidden_test.npy", let_train_images, let_train_labels)
+# trainNetwork(letterNetwork, "Lweights_test.npy", "Lhidden_test.npy", let_train_images, let_train_labels)
# trainNetwork(digitNetwork, "Dweights_test.npy", "Dhidden_test.npy", let_train_images, let_train_labels)
\ No newline at end of file
diff --git a/src/user_input/file-0.png b/src/user_input/file-0.png
new file mode 100644
index 0000000..5687b25
Binary files /dev/null and b/src/user_input/file-0.png differ
diff --git a/src/user_input/file-1.png b/src/user_input/file-1.png
new file mode 100644
index 0000000..207b1e1
Binary files /dev/null and b/src/user_input/file-1.png differ
diff --git a/src/user_input/file-2.png b/src/user_input/file-2.png
new file mode 100644
index 0000000..8dfd93c
Binary files /dev/null and b/src/user_input/file-2.png differ
diff --git a/src/user_input/file-3.png b/src/user_input/file-3.png
new file mode 100644
index 0000000..5b6b1ae
Binary files /dev/null and b/src/user_input/file-3.png differ
diff --git a/src/user_input/file-4.png b/src/user_input/file-4.png
new file mode 100644
index 0000000..fbfd550
Binary files /dev/null and b/src/user_input/file-4.png differ
diff --git a/src/user_input/file-5.png b/src/user_input/file-5.png
new file mode 100644
index 0000000..7c52f6e
Binary files /dev/null and b/src/user_input/file-5.png differ
diff --git a/src/user_input/file-6.png b/src/user_input/file-6.png
new file mode 100644
index 0000000..38b7b6f
Binary files /dev/null and b/src/user_input/file-6.png differ
diff --git a/src/user_input/file-7.png b/src/user_input/file-7.png
new file mode 100644
index 0000000..5d1bf1e
Binary files /dev/null and b/src/user_input/file-7.png differ
diff --git a/src/view/ordersView.js b/src/view/ordersView.js
index da4ff70..661b57a 100644
--- a/src/view/ordersView.js
+++ b/src/view/ordersView.js
@@ -3,6 +3,9 @@ class OrdersView {
constructor() {
OrdersView.instance = this;
+ this.orders = [];
+ this.lastRecognizedText = '';
+
this.addMultipleCanvases(10);
}
@@ -23,6 +26,8 @@ class OrdersView {
canvas.height = 28;
const ctx = canvas.getContext('2d');
+ ctx.fillStyle = 'white';
+ ctx.fillRect(0, 0, 28, 28);
ctx.drawImage(img, 0, 0, 28, 28);
canvas.toBlob((blob) => {
@@ -34,13 +39,17 @@ class OrdersView {
});
});
})
- ).then(async () => {
+ ).then(async (res) => {
+ formData.append('length', res.length);
+
const response = await fetch('/api/neural', {
method: 'POST',
body: formData
});
//const json = await response.json();
- console.log(await response.text());
+ const res_ = (await response.text()).replace(/[\"]{1,}/g, '');
+ document.querySelector('.response').innerHTML = res_;
+ this.lastRecognizedText = res_;
});
}
@@ -115,4 +124,29 @@ class OrdersView {
ctx.stroke();
}
}
+
+ addOrderByLastRecognizedString() {
+ this.addOrderByString(this.lastRecognizedText);
+ }
+
+ addOrderByString(str) {
+ const numberStr = str.substring(str.length - 2, str.length);
+ const text = str.substring(0, str.length - 2);
+ const number = parseInt(numberStr);
+
+ this.orders.push({
+ product: Product.REGISTRY[text],
+ amount: number,
+ x: 11,
+ y: 7,
+ });
+
+ this.closeWindow();
+ }
+
+ getOrder() {
+ if (!this.orders.length) return null;
+
+ return this.orders.shift();
+ }
}
\ No newline at end of file