Skip to content

Instantly share code, notes, and snippets.

View jainxy's full-sized avatar

Vishal Jain jainxy

  • Bengaluru, India
View GitHub Profile
@jainxy
jainxy / Useful Links on Tech
Last active January 28, 2024 11:29
Good resources over web on variety of tech topics
@jainxy
jainxy / YUV_formats.md
Created July 13, 2023 11:11 — forked from Jim-Bar/YUV_formats.md
About YUV formats

About YUV formats

First of all: YUV pixel formats and Recommended 8-Bit YUV Formats for Video Rendering. Chromium's source code contains good documentation about those formats too: chromium/src/media/base/video_types.h and chromium/src/media/base/video_frame.cc (search for RequiresEvenSizeAllocation(), NumPlanes() and those kinds of functions).

YUV?

You can think of an image as a superposition of several planes (or layers in a more natural language). YUV formats have three planes: Y, U, and V.

Y is the luma plane, and can be seen as the image as grayscale. U and V are reffered to as the chroma planes, which are basically the colours. All the YUV formats have these three planes, and differ by the different orderings of them.

@jainxy
jainxy / ffmpeg.md
Created August 22, 2022 19:23 — forked from steven2358/ffmpeg.md
FFmpeg cheat sheet
@jainxy
jainxy / models_def_samples_pub.py
Created March 3, 2021 04:41
Model architecture samples
"""
A collection of models we'll use to attempt to classify videos.
"""
from keras.layers import Dense, Flatten, Dropout, ZeroPadding3D
from keras.layers.recurrent import LSTM
from keras.models import Sequential, load_model
from keras.optimizers import Adam, RMSprop
from keras.layers.wrappers import TimeDistributed
from keras.layers.convolutional import (Conv2D, MaxPooling3D, Conv3D,
MaxPooling2D)
@jainxy
jainxy / keras_samples.py
Created March 3, 2021 04:39
Keras and related code samples
"""
Training
Validation on a holdout set generated from the original training data
Evaluation on the test data
- correct and test batch generation
- Normalize input by 255?
- add batchnorm layers? use model(x, training=False) then
- tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(batch_size) ? dataset = dataset.cache()?
- get_compiled_model()
- test last batch having non-dividing batch-size aka residual batch issue
@jainxy
jainxy / scikit_samples.py
Created March 3, 2021 04:37
Scikit-learn and related code samples
# Which attributes/features to choose?
# Which model to use?
# Tune/optimize the chosen model for the best performance
# Ensuring the trained model will generalize to unseen data
# Estimate performance of the trained model on unseen data
# imports
import sklearn
import IPython.display
import matplotlib.pyplot as plt
@jainxy
jainxy / git-bundles.md
Created February 23, 2021 11:04 — forked from PHPirates/git-bundles.md
How to use git bundles

Let machine M be the Main machine with the repo, and A the Auxiliary machine which wants to help out.

First time setup

  1. Machine M creates bundle with complete repo:
git bundle create repo.bundle HEAD master
  1. M sends repo.bundle to A.
  2. A clones repo from bundle:
@jainxy
jainxy / Dockerfile notes
Last active October 26, 2020 04:52
Description of various commands available for usage in the dockerfile
References -
1. https://www.howtoforge.com/tutorial/how-to-create-docker-images-with-dockerfile/
2. https://takacsmark.com/dockerfile-tutorial-by-example-dockerfile-best-practices-2018/
3. https://docs.docker.com/engine/reference/builder/
Notes -
- A script or receipe having collection of commands and instructions, which will be executed in sequence, to build a new docker image.
- Below are some Dockerfile commands and their usage.
1. FROM
- Base docker image to build new image on top. This is 1st command in the Dockerfile. E.g. dockerized ubuntu image.
@jainxy
jainxy / video_to_frames.py
Created September 19, 2020 08:19 — forked from HaydenFaulkner/video_to_frames.py
Fast frame extraction from videos using Python and OpenCV
from concurrent.futures import ProcessPoolExecutor, as_completed
import cv2
import multiprocessing
import os
import sys
def print_progress(iteration, total, prefix='', suffix='', decimals=3, bar_length=100):
"""
Call in a loop to create standard out progress bar
@jainxy
jainxy / video_to_frames_decord.py
Created September 19, 2020 08:17 — forked from HaydenFaulkner/video_to_frames_decord.py
decord version of video_to_frame.py
import cv2 # still used to save images out
import os
import numpy as np
from decord import VideoReader
from decord import cpu, gpu
def extract_frames(video_path, frames_dir, overwrite=False, start=-1, end=-1, every=1):
"""
Extract frames from a video using decord's VideoReader