Date: 1 July 2016
Time: 12:30 UTC
Type: skype, fallback IRC (channel #gsoc-catimages)
Description: 10th meeting (Week 6) to discuss the Midterm Evaluation and Measurable outcomes as well as the last 50% of the Project Plan accordingly
Agenda:
- Midterm Evaluation, Outcomes/Measurables:
- Have a pypi package "pypi-catimages" which can perform a minimal set of the functions that catimages.py could: in progress https://gist.github.com/AbdealiJK/a94fc0d0445c2ad715d9b1b95ec2ba03
- its not a own package but in file-metadata for now
- Categorize based on metadata: in progress, needs to output categorization hints to console
- Graphics detection code of catimages implemented and improved but not tested on a mixed/random set yet
- has been tested now
- Have a pypi package "pypi-catimages" which can perform a minimal set of the functions that catimages.py could: in progress https://gist.github.com/AbdealiJK/a94fc0d0445c2ad715d9b1b95ec2ba03
- Consensus on plan and timeline
- Project Plan, second 50%
- Docker
- have 2 different bot run modes:
- auto: be conservative - no false-positive not to annoy commons users with unreliable bot work (and give the maintainer a lot of work to fix stuff)
- user-maintained: be more experimental - show ALL possible results (no matter how significant) and the user decides which ones are valid
- brings me to the idea T138119: Use user-maintained bot run mode to gain stats and learn
- @AbdealiJK proposes T138121#2395622 and T138121#2403802 which look reasonable despite some pitfals
- ? learning? how time consuming? (not to spend too much time on something that we cannot finish - though a actually should be quite easy to have a first theoretically working script)
- ? train the bot with images of persons we now in advance that they will appear in a dataset (e.g. generals or politicians during wars, etc.)
- ? train the bot on the dataset itself at least after humans have gone over it
- @DrTrigon requests to have a MVP for the project end of:
- Dependency checking and updating the code to fix deprecated deps and general refactoring.
- have a pypi package "pypi-catimages" and Pull Request / Patch Set which adds functionality to interface with pywikibot to the pypi-catimages
- create blog post to mention what are differences/what is missing to, kind of contain a todo list
- visit https://meta.wikimedia.org/wiki/WikiConference_India_2016 and have the code beta tested by say >=5 other users there in order to get them involved and receive feedback from them - use this to make the code installation and execution stable and reliable and easy to use (implement bug fixes and feature requests)
- clean-up final tasks finish project (docu, test, bugfixes, etc) -> who will be future maintainer? AbdealiJK & DrTrigon ?
- have a stable and reliable pypi package "pypi-catimages", dependencies, etc. which can be installed and runned easily by any user
- fully working core bot script that has equivalent functionallity as old compat bot - clearly indicate what functionally is missing and why (bot should/must be able to add the proper category tags, e.g. for uncategorized files)
- have a docker for more experimental packages that are harder to install (and for win users in general?)
- give a list of the features this package has and one of the features missing compared to old catimages.py ) (milestone?)
- provide more information for future contributors
- Put effort into trying to add new "experimental" technologies like: (see week 9)
- Optimizing the script to work better and faster.
- create a blog post about the different algorithms I have researched about (research on computer vision, using other data sets like ILSVRC to improve classification accuracy, etc.), propose list with new "experimental" technologies - similar to T135993
- generate stats / learn and improve algorithms
- Logging results appropriately for corner cases in case the user wants to check results after a bulk run and then see all the results later for verification. (DrTrigon mentioned this is already done to some extent, but can be generalized and improved)
- Allow user to give some hints on the category (Maybe a list of probably categories) and ignore other categories even if they rank higher than this one.
- send gathered info to developpers if wanted
- Tighten integration with commons interface (javascript templates or annotation tool with enhancements)
- Dependency checking and updating the code to fix deprecated deps and general refactoring.
- Outcomes/Measurables to be finished (and redefined)
- Milestones
- Project Plan, second 50%
- News regarding beta-tests - how can we increase the number? (India Meeting? support for tool-labs needed now?)
- video copyright project (jayvdb)
- Brief status report (jayvdb)
- we have to think about integrating it into this project (cross-language python and .NET)
- after the MVP we will start to work together (hacking session, mettings/communication, etc.)
- check https://etherpad.wikimedia.org/p/Zl7V7KuK7J
- Which categories (mentioned at the end) are useful?
- Which functions are implemented?
- Geometry
- ColorAverage (data of whole image)
- ColorRegions (data of segments with JSEG)
- Faces
- People
- OpticalCodes
- Chessboard
- History
- Text
- Streams
- Audio
- Classify - classification from VOC dataset
- From haarcascade learnt files
- Legs
- Hands
- Torsos
- Ears
- Eyes
- Automobiles
- Metadata (exif)
- Properties
Minutes of the Meeting:
- talked about pywikibot issues opened (pwb.py is generally bit of an issue, pywikibot argument parsing too)
- create a github package for generate user-config.py
- Upstream: dlib, pillow
- very cool to have a wheel for pillow since that improves testing of pywikibot on travis a lot
- Dependencies: very nice - do a package from https://github.com/AbdealiJK/file-metadata/issues/46
- Vehicle detection: lets talk about traing a own haarcascade, e.g. for cars form commons images - how many car images do get uploaded over time
- Face detection using Exif data: protocols are a mess, they are not properly defined
- use it for the working cameras as Sony and mention the not working ones (in docu and on ouput), write a docu page for that
- Consensus on plan and timeline, Project Plan, second 50%:
- MVP:
- categorization of (5%) of the new contributions
- use easy to add categories in https://etherpad.wikimedia.org/p/Zl7V7KuK7J, created with inkscape (search for pdfs of same name and add its categories), black/white photographs, images with alpha channel, icons (according to size, e.g. 16x16), ...
- @jayvdb and @DrTrigon need to define "categorization": accuracy etc.
- geo categorization (check contribs of all users and geo bots in special)
- put gathered (meta)data and stats somewhere for later usage; annotator in wiki (e.g. for faces) and database on tools (e.g. everything) to have some integration with wiki UI and allow more for other tools (or he bot) later by using the database - allows gather more info or learning later on
- other than that @AbdealiJK is free and can follow his proposals as mentioned
- categorization of (5%) of the new contributions
- priorities on:
- auto mode: be conservative - no false-positive not to annoy commons users with unreliable bot work
- user-maintained mode: be more experimental - show ALL possible results in nice GUI and store results in database for later analysis
- deliver a reliable good and stable - in short a relevant - product to moderately advanced wikipedia users
- have all these phabricator tasks here to keep track of all ideas and by delivering a relevant product we can attract more developper to implement them
- clean-up final task to finish the project (docu, test, bugfixes, etc); who will be future maintainer? AbdealiJK & DrTrigon?
- MVP:
- create a Docker for playing around: https://github.com/AbdealiJK/file-metadata/blob/ajk/docker/Dockerfile
- Which functions are implemented? -> list/link?
- talked about http://lokeshdhakar.com/projects/color-thief/
- video copyright project (jayvdb)
- after the MVP we will start to work together (hacking session, mettings/communication, etc.)