PyImageConf 2018, PyImageSearch’s very own computer vision and deep learning education conference, took place August 26th-28th in San Francisco, CA at the Regency Hyatt. It was an amazing conference and based on attendee feedback, it was HUGE success.
Today I want to recap the conference, share some highlights, and perhaps most importantly, discuss aspects of the conference that went well…as well as areas that need improvement or I would do differently if there were to be a future PyImageConf.
While today’s blog post is partly a recap, it’s also (in essence) a letter to my future self, reminders of what to double-down on and what I can do better.
I’ll open this recap by saying the same opening I used for PyImageConf, when I took the stage, introduced myself and Jeff Nova (PyImageConf’s co-host), and then said the following:
PyImageSearch, and now PyImageConf, is not about me — it’s about you the attendee and PyImageSearch reader. All of this is for you. I may be the “face” of PyImageSearch, but you’re far more important. You are what makes this blog, the books and courses, and most importantly, the community possible. Thank you for being here, thank you making this all possible, and thank you for giving me the privilege and honor to teach you.
PyImageConf 2018 Recap
The idea for PyImageConf started three years back, and to be totally candid, it wasn’t even my idea.
Jeff Nova, a PyImageSearch Gurus member and owner of San Francisco-based Colorhythm, reached out to me and asked if I would ever be interested in doing an in-person, live teaching event (Jeff had access to a large classroom capable of holding 50 students).
At the time it wasn’t something I could do.
I didn’t have the time or mental capacity for it. I was overloaded as is. And perhaps like all good ideas, we let it fall to the wayside for a couple years.
Then, last August, I called Jeff and asked him if he was still interested in doing an in-person event, but scaling it up a bit to the point where we were hosting an actual conference.
I knew I needed Jeff to pull the event off, and when he said “Yes” we put in motion PyImageConf 2018.
My goal was to keep PyImageConf small, intimate, and hands-on.
In essence, I wanted PyImageConf to be the computer vision and deep learning conference I always wanted to attend.
I wanted to keep the conference small and intimate, capped at 200 attendees.
I purposely kept the conference small to enable attendees to:
- Learn from speakers and presenters
- Have 1-on-1 time with experts in computer vision and deep learning
- Better network with peers and colleagues
Ultimately, I believe keeping the conference small was the absolute right decision.
Douglas Jones, a PyImageConf attendee had this to share in the post-conference survey:
A huge shout out to Adrian and everyone who worked so diligently to put on on of the BEST conferences I have ever attended. A wonderfully small and intimate conference where you really could talk to the presenters and ask questions. The other big plus of a small conference is you have many more opportunities to meet fellow practitioners and share ideas, tip and tricks. It is easy to meet someone who faced the same stumbling block and can help you , or you have something to share from your experiences. If you missed this PyImageConf, I am sorry, you really missed something. If there is another, don’t miss it!
Andrew Baker shared a similar sentiment:
NVIDIA GTC can be an overwhelming experience due to it’s size. PyImageConf provides an up and close experience. The presenters make themselves available to the attendees. PyImageConf provides an escape into the CV and DL worlds.
Once the vision of PyImageConf was formed, it was time to reach out to speakers and workshop hosts.
My goal was to put together the biggest names in computer vision, deep learning education, giving attendees the best possible live, hands-on training and lectures — and wow, these speakers were amazing:
- François Chollet: Author of Keras deep learning library. Deep learning and AI researcher at Google. Works published in CVPR, NIPS, ICLR, and others.
- Katherine Scott: Former analytics team lead for Planet Labs. Expert in satellite image analysis. Co-author of SimpleCV.
- Davis King: Author of dlib library. Expert in object detection. Open source developer and practitioner building industry CV systems for over a decade.
- Satya Mallick: Author and creator of LearnOpenCV. Computer vision for faces expert. Entrepreneur working in CV and ML.
- Joseph Howse: Author of six computer vision/OpenCV books at Packt Publishing. Computer vision and consulting through his company, Nummist Media. Expert in augmented reality, virtual reality, and infrared computer vision systems.
- Adam Geitgey: Author of Machine Learning is Fun! blog series, LinkedIn Learning, and Lynda.com. Loves building products with machine learning and computer vision.
- Jeff Bass: Raspberry Pi hacker, computer vision practitioner, econometrics wizard, 35 years experience in statistics.
- Adrian Rosebrock: Author and creator of PyImageSearch.com, Practical Python and OpenCV, PyImageSearch Gurus, and Deep Learning for Computer Vision with Python. Computer vision entrepreneur.
If you see these speakers around online, please thank them for their time and energy they put towards the conference. PyImageConf would not have been possible without them.
Day #1 — The Reception
The first day (or night, rather) of PyImageConf 2018 was the opening reception.
From 6:30-9:30PM we hosted a three hour long reception, complete with open bar.
The goal of the reception was of course to welcome attendees, but more importantly, to have attendees connect with each other, network, and build relationships.
I often think the relationship building aspect is missing from technical and even academic conferences — in many respects, the connections you make with other people can be more valuable than the technical content in the long run.
A graduate student talking to an employer, an entrepreneur talking to a contractor, or a researcher speaking with someone in industry are all conversations that can change the trajectory of your career. Networking and connecting with others should never be overlooked.
PyImageConf attendee Mike Baum had this to share regarding the reception:
I thought it was great that you set up the evening open bar and that all of the presenters showed up and participated in the informal discussions. I also enjoyed the additional time in the evening to talk with others and learn what they were doing, hear their challenges and pick up ideas for some of my challenges.
And for me personally, I really enjoyed being able to meet PyImageSearch readers face to face:
Day #1 was also the speaker dinner. Myself, the speakers and workshop hosts, along with their spouses went out to dinner together before the reception was fully underway.
It was truly a wonderful dinner — being at a table surrounded by some of the most intelligent, successful computer vision and deep learning practitioners, engineers, and educators is something I will truly cherish. PyImageConf would not have been possible without these speakers so if you see them online anywhere, be sure to thank them.
You may also be surprised to know that our conversations didn’t always center around CV and DL!
While CV and DL may have brought us together, and certainly was the reason we were in that room, we also discussed more personal matters, including our lives, what we were doing, and what we hoped to do next.
One conversation I know I will remember forever is with speaker Jeff Bass, someone I truly look up to.
I’ve known Jeff for a few years. We originally met through the PyImageSearch Gurus course. As I got to know him, I realized that he’s had a truly remarkable life. He was a pilot, served in Vietnam, worked for Amgen for many years, and is now retired, building his own permaculture farm.
Jeff’s stories and life experiences over the years helped me in many ways — and that to me is truly what it means to be human — to be in a room with a bunch of people with a common interest, but that interest is only the start, where it takes you could help you tremendously.
Day #2 — Talks
The second day of PyImageConf kicked off the talks which took place in the Regency Hyatt’s grand ballroom.
When I saw the ballroom the night before I was blown away — it was beautiful and incredibly professional.
Adam Geitgey opened the conference with his talk on Image Segmentation using deep learning, and in particular, Mask R-CNNs.
Adam went through the entire semantic segmentation pipeline, starting with how segmentation is different than standard classification and object detection, then moving on to how to annotate your training data, how to train your Mask R-CNN, and finally how to apply it to your own images.
Adam’s talk was the perfect opener for the conference and his talk set the tone for the rest conference as well — we were all going to learn a lot being in that ballroom together.
Satya Mallick’s talk, Computer Vision: Real World Applications, discussed actual applications him and his team have worked on and solved using computer vision algorithms.
And most importantly, Satya discussed some particular tricks he had to apply to effectively solve these problems as well.
Davis King then took the stage for his talk, Training and improving your object detectors.
Davis reviewed the entire object detection pipeline, starting out with the fundamentals (i.e., sliding windows, image pyramids), working up to HOG + Linear SVM, and then finally deep learning-based object detectors.
His talk was not only practical, informative, and useful, but it was also hysterical, including many funny quips and anecdotes from actual computer vision projects.
We then broke for lunch and enjoyed an excellent catered meal by the Regency Hyatt staff. Again, this was was excellent time for attendees to network and connect with each other.
After lunch we came back to the ballroom where Jeff Bass discussed Yin Yang Ranch: Building a distributed computer vision pipeline with multiple Raspberry Pi’s and Macs.
Jeff is building a permaculture farm on his land and he utilizes Raspberry Pi’s and computer vision to monitor the farm, including:
- Reading water meters and optimizing water usage
- Counting bees, butterflies, and other pollinators
- Tracking coyotes, rabbits, raccoons, and other animals
- Monitoring garage doors, barn doors, and whether gates are open or closed
- Tracking sunlight hours, sunlight intensity, cloud cover, etc.
- Monitoring non-camera sensors, such as temperature, humidity, solar panel output, and more
Jeff’s talk was truly something special — he not only discussed computer vision techniques but he also detailed how to glue all the pieces together!
He even created his own Python library to efficiently share images/frames from a Raspberry Pi back to a central hub.
The techniques learned from Jeff’s talk helped attendees build their own real-world computer vision applications.
Joseph Howse followed Jeff with a talk on Visualizing the Invisible.
I loved Joe’s talk.
Too often in computer vision we focus only on the visible — but there are forms of invisible light. So, what if we could leverage invisible markers that only appeared under a certain wavelength? Could we build augmented reality applications on top it?
The answer is yes, and in his talk, Joe showed us the fundamentals of how we could build such an application (including an actual example and demo).
Katherine Scott was next, giving a talk on Sensors >> Cameras and how computer vision is not just pushing pixels around. Instead, computer vision is the process of “analyzing light to get answers” — and before we even start pushing pixels, we need to consider how our image is captured.
In particular, our world is optimized for 3-channel, 8-bit RGB data, but there are other false-color techniques to explore.
Kat’s talk was not only informative but inspirational as well.
Francois Chollet, arguably a person who needs no introduction, creator of Keras and deep learning engineer at Google, gave a talk on The Xception architecture for computer vision.
In particular, Francois’ talk focused on the concept of depthwise separable convolutions and how this technique enabled him to conceive the Xception neural network architecture, combining both residual connections and depthwise separable convolutions.
This architecture, inspired by the Inception architecture by Szegedy et al., outperformed Inception and other architectures, requiring fewer parameters and less steps to train.
Finally, I took the stage for the final talk of the day.
My talk was entitled 7 lessons learned — My advice on launching your first computer vision or deep learning product.
On the PyImageSearch blog I typically teach you a particular algorithm or technique, but in this talk, I taught attendees how to bring it all full circle, and in particular, the importance of validating your idea before you write a single line of code or run a single experiment.
I shared my experiences through the years, both the good and the bad, and after the talk, attendees had a framework they could apply when launching their own ideas or products.
Day #1 was a huge success and I really want to thank the speakers for taking the time out of their busy lives to make the conference possible — thank you all!
Day #3 — Workshops
Day #3 was workshop day. Four, all-day workshops were hosted (9AM-5PM), including:
- Computer vision for face recognition and other facial applications — Sayta Mallick
- Advanced computer vision techniques for real-world applications — Davis King
- Augmented reality and virtual reality with computer vision — Joseph Howse
- How DL for object detection is done: implementing and using Faster R-CNN — Alan Descoins and Augustín Azzinnari
Each workshop was totally filled to capacity and each workshop was designed to have you on your laptop, learning, writing code, applying a particular technique, and obtaining a result.
In essence, the goal was to take the entire PyImageSearch teaching experience and bring it into a live, in-person workshop.
Attendee Nicholas McKinney particularly enjoyed his workshop with Satya:
The workshop I had participated in was very hands-on and allowed me to set up my own computer-vision lab with well-documented code from which I can build.
Giulio Giorcelli shared his experience as well:
PyImageConf was a no-BS, hand-on conference for deep learning practitioners done by deep learning practitioners. I learned a lot of new things and improved my current toolbox with practical techniques used by the best in the game in their own code. The amount of new knowledge that I came home with me was invaluable.
David Stone very much enjoyed the Faster R-CNN workshop from Alan and Augustín:
I was excited to come and I was not disappointed. The speakers were excellent. I really enjoyed the workshop on “Object Detection with faster R-CNN”, and learned a lot. It was a great community group, and the friendliest conference that I have attended.
What went well and what can be improved
The point of this section is to highlight aspects of the conference that went all, including areas that could be improved for a future PyImageConf.
Not only do I think it’s important share these details to you, the PyImageSearch reader, they are also notes to myself (as well as notes to anyone who may be interested in holding a conference in the future).
Huge diversity of topics covered (especially for a small conference)
One aspect that went extremely well is the diversity of topics.
PyImageConf may be small but it packs a big punch.
Adam’s talk on Image Segmentation set the tone for the conference by being hugely practical — the same is true for Davis’ talk.
Jeff Bass’ talk explored how we can glue all the pieces together and solve actual real-world problems.
Francois provided a highly technical discussion of the Xception architecture and how we can use it in our own applications.
And Kat’s talk was nothing short of inspirational, giving us insights into how computer vision is more than just RGB data.
This diversity of topics was a huge success and I have the speakers to thank for that.
The venue itself was excellent
The Regency Hyatt was a great venue for PyImageConf. It was beautiful, highly professional, and their catered food was fantastic. I really enjoyed my time there and I know attendees did as well.
Receptions were a big hit
Every night of PyImageConf there was a reception and open bar for ~2.5-3 hours.
As I mentioned earlier in this post, I strongly believe in giving attendees the opportunity to connect an network.
These connections can often times be more valuable than the actual talks and workshops themselves.
Our sponsors were awesome
PyImageConf was sponsored by:
Microsoft even provided GPU instances in the cloud for attendees to use.
All of these sponsors were a pleasure to work with. Thank you for making PyImageConf possible!
Place more emphasis on ethnic and gender diversity amongst speakers
One area that I would like to place emphasis on for a future PyImageConf is more ethnic and gender diversity — Satya was the only non-white speaker and Kat the only non-male speaker.
Granted, there were only eight speakers total, but in the future I’m going to personally take it upon myself to ensure there is more ethnic and gender diversity.
PyImageConf was certainly amazing and I fully believe that this group of speakers were absolutely perfect for the conference, but I also know moving forward that I have a responsibility to ensure more diversity. It’s something I do not take lightly and is absolutely an area I would like to work on.
That said, there was certainly diversity in our attendees. Some attendees flew as far as Africa, Korea, China, Japan, Uruguay, India, and Australia.
Brian Karemba, who flew all the way from Harare, Zimbabwe was happy he made the trip:
PyImageConf2018 was an absolutely amazing experience! Not only did it provide a unique opportunity to learn from the gurus in the field but the networking and interaction with CV experts, practitioners and enthusiasts (like me) alike was priceless. The venue was superb, as was the overall organization of the conference. Hats off to Adrian, the entire panel of speakers and attendees for making this event a reality and openly sharing their knowledge, experience and insights. Well worth the 27hrs of flying from Harare to San Francisco!! Looking forward to PyImageConf2019!?!
Ewin Hsu shared the following in his post-PyImageConf survey:
From consultants, researchers, to educators, PyImageConf captured the essence of Computer Vision. The speakers were super passionate about the topics that they were presenting and the wide range of topics will kept me wondering what will come next. More importantly, I was super impressed by the diversity of the people who attended the conference. From graduate students, startup-innovators, and real company employees, I am deeply impressed by everyone’s backgrounds and interest in Computer Vision. This is truly a conference that will inspire anyone who wants to learn about Computer Vision.
It was a humbling experience for me to see that many PyImageSearch readers in a single room. The PyImageSearch community is so incredibly strong and supportive of each other and there were times where I started to feel a bit emotionally overwhelmed (in a good way) taking it all in.
Age diversity was excellent
One aspect that I think we nailed is the age diversity amongst both speakers and attendees — that is something I would never want to change.
Just as ethnic and gender diversity is important, so is age diversity. We all go through different life experiences at different ages and we all come from different walks of life. We therefore all have different experiences to share, both professionally and personally. The more diversity we insert, the more we can learn from each other.
Jeff Nova was the best co-host I could ever ask for
Jeff Nova is truly a special person.
He’s a colleague. A friend. And in many ways, he feels like an older brother I never had.
Jeff co-hosted PyImageConf and shared MC duties. I couldn’t have done PyImageConf without him. He was always there to help, lend a hand, and ensure the conference was running smoothly.
Jeff, if you’re reading this, thank you man.
Having a conference coordinator is crucial
I could not imagine running PyImageConf without a conference coordinator.
There are so many logistics to keep track of, so many bills to pay, so many people to keep in contact with — if I tried to do it on my own I think I would have regrown hair on my bald head just so I had something to pull out.
I have attended ~6-7 conferences in the past that Xander Castro and his company, Startup Event Solutions, have coordinated — and all of them were incredibly well executed and highly professional.
At one conference, right before lunch, there was even a fire sprinkler explosion, causing cascades of dirty, 40-year old water (that had been sitting in the pipes for decades) to drench an entire corner of the ballroom.
Xander and his team were so on it that they had a new ballroom ready for us after lunch — the conference never missed a beat.
Luckily, there were no sprinkler-related issues at PyImageConf, but it just goes to show you how good Xander is at his job.
Having a team makes it possible
During the conference both David McDuffee and David Hoffman, two people you may have interacted with if you’ve ever emailed me before, were helping wherever they could, whether that was manning the registration desk, taking photos, or running microphones across the room to attendees who had questions. Without them I would have felt like my back was against the wall. They were a huge help.
Resolve workshop registration issues
Tickets to PyImageConf sold out about a month before the conference, and then, about one week prior to the conference, Xander and I sent out a survey to allow attendees to signup for a particular workshop.
Workshops were capped at 50 attendees due to:
- Space restrictions — 50 people was the max each room could hold
- Workshop host sanity — more than 50 people in a room would have been too difficult for the host to keep track of
The workshop registration was handled on a first-come, first-serve basis and some workshops filled up very quickly.
Inevitably, there were a handful of situations were an attendee wanted to attend workshop X (their first choice) but it was already filled so they needed to attend workshop Y (their second choice).
In the future I would like to provide a better, more efficient workshop registration process but it unfortunately creates a bit of a “chicken and egg” situation.
On one hand, when an attendee purchases a ticket to PyImageConf we could also make them register for a workshop…
…but at the same time, that restricts the workshop host tremendously:
- What if their workshop changes in theme?
- What if they decide to cut a certain topic from the workshop?
- And arguably most important, is it even realistic for a workshop host to have their workshop detailed nailed down 6 months in advance? (that is a rhetorical question, the answer is “No, it’s not realistic”)
I don’t have a solution for such a scenario yet as it requires careful thought and meditation but I did want to share it as I do believe a better solution must exist.
Provide pre-configured dev environments for workshops
For hands-on work you obviously need a properly configured development environment.
Workshop hosts provided details on how to configure your development environment prior to the conference; however, as we all know, configuring your development environment can be non-trivial at times. In Davis’ workshop in particular the first 30-60 minutes of the workshop was spent ensuring machines were configured properly.
In the future, I believe this problem could be mitigated by providing pre-configured development environments which is something I would like to explore for a future PyImageConf.
Multiple monitors for workshops so people can see better
For some workshops it was harder for people to see the screen if they were sitting in rows farther away from the front of the room.
After talking with Xander, he suggested in future years that we either have (1) one massive screen that everyone can see and/or (2) repeater monitors, two for each side of the room, so that no matter where you are sitting, you can easily see what’s going on via the screen.
Xander’s solution is perfect and if there is a future PyImageConf, it’s something we will undoubtedly utilize.
Using Slack for conference communication was an overall win
I’m not a big Slack fan — it’s one of those “necessary evils” that I use day-to-day, but I will say that utilizing Slack to help conference attendees connect and network was a big win.
Inside the #meetups channel there were dinner, drink, and even exercise-related meetups going on. It was so cool to see friendships and bonds form outside the walls of the conference itself.
“The most friendly conference”
A common theme heard from PyImageConf attendees is that it’s one of the most friendly conferences they have ever attended.
In fact, there are multiple occurrences of this theme in the post-conference survey I set out. The following response from an attendee in particular really meant a lot to me:
I’m pretty introverted and have difficulty having conversations (sounds like cliche haha) but everyone was so friendly and easy to talk to that I didn’t have trouble socializing with the other attendees. The lunches and networking receptions really made the conference a great experience.
For years I was an introvert and I struggled to put myself out there. Being social with people was truthfully a source of anxiety for me so I can appreciate what this attendee was feeling. For them to be able to feel comfortable in a social environment and network with others is a huge deal in my book.
Thi Tran also felt the conference was super friendly:
A very friendly, well organized, and informative conference. I enjoyed meeting a lot of people and learned from them. The hand-on workshop was a plus. The location was perfect, with a fantastic view of Bay Bridge and great food.
As did Dave Snowdon:
PyImageConf 2018 was without a doubt the most friendly and welcoming conference I’ve been to. The technical content was also great too! It was privilege to meet and learn from some of the people who’ve contributed their time to build the tools that we rely on for our work (and play).
Creating an environment that others can not only learn from, but also find super friendly is something to be proud of.
The PyImageSearch community is nothing short of kind, accepting, and warm and I would never want that to change 😃
Will I host PyImageConf 2019?
As I was boarding the plane to fly back from SF to CT, I tweeted the following:
The next week I sent out a post-conference survey to get feedback from attendees.
One of the questions was:
If there were a PyImageConf 2019, would you attend?
Of those who responded to the survey (~50%), 90% of attendees said, “Yes, I would attend PyImageConf 2019”.
That is a huge percentage of attendees saying they would come back for the next year. Xander also confirmed that this was one of the highest numbers he had ever seen — and certainly the highest for a first year conference.
So, with that said:
Will there be a PyImageConf 2019?
I’m not going to commit to anything just yet. Hosting PyImageConf, while incredibly rewarding and something I will always remember, was also extremely exhausting for me.
I’m also writing this blog post on September 13th (~1 week before I’m getting married) so my brain isn’t necessarily in a place where I can forecast to 2019 — I’m mostly just focused on my soon-to-be wife.
I’ll be spending more time reflecting on this question throughout the rest of 2018, but I’ll end with the following quote from PyImageSearch reader Douglas Jones when he asked about PyImageConf 2018:
I think you pretty much have to.
I opened both PyImageConf and today’s blog post by saying that the conference, blog books, and courses would not be possible without you, the PyImageSearch reader. You are all part of this family and I’m honored I can be on this journey with you.