13 Commits

Author SHA1 Message Date
glmdev
ef1b979c53 dynamic config 2019-02-10 01:47:31 -06:00
glmdev
0a76d0099e default res 2019-02-10 01:44:46 -06:00
glmdev
5a8940da7b simplecv 2019-02-10 01:00:14 -06:00
glmdev
f0b35991e8 opencv cam 2019-02-10 00:38:47 -06:00
glmdev
a0ce12ba0b fix camera timing 2019-02-10 00:34:00 -06:00
glmdev
633e728141 fix camera resolution 2019-02-10 00:28:42 -06:00
glmdev
b39236bcb1 remove tensor 2019-02-10 00:19:18 -06:00
glmdev
f7cf37dbf0 new config 2019-02-09 22:54:21 -06:00
glmdev
fb785dab53 generalize backend URL 2019-02-09 17:20:12 -06:00
glmdev
8f3b2e1d0a images 2019-02-09 16:45:18 -06:00
glmdev
ba00272bd3 update 2019-02-09 16:43:19 -06:00
glmdev
f60af7a9cc update 2019-02-09 15:38:10 -06:00
glmdev
2ffafa6719 update 2019-02-09 15:33:44 -06:00
23 changed files with 112 additions and 76 deletions

113
.idea/workspace.xml generated
View File

@@ -2,24 +2,22 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="f410c5c2-3ffe-4260-93eb-e3d83256d263" name="Default Changelist" comment=""> <list default="true" id="f410c5c2-3ffe-4260-93eb-e3d83256d263" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/camera.py" beforeDir="false" afterPath="$PROJECT_DIR$/camera.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/image_tools.py" beforeDir="false" afterPath="$PROJECT_DIR$/image_tools.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/image_tools.py" beforeDir="false" afterPath="$PROJECT_DIR$/image_tools.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/index.py" beforeDir="false" afterPath="$PROJECT_DIR$/index.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/index.py" beforeDir="false" afterPath="$PROJECT_DIR$/index.py" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/index.py"> <entry file="file://$PROJECT_DIR$/index.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225"> <state relative-caret-position="326">
<caret line="24" column="5" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" /> <caret line="24" column="68" lean-forward="true" selection-start-line="24" selection-start-column="68" selection-end-line="24" selection-end-column="68" />
<folding> <folding>
<element signature="e#0#21#0" expanded="true" /> <element signature="e#0#21#0" expanded="true" />
</folding> </folding>
@@ -27,11 +25,6 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-3-cars.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
</file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-5-cars-B.jpg"> <entry file="file://$PROJECT_DIR$/lib/test-images/lot-5-cars-B.jpg">
<provider selected="true" editor-type-id="images" /> <provider selected="true" editor-type-id="images" />
@@ -40,8 +33,8 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/camera.py"> <entry file="file://$PROJECT_DIR$/camera.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105"> <state relative-caret-position="75">
<caret line="7" column="44" selection-start-line="7" selection-start-column="44" selection-end-line="7" selection-end-column="44" /> <caret line="5" column="65" selection-start-line="5" selection-start-column="65" selection-end-line="5" selection-end-column="65" />
<folding> <folding>
<element signature="e#0#13#0" expanded="true" /> <element signature="e#0#13#0" expanded="true" />
</folding> </folding>
@@ -49,6 +42,11 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/capture.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
</file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/.gitignore"> <entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
@@ -59,19 +57,19 @@
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/image_tools.py"> <entry file="file://$PROJECT_DIR$/example.env">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270"> <state relative-caret-position="75">
<caret line="18" column="35" lean-forward="true" selection-start-line="18" selection-start-column="35" selection-end-line="18" selection-end-column="35" /> <caret line="5" column="45" selection-start-line="5" selection-start-column="45" selection-end-line="5" selection-end-column="45" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/example.env"> <entry file="file://$PROJECT_DIR$/image_tools.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30"> <state relative-caret-position="30">
<caret line="2" column="13" selection-start-line="2" selection-end-line="2" selection-end-column="13" /> <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -79,8 +77,8 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/.env"> <entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state> <state relative-caret-position="45">
<caret column="16" selection-start-column="16" selection-end-column="16" /> <caret line="3" column="18" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="18" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -89,7 +87,7 @@
<entry file="file://$PROJECT_DIR$/config.py"> <entry file="file://$PROJECT_DIR$/config.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75"> <state relative-caret-position="75">
<caret line="5" lean-forward="true" selection-start-line="5" selection-end-line="5" /> <caret line="5" selection-start-line="5" selection-end-line="5" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -110,13 +108,13 @@
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
<option value="$PROJECT_DIR$/image_diff_color.py" /> <option value="$PROJECT_DIR$/image_diff_color.py" />
<option value="$PROJECT_DIR$/image_tools.py" />
<option value="$PROJECT_DIR$/.gitignore" /> <option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/config.py" /> <option value="$PROJECT_DIR$/config.py" />
<option value="$PROJECT_DIR$/example.env" /> <option value="$PROJECT_DIR$/example.env" />
<option value="$PROJECT_DIR$/.env" /> <option value="$PROJECT_DIR$/.env" />
<option value="$PROJECT_DIR$/camera.py" /> <option value="$PROJECT_DIR$/camera.py" />
<option value="$PROJECT_DIR$/index.py" /> <option value="$PROJECT_DIR$/index.py" />
<option value="$PROJECT_DIR$/image_tools.py" />
</list> </list>
</option> </option>
</component> </component>
@@ -141,13 +139,7 @@
<path> <path>
<item name="python-backend" type="b2602c69:ProjectViewProjectNode" /> <item name="python-backend" type="b2602c69:ProjectViewProjectNode" />
<item name="python-backend" type="462c0819:PsiDirectoryNode" /> <item name="python-backend" type="462c0819:PsiDirectoryNode" />
<item name="lib" type="462c0819:PsiDirectoryNode" /> <item name="test-images-vert" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="python-backend" type="b2602c69:ProjectViewProjectNode" />
<item name="python-backend" type="462c0819:PsiDirectoryNode" />
<item name="lib" type="462c0819:PsiDirectoryNode" />
<item name="test-images" type="462c0819:PsiDirectoryNode" />
</path> </path>
</expand> </expand>
<select /> <select />
@@ -160,6 +152,11 @@
<property name="last_opened_file_path" value="$PROJECT_DIR$" /> <property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
</component> </component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$" />
</key>
</component>
<component name="RunDashboard"> <component name="RunDashboard">
<option name="ruleStates"> <option name="ruleStates">
<list> <list>
@@ -177,7 +174,7 @@
</component> </component>
<component name="TaskManager"> <component name="TaskManager">
<task active="true" id="Default" summary="Default task"> <task active="true" id="Default" summary="Default task">
<changelist id="57f4d31d-2726-4888-8d46-d2583bdc9c3d" name="Default Changelist" comment="" /> <changelist id="f410c5c2-3ffe-4260-93eb-e3d83256d263" name="Default Changelist" comment="" />
<created>1549681542752</created> <created>1549681542752</created>
<option name="number" value="Default" /> <option name="number" value="Default" />
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
@@ -189,7 +186,7 @@
<frame x="0" y="27" width="1920" height="1053" extended-state="6" /> <frame x="0" y="27" width="1920" height="1053" extended-state="6" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.18133895" /> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.18133895" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
@@ -200,7 +197,7 @@
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Version Control" order="7" /> <window_info anchor="bottom" id="Version Control" order="7" />
<window_info anchor="bottom" id="Terminal" order="8" visible="true" weight="0.32972974" /> <window_info active="true" anchor="bottom" id="Terminal" order="8" visible="true" weight="0.32972974" />
<window_info anchor="bottom" id="Python Console" order="9" /> <window_info anchor="bottom" id="Python Console" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" /> <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
@@ -214,21 +211,38 @@
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-empty.jpg"> <entry file="file://$PROJECT_DIR$/lib/test-images/lot-empty.jpg">
<provider selected="true" editor-type-id="images" /> <provider selected="true" editor-type-id="images" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/test.jpg"> <entry file="file://$PROJECT_DIR$/test.jpg" />
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/capture.jpg"> <entry file="file://$PROJECT_DIR$/capture.jpg">
<provider selected="true" editor-type-id="images" /> <provider selected="true" editor-type-id="images" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-1-car.jpg"> <entry file="file://$PROJECT_DIR$/lib/test-images/lot-1-car.jpg">
<provider selected="true" editor-type-id="images" /> <provider selected="true" editor-type-id="images" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-5-cars-B.jpg"> <entry file="file://$PROJECT_DIR$/lib/test-images/lot-2-cars.jpg">
<provider selected="true" editor-type-id="images" /> <provider selected="true" editor-type-id="images" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-3-cars.jpg"> <entry file="file://$PROJECT_DIR$/lib/test-images/lot-3-cars.jpg">
<provider selected="true" editor-type-id="images" /> <provider selected="true" editor-type-id="images" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-4-cars.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-5-cars-A.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/lib/test-images/lot-5-cars-B.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/config.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="5" selection-start-line="5" selection-end-line="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ref-img.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore"> <entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="45"> <state relative-caret-position="45">
@@ -236,48 +250,41 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/config.py"> <entry file="file://$PROJECT_DIR$/example.env">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75"> <state relative-caret-position="75">
<caret line="5" lean-forward="true" selection-start-line="5" selection-end-line="5" /> <caret line="5" column="45" selection-start-line="5" selection-start-column="45" selection-end-line="5" selection-end-column="45" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/.env"> <entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state> <state relative-caret-position="45">
<caret column="16" selection-start-column="16" selection-end-column="16" /> <caret line="3" column="18" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/image_tools.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="18" column="35" lean-forward="true" selection-start-line="18" selection-start-column="35" selection-end-line="18" selection-end-column="35" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/camera.py"> <entry file="file://$PROJECT_DIR$/camera.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105"> <state relative-caret-position="75">
<caret line="7" column="44" selection-start-line="7" selection-start-column="44" selection-end-line="7" selection-end-column="44" /> <caret line="5" column="65" selection-start-line="5" selection-start-column="65" selection-end-line="5" selection-end-column="65" />
<folding> <folding>
<element signature="e#0#13#0" expanded="true" /> <element signature="e#0#13#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example.env"> <entry file="file://$PROJECT_DIR$/image_tools.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30"> <state relative-caret-position="30">
<caret line="2" column="13" selection-start-line="2" selection-end-line="2" selection-end-column="13" /> <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/index.py"> <entry file="file://$PROJECT_DIR$/index.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225"> <state relative-caret-position="326">
<caret line="24" column="5" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" /> <caret line="24" column="68" lean-forward="true" selection-start-line="24" selection-start-column="68" selection-end-line="24" selection-end-column="68" />
<folding> <folding>
<element signature="e#0#21#0" expanded="true" /> <element signature="e#0#21#0" expanded="true" />
</folding> </folding>

