Mobile Chess App
  • iOS Game Application
  • Unique chess/puzzle game
  • Programmed with Cocos2d
Object Oriented Engineering
  • Java Swing Application
  • FaceMap Social Application
  • FaceMap OO Design Principles

Computer Graphics
  • Ray casting on stationary objects
  • Open GL rendering of a room
  • Rendering of animated tiger
Mobile Music Utility
  • iOS Music Application
  • Metronome, Timer, Recorder
  • Accurate Tuner, Tone generator
Motion Planning Algorithms
  • Bug1/Bug2
  • Potential Field
  • Probabilistic Roadmap Method
  • Dynamic Obstacles Motion Planning

Computer Integrated Surgery
  • Fully functional computer assisted biopsy system
  • Programs to find 3D-3D, 2D-3D transformations
Artificial Intelligence
  • Direct Encoding Genetic Algorithm
  • Evolutionary Decision Tree
  • 100% Accuracy, Precision
Machine Learning
  • Novel approach to Document Classification
  • Online KNN
  • High Dimensional Feature Reduction

Computer Vision
  • Background Subtraction
  • Lucas Kanade optical flow
  • Template model matching

Computer Science Research

 

  • Design and implement machine learning, computer vision, computer graphics algorithms to detect, track, and create graphs for mitochondria and axoplasmic reticula in nanoscale images taken with electron microscopy.
  • Create highly efficient image processing techniques to enhance blurry and noisy images for detection.
  • Techniques used include
    • Image enhancement
    • Gaussian filter
    • Calculating image gradients
    • Canny edge detection
    • Tracing the gradient
    • Heuristic to complete lines
    • Elliptical detection
    • Super voxels
    • Radon-like segmentation features
    • Ray features for ada boost
  • Use mathematical analysis to compensate missing or calculate misaligned frames in the data set to produce a continuous trace through the slices producing 3D models of the object.
  • Software development of trace truth images for mitochondria and axoplasmic reticula to use as comparison against algorithmic results.

Publication:

Huang, C. (2012). Novel Algorithms for Effective Identification and 3D Tracking of Axoplasmic Reticula. Poster presented at Turning Images to Knowledge, HHMI Janelia Farm, Virginia, October 28-31, 2012 (pp. 33)

Truthing of Cell Bodies

 

Frame 1
Frame 48
Base Images
Image Enhancement to improve contrast
Gaussian Filter to remove noise
Gradient Calculation to show change
Canny Edge Detection
Add, Move, Remove Extra or Unwanted Points
Edge Tracing to Obtain Contours
Ellipse Detection Exclusion Criteria
Final - Red Indicate Identified Axoplasmic Reticula
Manually Truthed Results

Mobile Chess App - Head On

Head On is a unique, fun, exciting, and challenging chess like board game. Come challenge our surprisingly difficult AI, play against your friends in a head to head match, or challenge people from around the world!


Features

  • 10 Unique animated characters
  • 3 Different fields to play on
  • 4 Challenging AI levels to play against
  • 4 Amazing world settings
  • Gain experience to earn stars, moons, and suns
  • Resume save games anytime anywhere
  • Asynchronous multiplayer mode against random opponents
  • Detailed profile with recorded statistics

The possibilities are endless!!







Do you have what it takes to take on the game and become Master of the Universe? Come check us out today!!



Mobile Music Utility - Eurhythmic

A comprehensive music utility with colorful, easy-to-use user interface that will ease the life of the everyday musician by providing three key applications: metronome, tuner/tone generator, and record/playback.


Metronome

  • Clear, easy to adjust tempo with corresponding names
  • Allow custom key signatures up to 16th notes and 12 beats per measure
  • User selection for accents on any beat
  • 15 custom tones to choose for both accent and regular beat
  • Stop-watch to keep track of practice time

Tuner/Tone Generator

  • Accurate tuner that responds well to any instrument
  • Tuning wheel that accurately points towards tone with indicator for in tune
  • Tone generator capable of generating quality tones for every note
  • Easy controls for changing notes, sharps, flats, octaves

