Even with ever growing interest in deep learning I still find myself using the bag of visual word approach, if only to have a familiar baseline to test my new fancy algorithms against. I especially like the BoW demo script from the VLFeat team, that reaches a solid 65% accuracy on the, admittedly outdated, Caltech101 dataset. The script has the advantage that it is contains all the usual steps in one script (feature extraction, training of the classifier and evaluation of the whole pipeline) and that it can also be easily adapted to other datasets.
The only problem was, that it is a Matlab script and Matlab licences are in my experience often scarce due to their high price even for research institutes. So I rewrote the script in Python using the uncomplete VLFeat Python wrapper.
You can find my code as usual on github: https://github.com/shackenberg/phow_caltech101.py
In case you are just diving into the world of BoW I recommend my minimal BoW image classifier code, which might be easier to understand.
So, it looks like IFTTT deleted my recipe, to avoid drawing Twitters wrath on themselves. I will mail the customer support and ask, what happened…
Even though I am a happy Twitter user, it makes me feel very uncomfortable that I cannot easily access all my old tweets. For that reason I used IFTTT and Dropbox for the last several months to archive all the new tweets, so that I have access to those at least. But after Twitter forbid IFTTT to directly access the tweets, this solution was no longer working. But as clever users found out, Twitter is still providing a RSS feed containing all publicly sent tweets for each user.
As a result it was very easy to get the whole pipe line working again. If you want to try it youself just use my public IFTTT recipe: Archive my tweets to dropbox! You only have to replace my Twitter handle with yours…
Btw: Please share if you have other useful recipes!
This blog post is intended to be informative for students who plan to attend ICVSS for the first time and to give feedback to the organizers, because I had not time to fill out my feedback-form back there
It is based on my experiences of participating in this years ICVSS 2012. In this post I will only talk about the organizational side. Of course the lectures are the most important part of the summer school, but it is easier to establish if the lectures are relevant to you than to find out if you would enjoy the summer school.
TLDR: I liked it very much. If you are a 2nd or 3rd year PhD student and have 1300€ to spend, definitely go!
What is ICVSS?
The International Computer Vision Summer School is a yearly one-week conference for students in the field of computer vision held in Sicily, Italy. In contrast to normal conferences it is less formal and the aim is to learn rather than to present. For that reason they invited renowned researchers and professors to talk about he “theoretical and practical aspects of real Computer Vision problems as well as examples of their successful commercialisation”.
The summer school’s program comprises of
- workshops (which are a like practical lectures),
- poster presentations by the attendees,
- a reading group,
- a essay contest (Brady Price),
- a written exam and
- social events.
It is organized by the University of Catania, Sicily, Italy and the University of Cambridge, UK.
All five days followed roughly the same pattern. They started with breakfast at 8h followed by two lectures before lunch. After lunch there was one more lecture followed by a coffee break. The after-coffee-break program varied throughout the week:
- The first two days students were presenting their posters,
- on the third day there was a guided tour to ancient city of Ragusa Ibla,
- on the fourth day the afternoon was filled with the Reading Group and
- on the last day Friday, there was the examinations, the student presentations and an award ceremony.
Generally speaking everything was very well organized, even – if you allow me this cliché – from a German point of view. The issues I was told or experienced myself were mostly due to circumstances outside of the ICVSS staff’s influence like airlines or the hotel being sloppy.
In fact all lectures and events were starting so punctual that I had trouble being always punctual
They also managed to give the summer school a nice pace. There was no downtime to get bored and you never had to stress to see or do the things you wanted.
My only issue with the program was that the lectures were too long. Some lasted 2h without break. They changed that halfway through the summer school and I hope that sticks for the next years. I would suggest cutting the all lectures into blocks of 50min followed by 10 min breaks.
In the poster sessions students could present their work to the other students to get feedback, which is always very valuable as the other participants are from a similar field with out being too familiar to you work to ask the right questions.
The was also a competition for best poster. The two winners received a money price (700€) and were asked to present their work in a short talk on Friday after the examinations. (Congratulations again to Christof Hoppe with Photogrammetric Camera Network Design for Micro Aerial Vehicles)
My only quarrels where that some people did not go to the second floor, because there were not enough signs. Furthermore the rooms were too crowded, especially in the corners where posters were hanging on each side, although there was unused room upstairs in the gallery.
Reading Group and Essay Contest
The aim of the reading group is to teach and practice the skill of reading research papers. To take part you have to prepare a homework “studying (not just reading) one or more topics provided by the school committee, and tracing the ideas as far back as you can.” This year the topic was image features and last year it was shapes. The groups and individuals with the best and most interesting submissions will be asked to present their work during the reading group at the summer school followed by a discussion. The group or the individual with the best presentation is awarded a money price of 1000$. If I remember correctly only 18 groups or individuals participated and you can listen and take part in the discussion even if you haven’t sent in homework. Never the less, I would urge you to hand in something as the organizer of the reading group, Stefano Soatto, give extensive feedback.
The essay contest (also called Brady Price) was about discussing the current and the future “real world” social impact of computer vision technology. There were two topics to choose from (Urban Landscapes and Computer Vision and Medicine) and the two winner were asked to read out their essay and received 600€ in price money.
The exam consisted of 37 multiple choice questions covering the lectures and workshops. You had to answer 17 correctly to pass the exam and receive a separate certificate. Only a few of the lecturers gave useful example questions after their lectures so we were not really sure what to expect. In the end the questions were quite fair and sensible. I would say, you can pass studying in your room at night if you paid attention in all the lectures.
I actually attended my first beach party during the summer school. The other activities were also very enjoyable. Look forward to them.
Venue, Accommodation and Food.
When I told my friends about the summer school I found myself using the following phrase a lot:
It was the nicest prison I have ever stayed in.
Maybe I am just not used to resort vacation, but I think this description fits. The hotel is remote and you wont be able to leave the place and find anything in walking distance except for a small fishing village and a beach.
Nevertheless I liked the place, as it provides everything one needs. I even was able to buy some swimming pants and flip-flops I forgot back in Germany.
For each meal the hotel would provide a varied buffet and I can’t remember anyone complaining about the food. If you are vegetarian it is definitely doable without starving taste-buds.
The internet connection was bad! Very bad!! In theory there was WiFi in the lobby of the hotel, the lecture hall and in the foyer of the lecture hall, where the organizers have their temporary office. (Note: No WiFi in the rooms!)
But in practice the WiFi connections were so slow that sometimes not even emails would load and there was a connection timeout of like 5 mins after which one had to re-enter a personal code of nearly 20 characters, which made using the internet on the phone way more annoying than fun. As I wrote the resort is very remote, so it is probably cost prohibitive to get faster internet for the few internet addicts visiting once a year. Which is a pity as the organizers try to push the use of social media (facebook/twitter) during the conference, which is imho a fun idea. But my proposal would be to shut off the WiFi in the lecture hall. As a result, people are less tempted (and less frustrated) by the internet during the talks and there would be more bandwidth left for the people sitting in the foyer (doing important stuff ™)
If you coming from Europe this summer school will cost you roughly 1650€. (600€ for the school, 750€ for a single room and 300€ for the flight. You can cut the costs to 1250€ by reserving a bed in a 4 person room (450€) and by booking your flight early with websites like skyscanner.com. This is still quite expensive, but I was quite satisfied in the end. There were no hidden costs, they didn’t seem to throw out money for totally unnecessary things and they didn’t try to sell things, which I cannot stress enough.
More warning than recommendation is this résumé by Roman Shapovalov, who choose a hotel in the near village to stay for ICVSS 2010.
As the organizers told us in the opening presentation, the most important part of this conference are the people we meet. For some working on their own at their home universities this might be a first time to feel as part of a community. And the process of becoming a community is deliberately amplified by the choice of such a remote venue. For every meal and for every activity we stayed together, so you got to know the other people very fast.
Also most of the lecturers stay for more than a day, so this was a great chance to interact with them in a very relaxed environment. Some even brought their families, which shows how much they enjoy this summer school themselves.
I liked it a lot and I think I will go again. If not next year, in 2014, even though I will have to pay it from my student scholarship. I’ll be probably booking a bed in a four-person room, which makes it cheaper and more interactive.
My recommendation is to go as soon as you finished your literature review and have a some results to present. Make sure you have something to show and talk about. Than you can learn and profit from the connections you make and the tips you receive a long time.
There is also the CVML Summer Schools organized by INRIA, France, which ended this year just before ICVSS. If you have enough money then go to both, otherwise choose with regard to the speakers.
- Prepare an elevator speech
- Leave your notebook at home. Remember there is no internet and you are there to meet people. You can bring yours slides on a USB stick if you are planning on winning the competition.
- Don’t go to bed to early, sleep after lunch. You don’t miss anything and it is too hot to do anything anyway.
- Plan one or two days of extra stay in Sicily. It is easier to ignore the beach next to the hotel, when you know you have time afterwards to go to the beach – you pay for the return flight anyway! My recommendations would be Siracusa and Stromboli.
- Don’t forget your swimming pants! You need them and they are expensive in the resort.
- ICVSS 2010 review by Roman Shapovalov (blog computer blindness)
- ICVSS 2011 review by Angel Cruz-Roa, University of Colombia
Did you attend ICVSS? What was your experience?
Thinking about going and having questions left?
Leave a comment!
[update] corrected breakfast time and modified intro
In case anyone missed it, you can download a very mature draft of “Programming Computer Vision with Python” at programmingcomputervision.com. This book takes a fresh approach at introducing people to the computer vision field. It is aimed at beginners, who have some programming experience (not necessary Python) and basic understanding of linear algebra (matrices and vectors) and analysis.
The covered topics are (as taken from the TOC):
- Basic Image Handling and Processing
- Local Image Descriptors
- Image to Image Mappings
- Camera Models and Augmented Reality
- Clustering Images
- Searching Images
- Classifying Image Content
- Image Segmentation
What I like the most are the mini project like programming your own little augmented reality app or building a complete web app for content based image search. It is always great to have little working demos to show to your friends. I will definitely recommend it to anyone new and interested in the computer vision field.
Search everything. Search by keyword and filter by file type, owner and more. … We also use image recognition so that if you drag and drop photos from your Grand Canyon trip into Drive, you can later search for [grand canyon] and photos of its gorges should pop up. This technology is still in its early stages, and we expect it to get better over time.
This sparked my curiosity, so I evaluated Google Drive’s performance like I would with the image recognition frameworks I do my research on. First I uploaded an image dataset and with images containing known objects and then counted how many of the pictures Google Drive’s search would find, if I search for these objects.
As dataset I used the popular Caltech 101 dataset containing pictures of objects belonging to 101 different categories. There are about 40 to 800 images per category and roughly 4500 images in total. While being far from perfect, it is a well-known contender.
These are my first finding:
Google Drive only finds a fraction of the images, but the images it finds it categorizes correctly.
- In numbers: Precision is 83% (std=36%) and the recall is 8% (std=11%) (averaged over all categories)
- The best results it achieves for the two ‘comic’ categories ‘Snoopy’ and ‘Garfield’ and for iconic symbols like the dollar bill and the stop sign.
- As the The Caltech 101 dataset was created using Google’s image search the high precision is at least partly a result of a ‘simple’ duplicate detection with the Google index and not of a successful similarity search.
As all vision systems working in such an unconstrained environment they are far from being actually usable. One cannot rely on them, but once or twice they will surprise you by adding an image to the result list, that one hasn’t thought of.
- Google Drive uses Google Goggles image recognition technology, which details are not public. External experts assume, that they don’t differ much from other state of the art approaches.
- Link to the result table
* The numbers are not comparable 1-to-1 as both use a different evaluation approach. The Matlab script assigns to each image of the dataset its most likely class, while google drive tries to find a concept or object in the image.
On your way to become a PhD, you not only have to learn how to do research, you also have to learn how to communicate your ideas comprehensible in text and speech, how to build the tools you need and how to survive in the microcosmos of supervisors, colleagues and under grad students of your research lab. But you are not the first to go through all this and people have written extensive advice for every problem you might encounter. And as they are so popular right now, I present you here my:
List of lists of PhD resources for computer scientists.
The most condensed summary I have found on the website of my work group IUPR. It is a good starter and gives one an overview of all the things one has to keep in mind and pay attention to.
- THE Advice Collection by Xie and Xie
From the most condensed to the most comprehensive. This collection links to nearly 100 articles on Ph.D. dissertation/research, presentations, writing, reviewing/refereeing, being a faculty member, job hunting, learning English and more. The list is overwhelming.
Links to documents on giving talks and writing papers and proposals.
from the UCSD VLSI CAD LABORATORY
If you did not actually study computer science (like me) or your courses mainly covered logic and reducing NP-complete problems, this site can probably help you a lot. Software carpentry is about learning the skills to write reliable software and using the existing tools efficiently. The website offers tutorials on basic programming, version control, testing, using the shell, relational databases, matrix programming, program designing, spreadsheets, data management, and software life-cycles.
Like the well known Stackoverflow.com Academia is “a collaboratively edited question and answer site for academics and those enrolled in higher education.” It is still in its beta phase, but growing everyday. I like the aspect, that it will be always more current and extensive than all the pages only maintained by individuals or single work groups. And if you can’t find the information you need, you can always ask for help.