I'm excited to share that I've joined Bosch as a Software Engineer working within their Situational Analysis team in Plymouth, Michigan! I'll be writing algorithms and functions to help support their incredible automated driving platform.
I'm finishing up my second week and can honestly say I'm having more fun and learning more than I have in years! I get to work with a team full of fantastically smart people and also pursue knowledge in a domain that I've been falling in love with for quite some time.
#bosch#softwareengineer#finallyfreefromwebdevelopment
What a ride! This past weekend, I graduated from Georgia Institute of Technology with my Master's in Computer Science with a specialization in Computational Perception & Robotics. My experience was extremely fulfilling and I'm proud of the previous version of me that took a chance on applying and then committed a tremendous amount of time and energy to the program.
I have a whole new bag of tricks that I'm excited to use. I'm currently looking for opportunities to work with organizations interested in preventing human trafficking. I think many of the Computer Vision techniques I have learned will be useful in that context and it's something I have a passion for.
Thank you to my wonderful circle of friends and family who encouraged me and reminded me that what I was working on was worthwhile. Thank you to Alan Watts whose 50 year old lectures got me through a lot of the anxiety I experienced during the particularly difficult classes. Thank you to Georgia Tech, Dr. Joyner and everyone else who make OMSCS a truly wonderful program. Most of all, thank you to my wife for being there unconditionally and making space for me to be the best version of myself I could be. On to new adventures!
Here's another fun and recent project of mine. The technique displayed in the video is called "Seam-Carving". It is also referred to as "Content-Aware Resizing".
This technique allows you to resize an image in such a way that you can maintain the core elements of the image. Usually, if you want to resize one dimension of an image, you either have to crop it (losing content) or scale it (distorting content).
The video below shows my implementation in action. During each iteration, a Sobel filter is used to detect strong edges in the image and then a cumulative energy map is created using dynamic programming. This makes it possible to know the least energetic seam of pixels that can be removed (shown quickly in red between each iteration). Notice that core elements like the lake, path, flowers and tree are maintained fairly well. The image is reduced in width by 50%.
The technique can also be used in reverse to expand an image.
The photo was taken by me last year up in Michigan's beautiful Upper Peninsula at the Porcupine Mountains.
#python#computervision#computationalphotography#georgiatech#puremichigan
For Computational Photography, I got to build my own implementation of "Object Removal by Exemplar-Based Inpainting" using the research from this paper: https://lnkd.in/dwK42Y9
This implementation was built using Python and didn't use any existing libraries or code. It works by factoring in strong linear structures when considering which "patch" to fill in next. You can see the algorithm in action in the video below. Notice how the seams of the wood are maintained and meet up where they would in reality behind the dice.
I vectorized my code and implemented a few optimizations of my own devising to both speed up the algorithm and produce better results. #python#code#computervision#georgiatech