Recorder/Playback

  • Easily customize your own recordings and store them all in one place
  • Supports deleting, reordering, and renaming tracks
  • Email any track to all your friends or yourself
  • Side scrolling text so you don't miss out on lengthy titles
  • Supports computer imports of m4a music files

The possibilities are endless!!







Come check us out today!!



Direct Encoding Genetic Algorithm (DEGA)

A novel form of genetic algorithm called Direct Encoding Genetic Algorithm (DEGA) for highly accurate and efficient data classification for hard machine learning problems


Algorithm Walkthrough

  • Randomized genetic sequence for base population with each gene representing a node of the tree
  • Use DEGA to map each genetic sequence in the population into decision trees
  • Calculate fitness function for each decision tree and sort gene sequences by rank
  • Use selective elitism to find parents for the next generation
  • Use cross-over mutation in conjunction with random mutation to form next generation
  • Terminate algorithm on convergence or after a set number of iterations

Publication:

Huang, C. (2013). Novel Genetic Algorithm for Highly Accurate Data Classification. Paper presented at Complexity, Cybernetics, and Informing Science and Engineering, Porto, Portugal, June 30 - July 6, 2013 (pp. 281-289)

Object Oriented Software Engineering

Failed to load :(

 

Cartagena Game Rules
  1. Both players start at the top left; Player 1 always starts first.
  2. Player 1 cards are located on the left and player 2 cards are located on the right.
  3. Player 1 pieces are squares and player 2 pieces are circles.
  4. Color order is Blue, Green, Orange, Purple, Red, Yellow.
  5. Current player and number of turns left are displayed on the bottom left.
  6. Error message will only appear on the bottom when there is an error message present.
  7. Double clicking on the starting square indicates End Turn Early.
  8. Game will end when one of the player moves all pieces to the end square at the top right.


Android Application

Functioning Features

    Registering new users.

    Add, Delete, Block, Unblock friends who are currently registered.

    Add, Delete, Block, Unblock entire groups of friends.

    Locate nearby friends, contacts, and groups on the Google map with a variable range indicator.

    Communicate with friend or friends through email, SMS, phone call.

    Change name and set personalized message.

    Set visibility status to visible and invisible.

    Add friends from your phone's contact list.

    Global menu option and correct transition using back key.

    Smooth transition between activities.

Click here to visit our FaceMap website.


Model and Web Server

Domain Model

    Fully working and all functions are tested on the Android application.

Client Server Communication

    Completed communications between Android device and Server.

    Used HTTP web service to invoke RESTful web service.

    Tested to be working with every function currently on the Android application.

    Tested using JBoss 7.1 Server with a test repository.

Databases

Fully working and tested.

Can create custom tables, store information with unique ID linking tables, retrieve information efficiently.





Machine Learning

An Effective Algorithm for Document Classification with Online KNN and High Dimensional Feature Reduction


Feature Reduction

  • Use Snowball filter to find word stems and combine like features without significant loss in meaning.
  • Remove the most common 500 words from all of the documents because they lack uniqueness.
  • Sort the words by the word occurrence percentage.
  • Pick the top number of words as features to use for that label.

Online KNN

  • Record a small number of instances.
  • Compare all training instances of that label with the pre-recorded labels.
  • Remove the one farthest away from the average of the recorded training instance plus new instance.

Algorithms for Motion Planning








Computer Graphics





Computer Integrated Surgery - Computer Assisted Biopsy

    Hardware components:

  • A computer workstation with state of the art operating system and the software used to calculate 3D-3D registration, projection, 2D-3D registration, and other transformations in real time.
  • A pre-procedural MRI image of the patient that shows the tumor and other soft tissue structures but is missing bony structures.
  • A pre-procedural CT image of the patient that shows the bony structures but is missing the tumor and soft tissue structures.
  • A flat panel x-ray c-arm where the patient will lie; this will show the same stick-on markers as the optical tracker. The projected 2D x-ray image will be used to calculate the relative position of the tools. Calibration fixtures will need to be attached directly onto the operating table at known height intervals to calibrate the FD z axis direction. They will be placed at height intervals of 10mm. These measurements will be pre-measured so that there are no errors in their measurements.
  • An optical tracker that will be hung from the ceiling fixture to track stick-on markers visible to optical trackers. This will have the ability to track multiple fixtures simultaneously and be accurate to 0.3mm. These stick-on markers will be placed on the biopsy needle end (F1(t)), the patient(F2(t)), and the c-arm table calibration fixtures (Fn).
  • A biopsy needle with a marker stuck onto the end to allow the optical tracker to detect the location in real time. There will be a second marker along the needle used to determine the orientation of the needle. Also, the distance from the marker to the tip of the needle will be measured accurately so that there is no error.

Software components:

  • 3D-3D registration software for registering CT to MRI images. This software will find a F_CM such that CT coordinates  corresponds to MR coordinate position  with an error of 0.5mm.
  • Projection software for finding the projected image of stick on markers in the x-ray system with an error of 0.2mm.
  • 2D-3D registration software for registering 3D CT images and 2D x-ray images to create a F_CD.

Step-by-Step Procedure Flow

  1. Before the procedure, the patient needs both a CT scan to show bony structure and an MRI scan to show soft tissue. A 3D model will be built from each of these and will have coordinate systems, FC for CT and FM for MRI.
  2. Thee physician will then predetermined the entry location, , and biopsy location,  in the MRI coordinate system.
  3. Define local coordinate system for and use rigid body transformation to calculate the Fopt.
  4. Use pivot calibration for the biopsy probe by pivoting on the new calibration fixtures on FD.
  5. Use provided 3D-3D registration method to obtain the FCM from the MRI and CT images.
  6. Use the c-arm to take a 2D x-ray of the table and then use the provided 2D-3D registration method to obtain the FCD.
  7. These 3 transformations complete the circle going from the biopsy needle to the MRI images.
  8. Calculate the vector from the  to  to determine the orientation of the biopsy needle. Use the two markers on the needle to determine the correct orientation of the needle at .
  9. Position the c-arm so that the x-ray shoots in the z axis to position the needle along the xy plane on the patient at point .
  10. Rotate the c-arm 90 degrees and take orthogonal x-ray from either the x or y axis to position the biopsy needle accurately along the z-axis inside of the patient at point .

Preoperative Calibration


Start by reading the optical data for the marker on the biopsy needle, , and the calibration fixtures on the surgical table, .
  1. Build a local coordinate system for both the surgical table, , and the biopsy needle, .
  2.  



    The same thing can be done with the surgical table coordinates.

     

  3. Use Arun’s method to perform rigid body registration, we obtain the transformation  for optical tracker to biopsy needle and   for optical tracker to surgical table :
  4.  


     

  5.    is defined as the tip of the calibration markers on the table.  In order to reduce the error in locating the biopsy needle in  coordinates, we employ a pivot calibration method where the biopsy needle is positioned in many directions on the .

  6.  

    Since Pmarker is a constant vector for all of the pivot measurement, we have



    Use least square adjustments to calculate precise  coordinates.


Intraoperative Measurements

  1. Start by reading the optical data for the marker on the biopsy needle, , and the calibration fixtures on the surgical table, . Use rigid body transformation to get   and .
  2. Calculate the position of  in ; defined as .
  3.  

     

  4. Calculate the position of biopsy entry point on the  coordinate; defined as
  5.  

      

     

    During the procedure,  because the needle is at the entry location.

Error Calculations

 

Because of the way the values are found, there is negligible error for F1(t) and Fopt(t); F_CM has a preset error of 0.5mm; the only remaining source of error is coming from F_CD. When the biopsy needle is touching the patient at entry point, the equation will be:




Left  and





 

Computer Vision

Separate Grayscale Images

Combined Color Image

Separate images showing matches

Combined images
Separate images showing matches
Combined images

Original Image

Background Subtracted

Examples of Models

 

 

Frame from Video

Frame Showing Tracked Objects

Education



M.S.E. (2011-2012)

Computer Science

Johns Hopkins University

B.S (2006-2010)

Computer Science

Material Science and Engineering

Johns Hopkins University

High School (2002-2006)

Mission San Jose High School

Fremont, California



About Me

Technical Skills

Programming Skills:

Computer Systems

Operating Systems

Data Structures

Java/Gosu

C/C++/C#/Objective C

iOS, Android, Metro Apps

MySQL/Oracle/DB2

Computer Graphics

Computer Vision

Python

HTML/CSS/JS/JQuery

Ruby/Rails

Motion Planning

OO Software Engineering

Machine Learning

Parallel Programming

Performance Optimization

Artificial Intelligence

Computer Integrated Surgery

Language Processing

Functional Programming

 

System/Tool Skills:

Windows

Mac OS

Linux (Ubuntu)

IntelliJ

UNIX

Eclipse

XCode

MS Visual Studio

Cygwin

MATLAB

Cygwin

Adobe Creative Suite

Programming and Work Experiences

Software Engineer at Guidewire Softwares; June 2012 to Present

  • Software design and implementation for core application integrations
  • Create and maintain both front and back end code for multiple core applcations
  • Utilize agile devlopment process to manage workflow

Application Product Development from Conceptualization and UI Design to the Complete Software Codebase: Dec, 2011 to Present

  • Mobile game: HeadOn: From the initial game concept and use cases to the final user interface and algorithm, I designed, implemented, tested, and deployed a fully functional unique chess-like mobile game for the iPhone. It includes a highly sophisticated artificial intelligence algorithm for the computer, a series of challenging puzzles, a multiplayer mode that lets you play against friends over the internet, and a detailed record keeping system. This application is currently on the iOS app store.
  • Mobile utility: Designed and built a fully functional and complete music utility for the iPhone that includes a metronome to keep beats, tuner to help tune instrument pitch, tone generator for perfect pitches, and a recorder. This application is currently on the iOS app store.

Software Development in Medical Open Connectome Project, JHU; Sept 2011 to 2012:

  • Software design and implementation of machine learning, computer graphics, and computer vision algorithms to detect, track, and create graphs for mitochondria and axoplasmic reticula in nanoscale images taken with electron microscopy.
  • Created highly efficient image preprocessing techniques to enhance blurry and noisy images for detection including Canny edge detection, and etc.
  • Designed and implemented accurate gradient detection, line tracing, line completion, segment joining, and elliptical detection techniques.
  • Used mathematical analysis to compensate for missing points or calculate misaligned frames in the data set to produce a continuous trace through the data set and to successful produce 3D models of all the objects.
  • Developed software package to trace truth images for mitochondria and axoplasmic reticula to use as comparison over current algorithmic results.
  • Project published and presented in a global conference, Turning Images to Knowledge, included system design, program functionalities, data analysis, and highly accurate results.

Software Development/Programming at JHU; 2008 to 2012:

  • Implemented parallel programs using concurrent Java, OpenMP, Hadoop, CUDA, and MPI; programmed multithread processes to parallelize serial problems while maintaining relatively linear speedup and scaleup; optimized code for better concurrency and improved runtime while maintaining concurrency.
  • Programmed highly efficient search algorithms with heuristics including A* and Min-Max with αβ-pruning; use propositional logic, first order logic, and second order logic to design and implement artificial intelligence rules; use machine learning, natural language processing, and other artificial intelligence techniques to solve continuous, stochastic, dynamic, and multi-agent problems. Published and presented novel genetic algorithm for decision tree at the Complexity, Cybernetics, and Informing Science and Engineering (CCISE) conference in July, 2013.
  • Designed and implemented a social media software application system called FaceMap on Android platform from the drawing board to working demo; programmed functions that allow users to add, group, locate, and contact other users quickly and efficiently using the most current Android technologies; integrated full web services and database support based on J2EE and MySQL. Project FaceMap has a working demo running off of private server at JHU.
  • Programmed online learning and k-nearest neighbor machine learning algorithms to classify articles and documents based on word patterns; optimized the combination of machine learning algorithms to improve efficiency and accuracy; other algorithms implemented include decision trees, SVM, perceptron, hidden Markov models, k-means, and expectation maximization.
  • Designed several 2D motion planning algorithms using bug algorithm, potential fields, and probabilistic road map based on geometric models acquired from sensor data. Scenarios included non-holonomic robots with real physics engine and moving obstacles.
  • Utilized medical images and sensors to obtain information, design systems, and develop applications that can help clinicians with diagnosis and preoperative planning. Implemented a system using both rigid body registration and iterative closest point registration to find frame transformations between coordinate systems used for computer integrated surgery.
  • Used OCaml as a starting point in writing interpreter and compiler for a new functional programming language called Fb; used mathematical principles to explain and prove programming language rules.
  • Developed website for both client and server sides using HTML/HTML5, CSS/CSS3, JavaScript, jQuery, Python, and MySQL aimed at social media content management, organization, presentation of work history, and search engine optimization.
  • Used computer graphic techniques including 2D and 3D transformations, clipping, scan conversion, filtering, anti-aliasing, hidden surface removal, color, shading, transparency, shadows, and textures.
  • Programmed with C++ to do ray casting, model transformation, and 3D rendering to simulate a house; details include different types of light source, shading, reflections, and anti-aliasing.
  • Used OpenGL to render 3D animations with accurate joint movements and timing.
  • Applied computer vision techniques from a computational perspective to work on 3-D geometric constraints from binocular stereo, motion, texture, shape-from-shading, photometric stereo, edge detection and color perception.
  • MATLAB programming to create a program, which uses edge detection, segmentation, and eigenfaces aimed at facial recognition. Used computer vision to identify, categorize, and track people, motorcycles, cars, and busses from a blurry surveillance camera video.

Publications


Publications:

  • Huang, C. (2013). Novel Genetic Algorithm for Highly Accurate Data Classification. Paper presented at Complexity, Cybernetics, and Informing Science and Engineering, Porto, Portugal, June 30 - July 6, 2013 (pp. 281-289)
  • Huang, C., Gray, W. R., Vogelstein, J. Hager, G.D. (2012). Novel Algorithms for Effective Identification and 3D Tracking of Axoplasmic Reticula. Poster presented at Turning Images to Knowledge, HHMI Janelia Farm, Virginia, October 28-31, 2012 (pp. 33)

Awards and Honors


Awards and Honors:

  • Programming Competition: Top 10 percent in Interview Street Codesprint 2; Jan. 2012
  • Academic Award on JHU Dean's list; Fall of 2006; Fall of 2009; Spring of 2010.
  • Order of the Engineer, USA; May 2010.
  • National Science Foundation REU Scholarship Award; summer of 2008.
  • Honor for Research Presentation at UCSF Medical Center; summer internship 2008.
  • Award for Research Achievement at Baylor College of Medicine; summer internship 2007.
  • President Award for Outstanding Academic Achievements; June 2006.
  • Above and Beyond Community Service Award; June 2006

Activities


Leadership/Activity:

  • Piano Master Class; Sept. 2012 to Present
  • Mission Symphony; Sept. 2012 to Dec. 2012
  • Vice-President of JHU Badminton Club; Nov. 2006 to May 2010.
  • Team member of JHU Policy Debate Club; Sept. 2006 to May 2010.
  • President of Wonders of Science Club; Feb. 2005 to June 2006.
  • Lead Tutor at Mill Creek Academy; Sept. 2005 to June 2006.
  • People to People Student Ambassador Program to Australia; June to July 2006. 
  • Global Youth Leadership Conference to Washington DC and NYC; June to July 2005.
  • Piano graduate from Associate Board of Royal Music School; May 2005.

Contact

 

 Address

  

Computer Science Department

Whiting School of Engineering

Johns Hopkins University

3400 North Charles Street

Baltimore, MD 21218


 E-Mail:


chuang37@jhu.edu


 Leave a Message


Name:
Message: