Skip to content

Instantly share code, notes, and snippets.

@choowilson
choowilson / UNetFromScratch.java
Created August 10, 2020 08:04
work in progress.
package global.skymind.training.segmentation.car;
import org.deeplearning4j.nn.api.OptimizationAlgorithm;
import org.deeplearning4j.nn.conf.*;
import org.deeplearning4j.nn.conf.graph.MergeVertex;
import org.deeplearning4j.nn.conf.inputs.InputType;
import org.deeplearning4j.nn.conf.layers.*;
import org.deeplearning4j.nn.graph.ComputationGraph;
import org.deeplearning4j.nn.weights.WeightInit;
import org.nd4j.linalg.activations.Activation;
@choowilson
choowilson / face-alignment.py
Created May 24, 2020 08:20
face alignment webcam
import cv2
import face_alignment
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from skimage import io
import collections
from timeit import default_timer as timer
# Run the 3D face alignment on a test image, without CUDA.
fa = face_alignment.FaceAlignment(face_alignment.LandmarksType._2D, device='cpu', flip_input=True, face_detector='sfd')
def thresh_callback(val):
threshold = val
_,thres_out = cv.threshold(src_gray, 230, 255,
cv.THRESH_BINARY)
canny_output = cv.Canny(thres_out, threshold, threshold * 2)
contours, _ = cv.findContours(canny_output, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
@choowilson
choowilson / NativeImageLoaderImshowPairExample.java
Created February 24, 2020 03:50
If you are using a pair of NativeImageLoader from DataVec and opencv's imshow. You need to divide the matrix by 255(normalize) first else only a white image will appear. If you use opencv imread and imshow as a pair then there will be no problem.
import org.datavec.image.loader.NativeImageLoader;
import org.nd4j.linalg.api.ndarray.INDArray;
import static org.bytedeco.opencv.global.opencv_highgui.*;
NativeImageLoader nil = new NativeImageLoader(416,416, 3);
INDArray image = nil.asMatrix("C:\\Users\\choowilson\\Desktop\\potato.jpg").div(255.0);
Mat mat = nil.asMat(image);
imshow("Output",mat);
waitKey(0);
destroyAllWindows();
@choowilson
choowilson / yolov2dl4j.java
Created February 17, 2020 10:02
load pretrained yolov2,darknet-19 and perform real time inference on video and save to another new output video file.
import org.bytedeco.ffmpeg.global.avcodec;
import org.bytedeco.ffmpeg.global.avutil;
import org.bytedeco.javacv.*;
import org.bytedeco.opencv.opencv_core.*;
import static org.bytedeco.opencv.global.opencv_imgproc.*;
import static org.bytedeco.opencv.helper.opencv_core.RGB;
import org.bytedeco.opencv.opencv_videoio.VideoWriter;
import org.datavec.image.loader.NativeImageLoader;
@choowilson
choowilson / KerasModelImport.java
Created February 12, 2020 07:45
method to import keras model in dl4j
import org.deeplearning4j.nn.graph.ComputationGraph;
import org.deeplearning4j.nn.modelimport.keras.KerasModelImport;
import org.deeplearning4j.nn.modelimport.keras.exceptions.InvalidKerasConfigurationException;
import org.deeplearning4j.nn.modelimport.keras.exceptions.UnsupportedKerasConfigurationException;
public void initKeras() throws InvalidKerasConfigurationException, IOException, UnsupportedKerasConfigurationException {
ComputationGraph model = KerasModelImport.importKerasModelAndWeights("model.h5");
}
@choowilson
choowilson / CustomKeyListener.java
Created January 10, 2020 03:31
Using Keylistener interface in java to listen for keyboard key press
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class MyKeylistener implements KeyListener {
@Override
public void keyPressed(KeyEvent keyEvent) {
if (keyEvent.getKeyCode() == KeyEvent.VK_ENTER){
System.out.println("ENTER Pressed");
}
@choowilson
choowilson / testSSH.java
Created December 11, 2019 08:53
use SSHJ to ssh to target and run a command
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.connection.channel.direct.Session;
import net.schmizz.sshj.transport.verification.PromiscuousVerifier;
import java.io.IOException;
public class sendCommand {
public static void main(String[] args) throws IOException {
final SSHClient ssh = new SSHClient();
ssh.addHostKeyVerifier(new PromiscuousVerifier());
@choowilson
choowilson / testSSH.java
Created December 11, 2019 08:53
use SSHJ to ssh to target and run a command
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.connection.channel.direct.Session;
import net.schmizz.sshj.transport.verification.PromiscuousVerifier;
import java.io.IOException;
public class sendCommand {
public static void main(String[] args) throws IOException {
final SSHClient ssh = new SSHClient();
ssh.addHostKeyVerifier(new PromiscuousVerifier());
@choowilson
choowilson / switchOnGPIO.py
Created December 11, 2019 03:26
example python script to switch on GPIO pin on Raspi
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD) # Raspi board GPIO Pin Number
GPIO.setup(11, GPIO.OUT) # Output pin is GPIO Pin 17
# Initial state for LEDs:
print("Testing GPIO Pin11 out, Press CTRL+C to exit")