Skip to content

Instantly share code, notes, and snippets.

View moorage's full-sized avatar

Matthew Moore moorage

View GitHub Profile

Keybase proof

I hereby claim:

  • I am moorage on github.
  • I am mattmoore (https://keybase.io/mattmoore) on keybase.
  • I have a public key whose fingerprint is FEF6 302D 2C55 397C 0F6B 0757 1367 2E91 63F6 628A

To claim this, I am signing this object:

@moorage
moorage / bounding-boxes-darknet.diff
Created June 5, 2017 14:18
The diff for darknet to output bounding boxes. I'm using the command: `./darknet detect cfg/yolo.cfg yolo.weights ~/Desktop/color_31.jpg`
diff --git a/examples/detector.c b/examples/detector.c
index 0a31fc2..5764567 100644
--- a/examples/detector.c
+++ b/examples/detector.c
@@ -364,7 +364,7 @@ void validate_detector_flip(char *datacfg, char *cfgfile, char *weightfile, char
if(fps) fclose(fps[j]);
}
if(coco){
- fseek(fp, -2, SEEK_CUR);
+ fseek(fp, -2, SEEK_CUR);
@moorage
moorage / github_graphql.rs
Created May 27, 2018 20:11
Easy function to call GitHub's GraphQL server in Rust.
// Example usage:
// let github_details = github_graphql_query(
// &"some_oauth_access_token",
// &"query { viewer { email name login id location websiteUrl } }",
// )?;
//
// Cargo.toml:
// ..
// [dependencies]
// rocket = "0.3.11"
@moorage
moorage / fetch_github_primary_email.rs
Last active May 28, 2018 19:07
Easy function to call to fetch the primary email address of a user in Rust.
// Example usage:
// let github_email = fetch_github_primary_email(&some_access_token)?;
//
// Cargo.toml:
// ..
// [dependencies]
// rocket = "0.3.11"
// curl = "0.4"
// serde = "1.0"
// serde_json = "1.0"
@moorage
moorage / google_cloud_storage_multiple_file_zip.go
Last active June 28, 2018 05:24
Zip all the google cloud storage files with a prefix, and upload it back into the prefix.
var StorageBucket string // google storage bucket name
var PrefixToZip string // the prefix you want to zip
var ArchiveZipFilename string // the ultimate name of the zipfile, e.g. archive.zip
var GoogleCloudClientOption option.ClientOption // can load creds from a json file with this, e.g. GoogleCloudClientOption = option.WithCredentialsFile(jsonFile)
var LogContext string // additional logging string
// Download all files & zip (named ArchiveZipFilename) from gcloud prefix (PrefixToZip)
func main() {
@moorage
moorage / available-ubuntu-family-os-types-google-cloud.txt
Created June 30, 2018 00:00
The available Ubuntu OS Types on Google Cloud
ubuntu-1204-precise-v20141028
ubuntu-1204-precise-v20141031
ubuntu-1204-precise-v20141212
ubuntu-1204-precise-v20150127
ubuntu-1204-precise-v20150316
ubuntu-1204-precise-v20150616
ubuntu-1204-precise-v20150625
ubuntu-1204-precise-v20150831c
ubuntu-1204-precise-v20150910
ubuntu-1204-precise-v20151119
@moorage
moorage / blender_center_of_object_collection.py
Created July 9, 2018 04:00
Python function that returns the (x,y,z) typle of the center of multiple objects, within blender
cntr = _center_of_object_collection([ D.objects['obj_example1'], D.objects['obj_example2'], ... ])
def _center_of_object_collection(obs):
min_x = max_x = min_y = max_y = min_z = max_z = None
for ob in obs:
local_vertices = ob.bound_box[:]
worldify = lambda p: ob.matrix_world * Vector(p[:])
world_vertices = [worldify(p).to_tuple() for p in local_vertices]
for (x,y,z) in world_vertices:
if min_x is None or x < min_x:
@moorage
moorage / save-aligned-pyrealsense2-images.py
Last active September 20, 2018 00:46
pyrealsense2 implementation for saving numpy arrays for aligned depth
# On macOS, you'll need to build the wrapper and export PYTHONPATH=$PYTHONPATH:/____PATH_TO____/librealsense/build/wrappers/python/Debug
import pyrealsense2 as rs
import numpy as np
# Give time for auto-exposure to kick in
CAPTURES_BEFORE_SAVING = 10
# Create a context object. This object owns the handles to all connected realsense devices
rs_pipeline = rs.pipeline()
@moorage
moorage / world_to_camera_normal.py
Created September 28, 2018 05:18
Convert blender world normals EXR to camera normal
import numpy as np
import OpenEXR, Imath
from scipy.misc import imsave
INPUT_EXR_NORMALS_FILE = '1-world.exr'
OUTPUT_RGB_NORMAL_FILE = '1-world-to-camera.png'
INVERTED_CAMERA_QUARTERNION = np.array([0.8127532005310059, -0.456145316362381, 0.17738527059555054, 0.31606677174568176], dtype=np.float32)
X_CHANNEL_NAME = 'RenderLayer.Normal.X'
Y_CHANNEL_NAME = 'RenderLayer.Normal.Y'
@moorage
moorage / greppy_metaverse_dataset_renamer.py
Last active October 4, 2018 23:41
For a Greppy Metaverse dataset: rearrange non-contiguous scenes in a dataset, generate camera normals, move to separate folders.
import os, fnmatch, argparse
import numpy as np
import OpenEXR, Imath, json
import shutil, glob
# TODO update to handle stereo camera
#
# python3 greppy_metaverse_dataset_renamer.py --p /path/to/dataset
SUBFOLDER_MAP = {