Skip to content

Instantly share code, notes, and snippets.

Avatar

Tejus Gupta tejus-gupta

View GitHub Profile
@tejus-gupta
tejus-gupta / summary.md
Last active Dec 12, 2019
Google Summer of Code - 2017
View summary.md

Project Abstract

I proposed to

  1. Add a package for image segmentation as part of JuliaImages with several algorithms -
  • Thresholding - Otsu’s method and Adaptive thresholding
  • K-means clustering
  • Mean shift segmentation
  • Watershed segmentation
  • Felzenszwalb's efficient region merging algorithm
  • Shi and Malik’s normalized graph-cut based segmentation
View read.py
if message_type == 'user_read':
key,_ = data.split('|')
highest_version = -1
highest_version_value = ''
#nodes = random.sample([(hash(key)+i)%N for i in range(R)], Q_r)
#nodes = random.sample(get_next_live_inc(hash(key), R), Q_r)
nodes = get_next_live_inc(hash(key), R)
View example.launch
<launch>
<!--
NOTE: You'll need to bring up something that publishes sensor data (see
rosstage), something that publishes a map (see map_server), and something to
visualize a costmap (see nav_view), to see things work.
Also, on a real robot, you'd want to set the "use_sim_time" parameter to false, or just not set it.
-->
<param name="/use_sim_time" value="true"/>
View lattice-planner.md

State lattice-based planning

tl;dr

The kinodynamics constraints of the robot are encoded in the state lattice graph and any path in this graph is feasible. After constructing the graph, any graph search algorithm can be used for planning.

Algorithm

A robot's configuration space is usually discretized to reduce computational complexity of planning at the expense of completeness. However, it is difficult to search this space while satisfying the robot's differential constraints. State lattices are a special way of discretization of robot state space that ensures (by construction) that any path in the graph complies with the robot's constraints, thereby eliminating the need to consider them explicitly during planning.

View remove.py
to_remove = []
for class_idx in selected_classes:
if np.sum(y_train[:, class_idx] < 0.5) < 5 or np.sum(y_train[:, class_idx] > 0.5) < 5:
to_remove.append(class_idx)
for class_idx in to_remove:
selected_classes.remove(class_idx)
print('Removed classes with too few examples')
View debug_dataloader.py
import os
import sys
import yaml
import time
import shutil
import torch
import random
import argparse
import datetime
import numpy as np
View debug.py
import os
import sys
import yaml
import time
import shutil
import torch
import random
import argparse
import datetime
import numpy as np
@tejus-gupta
tejus-gupta / setup.sh
Last active Oct 10, 2018
Download dataset and training code for tensorpad
View setup.sh
mkdir train_set
cd train_set
wget https://gist.githubusercontent.com/tejus-gupta/3d4564e624cad79691706a5c1303f4c6/raw/3cafe4877f981e3f3c481727d0a90db519a4e95b/download.py
python download.py
unzip -qq masks.zip
unzip -qq train_data.zip
cd ..
git clone https://github.com/tejus-gupta/Segmentation
cd Segmentation
git checkout modelD
You can’t perform that action at this time.