BIN
ai_image.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
ai_image.out.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View File

@@ -1,14 +1,17 @@
import pygame import pygame
import pygame.camera import pygame.camera
import time
def capture(camera_stream = "/dev/video4"): def capture(camera_stream = "/dev/video0", camera_res = (640, 480)):
pygame.camera.init() pygame.camera.init()
pygame.camera.list_cameras() pygame.camera.list_cameras()
cam = pygame.camera.Camera(camera_stream, (640, 480)) cam = pygame.camera.Camera(camera_stream, camera_res)
cam.start() cam.start()
time.sleep(5)
img = cam.get_image() img = cam.get_image()
pygame.image.save(img, './capture.jpg') pygame.image.save(img, './capture.jpg')
cam.stop()
return './capture.jpg' return './capture.jpg'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -1,6 +1,6 @@
POLL_FREQUENCY=15 POLL_FREQUENCY=15
FIREBASE_CERT_FILE="hackku-ffffffffffff.json" FIREBASE_CERT_FILE="hackku-272b6e79b2a9.json"
CAMERA_DEVICE="/dev/video4" CAMERA_DEVICE="/dev/video0"
LOT_NAME="Lot1" LOT_NAME="Lot26"
REFERENCE_IMAGE="./lib/test-images/lot-empty.jpg" E_HAT_TRIGGER_LEVEL=4
E_HAT_TRIGGER_LEVEL=4 BACKEND_URL="https://waitnomore.glmdev.tech/"

View File

@@ -1,8 +1,8 @@
def average_color(x, y, n, image): def average_color(x, y, w, h, image):
r, g, b = 0, 0, 0 r, g, b = 0, 0, 0
count = 0 count = 0
for s in range(x, x + n + 1): for s in range(x, x + w + 1):
for t in range(y, y + n + 1): for t in range(y, y + h + 1):
pixlr, pixlg, pixlb = image[s, t] pixlr, pixlg, pixlb = image[s, t]
r += pixlr r += pixlr
g += pixlg g += pixlg

View File

@@ -2,7 +2,9 @@ import firebase_admin
from firebase_admin import credentials from firebase_admin import credentials
from firebase_admin import firestore from firebase_admin import firestore
from PIL import Image from PIL import Image
import time, os import time
import os
import urllib.request
import camera import camera
import image_tools import image_tools
@@ -16,25 +18,33 @@ firebase_admin.initialize_app(cred)
db = firestore.client() db = firestore.client()
doc_ref_lot1 = db.collection(os.getenv('LOT_NAME')) doc_conf = db.collection('configurations').document(os.getenv('CONFIG_CODE')).get().to_dict()
print(doc_conf)
def poll(): def poll():
doc_ref_lot = db.collection('lots').document(doc_conf['lot_id'])
# Get the reference image
lot_info = doc_ref_lot.collection('info').document('lotInfo').get().to_dict()
urllib.request.urlretrieve(os.getenv('BACKEND_URL')+'img/references/'+lot_info['refImage'], './ref-img.jpg')
reference = Image.open('./ref-img.jpg').load()
# Take the picture # Take the picture
img = Image.open(camera.capture(os.getenv('CAMERA_DEVICE'))).load() img = Image.open(camera.capture(doc_conf['stream'])).load()
#img = Image.open('./lib/test-images/lot-empty.jpg').load() #img = Image.open('./lib/test-images-vert/lot-3-cars.jpg').load()
reference = Image.open(os.getenv('REFERENCE_IMAGE')).load()
stalls = doc_ref_lot1.get() doc_ref_stalls = doc_ref_lot.collection('stalls').get()
for stall in stalls: for stall in doc_ref_stalls:
stall_obj = stall.to_dict() stall_obj = stall.to_dict()
color_reference = image_tools.average_color(stall_obj['locationX'], stall_obj['locationY'], stall_obj['sideN'], reference) color_reference = image_tools.average_color(stall_obj['locationX'], stall_obj['locationY'], stall_obj['width'], stall_obj['height'], reference)
color_compare = image_tools.average_color(stall_obj['locationX'], stall_obj['locationY'], stall_obj['sideN'], img) color_compare = image_tools.average_color(stall_obj['locationX'], stall_obj['locationY'], stall_obj['width'], stall_obj['height'], img)
stall_occupied = image_tools.threshold(image_tools.differences(color_reference, color_compare), float(os.getenv('E_HAT_TRIGGER_LEVEL'))) stall_occupied = image_tools.threshold(image_tools.differences(color_reference, color_compare), float(doc_conf['e_hat']))
print(doc_conf['e_hat'])
stall_obj['open'] = not stall_occupied stall_obj['open'] = not stall_occupied
print(stall.id) print("Updated: "+stall.id)
db.collection(u'Lot1').document(stall.id).set( stall_obj )
doc_ref_lot.collection('stalls').document(stall.id).set(stall_obj)
start_time = time.time() start_time = time.time()
@@ -42,4 +52,6 @@ start_time = time.time()
while True: while True:
poll() poll()
poll_time = float(os.getenv('POLL_FREQUENCY')) poll_time = float(os.getenv('POLL_FREQUENCY'))
doc_conf = db.collection('configurations').document(os.getenv('CONFIG_CODE')).get().to_dict()
print(doc_conf)
time.sleep(poll_time - ((time.time() - start_time) % poll_time)) time.sleep(poll_time - ((time.time() - start_time) % poll_time))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 51 KiB

BIN
ref-img.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

14
tensor.py Normal file
View File

@@ -0,0 +1,14 @@
from imageai.Detection import ObjectDetection
import os
execution_path = os.getcwd()
detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath(os.path.join(execution_path, "resnet50_coco_best_v2.0.1.h5"))
detector.loadModel()
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path, "ai_image.jpg"), output_image_path=os.path.join(execution_path , "ai_image.out.jpg"))
for eachObject in detections:
print(eachObject["name"] , " : " , eachObject["percentage_probability"] )

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB