Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2020-077
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
2
Issues
2
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2020-077
2020-077
Commits
17524293
Commit
17524293
authored
Oct 13, 2020
by
Manoj Dharmaraja
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test teachable machine
parent
e945cfe8
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
102 additions
and
0 deletions
+102
-0
test-python-module/keras_model.h5
test-python-module/keras_model.h5
+0
-0
test-python-module/my_model/metadata.json
test-python-module/my_model/metadata.json
+1
-0
test-python-module/my_model/model.json
test-python-module/my_model/model.json
+1
-0
test-python-module/my_model/weights.bin
test-python-module/my_model/weights.bin
+0
-0
test-python-module/tf.py
test-python-module/tf.py
+40
-0
test-python-module/tm.html
test-python-module/tm.html
+60
-0
No files found.
test-python-module/keras_model.h5
0 → 100644
View file @
17524293
File added
test-python-module/my_model/metadata.json
0 → 100644
View file @
17524293
{
"tfjsVersion"
:
"1.3.1"
,
"tmVersion"
:
"2.2.2"
,
"packageVersion"
:
"0.8.4"
,
"packageName"
:
"@teachablemachine/image"
,
"timeStamp"
:
"2020-10-05T14:23:52.574Z"
,
"userMetadata"
:{},
"modelName"
:
"tm-my-image-model"
,
"labels"
:[
"Left Hand"
,
"Right Hand"
]}
\ No newline at end of file
test-python-module/my_model/model.json
0 → 100644
View file @
17524293
This diff is collapsed.
Click to expand it.
test-python-module/my_model/weights.bin
0 → 100644
View file @
17524293
File added
test-python-module/tf.py
0 → 100644
View file @
17524293
import
tensorflow.keras
from
PIL
import
Image
,
ImageOps
import
numpy
as
np
import
cv2
import
os
# Disable scientific notation for clarity
np
.
set_printoptions
(
suppress
=
True
)
# Load the model
model
=
tensorflow
.
keras
.
models
.
load_model
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'keras_model.h5'
))
# Create the array of the right shape to feed into the keras model
# The 'length' or number of images you can put into the array is
# determined by the first position in the shape tuple, in this case 1.
data
=
np
.
ndarray
(
shape
=
(
1
,
224
,
224
,
3
),
dtype
=
np
.
float32
)
# Replace this with the path to your image
#image = Image.open('test_photo.jpg')
cap
=
cv2
.
VideoCapture
(
0
)
ret
,
image
=
cap
.
read
()
#resize the image to a 224x224 with the same strategy as in TM2:
#resizing the image to be at least 224x224 and then cropping from the center
size
=
(
224
,
224
)
#image = ImageOps.fit(image, size, Image.ANTIALIAS)
#turn the image into a numpy array
image_array
=
np
.
asarray
(
image
)
# display the resized image
image
.
show
()
# 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
)
print
(
prediction
)
\ No newline at end of file
test-python-module/tm.html
0 → 100644
View file @
17524293
<div>
Teachable Machine Image Model
</div>
<button
type=
"button"
onclick=
"init()"
>
Start
</button>
<div
id=
"webcam-container"
></div>
<div
id=
"label-container"
></div>
<script
src=
"https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.1/dist/tf.min.js"
></script>
<script
src=
"https://cdn.jsdelivr.net/npm/@teachablemachine/image@0.8/dist/teachablemachine-image.min.js"
></script>
<script
type=
"text/javascript"
>
// More API functions here:
// https://github.com/googlecreativelab/teachablemachine-community/tree/master/libraries/image
// the link to your model provided by Teachable Machine export panel
const
URL
=
"
./my_model/
"
;
let
model
,
webcam
,
labelContainer
,
maxPredictions
;
// Load the image model and setup the webcam
async
function
init
()
{
const
modelURL
=
URL
+
"
model.json
"
;
const
metadataURL
=
URL
+
"
metadata.json
"
;
// load the model and metadata
// Refer to tmImage.loadFromFiles() in the API to support files from a file picker
// or files from your local hard drive
// Note: the pose library adds "tmImage" object to your window (window.tmImage)
model
=
await
tmImage
.
load
(
modelURL
,
metadataURL
);
maxPredictions
=
model
.
getTotalClasses
();
// Convenience function to setup a webcam
const
flip
=
true
;
// whether to flip the webcam
webcam
=
new
tmImage
.
Webcam
(
200
,
200
,
flip
);
// width, height, flip
await
webcam
.
setup
();
// request access to the webcam
await
webcam
.
play
();
window
.
requestAnimationFrame
(
loop
);
// append elements to the DOM
document
.
getElementById
(
"
webcam-container
"
).
appendChild
(
webcam
.
canvas
);
labelContainer
=
document
.
getElementById
(
"
label-container
"
);
for
(
let
i
=
0
;
i
<
maxPredictions
;
i
++
)
{
// and class labels
labelContainer
.
appendChild
(
document
.
createElement
(
"
div
"
));
}
}
async
function
loop
()
{
webcam
.
update
();
// update the webcam frame
await
predict
();
window
.
requestAnimationFrame
(
loop
);
}
// run the webcam image through the image model
async
function
predict
()
{
// predict can take in an image, video or canvas html element
const
prediction
=
await
model
.
predict
(
webcam
.
canvas
);
for
(
let
i
=
0
;
i
<
maxPredictions
;
i
++
)
{
const
classPrediction
=
prediction
[
i
].
className
+
"
:
"
+
prediction
[
i
].
probability
.
toFixed
(
2
);
labelContainer
.
childNodes
[
i
].
innerHTML
=
classPrediction
;
}
}
</script>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment