Skip to content

Instantly share code, notes, and snippets.

View J3698's full-sized avatar
🐛
Inch Worm

Anti J3698

🐛
Inch Worm
  • Working
  • Working
View GitHub Profile
@J3698
J3698 / setup_pipeline.py
Created September 7, 2021 16:39
Set up pipeline for simple model OAK-1
def setup_pipeline():
pipeline = depthai.Pipeline()
cam_rgb = pipeline.createColorCamera()
cam_rgb.setPreviewSize(256, 256)
cam_rgb.setInterleaved(False)
detection_nn = pipeline.createNeuralNetwork()
detection_nn.setBlobPath("./exports/test_openvino_2021.4_5shave.blob")
cam_rgb.preview.link(detection_nn.input)
@J3698
J3698 / blob_conversion.py
Created September 7, 2021 16:24
Convert OpenVINO to blob
import blobconverter
def convert_blob(name):
xmlfile = os.path.join("./exports", name) + ".xml"
binfile = os.path.join("./exports", name) + ".bin"
blob_path = blobconverter.from_openvino(
xml = xmlfile,
bin = binfile,
data_type = "FP16",
@J3698
J3698 / optimize_model.py
Created September 7, 2021 16:18
Optimize model for OAK-1
def optimize_model(name):
optimizer_path = "/opt/intel/openvino_2020.1.023/" + \
"deployment_tools/model_optimizer/mo.py"
subprocess.run(["python3", optimizer_path,
"--input_model", f"./exports/{name}.onnx",
"--data_type", "FP16"])
os.rename(name + ".bin", os.path.join("./exports", name + ".bin"))
os.rename(name + ".xml", os.path.join("./exports", name + ".xml"))
os.rename(name + ".mapping", os.path.join("./exports", name + ".mapping"))
@J3698
J3698 / export_test_model.py
Created September 7, 2021 16:03
Export simple test model
def export_test():
image = torch.ones((1, 3, 256, 256), requires_grad = False)
model = Test()
torch.onnx.export(model, image, "exports/test.onnx",
export_params = True,
opset_version = 11,
do_constant_folding = True,
input_names = ['input'],
output_names = ['output']
@J3698
J3698 / test_model.py
Created September 7, 2021 16:03
Test model for the OAK-1
class Test(nn.Module):
def __init__(self):
super().__init__()
def forward(self, x):
return x / 2
@J3698
J3698 / export_and_run.py
Created September 7, 2021 15:55
Putting a model onto the OAK-1
def main():
clear_exports()
export_test()
optimize_model("test")
convert_blob("test")
pipeline = setup_pipeline()
run_pipeline(pipeline)
@J3698
J3698 / toggleExtexify.js
Last active September 6, 2021 19:15
Toggle extexify UI
function toggleExtexify() {
document.getElementsByClassName("extexify-pane")[0].classList.toggle("fade-out")
document.getElementsByClassName("extexify-backdrop")[0].classList.toggle("fade-out")
var canvas = document.getElementById("extexify-canvas");
canvas.width = canvas.clientWidth;
canvas.height = canvas.clientHeight;
points = [[]];
}
@J3698
J3698 / addExtexifyPane.js
Last active September 6, 2021 18:56
Add Extexify UI Pane
function addExtexifyPane() {
const editor = document.getElementById("editor")
const extexifyPane = document.createElement("div");
extexifyPane.classList.add("extexify-pane")
editor.appendChild(extexifyPane)
const backdrop = document.createElement("div");
backdrop.classList.add("extexify-backdrop")
editor.appendChild(backdrop)
@J3698
J3698 / extexify_frontend_overview.js
Last active September 6, 2021 00:53
extexify_frontend_overview
addExtexifyButton()
addExtexifyPane()
addToggleExtexifyCallbacks()
hideExtexify()
clearCanvas()
addDrawingCallbacks()
@J3698
J3698 / addExtexifyButton.js
Last active September 6, 2021 01:24
Add Extexify Toggle Button
function addExtexifyButton() {
document.getElementsByClassName('formatting-buttons-wrapper')[0].innerHTML = `
<span class="toggle-switch toggle-extexify-button" style="margin-left: 15px;">
extexify
</span>
`;
}